diff --git a/modules/text_server_adv/SCsub b/modules/text_server_adv/SCsub index f1dcef6667ea..f6aa24269852 100644 --- a/modules/text_server_adv/SCsub +++ b/modules/text_server_adv/SCsub @@ -477,7 +477,7 @@ if env["builtin_icu4c"]: ] thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources] - icu_data_name = "icudt75l.dat" + icu_data_name = "icudt76l.dat" if env.editor_build: env_icu.Depends("#thirdparty/icu4c/icudata.gen.h", "#thirdparty/icu4c/" + icu_data_name) diff --git a/modules/text_server_adv/gdextension_build/SConstruct b/modules/text_server_adv/gdextension_build/SConstruct index 4c305f3b3f59..fb705eaa50a8 100644 --- a/modules/text_server_adv/gdextension_build/SConstruct +++ b/modules/text_server_adv/gdextension_build/SConstruct @@ -717,7 +717,7 @@ thirdparty_icu_sources = [ ] thirdparty_icu_sources = [thirdparty_icu_dir + file for file in thirdparty_icu_sources] -icu_data_name = "icudt75l.dat" +icu_data_name = "icudt76l.dat" if env["static_icu_data"]: env_icu.Depends("../../../thirdparty/icu4c/icudata.gen.h", "../../../thirdparty/icu4c/" + icu_data_name) diff --git a/modules/text_server_adv/text_server_adv.h b/modules/text_server_adv/text_server_adv.h index 9c8d75b3588b..def57b9372ed 100644 --- a/modules/text_server_adv/text_server_adv.h +++ b/modules/text_server_adv/text_server_adv.h @@ -96,6 +96,11 @@ using namespace godot; // Thirdparty headers. +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +#endif + #include #include #include @@ -109,6 +114,10 @@ using namespace godot; #include #include +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif + #ifdef MODULE_FREETYPE_ENABLED #include #include FT_FREETYPE_H diff --git a/thirdparty/README.md b/thirdparty/README.md index 2ce82e82df9c..9bcaa4dbb67b 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -403,7 +403,7 @@ Files extracted from upstream source: ## icu4c - Upstream: https://github.com/unicode-org/icu -- Version: 75.1 (7750081bda4b3bc1768ae03849ec70f67ea10625, 2024) +- Version: 76.1 (8eca245c7484ac6cc179e3e5f7c1ea7680810f39, 2024) - License: Unicode Files extracted from upstream source: @@ -415,7 +415,7 @@ Files extracted from upstream source: Files generated from upstream source: -- The `icudt75l.dat` built with the provided `godot_data.json` config file (see +- The `icudt76l.dat` built with the provided `godot_data.json` config file (see https://github.com/unicode-org/icu/blob/master/docs/userguide/icu_data/buildtool.md for instructions). @@ -425,7 +425,7 @@ Files generated from upstream source: 3. Reconfigure ICU with custom data config: `ICU_DATA_FILTER_FILE={GODOT_SOURCE}/thirdparty/icu4c/godot_data.json ./runConfigureICU {PLATFORM} --with-data-packaging=common` 4. Delete `data/out` folder and rebuild data: `cd data && rm -rf ./out && make` -5. Copy `source/data/out/icudt75l.dat` to the `{GODOT_SOURCE}/thirdparty/icu4c/icudt75l.dat` +5. Copy `source/data/out/icudt76l.dat` to the `{GODOT_SOURCE}/thirdparty/icu4c/icudt76l.dat` ## jpeg-compressor diff --git a/thirdparty/icu4c/LICENSE b/thirdparty/icu4c/LICENSE index d67e1c8c667b..180db98fcc66 100644 --- a/thirdparty/icu4c/LICENSE +++ b/thirdparty/icu4c/LICENSE @@ -433,6 +433,34 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------- +JSON parsing library (nlohmann/json) + +File: vendor/json/upstream/single_include/nlohmann/json.hpp (only for ICU4C) + +MIT License + +Copyright (c) 2013-2022 Niels Lohmann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------------------------------------------------------------- + File: aclocal.m4 (only for ICU4C) Section: pkg.m4 - Macros to locate and utilise pkg-config. @@ -473,7 +501,7 @@ File: config.guess (only for ICU4C) This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or +the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but diff --git a/thirdparty/icu4c/common/appendable.cpp b/thirdparty/icu4c/common/appendable.cpp index c0fbcc6530ad..de18148fe6d6 100644 --- a/thirdparty/icu4c/common/appendable.cpp +++ b/thirdparty/icu4c/common/appendable.cpp @@ -25,7 +25,7 @@ Appendable::~Appendable() {} UBool Appendable::appendCodePoint(UChar32 c) { if(c<=0xffff) { - return appendCodeUnit((char16_t)c); + return appendCodeUnit(static_cast(c)); } else { return appendCodeUnit(U16_LEAD(c)) && appendCodeUnit(U16_TRAIL(c)); } diff --git a/thirdparty/icu4c/common/bmpset.cpp b/thirdparty/icu4c/common/bmpset.cpp index 641c675c6706..9b2a2967f0dd 100644 --- a/thirdparty/icu4c/common/bmpset.cpp +++ b/thirdparty/icu4c/common/bmpset.cpp @@ -75,7 +75,7 @@ static void set32x64Bits(uint32_t table[64], int32_t start, int32_t limit) { int32_t trail=start&0x3f; // Named for UTF-8 2-byte trail byte with lower 6 bits. // Set one bit indicating an all-one block. - uint32_t bits=(uint32_t)1<(1) << lead; if((start+1)==limit) { // Single-character shortcut. table[trail]|=bits; return; @@ -100,9 +100,9 @@ static void set32x64Bits(uint32_t table[64], int32_t start, int32_t limit) { ++lead; } if(lead(1) << lead) - 1); if(limitLead<0x20) { - bits&=((unsigned)1<(1) << limitLead) - 1; } for(trail=0; trail<64; ++trail) { table[trail]|=bits; @@ -111,7 +111,7 @@ static void set32x64Bits(uint32_t table[64], int32_t start, int32_t limit) { // limit<=0x800. If limit==0x800 then limitLead=32 and limitTrail=0. // In that case, bits=1<(1) << ((limitLead == 0x20) ? (limitLead - 1) : limitLead); for(trail=0; trail>6)))!=0); - } else if((uint32_t)c<0xd800 || (c>=0xe000 && c<=0xffff)) { + if (static_cast(c) <= 0xff) { + return latin1Contains[c]; + } else if (static_cast(c) <= 0x7ff) { + return (table7FF[c & 0x3f] & (static_cast(1) << (c >> 6))) != 0; + } else if (static_cast(c) < 0xd800 || (c >= 0xe000 && c <= 0xffff)) { int lead=c>>12; uint32_t twoBits=(bmpBlockBits[(c>>6)&0x3f]>>lead)&0x10001; if(twoBits<=1) { // All 64 code points with the same bits 15..6 // are either in the set or not. - return (UBool)twoBits; + return twoBits; } else { // Look up the code point in its 4k block of code points. return containsSlow(c, list4kStarts[lead], list4kStarts[lead+1]); } - } else if((uint32_t)c<=0x10ffff) { + } else if (static_cast(c) <= 0x10ffff) { // surrogate or supplementary code point return containsSlow(c, list4kStarts[0xd], list4kStarts[0x11]); } else { @@ -332,7 +332,7 @@ BMPSet::span(const char16_t *s, const char16_t *limit, USetSpanCondition spanCon break; } } else if(c<=0x7ff) { - if((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))==0) { + if ((table7FF[c & 0x3f] & (static_cast(1) << (c >> 6))) == 0) { break; } } else if(c<0xd800 || c>=0xe000) { @@ -372,7 +372,7 @@ BMPSet::span(const char16_t *s, const char16_t *limit, USetSpanCondition spanCon break; } } else if(c<=0x7ff) { - if((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))!=0) { + if ((table7FF[c & 0x3f] & (static_cast(1) << (c >> 6))) != 0) { break; } } else if(c<0xd800 || c>=0xe000) { @@ -421,7 +421,7 @@ BMPSet::spanBack(const char16_t *s, const char16_t *limit, USetSpanCondition spa break; } } else if(c<=0x7ff) { - if((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))==0) { + if ((table7FF[c & 0x3f] & (static_cast(1) << (c >> 6))) == 0) { break; } } else if(c<0xd800 || c>=0xe000) { @@ -464,7 +464,7 @@ BMPSet::spanBack(const char16_t *s, const char16_t *limit, USetSpanCondition spa break; } } else if(c<=0x7ff) { - if((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))!=0) { + if ((table7FF[c & 0x3f] & (static_cast(1) << (c >> 6))) != 0) { break; } } else if(c<0xd800 || c>=0xe000) { @@ -527,7 +527,7 @@ BMPSet::spanUTF8(const uint8_t *s, int32_t length, USetSpanCondition spanConditi b=*s; } while(U8_IS_SINGLE(b)); } - length=(int32_t)(limit-s); + length = static_cast(limit - s); } if(spanCondition!=USET_SPAN_NOT_CONTAINED) { @@ -547,7 +547,7 @@ BMPSet::spanUTF8(const uint8_t *s, int32_t length, USetSpanCondition spanConditi * the truncated sequence. */ b=*(limit-1); - if((int8_t)b<0) { + if (static_cast(b) < 0) { // b>=0x80: lead or trail byte if(b<0xc0) { // single trail byte, check for preceding 3- or 4-byte lead byte @@ -602,15 +602,15 @@ BMPSet::spanUTF8(const uint8_t *s, int32_t length, USetSpanCondition spanConditi if(b>=0xe0) { if(b<0xf0) { if( /* handle U+0000..U+FFFF inline */ - (t1=(uint8_t)(s[0]-0x80)) <= 0x3f && - (t2=(uint8_t)(s[1]-0x80)) <= 0x3f + (t1 = static_cast(s[0] - 0x80)) <= 0x3f && + (t2 = static_cast(s[1] - 0x80)) <= 0x3f ) { b&=0xf; uint32_t twoBits=(bmpBlockBits[t1]>>b)&0x10001; if(twoBits<=1) { // All 64 code points with this lead byte and middle trail byte // are either in the set or not. - if(twoBits!=(uint32_t)spanCondition) { + if (twoBits != static_cast(spanCondition)) { return s-1; } } else { @@ -624,12 +624,12 @@ BMPSet::spanUTF8(const uint8_t *s, int32_t length, USetSpanCondition spanConditi continue; } } else if( /* handle U+10000..U+10FFFF inline */ - (t1=(uint8_t)(s[0]-0x80)) <= 0x3f && - (t2=(uint8_t)(s[1]-0x80)) <= 0x3f && - (t3=(uint8_t)(s[2]-0x80)) <= 0x3f + (t1 = static_cast(s[0] - 0x80)) <= 0x3f && + (t2 = static_cast(s[1] - 0x80)) <= 0x3f && + (t3 = static_cast(s[2] - 0x80)) <= 0x3f ) { // Give an illegal sequence the same value as the result of contains(FFFD). - UChar32 c=((UChar32)(b-0xf0)<<18)|((UChar32)t1<<12)|(t2<<6)|t3; + UChar32 c = (static_cast(b - 0xf0) << 18) | (static_cast(t1) << 12) | (t2 << 6) | t3; if( ( (0x10000<=c && c<=0x10ffff) ? containsSlow(c, list4kStarts[0x10], list4kStarts[0x11]) : containsFFFD @@ -643,9 +643,9 @@ BMPSet::spanUTF8(const uint8_t *s, int32_t length, USetSpanCondition spanConditi } else { if( /* handle U+0000..U+07FF inline */ b>=0xc0 && - (t1=(uint8_t)(*s-0x80)) <= 0x3f + (t1 = static_cast(*s - 0x80)) <= 0x3f ) { - if((USetSpanCondition)((table7FF[t1]&((uint32_t)1<<(b&0x1f)))!=0) != spanCondition) { + if (static_cast((table7FF[t1] & (static_cast(1) << (b & 0x1f))) != 0) != spanCondition) { return s-1; } ++s; @@ -711,7 +711,7 @@ BMPSet::spanBackUTF8(const uint8_t *s, int32_t length, USetSpanCondition spanCon c=utf8_prevCharSafeBody(s, 0, &length, b, -3); // c is a valid code point, not ASCII, not a surrogate if(c<=0x7ff) { - if((USetSpanCondition)((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))!=0) != spanCondition) { + if (static_cast((table7FF[c & 0x3f] & (static_cast(1) << (c >> 6))) != 0) != spanCondition) { return prev+1; } } else if(c<=0xffff) { @@ -720,7 +720,7 @@ BMPSet::spanBackUTF8(const uint8_t *s, int32_t length, USetSpanCondition spanCon if(twoBits<=1) { // All 64 code points with the same bits 15..6 // are either in the set or not. - if(twoBits!=(uint32_t)spanCondition) { + if (twoBits != static_cast(spanCondition)) { return prev+1; } } else { diff --git a/thirdparty/icu4c/common/bmpset.h b/thirdparty/icu4c/common/bmpset.h index fad0310038ac..00253f97c126 100644 --- a/thirdparty/icu4c/common/bmpset.h +++ b/thirdparty/icu4c/common/bmpset.h @@ -156,7 +156,7 @@ class BMPSet : public UMemory { }; inline UBool BMPSet::containsSlow(UChar32 c, int32_t lo, int32_t hi) const { - return (UBool)(findCodePoint(c, lo, hi) & 1); + return findCodePoint(c, lo, hi) & 1; } U_NAMESPACE_END diff --git a/thirdparty/icu4c/common/brkeng.cpp b/thirdparty/icu4c/common/brkeng.cpp index e53a7b2ce4f5..a903357938c2 100644 --- a/thirdparty/icu4c/common/brkeng.cpp +++ b/thirdparty/icu4c/common/brkeng.cpp @@ -86,7 +86,7 @@ UnhandledEngine::findBreaks( UText *text, if (U_FAILURE(status)) return 0; utext_setNativeIndex(text, startPos); UChar32 c = utext_current32(text); - while((int32_t)utext_getNativeIndex(text) < endPos && fHandled->contains(c)) { + while (static_cast(utext_getNativeIndex(text)) < endPos && fHandled->contains(c)) { utext_next32(text); // TODO: recast loop to work with post-increment operations. c = utext_current32(text); } @@ -146,7 +146,7 @@ ICULanguageBreakFactory::getEngineFor(UChar32 c, const char* locale) { Mutex m(&gBreakEngineMutex); int32_t i = fEngines->size(); while (--i >= 0) { - lbe = (const LanguageBreakEngine *)(fEngines->elementAt(i)); + lbe = static_cast(fEngines->elementAt(i)); if (lbe != nullptr && lbe->handles(c, locale)) { return lbe; } @@ -259,7 +259,7 @@ ICULanguageBreakFactory::loadDictionaryMatcherFor(UScriptCode script) { CharString ext; const char16_t *extStart = u_memrchr(dictfname, 0x002e, dictnlength); // last dot if (extStart != nullptr) { - int32_t len = (int32_t)(extStart - dictfname); + int32_t len = static_cast(extStart - dictfname); ext.appendInvariantChars(UnicodeString(false, extStart + 1, dictnlength - len - 1), status); dictnlength = len; } @@ -269,18 +269,18 @@ ICULanguageBreakFactory::loadDictionaryMatcherFor(UScriptCode script) { UDataMemory *file = udata_open(U_ICUDATA_BRKITR, ext.data(), dictnbuf.data(), &status); if (U_SUCCESS(status)) { // build trie - const uint8_t *data = (const uint8_t *)udata_getMemory(file); - const int32_t *indexes = (const int32_t *)data; + const uint8_t* data = static_cast(udata_getMemory(file)); + const int32_t* indexes = reinterpret_cast(data); const int32_t offset = indexes[DictionaryData::IX_STRING_TRIE_OFFSET]; const int32_t trieType = indexes[DictionaryData::IX_TRIE_TYPE] & DictionaryData::TRIE_TYPE_MASK; DictionaryMatcher *m = nullptr; if (trieType == DictionaryData::TRIE_TYPE_BYTES) { const int32_t transform = indexes[DictionaryData::IX_TRANSFORM]; - const char *characters = (const char *)(data + offset); + const char* characters = reinterpret_cast(data + offset); m = new BytesDictionaryMatcher(characters, transform, file); } else if (trieType == DictionaryData::TRIE_TYPE_UCHARS) { - const char16_t *characters = (const char16_t *)(data + offset); + const char16_t* characters = reinterpret_cast(data + offset); m = new UCharsDictionaryMatcher(characters, file); } if (m == nullptr) { @@ -337,12 +337,12 @@ int32_t BreakEngineWrapper::findBreaks( // extends towards the start or end of the text, depending on 'reverse'. utext_setNativeIndex(text, startPos); - int32_t start = (int32_t)utext_getNativeIndex(text); + int32_t start = static_cast(utext_getNativeIndex(text)); int32_t current; int32_t rangeStart; int32_t rangeEnd; UChar32 c = utext_current32(text); - while((current = (int32_t)utext_getNativeIndex(text)) < endPos && delegate->handles(c)) { + while ((current = static_cast(utext_getNativeIndex(text))) < endPos && delegate->handles(c)) { utext_next32(text); // TODO: recast loop for postincrement c = utext_current32(text); } diff --git a/thirdparty/icu4c/common/brkiter.cpp b/thirdparty/icu4c/common/brkiter.cpp index 4f2f0f3ace88..4d945cc17e2b 100644 --- a/thirdparty/icu4c/common/brkiter.cpp +++ b/thirdparty/icu4c/common/brkiter.cpp @@ -85,7 +85,7 @@ BreakIterator::buildInstance(const Locale& loc, const char *type, UErrorCode &st // Get the actual string brkfname = ures_getString(brkName, &size, &status); U_ASSERT((size_t)size=sizeof(fnbuff)) { + if (static_cast(size) >= sizeof(fnbuff)) { size=0; if (U_SUCCESS(status)) { status = U_BUFFER_OVERFLOW_ERROR; @@ -99,7 +99,7 @@ BreakIterator::buildInstance(const Locale& loc, const char *type, UErrorCode &st char16_t* extStart=u_strchr(brkfname, 0x002e); int len = 0; if (extStart != nullptr){ - len = (int)(extStart-brkfname); + len = static_cast(extStart - brkfname); u_UCharsToChars(extStart+1, ext, sizeof(ext)); // nul terminates the buff u_UCharsToChars(brkfname, fnbuff, len); } diff --git a/thirdparty/icu4c/common/bytesinkutil.cpp b/thirdparty/icu4c/common/bytesinkutil.cpp index a32254a7dbab..e99c10f0838b 100644 --- a/thirdparty/icu4c/common/bytesinkutil.cpp +++ b/thirdparty/icu4c/common/bytesinkutil.cpp @@ -64,7 +64,7 @@ ByteSinkUtil::appendChange(const uint8_t *s, const uint8_t *limit, errorCode = U_INDEX_OUTOFBOUNDS_ERROR; return false; } - return appendChange((int32_t)(limit - s), s16, s16Length, sink, edits, errorCode); + return appendChange(static_cast(limit - s), s16, s16Length, sink, edits, errorCode); } void @@ -81,15 +81,15 @@ ByteSinkUtil::appendCodePoint(int32_t length, UChar32 c, ByteSink &sink, Edits * namespace { // See unicode/utf8.h U8_APPEND_UNSAFE(). -inline uint8_t getTwoByteLead(UChar32 c) { return (uint8_t)((c >> 6) | 0xc0); } -inline uint8_t getTwoByteTrail(UChar32 c) { return (uint8_t)((c & 0x3f) | 0x80); } +inline uint8_t getTwoByteLead(UChar32 c) { return static_cast((c >> 6) | 0xc0); } +inline uint8_t getTwoByteTrail(UChar32 c) { return static_cast((c & 0x3f) | 0x80); } } // namespace void ByteSinkUtil::appendTwoBytes(UChar32 c, ByteSink &sink) { U_ASSERT(0x80 <= c && c <= 0x7ff); // 2-byte UTF-8 - char s8[2] = { (char)getTwoByteLead(c), (char)getTwoByteTrail(c) }; + char s8[2] = {static_cast(getTwoByteLead(c)), static_cast(getTwoByteTrail(c))}; sink.Append(s8, 2); } @@ -114,7 +114,7 @@ ByteSinkUtil::appendUnchanged(const uint8_t *s, const uint8_t *limit, errorCode = U_INDEX_OUTOFBOUNDS_ERROR; return false; } - int32_t length = (int32_t)(limit - s); + int32_t length = static_cast(limit - s); if (length > 0) { appendNonEmptyUnchanged(s, length, sink, options, edits); } diff --git a/thirdparty/icu4c/common/bytesinkutil.h b/thirdparty/icu4c/common/bytesinkutil.h index b3bd487be1d6..eb3a622ae957 100644 --- a/thirdparty/icu4c/common/bytesinkutil.h +++ b/thirdparty/icu4c/common/bytesinkutil.h @@ -73,7 +73,7 @@ class U_COMMON_API ByteSinkUtil { /** The few bytes at [src, nextSrc[ were mapped/changed to valid code point c. */ static inline void appendCodePoint(const uint8_t *src, const uint8_t *nextSrc, UChar32 c, ByteSink &sink, Edits *edits = nullptr) { - appendCodePoint((int32_t)(nextSrc - src), c, sink, edits); + appendCodePoint(static_cast(nextSrc - src), c, sink, edits); } /** Append the two-byte character (U+0080..U+07FF). */ diff --git a/thirdparty/icu4c/common/bytestrie.cpp b/thirdparty/icu4c/common/bytestrie.cpp index 532ea9e9c0a9..048bbebb01af 100644 --- a/thirdparty/icu4c/common/bytestrie.cpp +++ b/thirdparty/icu4c/common/bytestrie.cpp @@ -327,7 +327,7 @@ BytesTrie::findUniqueValueFromBranch(const uint8_t *pos, int32_t length, ++pos; // ignore a comparison byte // handle its value int32_t node=*pos++; - UBool isFinal=(UBool)(node&kValueIsFinal); + UBool isFinal = static_cast(node & kValueIsFinal); int32_t value=readValue(pos, node>>1); pos=skipValue(pos, node); if(isFinal) { @@ -366,7 +366,7 @@ BytesTrie::findUniqueValue(const uint8_t *pos, UBool haveUniqueValue, int32_t &u // linear-match node pos+=node-kMinLinearMatch+1; // Ignore the match bytes. } else { - UBool isFinal=(UBool)(node&kValueIsFinal); + UBool isFinal = static_cast(node & kValueIsFinal); int32_t value=readValue(pos, node>>1); if(haveUniqueValue) { if(value!=uniqueValue) { @@ -434,7 +434,7 @@ BytesTrie::getNextBranchBytes(const uint8_t *pos, int32_t length, ByteSink &out) void BytesTrie::append(ByteSink &out, int c) { - char ch=(char)c; + char ch = static_cast(c); out.Append(&ch, 1); } diff --git a/thirdparty/icu4c/common/bytestriebuilder.cpp b/thirdparty/icu4c/common/bytestriebuilder.cpp index 876e0dfa1609..03bbc28e6577 100644 --- a/thirdparty/icu4c/common/bytestriebuilder.cpp +++ b/thirdparty/icu4c/common/bytestriebuilder.cpp @@ -43,10 +43,10 @@ class BytesTrieElement : public UMemory { int32_t offset=stringOffset; int32_t length; if(offset>=0) { - length=(uint8_t)strings[offset++]; + length = static_cast(strings[offset++]); } else { offset=~offset; - length=((int32_t)(uint8_t)strings[offset]<<8)|(uint8_t)strings[offset+1]; + length = (static_cast(static_cast(strings[offset])) << 8) | static_cast(strings[offset + 1]); offset+=2; } return StringPiece(strings.data()+offset, length); @@ -54,10 +54,10 @@ class BytesTrieElement : public UMemory { int32_t getStringLength(const CharString &strings) const { int32_t offset=stringOffset; if(offset>=0) { - return (uint8_t)strings[offset]; + return static_cast(strings[offset]); } else { offset=~offset; - return ((int32_t)(uint8_t)strings[offset]<<8)|(uint8_t)strings[offset+1]; + return (static_cast(static_cast(strings[offset])) << 8) | static_cast(strings[offset + 1]); } } @@ -102,9 +102,9 @@ BytesTrieElement::setTo(StringPiece s, int32_t val, int32_t offset=strings.length(); if(length>0xff) { offset=~offset; - strings.append((char)(length>>8), errorCode); + strings.append(static_cast(length >> 8), errorCode); } - strings.append((char)length, errorCode); + strings.append(static_cast(length), errorCode); stringOffset=offset; value=val; strings.append(s, errorCode); @@ -229,7 +229,7 @@ BytesTrieBuilder::buildBytes(UStringTrieBuildOption buildOption, UErrorCode &err errorCode=U_INDEX_OUTOFBOUNDS_ERROR; return; } - uprv_sortArray(elements, elementsLength, (int32_t)sizeof(BytesTrieElement), + uprv_sortArray(elements, elementsLength, static_cast(sizeof(BytesTrieElement)), compareElementStrings, strings, false, // need not be a stable sort &errorCode); @@ -284,7 +284,7 @@ BytesTrieBuilder::getElementStringLength(int32_t i) const { char16_t BytesTrieBuilder::getElementUnit(int32_t i, int32_t byteIndex) const { - return (uint8_t)elements[i].charAt(byteIndex, *strings); + return static_cast(elements[i].charAt(byteIndex, *strings)); } int32_t @@ -330,7 +330,7 @@ BytesTrieBuilder::skipElementsBySomeUnits(int32_t i, int32_t byteIndex, int32_t int32_t BytesTrieBuilder::indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, char16_t byte) const { - char b=(char)byte; + char b = static_cast(byte); while(b==elements[i].charAt(byteIndex, *strings)) { ++i; } @@ -404,7 +404,7 @@ BytesTrieBuilder::write(int32_t byte) { int32_t newLength=bytesLength+1; if(ensureCapacity(newLength)) { bytesLength=newLength; - bytes[bytesCapacity-bytesLength]=(char)byte; + bytes[bytesCapacity - bytesLength] = static_cast(byte); } return bytesLength; } @@ -432,30 +432,30 @@ BytesTrieBuilder::writeValueAndFinal(int32_t i, UBool isFinal) { char intBytes[5]; int32_t length=1; if(i<0 || i>0xffffff) { - intBytes[0]=(char)BytesTrie::kFiveByteValueLead; - intBytes[1]=(char)((uint32_t)i>>24); - intBytes[2]=(char)((uint32_t)i>>16); - intBytes[3]=(char)((uint32_t)i>>8); - intBytes[4]=(char)i; + intBytes[0] = static_cast(BytesTrie::kFiveByteValueLead); + intBytes[1] = static_cast(static_cast(i) >> 24); + intBytes[2] = static_cast(static_cast(i) >> 16); + intBytes[3] = static_cast(static_cast(i) >> 8); + intBytes[4] = static_cast(i); length=5; // } else if(i<=BytesTrie::kMaxOneByteValue) { // intBytes[0]=(char)(BytesTrie::kMinOneByteValueLead+i); } else { if(i<=BytesTrie::kMaxTwoByteValue) { - intBytes[0]=(char)(BytesTrie::kMinTwoByteValueLead+(i>>8)); + intBytes[0] = static_cast(BytesTrie::kMinTwoByteValueLead + (i >> 8)); } else { if(i<=BytesTrie::kMaxThreeByteValue) { - intBytes[0]=(char)(BytesTrie::kMinThreeByteValueLead+(i>>16)); + intBytes[0] = static_cast(BytesTrie::kMinThreeByteValueLead + (i >> 16)); } else { - intBytes[0]=(char)BytesTrie::kFourByteValueLead; - intBytes[1]=(char)(i>>16); + intBytes[0] = static_cast(BytesTrie::kFourByteValueLead); + intBytes[1] = static_cast(i >> 16); length=2; } - intBytes[length++]=(char)(i>>8); + intBytes[length++] = static_cast(i >> 8); } - intBytes[length++]=(char)i; + intBytes[length++] = static_cast(i); } - intBytes[0]=(char)((intBytes[0]<<1)|isFinal); + intBytes[0] = static_cast((intBytes[0] << 1) | isFinal); return write(intBytes, length); } @@ -484,28 +484,28 @@ int32_t BytesTrieBuilder::internalEncodeDelta(int32_t i, char intBytes[]) { U_ASSERT(i>=0); if(i<=BytesTrie::kMaxOneByteDelta) { - intBytes[0]=(char)i; + intBytes[0] = static_cast(i); return 1; } int32_t length=1; if(i<=BytesTrie::kMaxTwoByteDelta) { - intBytes[0]=(char)(BytesTrie::kMinTwoByteDeltaLead+(i>>8)); + intBytes[0] = static_cast(BytesTrie::kMinTwoByteDeltaLead + (i >> 8)); } else { if(i<=BytesTrie::kMaxThreeByteDelta) { - intBytes[0]=(char)(BytesTrie::kMinThreeByteDeltaLead+(i>>16)); + intBytes[0] = static_cast(BytesTrie::kMinThreeByteDeltaLead + (i >> 16)); } else { if(i<=0xffffff) { - intBytes[0]=(char)BytesTrie::kFourByteDeltaLead; + intBytes[0] = static_cast(BytesTrie::kFourByteDeltaLead); } else { - intBytes[0]=(char)BytesTrie::kFiveByteDeltaLead; - intBytes[1]=(char)(i>>24); + intBytes[0] = static_cast(BytesTrie::kFiveByteDeltaLead); + intBytes[1] = static_cast(i >> 24); length=2; } - intBytes[length++]=(char)(i>>16); + intBytes[length++] = static_cast(i >> 16); } - intBytes[length++]=(char)(i>>8); + intBytes[length++] = static_cast(i >> 8); } - intBytes[length++]=(char)i; + intBytes[length++] = static_cast(i); return length; } diff --git a/thirdparty/icu4c/common/bytestrieiterator.cpp b/thirdparty/icu4c/common/bytestrieiterator.cpp index 65f54be48ae8..b60806f1f357 100644 --- a/thirdparty/icu4c/common/bytestrieiterator.cpp +++ b/thirdparty/icu4c/common/bytestrieiterator.cpp @@ -115,14 +115,14 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) { pos=bytes_+stack_->elementAti(stackSize-2); stack_->setSize(stackSize-2); str_->truncate(length&0xffff); - length=(int32_t)((uint32_t)length>>16); + length = static_cast(static_cast(length) >> 16); if(length>1) { pos=branchNext(pos, length, errorCode); if(pos==nullptr) { return true; // Reached a final value. } } else { - str_->append((char)*pos++, errorCode); + str_->append(static_cast(*pos++), errorCode); } } if(remainingMatchLength_>=0) { @@ -134,7 +134,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) { int32_t node=*pos++; if(node>=kMinValueLead) { // Deliver value for the byte sequence so far. - UBool isFinal=(UBool)(node&kValueIsFinal); + UBool isFinal = static_cast(node & kValueIsFinal); value_=readValue(pos, node>>1); if(isFinal || (maxLength_>0 && str_->length()==maxLength_)) { pos_=nullptr; @@ -186,7 +186,7 @@ BytesTrie::Iterator::branchNext(const uint8_t *pos, int32_t length, UErrorCode & while(length>kMaxBranchLinearSubNodeLength) { ++pos; // ignore the comparison byte // Push state for the greater-or-equal edge. - stack_->addElement((int32_t)(skipDelta(pos)-bytes_), errorCode); + stack_->addElement(static_cast(skipDelta(pos) - bytes_), errorCode); stack_->addElement(((length-(length>>1))<<16)|str_->length(), errorCode); // Follow the less-than edge. length>>=1; @@ -196,12 +196,12 @@ BytesTrie::Iterator::branchNext(const uint8_t *pos, int32_t length, UErrorCode & // Read the first (key, value) pair. uint8_t trieByte=*pos++; int32_t node=*pos++; - UBool isFinal=(UBool)(node&kValueIsFinal); + UBool isFinal = static_cast(node & kValueIsFinal); int32_t value=readValue(pos, node>>1); pos=skipValue(pos, node); - stack_->addElement((int32_t)(pos-bytes_), errorCode); + stack_->addElement(static_cast(pos - bytes_), errorCode); stack_->addElement(((length-1)<<16)|str_->length(), errorCode); - str_->append((char)trieByte, errorCode); + str_->append(static_cast(trieByte), errorCode); if(isFinal) { pos_=nullptr; value_=value; diff --git a/thirdparty/icu4c/common/caniter.cpp b/thirdparty/icu4c/common/caniter.cpp index 2c987306ec9c..1b2bc2ada0c9 100644 --- a/thirdparty/icu4c/common/caniter.cpp +++ b/thirdparty/icu4c/common/caniter.cpp @@ -183,10 +183,10 @@ void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &st // catch degenerate case if (newSource.length() == 0) { - pieces = (UnicodeString **)uprv_malloc(sizeof(UnicodeString *)); - pieces_lengths = (int32_t*)uprv_malloc(1 * sizeof(int32_t)); + pieces = static_cast(uprv_malloc(sizeof(UnicodeString*))); + pieces_lengths = static_cast(uprv_malloc(1 * sizeof(int32_t))); pieces_length = 1; - current = (int32_t*)uprv_malloc(1 * sizeof(int32_t)); + current = static_cast(uprv_malloc(1 * sizeof(int32_t))); current_length = 1; if (pieces == nullptr || pieces_lengths == nullptr || current == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; @@ -229,10 +229,10 @@ void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &st // allocate the arrays, and find the strings that are CE to each segment - pieces = (UnicodeString **)uprv_malloc(list_length * sizeof(UnicodeString *)); + pieces = static_cast(uprv_malloc(list_length * sizeof(UnicodeString*))); pieces_length = list_length; - pieces_lengths = (int32_t*)uprv_malloc(list_length * sizeof(int32_t)); - current = (int32_t*)uprv_malloc(list_length * sizeof(int32_t)); + pieces_lengths = static_cast(uprv_malloc(list_length * sizeof(int32_t))); + current = static_cast(uprv_malloc(list_length * sizeof(int32_t))); current_length = list_length; if (pieces == nullptr || pieces_lengths == nullptr || current == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; @@ -330,7 +330,7 @@ void U_EXPORT2 CanonicalIterator::permute(UnicodeString &source, UBool skipZeros // prefix this character to all of them ne = subpermute.nextElement(el); while (ne != nullptr) { - UnicodeString *permRes = (UnicodeString *)(ne->value.pointer); + UnicodeString* permRes = static_cast(ne->value.pointer); UnicodeString *chStr = new UnicodeString(cp); //test for nullptr if (chStr == nullptr) { @@ -363,6 +363,9 @@ UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, i char16_t USeg[256]; int32_t segLen = segment.extract(USeg, 256, status); getEquivalents2(&basic, USeg, segLen, status); + if (U_FAILURE(status)) { + return nullptr; + } // now get all the permutations // add only the ones that are canonically equivalent @@ -375,7 +378,7 @@ UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, i //while (it.hasNext()) while (ne != nullptr) { //String item = (String) it.next(); - UnicodeString item = *((UnicodeString *)(ne->value.pointer)); + UnicodeString item = *static_cast(ne->value.pointer); permutations.removeAll(); permute(item, CANITER_SKIP_ZEROES, &permutations, status); @@ -387,7 +390,7 @@ UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, i while (ne2 != nullptr) { //String possible = (String) it2.next(); //UnicodeString *possible = new UnicodeString(*((UnicodeString *)(ne2->value.pointer))); - UnicodeString possible(*((UnicodeString *)(ne2->value.pointer))); + UnicodeString possible(*static_cast(ne2->value.pointer)); UnicodeString attempt; nfd->normalize(possible, attempt, status); @@ -429,7 +432,7 @@ UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, i el = UHASH_FIRST; ne = result.nextElement(el); while(ne != nullptr) { - finalResult[result_len++] = *((UnicodeString *)(ne->value.pointer)); + finalResult[result_len++] = *static_cast(ne->value.pointer); ne = result.nextElement(el); } @@ -466,6 +469,9 @@ Hashtable *CanonicalIterator::getEquivalents2(Hashtable *fillinResult, const cha Hashtable remainder(status); remainder.setValueDeleter(uprv_deleteUObject); if (extract(&remainder, cp2, segment, segLen, i, status) == nullptr) { + if (U_FAILURE(status)) { + return nullptr; + } continue; } @@ -476,7 +482,7 @@ Hashtable *CanonicalIterator::getEquivalents2(Hashtable *fillinResult, const cha int32_t el = UHASH_FIRST; const UHashElement *ne = remainder.nextElement(el); while (ne != nullptr) { - UnicodeString item = *((UnicodeString *)(ne->value.pointer)); + UnicodeString item = *static_cast(ne->value.pointer); UnicodeString *toAdd = new UnicodeString(prefix); /* test for nullptr */ if (toAdd == nullptr) { @@ -490,6 +496,13 @@ Hashtable *CanonicalIterator::getEquivalents2(Hashtable *fillinResult, const cha ne = remainder.nextElement(el); } + // ICU-22642 Guards against strings that have so many permutations + // that they would otherwise hang the function. + constexpr int32_t kResultLimit = 4096; + if (fillinResult->count() > kResultLimit) { + status = U_UNSUPPORTED_ERROR; + return nullptr; + } } } diff --git a/thirdparty/icu4c/common/characterproperties.cpp b/thirdparty/icu4c/common/characterproperties.cpp index f1e15b488d53..963ac8342151 100644 --- a/thirdparty/icu4c/common/characterproperties.cpp +++ b/thirdparty/icu4c/common/characterproperties.cpp @@ -58,17 +58,17 @@ icu::UMutex cpMutex; // Does not use uset.h to reduce code dependencies void U_CALLCONV _set_add(USet *set, UChar32 c) { - ((UnicodeSet *)set)->add(c); + reinterpret_cast(set)->add(c); } void U_CALLCONV _set_addRange(USet *set, UChar32 start, UChar32 end) { - ((UnicodeSet *)set)->add(start, end); + reinterpret_cast(set)->add(start, end); } void U_CALLCONV _set_addString(USet *set, const char16_t *str, int32_t length) { - ((UnicodeSet *)set)->add(icu::UnicodeString((UBool)(length<0), str, length)); + reinterpret_cast(set)->add(icu::UnicodeString(static_cast(length < 0), str, length)); } UBool U_CALLCONV characterproperties_cleanup() { @@ -103,7 +103,7 @@ void U_CALLCONV initInclusion(UPropertySource src, UErrorCode &errorCode) { return; } USetAdder sa = { - (USet *)incl.getAlias(), + reinterpret_cast(incl.getAlias()), _set_add, _set_addRange, _set_addString, @@ -184,8 +184,12 @@ void U_CALLCONV initInclusion(UPropertySource src, UErrorCode &errorCode) { sa.add(sa.set, 0x2FFF + 1); break; case UPROPS_SRC_ID_COMPAT_MATH: + case UPROPS_SRC_MCM: uprops_addPropertyStarts(src, &sa, &errorCode); break; + case UPROPS_SRC_BLOCK: + ublock_addPropertyStarts(&sa, errorCode); + break; default: errorCode = U_INTERNAL_PROGRAM_ERROR; break; @@ -289,7 +293,7 @@ UnicodeSet *makeSet(UProperty property, UErrorCode &errorCode) { const icu::EmojiProps *ep = icu::EmojiProps::getSingleton(errorCode); if (U_FAILURE(errorCode)) { return nullptr; } USetAdder sa = { - (USet *)set.getAlias(), + reinterpret_cast(set.getAlias()), _set_add, _set_addRange, _set_addString, diff --git a/thirdparty/icu4c/common/cstring.cpp b/thirdparty/icu4c/common/cstring.cpp index e95816c13016..cc3f6deed890 100644 --- a/thirdparty/icu4c/common/cstring.cpp +++ b/thirdparty/icu4c/common/cstring.cpp @@ -126,7 +126,7 @@ T_CString_toLowerCase(char* str) if (str) { do - *str = (char)uprv_tolower(*str); + *str = uprv_tolower(*str); while (*(str++)); } @@ -140,7 +140,7 @@ T_CString_toUpperCase(char* str) if (str) { do - *str = (char)uprv_toupper(*str); + *str = uprv_toupper(*str); while (*(str++)); } diff --git a/thirdparty/icu4c/common/dictbe.cpp b/thirdparty/icu4c/common/dictbe.cpp index 3d672c03bfb3..888716c8d891 100644 --- a/thirdparty/icu4c/common/dictbe.cpp +++ b/thirdparty/icu4c/common/dictbe.cpp @@ -61,12 +61,12 @@ DictionaryBreakEngine::findBreaks( UText *text, // extends towards the start or end of the text, depending on 'reverse'. utext_setNativeIndex(text, startPos); - int32_t start = (int32_t)utext_getNativeIndex(text); + int32_t start = static_cast(utext_getNativeIndex(text)); int32_t current; int32_t rangeStart; int32_t rangeEnd; UChar32 c = utext_current32(text); - while((current = (int32_t)utext_getNativeIndex(text)) < endPos && fSet.contains(c)) { + while ((current = static_cast(utext_getNativeIndex(text))) < endPos && fSet.contains(c)) { utext_next32(text); // TODO: recast loop for postincrement c = utext_current32(text); } @@ -137,7 +137,7 @@ class PossibleWord { int32_t PossibleWord::candidates( UText *text, DictionaryMatcher *dict, int32_t rangeEnd ) { // TODO: If getIndex is too slow, use offset < 0 and add discardAll() - int32_t start = (int32_t)utext_getNativeIndex(text); + int32_t start = static_cast(utext_getNativeIndex(text)); if (start != offset) { offset = start; count = dict->matches(text, rangeEnd-start, UPRV_LENGTHOF(cuLengths), cuLengths, cpLengths, nullptr, &prefix); @@ -253,7 +253,7 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, utext_setNativeIndex(text, rangeStart); - while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) { + while (U_SUCCESS(status) && (current = static_cast(utext_getNativeIndex(text))) < rangeEnd) { cpWordLength = 0; cuWordLength = 0; @@ -269,7 +269,7 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, // If there was more than one, see which one can take us forward the most words else if (candidates > 1) { // If we're already at the end of the range, we're done - if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) { + if (static_cast(utext_getNativeIndex(text)) >= rangeEnd) { goto foundBest; } do { @@ -278,7 +278,7 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, words[wordsFound%THAI_LOOKAHEAD].markCurrent(); // If we're already at the end of the range, we're done - if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) { + if (static_cast(utext_getNativeIndex(text)) >= rangeEnd) { goto foundBest; } @@ -308,7 +308,7 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, // The text iterator should now be positioned at the end of the word we found. UChar32 uc = 0; - if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cpWordLength < THAI_ROOT_COMBINE_THRESHOLD) { + if (static_cast(utext_getNativeIndex(text)) < rangeEnd && cpWordLength < THAI_ROOT_COMBINE_THRESHOLD) { // if it is a dictionary word, do nothing. If it isn't, then if there is // no preceding word, or the non-word shares less than the minimum threshold // of characters with a dictionary word, then scan to resynchronize @@ -320,9 +320,9 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, UChar32 pc; int32_t chars = 0; for (;;) { - int32_t pcIndex = (int32_t)utext_getNativeIndex(text); + int32_t pcIndex = static_cast(utext_getNativeIndex(text)); pc = utext_next32(text); - int32_t pcSize = (int32_t)utext_getNativeIndex(text) - pcIndex; + int32_t pcSize = static_cast(utext_getNativeIndex(text)) - pcIndex; chars += pcSize; remaining -= pcSize; if (remaining <= 0) { @@ -356,28 +356,28 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, utext_setNativeIndex(text, current+cuWordLength); } } - + // Never stop before a combining mark. int32_t currPos; - while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) { + while ((currPos = static_cast(utext_getNativeIndex(text))) < rangeEnd && fMarkSet.contains(utext_current32(text))) { utext_next32(text); - cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos; + cuWordLength += static_cast(utext_getNativeIndex(text)) - currPos; } - + // Look ahead for possible suffixes if a dictionary word does not follow. // We do this in code rather than using a rule so that the heuristic // resynch continues to function. For example, one of the suffix characters // could be a typo in the middle of a word. - if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cuWordLength > 0) { + if (static_cast(utext_getNativeIndex(text)) < rangeEnd && cuWordLength > 0) { if (words[wordsFound%THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd) <= 0 && fSuffixSet.contains(uc = utext_current32(text))) { if (uc == THAI_PAIYANNOI) { if (!fSuffixSet.contains(utext_previous32(text))) { // Skip over previous end and PAIYANNOI utext_next32(text); - int32_t paiyannoiIndex = (int32_t)utext_getNativeIndex(text); + int32_t paiyannoiIndex = static_cast(utext_getNativeIndex(text)); utext_next32(text); - cuWordLength += (int32_t)utext_getNativeIndex(text) - paiyannoiIndex; // Add PAIYANNOI to word + cuWordLength += static_cast(utext_getNativeIndex(text)) - paiyannoiIndex; // Add PAIYANNOI to word uc = utext_current32(text); // Fetch next character } else { @@ -389,9 +389,9 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, if (utext_previous32(text) != THAI_MAIYAMOK) { // Skip over previous end and MAIYAMOK utext_next32(text); - int32_t maiyamokIndex = (int32_t)utext_getNativeIndex(text); + int32_t maiyamokIndex = static_cast(utext_getNativeIndex(text)); utext_next32(text); - cuWordLength += (int32_t)utext_getNativeIndex(text) - maiyamokIndex; // Add MAIYAMOK to word + cuWordLength += static_cast(utext_getNativeIndex(text)) - maiyamokIndex; // Add MAIYAMOK to word } else { // Restore prior position @@ -489,7 +489,7 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, utext_setNativeIndex(text, rangeStart); - while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) { + while (U_SUCCESS(status) && (current = static_cast(utext_getNativeIndex(text))) < rangeEnd) { cuWordLength = 0; cpWordLength = 0; @@ -514,7 +514,7 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, words[wordsFound%LAO_LOOKAHEAD].markCurrent(); // If we're already at the end of the range, we're done - if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) { + if (static_cast(utext_getNativeIndex(text)) >= rangeEnd) { goto foundBest; } @@ -541,7 +541,7 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, // just found (if there is one), but only if the preceding word does not exceed // the threshold. // The text iterator should now be positioned at the end of the word we found. - if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cpWordLength < LAO_ROOT_COMBINE_THRESHOLD) { + if (static_cast(utext_getNativeIndex(text)) < rangeEnd && cpWordLength < LAO_ROOT_COMBINE_THRESHOLD) { // if it is a dictionary word, do nothing. If it isn't, then if there is // no preceding word, or the non-word shares less than the minimum threshold // of characters with a dictionary word, then scan to resynchronize @@ -554,9 +554,9 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, UChar32 uc; int32_t chars = 0; for (;;) { - int32_t pcIndex = (int32_t)utext_getNativeIndex(text); + int32_t pcIndex = static_cast(utext_getNativeIndex(text)); pc = utext_next32(text); - int32_t pcSize = (int32_t)utext_getNativeIndex(text) - pcIndex; + int32_t pcSize = static_cast(utext_getNativeIndex(text)) - pcIndex; chars += pcSize; remaining -= pcSize; if (remaining <= 0) { @@ -590,9 +590,9 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, // Never stop before a combining mark. int32_t currPos; - while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) { + while ((currPos = static_cast(utext_getNativeIndex(text))) < rangeEnd && fMarkSet.contains(utext_current32(text))) { utext_next32(text); - cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos; + cuWordLength += static_cast(utext_getNativeIndex(text)) - currPos; } // Look ahead for possible suffixes if a dictionary word does not follow. @@ -682,7 +682,7 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, utext_setNativeIndex(text, rangeStart); - while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) { + while (U_SUCCESS(status) && (current = static_cast(utext_getNativeIndex(text))) < rangeEnd) { cuWordLength = 0; cpWordLength = 0; @@ -707,7 +707,7 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, words[wordsFound%BURMESE_LOOKAHEAD].markCurrent(); // If we're already at the end of the range, we're done - if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) { + if (static_cast(utext_getNativeIndex(text)) >= rangeEnd) { goto foundBest; } @@ -734,7 +734,7 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, // just found (if there is one), but only if the preceding word does not exceed // the threshold. // The text iterator should now be positioned at the end of the word we found. - if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cpWordLength < BURMESE_ROOT_COMBINE_THRESHOLD) { + if (static_cast(utext_getNativeIndex(text)) < rangeEnd && cpWordLength < BURMESE_ROOT_COMBINE_THRESHOLD) { // if it is a dictionary word, do nothing. If it isn't, then if there is // no preceding word, or the non-word shares less than the minimum threshold // of characters with a dictionary word, then scan to resynchronize @@ -747,9 +747,9 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, UChar32 uc; int32_t chars = 0; for (;;) { - int32_t pcIndex = (int32_t)utext_getNativeIndex(text); + int32_t pcIndex = static_cast(utext_getNativeIndex(text)); pc = utext_next32(text); - int32_t pcSize = (int32_t)utext_getNativeIndex(text) - pcIndex; + int32_t pcSize = static_cast(utext_getNativeIndex(text)) - pcIndex; chars += pcSize; remaining -= pcSize; if (remaining <= 0) { @@ -783,9 +783,9 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, // Never stop before a combining mark. int32_t currPos; - while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) { + while ((currPos = static_cast(utext_getNativeIndex(text))) < rangeEnd && fMarkSet.contains(utext_current32(text))) { utext_next32(text); - cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos; + cuWordLength += static_cast(utext_getNativeIndex(text)) - currPos; } // Look ahead for possible suffixes if a dictionary word does not follow. @@ -888,7 +888,7 @@ KhmerBreakEngine::divideUpDictionaryRange( UText *text, utext_setNativeIndex(text, rangeStart); - while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) { + while (U_SUCCESS(status) && (current = static_cast(utext_getNativeIndex(text))) < rangeEnd) { cuWordLength = 0; cpWordLength = 0; @@ -905,7 +905,7 @@ KhmerBreakEngine::divideUpDictionaryRange( UText *text, // If there was more than one, see which one can take us forward the most words else if (candidates > 1) { // If we're already at the end of the range, we're done - if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) { + if (static_cast(utext_getNativeIndex(text)) >= rangeEnd) { goto foundBest; } do { @@ -914,7 +914,7 @@ KhmerBreakEngine::divideUpDictionaryRange( UText *text, words[wordsFound % KHMER_LOOKAHEAD].markCurrent(); // If we're already at the end of the range, we're done - if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) { + if (static_cast(utext_getNativeIndex(text)) >= rangeEnd) { goto foundBest; } @@ -941,7 +941,7 @@ KhmerBreakEngine::divideUpDictionaryRange( UText *text, // just found (if there is one), but only if the preceding word does not exceed // the threshold. // The text iterator should now be positioned at the end of the word we found. - if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cpWordLength < KHMER_ROOT_COMBINE_THRESHOLD) { + if (static_cast(utext_getNativeIndex(text)) < rangeEnd && cpWordLength < KHMER_ROOT_COMBINE_THRESHOLD) { // if it is a dictionary word, do nothing. If it isn't, then if there is // no preceding word, or the non-word shares less than the minimum threshold // of characters with a dictionary word, then scan to resynchronize @@ -954,9 +954,9 @@ KhmerBreakEngine::divideUpDictionaryRange( UText *text, UChar32 uc; int32_t chars = 0; for (;;) { - int32_t pcIndex = (int32_t)utext_getNativeIndex(text); + int32_t pcIndex = static_cast(utext_getNativeIndex(text)); pc = utext_next32(text); - int32_t pcSize = (int32_t)utext_getNativeIndex(text) - pcIndex; + int32_t pcSize = static_cast(utext_getNativeIndex(text)) - pcIndex; chars += pcSize; remaining -= pcSize; if (remaining <= 0) { @@ -989,9 +989,9 @@ KhmerBreakEngine::divideUpDictionaryRange( UText *text, // Never stop before a combining mark. int32_t currPos; - while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) { + while ((currPos = static_cast(utext_getNativeIndex(text))) < rangeEnd && fMarkSet.contains(utext_current32(text))) { utext_next32(text); - cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos; + cuWordLength += static_cast(utext_getNativeIndex(text)) - currPos; } // Look ahead for possible suffixes if a dictionary word does not follow. @@ -1120,7 +1120,7 @@ static inline bool isKatakana(UChar32 value) { // Replicates an internal UText function. static inline int32_t utext_i32_flag(int32_t bitIndex) { - return (int32_t)1 << bitIndex; + return static_cast(1) << bitIndex; } /* @@ -1167,14 +1167,14 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, int32_t limit = rangeEnd; U_ASSERT(limit <= utext_nativeLength(inText)); if (limit > utext_nativeLength(inText)) { - limit = (int32_t)utext_nativeLength(inText); + limit = static_cast(utext_nativeLength(inText)); } inputMap.adoptInsteadAndCheckErrorCode(new UVector32(status), status); if (U_FAILURE(status)) { return 0; } while (utext_getNativeIndex(inText) < limit) { - int32_t nativePosition = (int32_t)utext_getNativeIndex(inText); + int32_t nativePosition = static_cast(utext_getNativeIndex(inText)); UChar32 c = utext_next32(inText); U_ASSERT(c != U_SENTINEL); inString.append(c); @@ -1304,7 +1304,7 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, int32_t ix = 0; bool is_prev_katakana = false; for (int32_t i = 0; i < numCodePts; ++i, ix = inString.moveIndex32(ix, 1)) { - if ((uint32_t)bestSnlp.elementAti(i) == kuint32max) { + if (static_cast(bestSnlp.elementAti(i)) == kuint32max) { continue; } @@ -1327,9 +1327,9 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, } for (int32_t j = 0; j < count; j++) { - uint32_t newSnlp = (uint32_t)bestSnlp.elementAti(i) + (uint32_t)values.elementAti(j); + uint32_t newSnlp = static_cast(bestSnlp.elementAti(i)) + static_cast(values.elementAti(j)); int32_t ln_j_i = lengths.elementAti(j) + i; - if (newSnlp < (uint32_t)bestSnlp.elementAti(ln_j_i)) { + if (newSnlp < static_cast(bestSnlp.elementAti(ln_j_i))) { bestSnlp.setElementAt(newSnlp, ln_j_i); prev.setElementAt(i, ln_j_i); } @@ -1353,7 +1353,7 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, } if (katakanaRunLength < kMaxKatakanaGroupLength) { uint32_t newSnlp = bestSnlp.elementAti(i) + getKatakanaCost(katakanaRunLength); - if (newSnlp < (uint32_t)bestSnlp.elementAti(i+katakanaRunLength)) { + if (newSnlp < static_cast(bestSnlp.elementAti(i + katakanaRunLength))) { bestSnlp.setElementAt(newSnlp, i+katakanaRunLength); prev.setElementAt(i, i+katakanaRunLength); // prev[j] = i; } @@ -1371,7 +1371,7 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, int32_t numBreaks = 0; // No segmentation found, set boundary to end of range - if ((uint32_t)bestSnlp.elementAti(numCodePts) == kuint32max) { + if (static_cast(bestSnlp.elementAti(numCodePts)) == kuint32max) { t_boundary.addElement(numCodePts, status); numBreaks++; } else if (isPhraseBreaking) { diff --git a/thirdparty/icu4c/common/dictionarydata.cpp b/thirdparty/icu4c/common/dictionarydata.cpp index 80b6d82d56ae..4bae0c6d3358 100644 --- a/thirdparty/icu4c/common/dictionarydata.cpp +++ b/thirdparty/icu4c/common/dictionarydata.cpp @@ -47,13 +47,13 @@ int32_t UCharsDictionaryMatcher::matches(UText *text, int32_t maxLength, int32_t int32_t *prefix) const { UCharsTrie uct(characters); - int32_t startingTextIndex = (int32_t)utext_getNativeIndex(text); + int32_t startingTextIndex = static_cast(utext_getNativeIndex(text)); int32_t wordCount = 0; int32_t codePointsMatched = 0; for (UChar32 c = utext_next32(text); c >= 0; c=utext_next32(text)) { UStringTrieResult result = (codePointsMatched == 0) ? uct.first(c) : uct.next(c); - int32_t lengthMatched = (int32_t)utext_getNativeIndex(text) - startingTextIndex; + int32_t lengthMatched = static_cast(utext_getNativeIndex(text)) - startingTextIndex; codePointsMatched += 1; if (USTRINGTRIE_HAS_VALUE(result)) { if (wordCount < limit) { @@ -101,7 +101,7 @@ UChar32 BytesDictionaryMatcher::transform(UChar32 c) const { if (delta < 0 || 0xFD < delta) { return U_SENTINEL; } - return (UChar32)delta; + return static_cast(delta); } return c; } @@ -114,13 +114,13 @@ int32_t BytesDictionaryMatcher::matches(UText *text, int32_t maxLength, int32_t int32_t *lengths, int32_t *cpLengths, int32_t *values, int32_t *prefix) const { BytesTrie bt(characters); - int32_t startingTextIndex = (int32_t)utext_getNativeIndex(text); + int32_t startingTextIndex = static_cast(utext_getNativeIndex(text)); int32_t wordCount = 0; int32_t codePointsMatched = 0; for (UChar32 c = utext_next32(text); c >= 0; c=utext_next32(text)) { UStringTrieResult result = (codePointsMatched == 0) ? bt.first(transform(c)) : bt.next(transform(c)); - int32_t lengthMatched = (int32_t)utext_getNativeIndex(text) - startingTextIndex; + int32_t lengthMatched = static_cast(utext_getNativeIndex(text)) - startingTextIndex; codePointsMatched += 1; if (USTRINGTRIE_HAS_VALUE(result)) { if (wordCount < limit) { diff --git a/thirdparty/icu4c/common/edits.cpp b/thirdparty/icu4c/common/edits.cpp index 3348145d48df..82055e5e543b 100644 --- a/thirdparty/icu4c/common/edits.cpp +++ b/thirdparty/icu4c/common/edits.cpp @@ -47,7 +47,7 @@ Edits &Edits::copyArray(const Edits &other) { return *this; } if (length > capacity) { - uint16_t *newArray = (uint16_t *)uprv_malloc((size_t)length * 2); + uint16_t* newArray = static_cast(uprv_malloc(static_cast(length) * 2)); if (newArray == nullptr) { length = delta = numChanges = 0; errorCode_ = U_MEMORY_ALLOCATION_ERROR; @@ -186,30 +186,30 @@ void Edits::addReplace(int32_t oldLength, int32_t newLength) { head |= oldLength << 6; } else if(oldLength <= 0x7fff) { head |= LENGTH_IN_1TRAIL << 6; - array[limit++] = (uint16_t)(0x8000 | oldLength); + array[limit++] = static_cast(0x8000 | oldLength); } else { head |= (LENGTH_IN_2TRAIL + (oldLength >> 30)) << 6; - array[limit++] = (uint16_t)(0x8000 | (oldLength >> 15)); - array[limit++] = (uint16_t)(0x8000 | oldLength); + array[limit++] = static_cast(0x8000 | (oldLength >> 15)); + array[limit++] = static_cast(0x8000 | oldLength); } if(newLength < LENGTH_IN_1TRAIL) { head |= newLength; } else if(newLength <= 0x7fff) { head |= LENGTH_IN_1TRAIL; - array[limit++] = (uint16_t)(0x8000 | newLength); + array[limit++] = static_cast(0x8000 | newLength); } else { head |= LENGTH_IN_2TRAIL + (newLength >> 30); - array[limit++] = (uint16_t)(0x8000 | (newLength >> 15)); - array[limit++] = (uint16_t)(0x8000 | newLength); + array[limit++] = static_cast(0x8000 | (newLength >> 15)); + array[limit++] = static_cast(0x8000 | newLength); } - array[length] = (uint16_t)head; + array[length] = static_cast(head); length = limit; } } void Edits::append(int32_t r) { if(length < capacity || growArray()) { - array[length++] = (uint16_t)r; + array[length++] = static_cast(r); } } @@ -232,7 +232,7 @@ UBool Edits::growArray() { errorCode_ = U_INDEX_OUTOFBOUNDS_ERROR; return false; } - uint16_t *newArray = (uint16_t *)uprv_malloc((size_t)newCapacity * 2); + uint16_t* newArray = static_cast(uprv_malloc(static_cast(newCapacity) * 2)); if (newArray == nullptr) { errorCode_ = U_MEMORY_ALLOCATION_ERROR; return false; @@ -415,7 +415,7 @@ int32_t Edits::Iterator::readLength(int32_t head) { U_ASSERT(array[index] >= 0x8000); U_ASSERT(array[index + 1] >= 0x8000); int32_t len = ((head & 1) << 30) | - ((int32_t)(array[index] & 0x7fff) << 15) | + (static_cast(array[index] & 0x7fff) << 15) | (array[index + 1] & 0x7fff); index += 2; return len; diff --git a/thirdparty/icu4c/common/emojiprops.cpp b/thirdparty/icu4c/common/emojiprops.cpp index f2b3f4762f33..2e4fb0130ce8 100644 --- a/thirdparty/icu4c/common/emojiprops.cpp +++ b/thirdparty/icu4c/common/emojiprops.cpp @@ -83,8 +83,8 @@ void EmojiProps::load(UErrorCode &errorCode) { memory = udata_openChoice(nullptr, "icu", "uemoji", isAcceptable, this, &errorCode); if (U_FAILURE(errorCode)) { return; } - const uint8_t *inBytes = (const uint8_t *)udata_getMemory(memory); - const int32_t *inIndexes = (const int32_t *)inBytes; + const uint8_t* inBytes = static_cast(udata_getMemory(memory)); + const int32_t* inIndexes = reinterpret_cast(inBytes); int32_t indexesLength = inIndexes[IX_CPTRIE_OFFSET] / 4; if (indexesLength <= IX_RGI_EMOJI_ZWJ_SEQUENCE_TRIE_OFFSET) { errorCode = U_INVALID_FORMAT_ERROR; // Not enough indexes. @@ -104,7 +104,7 @@ EmojiProps::load(UErrorCode &errorCode) { offset = inIndexes[i]; nextOffset = inIndexes[i + 1]; // Set/leave nullptr if there is no UCharsTrie. - const char16_t *p = nextOffset > offset ? (const char16_t *)(inBytes + offset) : nullptr; + const char16_t* p = nextOffset > offset ? reinterpret_cast(inBytes + offset) : nullptr; stringTries[getStringTrieIndex(i)] = p; } } diff --git a/thirdparty/icu4c/common/filteredbrk.cpp b/thirdparty/icu4c/common/filteredbrk.cpp index a1490b61213f..29b02dd38424 100644 --- a/thirdparty/icu4c/common/filteredbrk.cpp +++ b/thirdparty/icu4c/common/filteredbrk.cpp @@ -50,8 +50,8 @@ static void _fb_trace(const char *m, const UnicodeString *s, UBool b, int32_t d, * Used with sortedInsert() */ static int32_t U_CALLCONV compareUnicodeString(UElement t1, UElement t2) { - const UnicodeString &a = *(const UnicodeString*)t1.pointer; - const UnicodeString &b = *(const UnicodeString*)t2.pointer; + const UnicodeString& a = *static_cast(t1.pointer); + const UnicodeString& b = *static_cast(t2.pointer); return a.compare(b); } @@ -76,7 +76,7 @@ class UStringSet : public UVector { * Return the ith UnicodeString alias */ inline const UnicodeString* getStringAt(int32_t i) const { - return (const UnicodeString*)elementAt(i); + return static_cast(elementAt(i)); } /** * Adopt the UnicodeString if not already contained. diff --git a/thirdparty/icu4c/common/icuplug.cpp b/thirdparty/icu4c/common/icuplug.cpp index 7aa70a506b08..521a125e43d8 100644 --- a/thirdparty/icu4c/common/icuplug.cpp +++ b/thirdparty/icu4c/common/icuplug.cpp @@ -747,7 +747,7 @@ uplug_init(UErrorCode *status) { FILE *f; CharString pluginFile; -#ifdef OS390BATCH +#ifdef ICU_PLUGINS_DD /* There are potentially a lot of ways to implement a plugin directory on OS390/zOS */ /* Keeping in mind that unauthorized file access is logged, monitored, and enforced */ /* I've chosen to open a DDNAME if BATCH and leave it alone for (presumably) UNIX */ diff --git a/thirdparty/icu4c/common/loadednormalizer2impl.cpp b/thirdparty/icu4c/common/loadednormalizer2impl.cpp index 99b8f3e86c6c..bb5736137d72 100644 --- a/thirdparty/icu4c/common/loadednormalizer2impl.cpp +++ b/thirdparty/icu4c/common/loadednormalizer2impl.cpp @@ -63,7 +63,7 @@ LoadedNormalizer2Impl::isAcceptable(void * /*context*/, pInfo->dataFormat[1]==0x72 && pInfo->dataFormat[2]==0x6d && pInfo->dataFormat[3]==0x32 && - pInfo->formatVersion[0]==4 + pInfo->formatVersion[0]==5 ) { // Normalizer2Impl *me=(Normalizer2Impl *)context; // uprv_memcpy(me->dataVersion, pInfo->dataVersion, 4); @@ -82,8 +82,8 @@ LoadedNormalizer2Impl::load(const char *packageName, const char *name, UErrorCod if(U_FAILURE(errorCode)) { return; } - const uint8_t *inBytes=(const uint8_t *)udata_getMemory(memory); - const int32_t *inIndexes=(const int32_t *)inBytes; + const uint8_t* inBytes = static_cast(udata_getMemory(memory)); + const int32_t* inIndexes = reinterpret_cast(inBytes); int32_t indexesLength=inIndexes[IX_NORM_TRIE_OFFSET]/4; if(indexesLength<=IX_MIN_LCCC_CP) { errorCode=U_INVALID_FORMAT_ERROR; // Not enough indexes. @@ -101,7 +101,7 @@ LoadedNormalizer2Impl::load(const char *packageName, const char *name, UErrorCod offset=nextOffset; nextOffset=inIndexes[IX_SMALL_FCD_OFFSET]; - const uint16_t *inExtraData=(const uint16_t *)(inBytes+offset); + const uint16_t* inExtraData = reinterpret_cast(inBytes + offset); // smallFCD: new in formatVersion 2 offset=nextOffset; @@ -311,7 +311,7 @@ Normalizer2::getInstance(const char *packageName, { Mutex lock; if(cache!=nullptr) { - allModes=(Norm2AllModes *)uhash_get(cache, name); + allModes = static_cast(uhash_get(cache, name)); } } if(allModes==nullptr) { @@ -331,7 +331,7 @@ Normalizer2::getInstance(const char *packageName, void *temp=uhash_get(cache, name); if(temp==nullptr) { int32_t keyLength= static_cast(uprv_strlen(name)+1); - char *nameCopy=(char *)uprv_malloc(keyLength); + char* nameCopy = static_cast(uprv_malloc(keyLength)); if(nameCopy==nullptr) { errorCode=U_MEMORY_ALLOCATION_ERROR; return nullptr; @@ -341,7 +341,7 @@ Normalizer2::getInstance(const char *packageName, uhash_put(cache, nameCopy, localAllModes.orphan(), &errorCode); } else { // race condition - allModes=(Norm2AllModes *)temp; + allModes = static_cast(temp); } } } diff --git a/thirdparty/icu4c/common/localebuilder.cpp b/thirdparty/icu4c/common/localebuilder.cpp index e53065a8a605..71969c847b19 100644 --- a/thirdparty/icu4c/common/localebuilder.cpp +++ b/thirdparty/icu4c/common/localebuilder.cpp @@ -1,6 +1,8 @@ // © 2019 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html +#include +#include #include #include "bytesinkutil.h" // StringByteSink @@ -162,12 +164,15 @@ _isKeywordValue(const char* key, const char* value, int32_t value_len) // otherwise: unicode extension value // We need to convert from legacy key/value to unicode // key/value - const char* unicode_locale_key = uloc_toUnicodeLocaleKey(key); - const char* unicode_locale_type = uloc_toUnicodeLocaleType(key, value); - - return unicode_locale_key && unicode_locale_type && - ultag_isUnicodeLocaleKey(unicode_locale_key, -1) && - ultag_isUnicodeLocaleType(unicode_locale_type, -1); + std::optional unicode_locale_key = ulocimp_toBcpKeyWithFallback(key); + std::optional unicode_locale_type = ulocimp_toBcpTypeWithFallback(key, value); + + return unicode_locale_key.has_value() && + unicode_locale_type.has_value() && + ultag_isUnicodeLocaleKey(unicode_locale_key->data(), + static_cast(unicode_locale_key->size())) && + ultag_isUnicodeLocaleType(unicode_locale_type->data(), + static_cast(unicode_locale_type->size())); } void diff --git a/thirdparty/icu4c/common/localefallback_data.h b/thirdparty/icu4c/common/localefallback_data.h index 7441ee307a97..0accf0324d7e 100644 --- a/thirdparty/icu4c/common/localefallback_data.h +++ b/thirdparty/icu4c/common/localefallback_data.h @@ -15,111 +15,112 @@ const char scriptCodeChars[] = "Brah\0Cakm\0Cans\0Cari\0Cham\0Cher\0Chrs\0Copt\0Cprt\0Cyrl\0Deva\0" "Egyp\0Elym\0Ethi\0Geor\0Gong\0Gonm\0Goth\0Gran\0Grek\0Gujr\0Guru\0" "Hang\0Hani\0Hans\0Hant\0Hebr\0Hluw\0Hmnp\0Ital\0Java\0Jpan\0Kali\0" - "Kana\0Kawi\0Khar\0Khmr\0Kits\0Knda\0Kore\0Lana\0Laoo\0Lepc\0Lina\0" - "Linb\0Lisu\0Lyci\0Lydi\0Mand\0Mani\0Marc\0Medf\0Merc\0Mlym\0Modi\0" - "Mong\0Mroo\0Mtei\0Mymr\0Narb\0Newa\0Nkoo\0Nshu\0Ogam\0Olck\0Orkh\0" - "Orya\0Osge\0Pauc\0Phli\0Phnx\0Plrd\0Prti\0Rjng\0Rohg\0Runr\0Samr\0" - "Sarb\0Saur\0Sgnw\0Sinh\0Sogd\0Sora\0Soyo\0Syrc\0Tagb\0Takr\0Tale\0" - "Talu\0Taml\0Tang\0Tavt\0Telu\0Tfng\0Thaa\0Thai\0Tibt\0Tnsa\0Toto\0" - "Ugar\0Vaii\0Wcho\0Xpeo\0Xsux\0Yiii\0"; + "Kana\0Kawi\0Khar\0Khmr\0Kits\0Knda\0Kore\0Lana\0Laoo\0Latf\0Latg\0" + "Lepc\0Lina\0Linb\0Lisu\0Lyci\0Lydi\0Mand\0Mani\0Marc\0Medf\0Merc\0" + "Mlym\0Modi\0Mong\0Mroo\0Mtei\0Mymr\0Narb\0Newa\0Nkoo\0Nshu\0Ogam\0" + "Olck\0Orkh\0Orya\0Osge\0Ougr\0Pauc\0Phli\0Phnx\0Plrd\0Prti\0Rjng\0" + "Rohg\0Runr\0Samr\0Sarb\0Saur\0Sgnw\0Sinh\0Sogd\0Sora\0Soyo\0Sunu\0" + "Syrc\0Tagb\0Takr\0Tale\0Talu\0Taml\0Tang\0Tavt\0Telu\0Tfng\0Thaa\0" + "Thai\0Tibt\0Tnsa\0Toto\0Ugar\0Vaii\0Wcho\0Xpeo\0Xsux\0Yiii\0"; const char dsLocaleIDChars[] = "aaf\0aao\0aat\0ab\0abh\0abl\0abv\0acm\0acq\0acw\0acx\0adf\0adx\0" "ady\0ae\0aeb\0aec\0aee\0aeq\0afb\0agi\0agj\0agx\0ahg\0aho\0ahr\0" - "aib\0aij\0ain\0aio\0aiq\0akk\0akv\0alk\0all\0alr\0alt\0alw\0am\0" - "ams\0amw\0ani\0anp\0anr\0anu\0aot\0apc\0apd\0aph\0aqc\0ar\0arc\0" - "arq\0ars\0ary\0arz\0as\0ase\0ask\0atn\0atv\0auj\0auz\0av\0avd\0" - "avl\0awa\0awn\0axm\0ayh\0ayl\0ayn\0ayp\0az_IQ\0az_IR\0az_RU\0" - "azb\0ba\0bal\0bap\0bax\0bbl\0bcq\0bdv\0bdz\0be\0bee\0bej\0bfb\0" - "bfq\0bft\0bfu\0bfw\0bfy\0bfz\0bg\0bgc\0bgd\0bgn\0bgp\0bgq\0bgw\0" - "bgx\0bha\0bhb\0bhd\0bhe\0bhh\0bhi\0bhj\0bhm\0bhn\0bho\0bht\0bhu\0" - "biy\0bjf\0bjj\0bjm\0blk\0blt\0bmj\0bn\0bns\0bo\0bph\0bpx\0bpy\0" - "bqi\0bra\0brb\0brd\0brh\0brk\0brv\0brx\0bsh\0bsk\0bsq\0bst\0btd\0" - "btm\0btv\0bua\0bwe\0bxm\0bxu\0byh\0byn\0byw\0bzi\0cbn\0ccp\0cde\0" - "cdh\0cdi\0cdj\0cdm\0cdo\0cdz\0ce\0cgk\0chg\0chm\0chr\0chx\0cih\0" - "cja\0cji\0cjm\0cjy\0ckb\0ckt\0clh\0clw\0cmg\0cna\0cnp\0cog\0cop\0" - "cpg\0cr\0crh\0crj\0crk\0crl\0crm\0csh\0csp\0csw\0ctd\0ctg\0ctn\0" - "ctt\0cu\0cuu\0cv\0czh\0czk\0daq\0dar\0dcc\0ddo\0def\0deh\0der\0" - "dhi\0dhn\0dho\0dhw\0dka\0dlg\0dmf\0dmk\0dml\0dng\0dnu\0dnv\0doi\0" - "dox\0dre\0drq\0drs\0dry\0dso\0dty\0dub\0duh\0dus\0dv\0dwk\0dwz\0" - "dz\0dzl\0ecr\0ecy\0egy\0eky\0el\0emg\0emu\0enf\0enh\0era\0esg\0" - "esh\0ett\0eve\0evn\0fa\0fay\0faz\0fia\0fmu\0fub\0gan\0gaq\0gas\0" - "gau\0gbj\0gbk\0gbl\0gbm\0gbz\0gdb\0gdo\0gdx\0gez\0ggg\0gha\0ghe\0" - "ghr\0ght\0gig\0gin\0gjk\0gju\0gld\0glh\0glk\0gmv\0gmy\0goe\0gof\0" - "gok\0gom\0gon\0got\0gra\0grc\0grt\0gru\0gu\0gvr\0gwc\0gwf\0gwt\0" - "gyo\0gzi\0ha_CM\0ha_SD\0hac\0hak\0har\0haz\0hbo\0hdy\0he\0hi\0" - "hii\0hit\0hkh\0hlb\0hlu\0hmd\0hmj\0hmq\0hnd\0hne\0hnj\0hnj_AU\0" - "hnj_CN\0hnj_FR\0hnj_GF\0hnj_LA\0hnj_MM\0hnj_SR\0hnj_TH\0hnj_VN\0" - "hno\0hoc\0hoh\0hoj\0how\0hoy\0hpo\0hrt\0hrz\0hsn\0hss\0htx\0hut\0" - "huy\0huz\0hy\0hyw\0ii\0imy\0inh\0int\0ior\0iru\0isk\0itk\0itl\0" - "iu\0iw\0ja\0jad\0jat\0jbe\0jbn\0jct\0jda\0jdg\0jdt\0jee\0jge\0" - "ji\0jje\0jkm\0jml\0jna\0jnd\0jnl\0jns\0jog\0jpa\0jpr\0jrb\0jrb_MA\0" - "jul\0jun\0juy\0jya\0jye\0ka\0kaa\0kap\0kaw\0kbd\0kbu\0kby\0kca\0" - "kdq\0kdt\0ket\0kex\0key\0kfa\0kfb\0kfc\0kfd\0kfe\0kfh\0kfi\0kfk\0" - "kfm\0kfp\0kfq\0kfr\0kfs\0kfx\0kfy\0kgj\0kgy\0khb\0khf\0khg\0khn\0" - "kht\0khv\0khw\0kif\0kim\0kip\0kjg\0kjh\0kjl\0kjo\0kjp\0kjt\0kk\0" - "kk_AF\0kk_CN\0kk_IR\0kk_MN\0kkf\0kkh\0kkt\0kle\0klj\0klr\0km\0" - "kmj\0kmz\0kn\0ko\0koi\0kok\0kpt\0kpy\0kqd\0kqy\0kra\0krc\0krk\0" - "krr\0kru\0krv\0ks\0ksu\0ksw\0ksz\0ktb\0ktl\0ktp\0ku_LB\0kuf\0" - "kum\0kv\0kva\0kvq\0kvt\0kvx\0kvy\0kxf\0kxk\0kxm\0kxp\0ky\0ky_CN\0" - "kyu\0kyv\0kyw\0lab\0lad\0lae\0lah\0lbc\0lbe\0lbf\0lbj\0lbm\0lbo\0" - "lbr\0lcp\0lep\0lez\0lhm\0lhs\0lif\0lis\0lkh\0lki\0lmh\0lmn\0lo\0" - "loy\0lpo\0lrc\0lrk\0lrl\0lsa\0lsd\0lss\0luk\0luu\0luv\0luz\0lwl\0" - "lwm\0lya\0lzh\0mag\0mai\0man_GN\0mby\0mde\0mdf\0mdx\0mdy\0mfa\0" - "mfi\0mgp\0mhj\0mid\0mjl\0mjq\0mjr\0mjt\0mju\0mjv\0mjz\0mk\0mkb\0" - "mke\0mki\0mkm\0ml\0mlf\0mn\0mn_CN\0mni\0mnj\0mns\0mnw\0mpz\0mr\0" - "mra\0mrd\0mrj\0mro\0mrr\0ms_CC\0mtm\0mtr\0mud\0muk\0mut\0muv\0" - "muz\0mvf\0mvy\0mvz\0mwr\0mwt\0mww\0my\0mym\0myv\0myz\0mzn\0nan\0" - "nao\0ncd\0ncq\0ndf\0ne\0neg\0neh\0nei\0new\0ngt\0nio\0nit\0niv\0" - "nli\0nlm\0nlx\0nmm\0nnp\0nod\0noe\0nog\0noi\0non\0nos\0npb\0nqo\0" - "nsd\0nsf\0nsk\0nst\0nsv\0nty\0ntz\0nwc\0nwx\0nyl\0nyq\0oaa\0oac\0" - "oar\0oav\0obm\0obr\0odk\0oht\0oj\0ojs\0okm\0oko\0okz\0ola\0ole\0" - "omk\0omp\0omr\0oon\0or\0ort\0oru\0orv\0os\0osa\0osc\0osi\0ota\0" - "otb\0otk\0oty\0pa\0pa_PK\0pal\0paq\0pbt\0pcb\0pce\0pcf\0pcg\0" - "pch\0pci\0pcj\0peg\0peo\0pgd\0pgg\0pgl\0pgn\0phd\0phk\0phl\0phn\0" - "pho\0phr\0pht\0phv\0phw\0pi\0pka\0pkr\0plk\0pll\0pmh\0pnt\0pra\0" - "prc\0prd\0prt\0prx\0ps\0psh\0psi\0pst\0pum\0pwo\0pwr\0pww\0pyx\0" + "aib\0aii\0aij\0ain\0aio\0aiq\0akk\0akv\0alk\0all\0alr\0alt\0alw\0" + "am\0ams\0amw\0ani\0anp\0anq\0anr\0anu\0aot\0apc\0apd\0aph\0aqc\0" + "ar\0arc\0arq\0ars\0ary\0arz\0as\0ase\0ask\0asr\0atn\0atv\0auj\0" + "auz\0av\0avd\0avl\0awa\0awn\0axm\0ayh\0ayl\0ayn\0ayp\0az_IQ\0" + "az_IR\0az_RU\0azb\0ba\0bal\0bap\0bax\0bbl\0bcq\0bdv\0bdz\0be\0" + "bee\0bej\0bfb\0bfq\0bft\0bfu\0bfw\0bfy\0bfz\0bg\0bgc\0bgd\0bgn\0" + "bgp\0bgq\0bgw\0bgx\0bha\0bhb\0bhd\0bhe\0bhh\0bhi\0bhj\0bhm\0bhn\0" + "bho\0bht\0bhu\0biy\0bjf\0bjj\0bjm\0bkk\0blk\0blt\0bmj\0bn\0bns\0" + "bo\0bph\0bpx\0bpy\0bqi\0bra\0brb\0brd\0brh\0brk\0bro\0brv\0brw\0" + "brx\0bsh\0bsk\0bsq\0bst\0btd\0btm\0btv\0bua\0bwe\0bxm\0bxu\0byh\0" + "byn\0byw\0bzi\0cbn\0ccp\0cde\0cdh\0cdi\0cdj\0cdm\0cdo\0cdz\0ce\0" + "cgk\0chg\0chm\0chr\0chx\0cih\0cja\0cji\0cjm\0cjy\0ckb\0ckt\0clh\0" + "clw\0cmg\0cna\0cnp\0cog\0cop\0cpg\0cr\0crh\0crj\0crk\0crl\0crm\0" + "csh\0csp\0csw\0ctd\0ctg\0ctn\0ctt\0cty\0cu\0cuu\0cv\0czh\0czk\0" + "daq\0dar\0dcc\0ddo\0def\0deh\0der\0dgl\0dhi\0dhn\0dho\0dhw\0dka\0" + "dlg\0dmf\0dmk\0dml\0dng\0dnu\0dnv\0doi\0dox\0dre\0drq\0drs\0dry\0" + "dso\0dty\0dub\0duh\0dus\0dv\0dwk\0dwz\0dz\0dzl\0ecr\0ecy\0egy\0" + "eky\0el\0emg\0emu\0enf\0enh\0era\0esg\0esh\0ett\0eve\0evn\0fa\0" + "fay\0faz\0fia\0fmu\0fub\0gan\0gaq\0gas\0gau\0gbj\0gbk\0gbl\0gbm\0" + "gbz\0gdb\0gdo\0gdx\0gez\0ggg\0gha\0ghe\0gho\0ghr\0ght\0gig\0gin\0" + "gjk\0gju\0gld\0glh\0glk\0gml\0gmv\0gmy\0goe\0gof\0goj\0gok\0gon\0" + "got\0gra\0grc\0grt\0gru\0gu\0gvr\0gwc\0gwf\0gwt\0gyo\0gzi\0ha_CM\0" + "ha_SD\0hac\0hak\0har\0haz\0hbo\0hdy\0he\0hi\0hif\0hii\0hit\0hkh\0" + "hlb\0hlu\0hmd\0hmj\0hmq\0hnd\0hne\0hnj\0hno\0hoc\0hoh\0hoj\0how\0" + "hoy\0hpo\0hrt\0hrz\0hsn\0hss\0htx\0hut\0huy\0huz\0hy\0hyw\0ii\0" + "imy\0inh\0int\0ior\0iru\0isk\0itk\0itl\0iu\0iw\0ja\0jad\0jat\0" + "jbe\0jbn\0jct\0jda\0jdg\0jdt\0jee\0jge\0ji\0jje\0jkm\0jml\0jna\0" + "jnd\0jnl\0jns\0jog\0jpa\0jpr\0jrb\0jul\0jun\0juy\0jya\0jye\0ka\0" + "kaa\0kap\0kaw\0kbd\0kbg\0kbu\0kby\0kca\0kcy\0kdq\0kdt\0ket\0kev\0" + "kex\0key\0kfa\0kfb\0kfc\0kfd\0kfe\0kfg\0kfh\0kfi\0kfk\0kfm\0kfp\0" + "kfq\0kfr\0kfs\0kfu\0kfx\0kfy\0kgj\0kgy\0khb\0khf\0khg\0khn\0kho\0" + "kht\0khv\0khw\0kif\0kim\0kip\0kjg\0kjh\0kjl\0kjo\0kjp\0kjt\0kjz\0" + "kk\0kk_AF\0kk_CN\0kk_IR\0kk_MN\0kkf\0kkh\0kkt\0kle\0klj\0klr\0" + "km\0kmj\0kmz\0kn\0knn\0ko\0koi\0kok\0kpt\0kpy\0kqd\0kqy\0kra\0" + "krc\0krk\0krr\0kru\0krv\0ks\0ksu\0ksw\0ksz\0ktb\0kte\0ktl\0ktp\0" + "ku_LB\0kuf\0kum\0kv\0kva\0kvq\0kvt\0kvx\0kvy\0kxf\0kxk\0kxm\0" + "kxp\0ky\0ky_CN\0kyu\0kyv\0kyw\0lab\0lad\0lae\0lah\0lbe\0lbf\0" + "lbj\0lbm\0lbo\0lbr\0lcp\0lep\0lez\0lhm\0lhs\0lif\0lis\0lkh\0lki\0" + "lmh\0lmn\0lo\0loy\0lpo\0lrc\0lrk\0lrl\0lsa\0lsd\0lss\0ltc\0luk\0" + "luu\0luv\0luz\0lwl\0lwm\0lya\0lzh\0mag\0mai\0man_GN\0mby\0mde\0" + "mdf\0mdx\0mdy\0mfa\0mfi\0mga\0mgp\0mhj\0mid\0mjl\0mjq\0mjr\0mjt\0" + "mju\0mjv\0mjz\0mk\0mkb\0mke\0mki\0mkm\0ml\0mlf\0mn\0mn_CN\0mnc\0" + "mni\0mnj\0mns\0mnw\0mpz\0mr\0mra\0mrd\0mrj\0mro\0mrr\0ms_CC\0" + "mtm\0mtr\0mud\0muk\0mut\0muv\0muz\0mve\0mvf\0mvy\0mvz\0mwr\0mwt\0" + "mww\0my\0mym\0myv\0myz\0mzn\0nan\0nao\0ncd\0ncq\0ndf\0ne\0neg\0" + "neh\0nei\0new\0ngt\0nio\0nit\0niv\0nli\0nlm\0nlx\0nmm\0nnp\0nod\0" + "noe\0nog\0noi\0non\0nos\0npb\0nqo\0nrn\0nsd\0nsf\0nsk\0nst\0nsv\0" + "nty\0ntz\0nwc\0nwx\0nyl\0nyq\0nyw\0oaa\0oac\0oar\0oav\0obm\0obr\0" + "odk\0oht\0oj\0ojs\0okm\0oko\0okz\0ola\0ole\0omk\0omp\0omr\0omx\0" + "oon\0or\0ort\0oru\0orv\0os\0osa\0osc\0osi\0ota\0otb\0otk\0oty\0" + "oui\0pa\0pa_PK\0pal\0paq\0pbt\0pcb\0pce\0pcf\0pcg\0pch\0pci\0" + "pcj\0peg\0peo\0pgd\0pgg\0pgl\0pgn\0phd\0phk\0phl\0phn\0pho\0phr\0" + "pht\0phu\0phv\0phw\0pi\0pka\0pkr\0plk\0pll\0pmh\0pnt\0pra\0prc\0" + "prd\0prt\0prx\0ps\0psh\0psi\0pst\0psu\0pum\0pwo\0pwr\0pww\0pyx\0" "qxq\0raa\0rab\0raf\0rah\0raj\0rav\0rbb\0rdb\0rei\0rhg\0rji\0rjs\0" - "rka\0rki\0rkt\0rmi\0rmt\0rmz\0rom_BG\0rsk\0rtw\0ru\0rue\0rut\0" - "rwr\0ryu\0sa\0sah\0sam\0sat\0saz\0sbn\0sbu\0sck\0scl\0scl_IN\0" - "scp\0sct\0scu\0scx\0sd\0sd_IN\0sdb\0sdf\0sdg\0sdh\0sds\0sel\0" - "sfm\0sga\0sgh\0sgj\0sgr\0sgt\0sgw\0sgy\0shd\0shi\0shm\0shn\0shu\0" - "shv\0si\0sia\0sip\0siy\0siz\0sjd\0sjp\0sjt\0skb\0skj\0skr\0smh\0" - "smp\0smu\0smy\0soa\0sog\0soi\0sou\0spt\0spv\0sqo\0sqq\0sqt\0sr\0" - "srb\0srh\0srx\0srz\0ssh\0sss\0sts\0stv\0sty\0suz\0sva\0swb\0swi\0" - "swv\0syc\0syl\0syn\0syr\0syw\0ta\0tab\0taj\0tbk\0tcn\0tco\0tcx\0" - "tcy\0tda\0tdb\0tdd\0tdg\0tdh\0te\0tes\0tg\0tg_PK\0tge\0tgf\0th\0" - "the\0thf\0thi\0thl\0thm\0thq\0thr\0ths\0ti\0tig\0tij\0tin\0tjl\0" - "tjo\0tkb\0tks\0tkt\0tmr\0tnv\0tov\0tpu\0tra\0trg\0trm\0trw\0tsd\0" - "tsj\0tt\0tth\0tto\0tts\0tvn\0twm\0txg\0txo\0tyr\0tyv\0ude\0udg\0" - "udi\0udm\0ug\0ug_KZ\0ug_MN\0uga\0ugh\0ugo\0uk\0uki\0ulc\0unr\0" - "unr_NP\0unx\0ur\0urk\0ush\0uum\0uz_AF\0uz_CN\0uzs\0vaa\0vaf\0" - "vah\0vai\0vas\0vav\0vay\0vgr\0vmd\0vmh\0wal\0wbk\0wbq\0wbr\0wlo\0" - "wme\0wne\0wni\0wsg\0wsv\0wtm\0wuu\0xal\0xan\0xas\0xco\0xcr\0xdq\0" - "xhe\0xhm\0xis\0xka\0xkc\0xkj\0xkp\0xlc\0xld\0xly\0xmf\0xmn\0xmr\0" - "xna\0xnr\0xpg\0xpi\0xpm\0xpr\0xrm\0xrn\0xsa\0xsr\0xub\0xuj\0xve\0" - "xvi\0xwo\0xzh\0yai\0ybh\0ybi\0ydg\0yea\0yej\0yeu\0ygp\0yhd\0yi\0" - "yig\0yih\0yiv\0ykg\0yna\0ynk\0yoi\0yoy\0yrk\0ysd\0ysn\0ysp\0ysr\0" - "ysy\0yud\0yue\0yue_CN\0yug\0yux\0ywq\0ywu\0zau\0zba\0zch\0zdj\0" - "zeh\0zen\0zgb\0zgh\0zgm\0zgn\0zh\0zh_AU\0zh_BN\0zh_GB\0zh_GF\0" - "zh_HK\0zh_ID\0zh_MO\0zh_PA\0zh_PF\0zh_PH\0zh_SR\0zh_TH\0zh_TW\0" - "zh_US\0zh_VN\0zhd\0zhx\0zko\0zkt\0zkz\0zlj\0zln\0zlq\0zqe\0zrp\0" - "zum\0zyg\0zyn\0zzj\0"; + "rka\0rki\0rkt\0rmi\0rmt\0rmz\0rsk\0rtw\0ru\0rue\0rut\0rwr\0ryu\0" + "sa\0sah\0sam\0sat\0saz\0sbn\0sbu\0sck\0scl\0scp\0sct\0scu\0scx\0" + "sd\0sd_IN\0sdb\0sdf\0sdg\0sdh\0sdr\0sds\0sel\0sfm\0sga\0sgh\0" + "sgj\0sgr\0sgt\0sgw\0sgy\0shd\0shi\0shm\0shn\0shu\0shv\0si\0sia\0" + "sip\0siy\0siz\0sjd\0sjp\0sjt\0skb\0skj\0skr\0smh\0smp\0smu\0smy\0" + "soa\0sog\0soi\0sou\0spt\0spv\0sqo\0sqq\0sqt\0sr\0srb\0srh\0srx\0" + "srz\0ssh\0sss\0sts\0stv\0sty\0suz\0sva\0swb\0swi\0swv\0sxu\0syc\0" + "syl\0syn\0syr\0syw\0ta\0tab\0taj\0tbk\0tcn\0tco\0tcx\0tcy\0tda\0" + "tdb\0tdd\0tdg\0tdh\0te\0tes\0tg\0tg_PK\0tge\0tgf\0th\0the\0thf\0" + "thi\0thl\0thm\0thq\0thr\0ths\0ti\0tig\0tij\0tin\0tjl\0tjo\0tkb\0" + "tks\0tkt\0tmr\0tnv\0tov\0tpu\0tra\0trg\0trm\0trw\0tsd\0tsj\0tt\0" + "tth\0tto\0tts\0ttz\0tvn\0twm\0txg\0txo\0tyr\0tyv\0ude\0udg\0udi\0" + "udm\0ug\0ug_KZ\0ug_MN\0uga\0ugh\0ugo\0uk\0uki\0ulc\0unr\0unr_NP\0" + "unx\0ur\0urk\0ush\0uum\0uz_AF\0uz_CN\0uzs\0vaa\0vaf\0vah\0vai\0" + "vas\0vav\0vay\0vgr\0vjk\0vmd\0vmh\0wal\0wbk\0wbq\0wbr\0wle\0wlo\0" + "wme\0wne\0wni\0wsg\0wsv\0wtm\0wuu\0xag\0xal\0xan\0xas\0xco\0xcr\0" + "xdq\0xhe\0xhm\0xis\0xka\0xkc\0xkf\0xkj\0xkp\0xlc\0xld\0xly\0xmf\0" + "xmn\0xmr\0xna\0xnr\0xpg\0xpi\0xpm\0xpr\0xrm\0xrn\0xsa\0xsr\0xtq\0" + "xub\0xuj\0xve\0xvi\0xwo\0xzh\0yai\0ybh\0ybi\0ydg\0yea\0yej\0yeu\0" + "ygp\0yhd\0yi\0yig\0yih\0yiv\0ykg\0ykh\0yna\0ynk\0yoi\0yoy\0yrk\0" + "ysd\0ysn\0ysp\0ysr\0ysy\0yud\0yue\0yue_CN\0yug\0yux\0ywq\0ywu\0" + "zau\0zba\0zch\0zdj\0zeh\0zen\0zgb\0zgh\0zgm\0zgn\0zh\0zh_AU\0" + "zh_BN\0zh_GB\0zh_GF\0zh_HK\0zh_ID\0zh_MO\0zh_PA\0zh_PF\0zh_PH\0" + "zh_SR\0zh_TH\0zh_TW\0zh_US\0zh_VN\0zhd\0zhx\0zko\0zkt\0zkz\0zlj\0" + "zln\0zlq\0zqe\0zrg\0zrp\0zum\0zwa\0zyg\0zyn\0zzj\0"; const int32_t defaultScriptTable[] = { - 0, 320, // aaf -> Mlym + 0, 330, // aaf -> Mlym 4, 10, // aao -> Arab 8, 150, // aat -> Grek 12, 100, // ab -> Cyrl 15, 10, // abh -> Arab - 19, 420, // abl -> Rjng + 19, 435, // abl -> Rjng 23, 10, // abv -> Arab 27, 10, // acm -> Arab 31, 10, // acq -> Arab 35, 10, // acw -> Arab 39, 10, // acx -> Arab 43, 10, // adf -> Arab - 47, 535, // adx -> Tibt + 47, 555, // adx -> Tibt 51, 100, // ady -> Cyrl 55, 25, // ae -> Avst 58, 10, // aeb -> Arab @@ -134,994 +135,1022 @@ const int32_t defaultScriptTable[] = { 94, 5, // aho -> Ahom 98, 105, // ahr -> Deva 102, 10, // aib -> Arab - 106, 185, // aij -> Hebr - 110, 220, // ain -> Kana - 114, 345, // aio -> Mymr - 118, 10, // aiq -> Arab - 122, 570, // akk -> Xsux - 126, 100, // akv -> Cyrl - 130, 260, // alk -> Laoo - 134, 320, // all -> Mlym - 138, 100, // alr -> Cyrl - 142, 100, // alt -> Cyrl - 146, 120, // alw -> Ethi - 150, 120, // am -> Ethi - 153, 210, // ams -> Jpan - 157, 475, // amw -> Syrc - 161, 100, // ani -> Cyrl - 165, 105, // anp -> Deva - 169, 105, // anr -> Deva - 173, 120, // anu -> Ethi - 177, 45, // aot -> Beng - 181, 10, // apc -> Arab - 185, 10, // apd -> Arab - 189, 105, // aph -> Deva - 193, 100, // aqc -> Cyrl - 197, 10, // ar -> Arab - 200, 15, // arc -> Armi - 204, 10, // arq -> Arab - 208, 10, // ars -> Arab - 212, 10, // ary -> Arab - 216, 10, // arz -> Arab - 220, 45, // as -> Beng - 223, 450, // ase -> Sgnw - 227, 10, // ask -> Arab - 231, 10, // atn -> Arab - 235, 100, // atv -> Cyrl - 239, 10, // auj -> Arab - 243, 10, // auz -> Arab - 247, 100, // av -> Cyrl - 250, 10, // avd -> Arab - 254, 10, // avl -> Arab - 258, 105, // awa -> Deva - 262, 120, // awn -> Ethi - 266, 20, // axm -> Armn - 270, 10, // ayh -> Arab - 274, 10, // ayl -> Arab - 278, 10, // ayn -> Arab - 282, 10, // ayp -> Arab - 286, 10, // az_IQ -> Arab - 292, 10, // az_IR -> Arab - 298, 100, // az_RU -> Cyrl - 304, 10, // azb -> Arab - 308, 100, // ba -> Cyrl - 311, 10, // bal -> Arab - 315, 105, // bap -> Deva - 319, 30, // bax -> Bamu - 323, 125, // bbl -> Geor - 327, 120, // bcq -> Ethi - 331, 385, // bdv -> Orya - 335, 10, // bdz -> Arab - 339, 100, // be -> Cyrl - 342, 105, // bee -> Deva - 346, 10, // bej -> Arab - 350, 105, // bfb -> Deva - 354, 500, // bfq -> Taml - 358, 10, // bft -> Arab - 362, 535, // bfu -> Tibt - 366, 385, // bfw -> Orya - 370, 105, // bfy -> Deva - 374, 105, // bfz -> Deva - 378, 100, // bg -> Cyrl - 381, 105, // bgc -> Deva - 385, 105, // bgd -> Deva - 389, 10, // bgn -> Arab - 393, 10, // bgp -> Arab - 397, 105, // bgq -> Deva - 401, 105, // bgw -> Deva - 405, 150, // bgx -> Grek - 409, 105, // bha -> Deva - 413, 105, // bhb -> Deva - 417, 105, // bhd -> Deva - 421, 10, // bhe -> Arab - 425, 100, // bhh -> Cyrl - 429, 105, // bhi -> Deva - 433, 105, // bhj -> Deva - 437, 10, // bhm -> Arab - 441, 475, // bhn -> Syrc - 445, 105, // bho -> Deva - 449, 485, // bht -> Takr - 453, 105, // bhu -> Deva - 457, 105, // biy -> Deva - 461, 475, // bjf -> Syrc - 465, 105, // bjj -> Deva - 469, 10, // bjm -> Arab - 473, 345, // blk -> Mymr - 477, 510, // blt -> Tavt - 481, 105, // bmj -> Deva - 485, 45, // bn -> Beng - 488, 105, // bns -> Deva - 492, 535, // bo -> Tibt - 495, 100, // bph -> Cyrl - 499, 105, // bpx -> Deva - 503, 45, // bpy -> Beng - 507, 10, // bqi -> Arab - 511, 105, // bra -> Deva - 515, 235, // brb -> Khmr - 519, 105, // brd -> Deva - 523, 10, // brh -> Arab - 527, 10, // brk -> Arab - 531, 260, // brv -> Laoo - 535, 105, // brx -> Deva - 539, 10, // bsh -> Arab - 543, 10, // bsk -> Arab - 547, 35, // bsq -> Bass - 551, 120, // bst -> Ethi - 555, 40, // btd -> Batk - 559, 40, // btm -> Batk - 563, 105, // btv -> Deva - 567, 100, // bua -> Cyrl - 571, 345, // bwe -> Mymr - 575, 100, // bxm -> Cyrl - 579, 330, // bxu -> Mong - 583, 105, // byh -> Deva - 587, 120, // byn -> Ethi - 591, 105, // byw -> Deva - 595, 530, // bzi -> Thai - 599, 530, // cbn -> Thai - 603, 60, // ccp -> Cakm - 607, 515, // cde -> Telu - 611, 105, // cdh -> Deva - 615, 155, // cdi -> Gujr - 619, 105, // cdj -> Deva - 623, 105, // cdm -> Deva - 627, 175, // cdo -> Hans - 631, 45, // cdz -> Beng - 635, 100, // ce -> Cyrl - 638, 535, // cgk -> Tibt - 642, 10, // chg -> Arab - 646, 100, // chm -> Cyrl - 650, 80, // chr -> Cher - 654, 105, // chx -> Deva - 658, 105, // cih -> Deva - 662, 10, // cja -> Arab - 666, 100, // cji -> Cyrl - 670, 75, // cjm -> Cham - 674, 175, // cjy -> Hans - 678, 10, // ckb -> Arab - 682, 100, // ckt -> Cyrl - 686, 10, // clh -> Arab - 690, 100, // clw -> Cyrl - 694, 470, // cmg -> Soyo - 698, 535, // cna -> Tibt - 702, 175, // cnp -> Hans - 706, 530, // cog -> Thai - 710, 90, // cop -> Copt - 714, 150, // cpg -> Grek - 718, 65, // cr -> Cans - 721, 100, // crh -> Cyrl - 725, 65, // crj -> Cans - 729, 65, // crk -> Cans - 733, 65, // crl -> Cans - 737, 65, // crm -> Cans - 741, 345, // csh -> Mymr - 745, 175, // csp -> Hans - 749, 65, // csw -> Cans - 753, 395, // ctd -> Pauc - 757, 45, // ctg -> Beng - 761, 105, // ctn -> Deva - 765, 500, // ctt -> Taml - 769, 100, // cu -> Cyrl - 772, 255, // cuu -> Lana - 776, 100, // cv -> Cyrl - 779, 175, // czh -> Hans - 783, 185, // czk -> Hebr - 787, 105, // daq -> Deva - 791, 100, // dar -> Cyrl - 795, 10, // dcc -> Arab - 799, 100, // ddo -> Cyrl - 803, 10, // def -> Arab - 807, 10, // deh -> Arab - 811, 45, // der -> Beng - 815, 105, // dhi -> Deva - 819, 155, // dhn -> Gujr - 823, 105, // dho -> Deva - 827, 105, // dhw -> Deva - 831, 535, // dka -> Tibt - 835, 100, // dlg -> Cyrl - 839, 310, // dmf -> Medf - 843, 10, // dmk -> Arab - 847, 10, // dml -> Arab - 851, 100, // dng -> Cyrl - 855, 345, // dnu -> Mymr - 859, 345, // dnv -> Mymr - 863, 105, // doi -> Deva - 867, 120, // dox -> Ethi - 871, 535, // dre -> Tibt - 875, 105, // drq -> Deva - 879, 120, // drs -> Ethi - 883, 105, // dry -> Deva - 887, 385, // dso -> Orya - 891, 105, // dty -> Deva - 895, 155, // dub -> Gujr - 899, 105, // duh -> Deva - 903, 105, // dus -> Deva - 907, 525, // dv -> Thaa - 910, 385, // dwk -> Orya - 914, 105, // dwz -> Deva - 918, 535, // dz -> Tibt - 921, 535, // dzl -> Tibt - 925, 150, // ecr -> Grek - 929, 95, // ecy -> Cprt - 933, 110, // egy -> Egyp - 937, 215, // eky -> Kali - 941, 150, // el -> Grek - 944, 105, // emg -> Deva - 948, 105, // emu -> Deva - 952, 100, // enf -> Cyrl - 956, 100, // enh -> Cyrl - 960, 500, // era -> Taml - 964, 135, // esg -> Gonm - 968, 10, // esh -> Arab - 972, 200, // ett -> Ital - 976, 100, // eve -> Cyrl - 980, 100, // evn -> Cyrl - 984, 10, // fa -> Arab - 987, 10, // fay -> Arab - 991, 10, // faz -> Arab - 995, 10, // fia -> Arab - 999, 105, // fmu -> Deva - 1003, 10, // fub -> Arab - 1007, 175, // gan -> Hans - 1011, 385, // gaq -> Orya - 1015, 155, // gas -> Gujr - 1019, 515, // gau -> Telu - 1023, 385, // gbj -> Orya - 1027, 105, // gbk -> Deva - 1031, 155, // gbl -> Gujr - 1035, 105, // gbm -> Deva - 1039, 10, // gbz -> Arab - 1043, 385, // gdb -> Orya - 1047, 100, // gdo -> Cyrl - 1051, 105, // gdx -> Deva - 1055, 120, // gez -> Ethi - 1059, 10, // ggg -> Arab - 1063, 10, // gha -> Arab - 1067, 105, // ghe -> Deva - 1071, 10, // ghr -> Arab - 1075, 535, // ght -> Tibt - 1079, 10, // gig -> Arab - 1083, 100, // gin -> Cyrl - 1087, 10, // gjk -> Arab - 1091, 10, // gju -> Arab - 1095, 100, // gld -> Cyrl - 1099, 10, // glh -> Arab - 1103, 10, // glk -> Arab - 1107, 120, // gmv -> Ethi - 1111, 275, // gmy -> Linb - 1115, 535, // goe -> Tibt - 1119, 120, // gof -> Ethi - 1123, 105, // gok -> Deva - 1127, 105, // gom -> Deva - 1131, 515, // gon -> Telu - 1135, 140, // got -> Goth - 1139, 105, // gra -> Deva - 1143, 95, // grc -> Cprt - 1147, 45, // grt -> Beng - 1151, 120, // gru -> Ethi - 1155, 155, // gu -> Gujr - 1158, 105, // gvr -> Deva - 1162, 10, // gwc -> Arab - 1166, 10, // gwf -> Arab - 1170, 10, // gwt -> Arab - 1174, 105, // gyo -> Deva - 1178, 10, // gzi -> Arab - 1182, 10, // ha_CM -> Arab - 1188, 10, // ha_SD -> Arab - 1194, 10, // hac -> Arab - 1198, 175, // hak -> Hans - 1202, 120, // har -> Ethi - 1206, 10, // haz -> Arab - 1210, 185, // hbo -> Hebr - 1214, 120, // hdy -> Ethi - 1218, 185, // he -> Hebr - 1221, 105, // hi -> Deva - 1224, 485, // hii -> Takr - 1228, 570, // hit -> Xsux - 1232, 10, // hkh -> Arab - 1236, 105, // hlb -> Deva - 1240, 190, // hlu -> Hluw - 1244, 410, // hmd -> Plrd - 1248, 50, // hmj -> Bopo - 1252, 50, // hmq -> Bopo - 1256, 10, // hnd -> Arab - 1260, 105, // hne -> Deva - 1264, 195, // hnj -> Hmnp - 1268, 260, // hnj_AU -> Laoo - 1275, 260, // hnj_CN -> Laoo - 1282, 260, // hnj_FR -> Laoo - 1289, 260, // hnj_GF -> Laoo - 1296, 260, // hnj_LA -> Laoo - 1303, 260, // hnj_MM -> Laoo - 1310, 260, // hnj_SR -> Laoo - 1317, 260, // hnj_TH -> Laoo - 1324, 260, // hnj_VN -> Laoo - 1331, 10, // hno -> Arab - 1335, 105, // hoc -> Deva - 1339, 10, // hoh -> Arab - 1343, 105, // hoj -> Deva - 1347, 170, // how -> Hani - 1351, 105, // hoy -> Deva - 1355, 345, // hpo -> Mymr - 1359, 475, // hrt -> Syrc - 1363, 10, // hrz -> Arab - 1367, 175, // hsn -> Hans - 1371, 10, // hss -> Arab - 1375, 570, // htx -> Xsux - 1379, 105, // hut -> Deva - 1383, 185, // huy -> Hebr - 1387, 100, // huz -> Cyrl - 1391, 20, // hy -> Armn - 1394, 20, // hyw -> Armn - 1398, 575, // ii -> Yiii - 1401, 285, // imy -> Lyci - 1405, 100, // inh -> Cyrl - 1409, 345, // int -> Mymr - 1413, 120, // ior -> Ethi - 1417, 500, // iru -> Taml - 1421, 10, // isk -> Arab - 1425, 185, // itk -> Hebr - 1429, 100, // itl -> Cyrl - 1433, 65, // iu -> Cans - 1436, 185, // iw -> Hebr - 1439, 210, // ja -> Jpan - 1442, 10, // jad -> Arab - 1446, 10, // jat -> Arab - 1450, 185, // jbe -> Hebr - 1454, 10, // jbn -> Arab - 1458, 100, // jct -> Cyrl - 1462, 535, // jda -> Tibt - 1466, 10, // jdg -> Arab - 1470, 100, // jdt -> Cyrl - 1474, 105, // jee -> Deva - 1478, 125, // jge -> Geor - 1482, 185, // ji -> Hebr - 1485, 165, // jje -> Hang - 1489, 345, // jkm -> Mymr - 1493, 105, // jml -> Deva - 1497, 485, // jna -> Takr - 1501, 10, // jnd -> Arab - 1505, 105, // jnl -> Deva - 1509, 105, // jns -> Deva - 1513, 10, // jog -> Arab - 1517, 185, // jpa -> Hebr - 1521, 185, // jpr -> Hebr - 1525, 185, // jrb -> Hebr - 1529, 10, // jrb_MA -> Arab - 1536, 105, // jul -> Deva - 1540, 385, // jun -> Orya - 1544, 385, // juy -> Orya - 1548, 535, // jya -> Tibt - 1552, 185, // jye -> Hebr - 1556, 125, // ka -> Geor - 1559, 100, // kaa -> Cyrl - 1563, 100, // kap -> Cyrl - 1567, 225, // kaw -> Kawi - 1571, 100, // kbd -> Cyrl - 1575, 10, // kbu -> Arab - 1579, 10, // kby -> Arab - 1583, 100, // kca -> Cyrl - 1587, 45, // kdq -> Beng - 1591, 530, // kdt -> Thai - 1595, 100, // ket -> Cyrl - 1599, 105, // kex -> Deva - 1603, 515, // key -> Telu - 1607, 245, // kfa -> Knda - 1611, 105, // kfb -> Deva - 1615, 515, // kfc -> Telu - 1619, 245, // kfd -> Knda - 1623, 500, // kfe -> Taml - 1627, 320, // kfh -> Mlym - 1631, 500, // kfi -> Taml - 1635, 105, // kfk -> Deva - 1639, 10, // kfm -> Arab - 1643, 105, // kfp -> Deva - 1647, 105, // kfq -> Deva - 1651, 105, // kfr -> Deva - 1655, 105, // kfs -> Deva - 1659, 105, // kfx -> Deva - 1663, 105, // kfy -> Deva - 1667, 105, // kgj -> Deva - 1671, 105, // kgy -> Deva - 1675, 495, // khb -> Talu - 1679, 530, // khf -> Thai - 1683, 535, // khg -> Tibt - 1687, 105, // khn -> Deva - 1691, 345, // kht -> Mymr - 1695, 100, // khv -> Cyrl - 1699, 10, // khw -> Arab - 1703, 105, // kif -> Deva - 1707, 100, // kim -> Cyrl - 1711, 105, // kip -> Deva - 1715, 260, // kjg -> Laoo - 1719, 100, // kjh -> Cyrl - 1723, 105, // kjl -> Deva - 1727, 105, // kjo -> Deva - 1731, 345, // kjp -> Mymr - 1735, 530, // kjt -> Thai - 1739, 100, // kk -> Cyrl - 1742, 10, // kk_AF -> Arab - 1748, 10, // kk_CN -> Arab - 1754, 10, // kk_IR -> Arab - 1760, 10, // kk_MN -> Arab - 1766, 535, // kkf -> Tibt - 1770, 255, // kkh -> Lana - 1774, 105, // kkt -> Deva - 1778, 105, // kle -> Deva - 1782, 10, // klj -> Arab - 1786, 105, // klr -> Deva - 1790, 235, // km -> Khmr - 1793, 105, // kmj -> Deva - 1797, 10, // kmz -> Arab - 1801, 245, // kn -> Knda - 1804, 250, // ko -> Kore - 1807, 100, // koi -> Cyrl - 1811, 105, // kok -> Deva - 1815, 100, // kpt -> Cyrl - 1819, 100, // kpy -> Cyrl - 1823, 475, // kqd -> Syrc - 1827, 120, // kqy -> Ethi - 1831, 105, // kra -> Deva - 1835, 100, // krc -> Cyrl - 1839, 100, // krk -> Cyrl - 1843, 235, // krr -> Khmr - 1847, 105, // kru -> Deva - 1851, 235, // krv -> Khmr - 1855, 10, // ks -> Arab - 1858, 345, // ksu -> Mymr - 1862, 345, // ksw -> Mymr - 1866, 105, // ksz -> Deva - 1870, 120, // ktb -> Ethi - 1874, 10, // ktl -> Arab - 1878, 410, // ktp -> Plrd - 1882, 10, // ku_LB -> Arab - 1888, 260, // kuf -> Laoo - 1892, 100, // kum -> Cyrl - 1896, 100, // kv -> Cyrl - 1899, 100, // kva -> Cyrl - 1903, 345, // kvq -> Mymr - 1907, 345, // kvt -> Mymr - 1911, 10, // kvx -> Arab - 1915, 215, // kvy -> Kali - 1919, 345, // kxf -> Mymr - 1923, 345, // kxk -> Mymr - 1927, 530, // kxm -> Thai - 1931, 10, // kxp -> Arab - 1935, 100, // ky -> Cyrl - 1938, 10, // ky_CN -> Arab - 1944, 215, // kyu -> Kali - 1948, 105, // kyv -> Deva - 1952, 105, // kyw -> Deva - 1956, 270, // lab -> Lina - 1960, 185, // lad -> Hebr - 1964, 105, // lae -> Deva - 1968, 10, // lah -> Arab - 1972, 280, // lbc -> Lisu - 1976, 100, // lbe -> Cyrl - 1980, 105, // lbf -> Deva - 1984, 535, // lbj -> Tibt - 1988, 105, // lbm -> Deva - 1992, 260, // lbo -> Laoo - 1996, 105, // lbr -> Deva - 2000, 530, // lcp -> Thai - 2004, 265, // lep -> Lepc - 2008, 100, // lez -> Cyrl - 2012, 105, // lhm -> Deva - 2016, 475, // lhs -> Syrc - 2020, 105, // lif -> Deva - 2024, 280, // lis -> Lisu - 2028, 535, // lkh -> Tibt - 2032, 10, // lki -> Arab - 2036, 105, // lmh -> Deva - 2040, 515, // lmn -> Telu - 2044, 260, // lo -> Laoo - 2047, 105, // loy -> Deva - 2051, 410, // lpo -> Plrd - 2055, 10, // lrc -> Arab - 2059, 10, // lrk -> Arab - 2063, 10, // lrl -> Arab - 2067, 10, // lsa -> Arab - 2071, 185, // lsd -> Hebr - 2075, 10, // lss -> Arab - 2079, 535, // luk -> Tibt - 2083, 105, // luu -> Deva - 2087, 10, // luv -> Arab - 2091, 10, // luz -> Arab - 2095, 530, // lwl -> Thai - 2099, 530, // lwm -> Thai - 2103, 535, // lya -> Tibt - 2107, 175, // lzh -> Hans - 2111, 105, // mag -> Deva - 2115, 105, // mai -> Deva - 2119, 360, // man_GN -> Nkoo - 2126, 10, // mby -> Arab - 2130, 10, // mde -> Arab - 2134, 100, // mdf -> Cyrl - 2138, 120, // mdx -> Ethi - 2142, 120, // mdy -> Ethi - 2146, 10, // mfa -> Arab - 2150, 10, // mfi -> Arab - 2154, 105, // mgp -> Deva - 2158, 10, // mhj -> Arab - 2162, 295, // mid -> Mand - 2166, 105, // mjl -> Deva - 2170, 320, // mjq -> Mlym - 2174, 320, // mjr -> Mlym - 2178, 105, // mjt -> Deva - 2182, 515, // mju -> Telu - 2186, 320, // mjv -> Mlym - 2190, 105, // mjz -> Deva - 2194, 100, // mk -> Cyrl - 2197, 105, // mkb -> Deva - 2201, 105, // mke -> Deva - 2205, 10, // mki -> Arab - 2209, 530, // mkm -> Thai - 2213, 320, // ml -> Mlym - 2216, 530, // mlf -> Thai - 2220, 100, // mn -> Cyrl - 2223, 330, // mn_CN -> Mong - 2229, 45, // mni -> Beng - 2233, 10, // mnj -> Arab - 2237, 100, // mns -> Cyrl - 2241, 345, // mnw -> Mymr - 2245, 530, // mpz -> Thai - 2249, 105, // mr -> Deva - 2252, 530, // mra -> Thai - 2256, 105, // mrd -> Deva - 2260, 100, // mrj -> Cyrl - 2264, 335, // mro -> Mroo - 2268, 105, // mrr -> Deva - 2272, 10, // ms_CC -> Arab - 2278, 100, // mtm -> Cyrl - 2282, 105, // mtr -> Deva - 2286, 100, // mud -> Cyrl - 2290, 535, // muk -> Tibt - 2294, 105, // mut -> Deva - 2298, 500, // muv -> Taml - 2302, 120, // muz -> Ethi - 2306, 330, // mvf -> Mong - 2310, 10, // mvy -> Arab - 2314, 120, // mvz -> Ethi - 2318, 105, // mwr -> Deva - 2322, 345, // mwt -> Mymr - 2326, 195, // mww -> Hmnp - 2330, 345, // my -> Mymr - 2333, 120, // mym -> Ethi - 2337, 100, // myv -> Cyrl - 2341, 295, // myz -> Mand - 2345, 10, // mzn -> Arab - 2349, 175, // nan -> Hans - 2353, 105, // nao -> Deva - 2357, 105, // ncd -> Deva - 2361, 260, // ncq -> Laoo - 2365, 100, // ndf -> Cyrl - 2369, 105, // ne -> Deva - 2372, 100, // neg -> Cyrl - 2376, 535, // neh -> Tibt - 2380, 570, // nei -> Xsux - 2384, 105, // new -> Deva - 2388, 260, // ngt -> Laoo - 2392, 100, // nio -> Cyrl - 2396, 515, // nit -> Telu - 2400, 100, // niv -> Cyrl - 2404, 10, // nli -> Arab - 2408, 10, // nlm -> Arab - 2412, 105, // nlx -> Deva - 2416, 105, // nmm -> Deva - 2420, 560, // nnp -> Wcho - 2424, 255, // nod -> Lana - 2428, 105, // noe -> Deva - 2432, 100, // nog -> Cyrl - 2436, 105, // noi -> Deva - 2440, 430, // non -> Runr - 2444, 575, // nos -> Yiii - 2448, 535, // npb -> Tibt - 2452, 360, // nqo -> Nkoo - 2456, 575, // nsd -> Yiii - 2460, 575, // nsf -> Yiii - 2464, 65, // nsk -> Cans - 2468, 540, // nst -> Tnsa - 2472, 575, // nsv -> Yiii - 2476, 575, // nty -> Yiii - 2480, 10, // ntz -> Arab - 2484, 355, // nwc -> Newa - 2488, 105, // nwx -> Deva - 2492, 530, // nyl -> Thai - 2496, 10, // nyq -> Arab - 2500, 100, // oaa -> Cyrl - 2504, 100, // oac -> Cyrl - 2508, 475, // oar -> Syrc - 2512, 125, // oav -> Geor - 2516, 405, // obm -> Phnx - 2520, 345, // obr -> Mymr - 2524, 10, // odk -> Arab - 2528, 570, // oht -> Xsux - 2532, 65, // oj -> Cans - 2535, 65, // ojs -> Cans - 2539, 165, // okm -> Hang - 2543, 170, // oko -> Hani - 2547, 235, // okz -> Khmr - 2551, 105, // ola -> Deva - 2555, 535, // ole -> Tibt - 2559, 100, // omk -> Cyrl - 2563, 340, // omp -> Mtei - 2567, 325, // omr -> Modi - 2571, 105, // oon -> Deva - 2575, 385, // or -> Orya - 2578, 515, // ort -> Telu - 2582, 10, // oru -> Arab - 2586, 100, // orv -> Cyrl - 2590, 100, // os -> Cyrl - 2593, 390, // osa -> Osge - 2597, 200, // osc -> Ital - 2601, 205, // osi -> Java - 2605, 10, // ota -> Arab - 2609, 535, // otb -> Tibt - 2613, 380, // otk -> Orkh - 2617, 145, // oty -> Gran - 2621, 160, // pa -> Guru - 2624, 10, // pa_PK -> Arab - 2630, 400, // pal -> Phli - 2634, 100, // paq -> Cyrl - 2638, 10, // pbt -> Arab - 2642, 235, // pcb -> Khmr - 2646, 345, // pce -> Mymr - 2650, 320, // pcf -> Mlym - 2654, 320, // pcg -> Mlym - 2658, 105, // pch -> Deva - 2662, 105, // pci -> Deva - 2666, 515, // pcj -> Telu - 2670, 385, // peg -> Orya - 2674, 565, // peo -> Xpeo - 2678, 230, // pgd -> Khar - 2682, 105, // pgg -> Deva - 2686, 370, // pgl -> Ogam - 2690, 200, // pgn -> Ital - 2694, 105, // phd -> Deva - 2698, 345, // phk -> Mymr - 2702, 10, // phl -> Arab - 2706, 405, // phn -> Phnx - 2710, 260, // pho -> Laoo - 2714, 10, // phr -> Arab - 2718, 530, // pht -> Thai - 2722, 10, // phv -> Arab - 2726, 105, // phw -> Deva - 2730, 455, // pi -> Sinh - 2733, 55, // pka -> Brah - 2737, 320, // pkr -> Mlym - 2741, 10, // plk -> Arab - 2745, 345, // pll -> Mymr - 2749, 55, // pmh -> Brah - 2753, 150, // pnt -> Grek - 2757, 230, // pra -> Khar - 2761, 10, // prc -> Arab - 2765, 10, // prd -> Arab - 2769, 530, // prt -> Thai - 2773, 10, // prx -> Arab - 2777, 10, // ps -> Arab - 2780, 10, // psh -> Arab - 2784, 10, // psi -> Arab - 2788, 10, // pst -> Arab - 2792, 105, // pum -> Deva - 2796, 345, // pwo -> Mymr - 2800, 105, // pwr -> Deva - 2804, 530, // pww -> Thai - 2808, 345, // pyx -> Mymr - 2812, 10, // qxq -> Arab - 2816, 105, // raa -> Deva - 2820, 105, // rab -> Deva - 2824, 105, // raf -> Deva - 2828, 45, // rah -> Beng - 2832, 105, // raj -> Deva - 2836, 105, // rav -> Deva - 2840, 345, // rbb -> Mymr - 2844, 10, // rdb -> Arab - 2848, 385, // rei -> Orya - 2852, 425, // rhg -> Rohg - 2856, 105, // rji -> Deva - 2860, 105, // rjs -> Deva - 2864, 235, // rka -> Khmr - 2868, 345, // rki -> Mymr - 2872, 45, // rkt -> Beng - 2876, 20, // rmi -> Armn - 2880, 10, // rmt -> Arab - 2884, 345, // rmz -> Mymr - 2888, 100, // rom_BG -> Cyrl - 2895, 100, // rsk -> Cyrl - 2899, 105, // rtw -> Deva - 2903, 100, // ru -> Cyrl - 2906, 100, // rue -> Cyrl - 2910, 100, // rut -> Cyrl - 2914, 105, // rwr -> Deva - 2918, 220, // ryu -> Kana - 2922, 105, // sa -> Deva - 2925, 100, // sah -> Cyrl - 2929, 435, // sam -> Samr - 2933, 375, // sat -> Olck - 2937, 445, // saz -> Saur - 2941, 10, // sbn -> Arab - 2945, 535, // sbu -> Tibt - 2949, 105, // sck -> Deva - 2953, 10, // scl -> Arab - 2957, 10, // scl_IN -> Arab - 2964, 105, // scp -> Deva - 2968, 260, // sct -> Laoo - 2972, 485, // scu -> Takr - 2976, 150, // scx -> Grek - 2980, 10, // sd -> Arab - 2983, 105, // sd_IN -> Deva - 2989, 10, // sdb -> Arab - 2993, 10, // sdf -> Arab - 2997, 10, // sdg -> Arab - 3001, 10, // sdh -> Arab - 3005, 10, // sds -> Arab - 3009, 100, // sel -> Cyrl - 3013, 410, // sfm -> Plrd - 3017, 370, // sga -> Ogam - 3021, 100, // sgh -> Cyrl - 3025, 105, // sgj -> Deva - 3029, 10, // sgr -> Arab - 3033, 535, // sgt -> Tibt - 3037, 120, // sgw -> Ethi - 3041, 10, // sgy -> Arab - 3045, 10, // shd -> Arab - 3049, 520, // shi -> Tfng - 3053, 10, // shm -> Arab - 3057, 345, // shn -> Mymr - 3061, 10, // shu -> Arab - 3065, 10, // shv -> Arab - 3069, 455, // si -> Sinh - 3072, 100, // sia -> Cyrl - 3076, 535, // sip -> Tibt - 3080, 10, // siy -> Arab - 3084, 10, // siz -> Arab - 3088, 100, // sjd -> Cyrl - 3092, 105, // sjp -> Deva - 3096, 100, // sjt -> Cyrl - 3100, 530, // skb -> Thai - 3104, 105, // skj -> Deva - 3108, 10, // skr -> Arab - 3112, 575, // smh -> Yiii - 3116, 435, // smp -> Samr - 3120, 235, // smu -> Khmr - 3124, 10, // smy -> Arab - 3128, 510, // soa -> Tavt - 3132, 460, // sog -> Sogd - 3136, 105, // soi -> Deva - 3140, 530, // sou -> Thai - 3144, 535, // spt -> Tibt - 3148, 385, // spv -> Orya - 3152, 10, // sqo -> Arab - 3156, 260, // sqq -> Laoo - 3160, 10, // sqt -> Arab - 3164, 100, // sr -> Cyrl - 3167, 465, // srb -> Sora - 3171, 10, // srh -> Arab - 3175, 105, // srx -> Deva - 3179, 10, // srz -> Arab - 3183, 10, // ssh -> Arab - 3187, 260, // sss -> Laoo - 3191, 10, // sts -> Arab - 3195, 120, // stv -> Ethi - 3199, 100, // sty -> Cyrl - 3203, 105, // suz -> Deva - 3207, 125, // sva -> Geor - 3211, 10, // swb -> Arab - 3215, 170, // swi -> Hani - 3219, 105, // swv -> Deva - 3223, 475, // syc -> Syrc - 3227, 45, // syl -> Beng - 3231, 475, // syn -> Syrc - 3235, 475, // syr -> Syrc - 3239, 105, // syw -> Deva - 3243, 500, // ta -> Taml - 3246, 100, // tab -> Cyrl - 3250, 105, // taj -> Deva - 3254, 480, // tbk -> Tagb - 3258, 535, // tcn -> Tibt - 3262, 345, // tco -> Mymr - 3266, 500, // tcx -> Taml - 3270, 245, // tcy -> Knda - 3274, 520, // tda -> Tfng - 3278, 105, // tdb -> Deva - 3282, 490, // tdd -> Tale - 3286, 105, // tdg -> Deva - 3290, 105, // tdh -> Deva - 3294, 515, // te -> Telu - 3297, 205, // tes -> Java - 3301, 100, // tg -> Cyrl - 3304, 10, // tg_PK -> Arab - 3310, 105, // tge -> Deva - 3314, 535, // tgf -> Tibt - 3318, 530, // th -> Thai - 3321, 105, // the -> Deva - 3325, 105, // thf -> Deva - 3329, 490, // thi -> Tale - 3333, 105, // thl -> Deva - 3337, 530, // thm -> Thai - 3341, 105, // thq -> Deva - 3345, 105, // thr -> Deva - 3349, 105, // ths -> Deva - 3353, 120, // ti -> Ethi - 3356, 120, // tig -> Ethi - 3360, 105, // tij -> Deva - 3364, 100, // tin -> Cyrl - 3368, 345, // tjl -> Mymr - 3372, 10, // tjo -> Arab - 3376, 105, // tkb -> Deva - 3380, 10, // tks -> Arab - 3384, 105, // tkt -> Deva - 3388, 475, // tmr -> Syrc - 3392, 60, // tnv -> Cakm - 3396, 10, // tov -> Arab - 3400, 235, // tpu -> Khmr - 3404, 10, // tra -> Arab - 3408, 185, // trg -> Hebr - 3412, 10, // trm -> Arab - 3416, 10, // trw -> Arab - 3420, 150, // tsd -> Grek - 3424, 535, // tsj -> Tibt - 3428, 100, // tt -> Cyrl - 3431, 260, // tth -> Laoo - 3435, 260, // tto -> Laoo - 3439, 530, // tts -> Thai - 3443, 345, // tvn -> Mymr - 3447, 105, // twm -> Deva - 3451, 505, // txg -> Tang - 3455, 545, // txo -> Toto - 3459, 510, // tyr -> Tavt - 3463, 100, // tyv -> Cyrl - 3467, 100, // ude -> Cyrl - 3471, 320, // udg -> Mlym - 3475, 0, // udi -> Aghb - 3479, 100, // udm -> Cyrl - 3483, 10, // ug -> Arab - 3486, 100, // ug_KZ -> Cyrl - 3492, 100, // ug_MN -> Cyrl - 3498, 550, // uga -> Ugar - 3502, 100, // ugh -> Cyrl - 3506, 530, // ugo -> Thai - 3510, 100, // uk -> Cyrl - 3513, 385, // uki -> Orya - 3517, 100, // ulc -> Cyrl - 3521, 45, // unr -> Beng - 3525, 105, // unr_NP -> Deva - 3532, 45, // unx -> Beng - 3536, 10, // ur -> Arab - 3539, 530, // urk -> Thai - 3543, 10, // ush -> Arab - 3547, 150, // uum -> Grek - 3551, 10, // uz_AF -> Arab - 3557, 100, // uz_CN -> Cyrl - 3563, 10, // uzs -> Arab - 3567, 500, // vaa -> Taml - 3571, 10, // vaf -> Arab - 3575, 105, // vah -> Deva - 3579, 555, // vai -> Vaii - 3583, 105, // vas -> Deva - 3587, 105, // vav -> Deva - 3591, 105, // vay -> Deva - 3595, 10, // vgr -> Arab - 3599, 245, // vmd -> Knda - 3603, 10, // vmh -> Arab - 3607, 120, // wal -> Ethi - 3611, 10, // wbk -> Arab - 3615, 515, // wbq -> Telu - 3619, 105, // wbr -> Deva - 3623, 10, // wlo -> Arab - 3627, 105, // wme -> Deva - 3631, 10, // wne -> Arab - 3635, 10, // wni -> Arab - 3639, 130, // wsg -> Gong - 3643, 10, // wsv -> Arab - 3647, 105, // wtm -> Deva - 3651, 175, // wuu -> Hans - 3655, 100, // xal -> Cyrl - 3659, 120, // xan -> Ethi - 3663, 100, // xas -> Cyrl - 3667, 85, // xco -> Chrs - 3671, 70, // xcr -> Cari - 3675, 100, // xdq -> Cyrl - 3679, 10, // xhe -> Arab - 3683, 235, // xhm -> Khmr - 3687, 385, // xis -> Orya - 3691, 10, // xka -> Arab - 3695, 10, // xkc -> Arab - 3699, 10, // xkj -> Arab - 3703, 10, // xkp -> Arab - 3707, 285, // xlc -> Lyci - 3711, 290, // xld -> Lydi - 3715, 115, // xly -> Elym - 3719, 125, // xmf -> Geor - 3723, 300, // xmn -> Mani - 3727, 315, // xmr -> Merc - 3731, 350, // xna -> Narb - 3735, 105, // xnr -> Deva - 3739, 150, // xpg -> Grek - 3743, 370, // xpi -> Ogam - 3747, 100, // xpm -> Cyrl - 3751, 415, // xpr -> Prti - 3755, 100, // xrm -> Cyrl - 3759, 100, // xrn -> Cyrl - 3763, 440, // xsa -> Sarb - 3767, 105, // xsr -> Deva - 3771, 500, // xub -> Taml - 3775, 500, // xuj -> Taml - 3779, 200, // xve -> Ital - 3783, 10, // xvi -> Arab - 3787, 100, // xwo -> Cyrl - 3791, 305, // xzh -> Marc - 3795, 100, // yai -> Cyrl - 3799, 105, // ybh -> Deva - 3803, 105, // ybi -> Deva - 3807, 10, // ydg -> Arab - 3811, 320, // yea -> Mlym - 3815, 150, // yej -> Grek - 3819, 515, // yeu -> Telu - 3823, 410, // ygp -> Plrd - 3827, 185, // yhd -> Hebr - 3831, 185, // yi -> Hebr - 3834, 575, // yig -> Yiii - 3838, 185, // yih -> Hebr - 3842, 575, // yiv -> Yiii - 3846, 100, // ykg -> Cyrl - 3850, 410, // yna -> Plrd - 3854, 100, // ynk -> Cyrl - 3858, 210, // yoi -> Jpan - 3862, 530, // yoy -> Thai - 3866, 100, // yrk -> Cyrl - 3870, 575, // ysd -> Yiii - 3874, 575, // ysn -> Yiii - 3878, 575, // ysp -> Yiii - 3882, 100, // ysr -> Cyrl - 3886, 410, // ysy -> Plrd - 3890, 185, // yud -> Hebr - 3894, 180, // yue -> Hant - 3898, 175, // yue_CN -> Hans - 3905, 100, // yug -> Cyrl - 3909, 100, // yux -> Cyrl - 3913, 410, // ywq -> Plrd - 3917, 410, // ywu -> Plrd - 3921, 535, // zau -> Tibt - 3925, 10, // zba -> Arab - 3929, 170, // zch -> Hani - 3933, 10, // zdj -> Arab - 3937, 170, // zeh -> Hani - 3941, 520, // zen -> Tfng - 3945, 170, // zgb -> Hani - 3949, 520, // zgh -> Tfng - 3953, 170, // zgm -> Hani - 3957, 170, // zgn -> Hani - 3961, 175, // zh -> Hans - 3964, 180, // zh_AU -> Hant - 3970, 180, // zh_BN -> Hant - 3976, 180, // zh_GB -> Hant - 3982, 180, // zh_GF -> Hant - 3988, 180, // zh_HK -> Hant - 3994, 180, // zh_ID -> Hant - 4000, 180, // zh_MO -> Hant - 4006, 180, // zh_PA -> Hant - 4012, 180, // zh_PF -> Hant - 4018, 180, // zh_PH -> Hant - 4024, 180, // zh_SR -> Hant - 4030, 180, // zh_TH -> Hant - 4036, 180, // zh_TW -> Hant - 4042, 180, // zh_US -> Hant - 4048, 180, // zh_VN -> Hant - 4054, 170, // zhd -> Hani - 4058, 365, // zhx -> Nshu - 4062, 100, // zko -> Cyrl - 4066, 240, // zkt -> Kits - 4070, 100, // zkz -> Cyrl - 4074, 170, // zlj -> Hani - 4078, 170, // zln -> Hani - 4082, 170, // zlq -> Hani - 4086, 170, // zqe -> Hani - 4090, 185, // zrp -> Hebr - 4094, 10, // zum -> Arab - 4098, 170, // zyg -> Hani - 4102, 170, // zyn -> Hani - 4106, 170, // zzj -> Hani + 106, 495, // aii -> Syrc + 110, 185, // aij -> Hebr + 114, 220, // ain -> Kana + 118, 355, // aio -> Mymr + 122, 10, // aiq -> Arab + 126, 590, // akk -> Xsux + 130, 100, // akv -> Cyrl + 134, 260, // alk -> Laoo + 138, 330, // all -> Mlym + 142, 100, // alr -> Cyrl + 146, 100, // alt -> Cyrl + 150, 120, // alw -> Ethi + 154, 120, // am -> Ethi + 157, 210, // ams -> Jpan + 161, 495, // amw -> Syrc + 165, 100, // ani -> Cyrl + 169, 105, // anp -> Deva + 173, 105, // anq -> Deva + 177, 105, // anr -> Deva + 181, 120, // anu -> Ethi + 185, 45, // aot -> Beng + 189, 10, // apc -> Arab + 193, 10, // apd -> Arab + 197, 105, // aph -> Deva + 201, 100, // aqc -> Cyrl + 205, 10, // ar -> Arab + 208, 15, // arc -> Armi + 212, 10, // arq -> Arab + 216, 10, // ars -> Arab + 220, 10, // ary -> Arab + 224, 10, // arz -> Arab + 228, 45, // as -> Beng + 231, 465, // ase -> Sgnw + 235, 10, // ask -> Arab + 239, 105, // asr -> Deva + 243, 10, // atn -> Arab + 247, 100, // atv -> Cyrl + 251, 10, // auj -> Arab + 255, 10, // auz -> Arab + 259, 100, // av -> Cyrl + 262, 10, // avd -> Arab + 266, 10, // avl -> Arab + 270, 105, // awa -> Deva + 274, 120, // awn -> Ethi + 278, 20, // axm -> Armn + 282, 10, // ayh -> Arab + 286, 10, // ayl -> Arab + 290, 10, // ayn -> Arab + 294, 10, // ayp -> Arab + 298, 10, // az_IQ -> Arab + 304, 10, // az_IR -> Arab + 310, 100, // az_RU -> Cyrl + 316, 10, // azb -> Arab + 320, 100, // ba -> Cyrl + 323, 10, // bal -> Arab + 327, 105, // bap -> Deva + 331, 30, // bax -> Bamu + 335, 125, // bbl -> Geor + 339, 120, // bcq -> Ethi + 343, 395, // bdv -> Orya + 347, 10, // bdz -> Arab + 351, 100, // be -> Cyrl + 354, 105, // bee -> Deva + 358, 10, // bej -> Arab + 362, 105, // bfb -> Deva + 366, 520, // bfq -> Taml + 370, 10, // bft -> Arab + 374, 555, // bfu -> Tibt + 378, 395, // bfw -> Orya + 382, 105, // bfy -> Deva + 386, 105, // bfz -> Deva + 390, 100, // bg -> Cyrl + 393, 105, // bgc -> Deva + 397, 105, // bgd -> Deva + 401, 10, // bgn -> Arab + 405, 10, // bgp -> Arab + 409, 105, // bgq -> Deva + 413, 105, // bgw -> Deva + 417, 150, // bgx -> Grek + 421, 105, // bha -> Deva + 425, 105, // bhb -> Deva + 429, 105, // bhd -> Deva + 433, 10, // bhe -> Arab + 437, 100, // bhh -> Cyrl + 441, 105, // bhi -> Deva + 445, 105, // bhj -> Deva + 449, 10, // bhm -> Arab + 453, 495, // bhn -> Syrc + 457, 105, // bho -> Deva + 461, 105, // bht -> Deva + 465, 105, // bhu -> Deva + 469, 105, // biy -> Deva + 473, 495, // bjf -> Syrc + 477, 105, // bjj -> Deva + 481, 10, // bjm -> Arab + 485, 555, // bkk -> Tibt + 489, 355, // blk -> Mymr + 493, 530, // blt -> Tavt + 497, 105, // bmj -> Deva + 501, 45, // bn -> Beng + 504, 105, // bns -> Deva + 508, 555, // bo -> Tibt + 511, 100, // bph -> Cyrl + 515, 105, // bpx -> Deva + 519, 45, // bpy -> Beng + 523, 10, // bqi -> Arab + 527, 105, // bra -> Deva + 531, 235, // brb -> Khmr + 535, 105, // brd -> Deva + 539, 10, // brh -> Arab + 543, 10, // brk -> Arab + 547, 555, // bro -> Tibt + 551, 260, // brv -> Laoo + 555, 245, // brw -> Knda + 559, 105, // brx -> Deva + 563, 10, // bsh -> Arab + 567, 10, // bsk -> Arab + 571, 35, // bsq -> Bass + 575, 120, // bst -> Ethi + 579, 40, // btd -> Batk + 583, 40, // btm -> Batk + 587, 105, // btv -> Deva + 591, 100, // bua -> Cyrl + 595, 355, // bwe -> Mymr + 599, 100, // bxm -> Cyrl + 603, 340, // bxu -> Mong + 607, 105, // byh -> Deva + 611, 120, // byn -> Ethi + 615, 105, // byw -> Deva + 619, 550, // bzi -> Thai + 623, 550, // cbn -> Thai + 627, 60, // ccp -> Cakm + 631, 535, // cde -> Telu + 635, 105, // cdh -> Deva + 639, 155, // cdi -> Gujr + 643, 105, // cdj -> Deva + 647, 105, // cdm -> Deva + 651, 175, // cdo -> Hans + 655, 45, // cdz -> Beng + 659, 100, // ce -> Cyrl + 662, 555, // cgk -> Tibt + 666, 10, // chg -> Arab + 670, 100, // chm -> Cyrl + 674, 80, // chr -> Cher + 678, 105, // chx -> Deva + 682, 105, // cih -> Deva + 686, 10, // cja -> Arab + 690, 100, // cji -> Cyrl + 694, 75, // cjm -> Cham + 698, 175, // cjy -> Hans + 702, 10, // ckb -> Arab + 706, 100, // ckt -> Cyrl + 710, 10, // clh -> Arab + 714, 100, // clw -> Cyrl + 718, 485, // cmg -> Soyo + 722, 555, // cna -> Tibt + 726, 175, // cnp -> Hans + 730, 550, // cog -> Thai + 734, 90, // cop -> Copt + 738, 150, // cpg -> Grek + 742, 65, // cr -> Cans + 745, 100, // crh -> Cyrl + 749, 65, // crj -> Cans + 753, 65, // crk -> Cans + 757, 65, // crl -> Cans + 761, 65, // crm -> Cans + 765, 355, // csh -> Mymr + 769, 175, // csp -> Hans + 773, 65, // csw -> Cans + 777, 410, // ctd -> Pauc + 781, 45, // ctg -> Beng + 785, 105, // ctn -> Deva + 789, 520, // ctt -> Taml + 793, 520, // cty -> Taml + 797, 100, // cu -> Cyrl + 800, 255, // cuu -> Lana + 804, 100, // cv -> Cyrl + 807, 175, // czh -> Hans + 811, 185, // czk -> Hebr + 815, 105, // daq -> Deva + 819, 100, // dar -> Cyrl + 823, 10, // dcc -> Arab + 827, 100, // ddo -> Cyrl + 831, 10, // def -> Arab + 835, 10, // deh -> Arab + 839, 45, // der -> Beng + 843, 10, // dgl -> Arab + 847, 105, // dhi -> Deva + 851, 155, // dhn -> Gujr + 855, 105, // dho -> Deva + 859, 105, // dhw -> Deva + 863, 555, // dka -> Tibt + 867, 100, // dlg -> Cyrl + 871, 320, // dmf -> Medf + 875, 10, // dmk -> Arab + 879, 10, // dml -> Arab + 883, 100, // dng -> Cyrl + 887, 355, // dnu -> Mymr + 891, 355, // dnv -> Mymr + 895, 105, // doi -> Deva + 899, 120, // dox -> Ethi + 903, 555, // dre -> Tibt + 907, 105, // drq -> Deva + 911, 120, // drs -> Ethi + 915, 105, // dry -> Deva + 919, 395, // dso -> Orya + 923, 105, // dty -> Deva + 927, 155, // dub -> Gujr + 931, 105, // duh -> Deva + 935, 105, // dus -> Deva + 939, 545, // dv -> Thaa + 942, 395, // dwk -> Orya + 946, 105, // dwz -> Deva + 950, 555, // dz -> Tibt + 953, 555, // dzl -> Tibt + 957, 150, // ecr -> Grek + 961, 95, // ecy -> Cprt + 965, 110, // egy -> Egyp + 969, 215, // eky -> Kali + 973, 150, // el -> Grek + 976, 105, // emg -> Deva + 980, 105, // emu -> Deva + 984, 100, // enf -> Cyrl + 988, 100, // enh -> Cyrl + 992, 520, // era -> Taml + 996, 135, // esg -> Gonm + 1000, 10, // esh -> Arab + 1004, 200, // ett -> Ital + 1008, 100, // eve -> Cyrl + 1012, 100, // evn -> Cyrl + 1016, 10, // fa -> Arab + 1019, 10, // fay -> Arab + 1023, 10, // faz -> Arab + 1027, 10, // fia -> Arab + 1031, 105, // fmu -> Deva + 1035, 10, // fub -> Arab + 1039, 175, // gan -> Hans + 1043, 395, // gaq -> Orya + 1047, 155, // gas -> Gujr + 1051, 535, // gau -> Telu + 1055, 395, // gbj -> Orya + 1059, 105, // gbk -> Deva + 1063, 155, // gbl -> Gujr + 1067, 105, // gbm -> Deva + 1071, 10, // gbz -> Arab + 1075, 395, // gdb -> Orya + 1079, 100, // gdo -> Cyrl + 1083, 105, // gdx -> Deva + 1087, 120, // gez -> Ethi + 1091, 10, // ggg -> Arab + 1095, 10, // gha -> Arab + 1099, 105, // ghe -> Deva + 1103, 540, // gho -> Tfng + 1107, 10, // ghr -> Arab + 1111, 555, // ght -> Tibt + 1115, 10, // gig -> Arab + 1119, 100, // gin -> Cyrl + 1123, 10, // gjk -> Arab + 1127, 10, // gju -> Arab + 1131, 100, // gld -> Cyrl + 1135, 10, // glh -> Arab + 1139, 10, // glk -> Arab + 1143, 265, // gml -> Latf + 1147, 120, // gmv -> Ethi + 1151, 285, // gmy -> Linb + 1155, 555, // goe -> Tibt + 1159, 120, // gof -> Ethi + 1163, 105, // goj -> Deva + 1167, 105, // gok -> Deva + 1171, 105, // gon -> Deva + 1175, 140, // got -> Goth + 1179, 105, // gra -> Deva + 1183, 95, // grc -> Cprt + 1187, 45, // grt -> Beng + 1191, 120, // gru -> Ethi + 1195, 155, // gu -> Gujr + 1198, 105, // gvr -> Deva + 1202, 10, // gwc -> Arab + 1206, 10, // gwf -> Arab + 1210, 10, // gwt -> Arab + 1214, 105, // gyo -> Deva + 1218, 10, // gzi -> Arab + 1222, 10, // ha_CM -> Arab + 1228, 10, // ha_SD -> Arab + 1234, 10, // hac -> Arab + 1238, 175, // hak -> Hans + 1242, 120, // har -> Ethi + 1246, 10, // haz -> Arab + 1250, 185, // hbo -> Hebr + 1254, 120, // hdy -> Ethi + 1258, 185, // he -> Hebr + 1261, 105, // hi -> Deva + 1264, 105, // hif -> Deva + 1268, 505, // hii -> Takr + 1272, 590, // hit -> Xsux + 1276, 10, // hkh -> Arab + 1280, 105, // hlb -> Deva + 1284, 190, // hlu -> Hluw + 1288, 425, // hmd -> Plrd + 1292, 50, // hmj -> Bopo + 1296, 50, // hmq -> Bopo + 1300, 10, // hnd -> Arab + 1304, 105, // hne -> Deva + 1308, 195, // hnj -> Hmnp + 1312, 10, // hno -> Arab + 1316, 105, // hoc -> Deva + 1320, 10, // hoh -> Arab + 1324, 105, // hoj -> Deva + 1328, 170, // how -> Hani + 1332, 105, // hoy -> Deva + 1336, 355, // hpo -> Mymr + 1340, 495, // hrt -> Syrc + 1344, 10, // hrz -> Arab + 1348, 175, // hsn -> Hans + 1352, 10, // hss -> Arab + 1356, 590, // htx -> Xsux + 1360, 105, // hut -> Deva + 1364, 185, // huy -> Hebr + 1368, 100, // huz -> Cyrl + 1372, 20, // hy -> Armn + 1375, 20, // hyw -> Armn + 1379, 595, // ii -> Yiii + 1382, 295, // imy -> Lyci + 1386, 100, // inh -> Cyrl + 1390, 355, // int -> Mymr + 1394, 120, // ior -> Ethi + 1398, 520, // iru -> Taml + 1402, 10, // isk -> Arab + 1406, 185, // itk -> Hebr + 1410, 100, // itl -> Cyrl + 1414, 65, // iu -> Cans + 1417, 185, // iw -> Hebr + 1420, 210, // ja -> Jpan + 1423, 10, // jad -> Arab + 1427, 10, // jat -> Arab + 1431, 185, // jbe -> Hebr + 1435, 10, // jbn -> Arab + 1439, 100, // jct -> Cyrl + 1443, 555, // jda -> Tibt + 1447, 10, // jdg -> Arab + 1451, 100, // jdt -> Cyrl + 1455, 105, // jee -> Deva + 1459, 125, // jge -> Geor + 1463, 185, // ji -> Hebr + 1466, 165, // jje -> Hang + 1470, 355, // jkm -> Mymr + 1474, 105, // jml -> Deva + 1478, 505, // jna -> Takr + 1482, 10, // jnd -> Arab + 1486, 105, // jnl -> Deva + 1490, 105, // jns -> Deva + 1494, 10, // jog -> Arab + 1498, 185, // jpa -> Hebr + 1502, 185, // jpr -> Hebr + 1506, 185, // jrb -> Hebr + 1510, 105, // jul -> Deva + 1514, 395, // jun -> Orya + 1518, 395, // juy -> Orya + 1522, 555, // jya -> Tibt + 1526, 185, // jye -> Hebr + 1530, 125, // ka -> Geor + 1533, 100, // kaa -> Cyrl + 1537, 100, // kap -> Cyrl + 1541, 225, // kaw -> Kawi + 1545, 100, // kbd -> Cyrl + 1549, 555, // kbg -> Tibt + 1553, 10, // kbu -> Arab + 1557, 10, // kby -> Arab + 1561, 100, // kca -> Cyrl + 1565, 10, // kcy -> Arab + 1569, 45, // kdq -> Beng + 1573, 550, // kdt -> Thai + 1577, 100, // ket -> Cyrl + 1581, 330, // kev -> Mlym + 1585, 105, // kex -> Deva + 1589, 535, // key -> Telu + 1593, 245, // kfa -> Knda + 1597, 105, // kfb -> Deva + 1601, 535, // kfc -> Telu + 1605, 245, // kfd -> Knda + 1609, 520, // kfe -> Taml + 1613, 245, // kfg -> Knda + 1617, 330, // kfh -> Mlym + 1621, 520, // kfi -> Taml + 1625, 105, // kfk -> Deva + 1629, 10, // kfm -> Arab + 1633, 105, // kfp -> Deva + 1637, 105, // kfq -> Deva + 1641, 105, // kfr -> Deva + 1645, 105, // kfs -> Deva + 1649, 105, // kfu -> Deva + 1653, 105, // kfx -> Deva + 1657, 105, // kfy -> Deva + 1661, 105, // kgj -> Deva + 1665, 105, // kgy -> Deva + 1669, 515, // khb -> Talu + 1673, 550, // khf -> Thai + 1677, 555, // khg -> Tibt + 1681, 105, // khn -> Deva + 1685, 55, // kho -> Brah + 1689, 355, // kht -> Mymr + 1693, 100, // khv -> Cyrl + 1697, 10, // khw -> Arab + 1701, 105, // kif -> Deva + 1705, 100, // kim -> Cyrl + 1709, 105, // kip -> Deva + 1713, 260, // kjg -> Laoo + 1717, 100, // kjh -> Cyrl + 1721, 105, // kjl -> Deva + 1725, 105, // kjo -> Deva + 1729, 355, // kjp -> Mymr + 1733, 550, // kjt -> Thai + 1737, 555, // kjz -> Tibt + 1741, 100, // kk -> Cyrl + 1744, 10, // kk_AF -> Arab + 1750, 10, // kk_CN -> Arab + 1756, 10, // kk_IR -> Arab + 1762, 10, // kk_MN -> Arab + 1768, 555, // kkf -> Tibt + 1772, 255, // kkh -> Lana + 1776, 105, // kkt -> Deva + 1780, 105, // kle -> Deva + 1784, 10, // klj -> Arab + 1788, 105, // klr -> Deva + 1792, 235, // km -> Khmr + 1795, 105, // kmj -> Deva + 1799, 10, // kmz -> Arab + 1803, 245, // kn -> Knda + 1806, 105, // knn -> Deva + 1810, 250, // ko -> Kore + 1813, 100, // koi -> Cyrl + 1817, 105, // kok -> Deva + 1821, 100, // kpt -> Cyrl + 1825, 100, // kpy -> Cyrl + 1829, 495, // kqd -> Syrc + 1833, 120, // kqy -> Ethi + 1837, 105, // kra -> Deva + 1841, 100, // krc -> Cyrl + 1845, 100, // krk -> Cyrl + 1849, 235, // krr -> Khmr + 1853, 105, // kru -> Deva + 1857, 235, // krv -> Khmr + 1861, 10, // ks -> Arab + 1864, 355, // ksu -> Mymr + 1868, 355, // ksw -> Mymr + 1872, 105, // ksz -> Deva + 1876, 120, // ktb -> Ethi + 1880, 105, // kte -> Deva + 1884, 10, // ktl -> Arab + 1888, 425, // ktp -> Plrd + 1892, 10, // ku_LB -> Arab + 1898, 260, // kuf -> Laoo + 1902, 100, // kum -> Cyrl + 1906, 100, // kv -> Cyrl + 1909, 100, // kva -> Cyrl + 1913, 355, // kvq -> Mymr + 1917, 355, // kvt -> Mymr + 1921, 10, // kvx -> Arab + 1925, 215, // kvy -> Kali + 1929, 355, // kxf -> Mymr + 1933, 355, // kxk -> Mymr + 1937, 550, // kxm -> Thai + 1941, 10, // kxp -> Arab + 1945, 100, // ky -> Cyrl + 1948, 10, // ky_CN -> Arab + 1954, 215, // kyu -> Kali + 1958, 105, // kyv -> Deva + 1962, 105, // kyw -> Deva + 1966, 280, // lab -> Lina + 1970, 185, // lad -> Hebr + 1974, 105, // lae -> Deva + 1978, 10, // lah -> Arab + 1982, 100, // lbe -> Cyrl + 1986, 105, // lbf -> Deva + 1990, 555, // lbj -> Tibt + 1994, 105, // lbm -> Deva + 1998, 260, // lbo -> Laoo + 2002, 105, // lbr -> Deva + 2006, 550, // lcp -> Thai + 2010, 275, // lep -> Lepc + 2014, 100, // lez -> Cyrl + 2018, 105, // lhm -> Deva + 2022, 495, // lhs -> Syrc + 2026, 105, // lif -> Deva + 2030, 290, // lis -> Lisu + 2034, 555, // lkh -> Tibt + 2038, 10, // lki -> Arab + 2042, 105, // lmh -> Deva + 2046, 535, // lmn -> Telu + 2050, 260, // lo -> Laoo + 2053, 105, // loy -> Deva + 2057, 425, // lpo -> Plrd + 2061, 10, // lrc -> Arab + 2065, 10, // lrk -> Arab + 2069, 10, // lrl -> Arab + 2073, 10, // lsa -> Arab + 2077, 185, // lsd -> Hebr + 2081, 10, // lss -> Arab + 2085, 180, // ltc -> Hant + 2089, 555, // luk -> Tibt + 2093, 105, // luu -> Deva + 2097, 10, // luv -> Arab + 2101, 10, // luz -> Arab + 2105, 550, // lwl -> Thai + 2109, 550, // lwm -> Thai + 2113, 555, // lya -> Tibt + 2117, 175, // lzh -> Hans + 2121, 105, // mag -> Deva + 2125, 105, // mai -> Deva + 2129, 370, // man_GN -> Nkoo + 2136, 10, // mby -> Arab + 2140, 10, // mde -> Arab + 2144, 100, // mdf -> Cyrl + 2148, 120, // mdx -> Ethi + 2152, 120, // mdy -> Ethi + 2156, 10, // mfa -> Arab + 2160, 10, // mfi -> Arab + 2164, 270, // mga -> Latg + 2168, 105, // mgp -> Deva + 2172, 10, // mhj -> Arab + 2176, 305, // mid -> Mand + 2180, 105, // mjl -> Deva + 2184, 330, // mjq -> Mlym + 2188, 330, // mjr -> Mlym + 2192, 105, // mjt -> Deva + 2196, 535, // mju -> Telu + 2200, 330, // mjv -> Mlym + 2204, 105, // mjz -> Deva + 2208, 100, // mk -> Cyrl + 2211, 105, // mkb -> Deva + 2215, 105, // mke -> Deva + 2219, 10, // mki -> Arab + 2223, 550, // mkm -> Thai + 2227, 330, // ml -> Mlym + 2230, 550, // mlf -> Thai + 2234, 100, // mn -> Cyrl + 2237, 340, // mn_CN -> Mong + 2243, 340, // mnc -> Mong + 2247, 45, // mni -> Beng + 2251, 10, // mnj -> Arab + 2255, 100, // mns -> Cyrl + 2259, 355, // mnw -> Mymr + 2263, 550, // mpz -> Thai + 2267, 105, // mr -> Deva + 2270, 550, // mra -> Thai + 2274, 105, // mrd -> Deva + 2278, 100, // mrj -> Cyrl + 2282, 345, // mro -> Mroo + 2286, 105, // mrr -> Deva + 2290, 10, // ms_CC -> Arab + 2296, 100, // mtm -> Cyrl + 2300, 105, // mtr -> Deva + 2304, 100, // mud -> Cyrl + 2308, 555, // muk -> Tibt + 2312, 105, // mut -> Deva + 2316, 520, // muv -> Taml + 2320, 120, // muz -> Ethi + 2324, 10, // mve -> Arab + 2328, 340, // mvf -> Mong + 2332, 10, // mvy -> Arab + 2336, 120, // mvz -> Ethi + 2340, 105, // mwr -> Deva + 2344, 355, // mwt -> Mymr + 2348, 195, // mww -> Hmnp + 2352, 355, // my -> Mymr + 2355, 120, // mym -> Ethi + 2359, 100, // myv -> Cyrl + 2363, 305, // myz -> Mand + 2367, 10, // mzn -> Arab + 2371, 175, // nan -> Hans + 2375, 105, // nao -> Deva + 2379, 105, // ncd -> Deva + 2383, 260, // ncq -> Laoo + 2387, 100, // ndf -> Cyrl + 2391, 105, // ne -> Deva + 2394, 100, // neg -> Cyrl + 2398, 555, // neh -> Tibt + 2402, 590, // nei -> Xsux + 2406, 105, // new -> Deva + 2410, 260, // ngt -> Laoo + 2414, 100, // nio -> Cyrl + 2418, 535, // nit -> Telu + 2422, 100, // niv -> Cyrl + 2426, 10, // nli -> Arab + 2430, 10, // nlm -> Arab + 2434, 105, // nlx -> Deva + 2438, 105, // nmm -> Deva + 2442, 580, // nnp -> Wcho + 2446, 255, // nod -> Lana + 2450, 105, // noe -> Deva + 2454, 100, // nog -> Cyrl + 2458, 105, // noi -> Deva + 2462, 445, // non -> Runr + 2466, 595, // nos -> Yiii + 2470, 555, // npb -> Tibt + 2474, 370, // nqo -> Nkoo + 2478, 445, // nrn -> Runr + 2482, 595, // nsd -> Yiii + 2486, 595, // nsf -> Yiii + 2490, 65, // nsk -> Cans + 2494, 560, // nst -> Tnsa + 2498, 595, // nsv -> Yiii + 2502, 595, // nty -> Yiii + 2506, 10, // ntz -> Arab + 2510, 365, // nwc -> Newa + 2514, 105, // nwx -> Deva + 2518, 550, // nyl -> Thai + 2522, 10, // nyq -> Arab + 2526, 550, // nyw -> Thai + 2530, 100, // oaa -> Cyrl + 2534, 100, // oac -> Cyrl + 2538, 495, // oar -> Syrc + 2542, 125, // oav -> Geor + 2546, 420, // obm -> Phnx + 2550, 355, // obr -> Mymr + 2554, 10, // odk -> Arab + 2558, 590, // oht -> Xsux + 2562, 65, // oj -> Cans + 2565, 65, // ojs -> Cans + 2569, 165, // okm -> Hang + 2573, 170, // oko -> Hani + 2577, 235, // okz -> Khmr + 2581, 105, // ola -> Deva + 2585, 555, // ole -> Tibt + 2589, 100, // omk -> Cyrl + 2593, 350, // omp -> Mtei + 2597, 335, // omr -> Modi + 2601, 355, // omx -> Mymr + 2605, 105, // oon -> Deva + 2609, 395, // or -> Orya + 2612, 535, // ort -> Telu + 2616, 10, // oru -> Arab + 2620, 100, // orv -> Cyrl + 2624, 100, // os -> Cyrl + 2627, 400, // osa -> Osge + 2631, 200, // osc -> Ital + 2635, 205, // osi -> Java + 2639, 10, // ota -> Arab + 2643, 555, // otb -> Tibt + 2647, 390, // otk -> Orkh + 2651, 145, // oty -> Gran + 2655, 405, // oui -> Ougr + 2659, 160, // pa -> Guru + 2662, 10, // pa_PK -> Arab + 2668, 415, // pal -> Phli + 2672, 100, // paq -> Cyrl + 2676, 10, // pbt -> Arab + 2680, 235, // pcb -> Khmr + 2684, 355, // pce -> Mymr + 2688, 330, // pcf -> Mlym + 2692, 330, // pcg -> Mlym + 2696, 105, // pch -> Deva + 2700, 105, // pci -> Deva + 2704, 535, // pcj -> Telu + 2708, 395, // peg -> Orya + 2712, 585, // peo -> Xpeo + 2716, 230, // pgd -> Khar + 2720, 105, // pgg -> Deva + 2724, 380, // pgl -> Ogam + 2728, 200, // pgn -> Ital + 2732, 105, // phd -> Deva + 2736, 355, // phk -> Mymr + 2740, 10, // phl -> Arab + 2744, 420, // phn -> Phnx + 2748, 260, // pho -> Laoo + 2752, 10, // phr -> Arab + 2756, 550, // pht -> Thai + 2760, 550, // phu -> Thai + 2764, 10, // phv -> Arab + 2768, 105, // phw -> Deva + 2772, 470, // pi -> Sinh + 2775, 55, // pka -> Brah + 2779, 330, // pkr -> Mlym + 2783, 10, // plk -> Arab + 2787, 355, // pll -> Mymr + 2791, 55, // pmh -> Brah + 2795, 150, // pnt -> Grek + 2799, 230, // pra -> Khar + 2803, 10, // prc -> Arab + 2807, 10, // prd -> Arab + 2811, 550, // prt -> Thai + 2815, 10, // prx -> Arab + 2819, 10, // ps -> Arab + 2822, 10, // psh -> Arab + 2826, 10, // psi -> Arab + 2830, 10, // pst -> Arab + 2834, 55, // psu -> Brah + 2838, 105, // pum -> Deva + 2842, 355, // pwo -> Mymr + 2846, 105, // pwr -> Deva + 2850, 550, // pww -> Thai + 2854, 355, // pyx -> Mymr + 2858, 10, // qxq -> Arab + 2862, 105, // raa -> Deva + 2866, 105, // rab -> Deva + 2870, 105, // raf -> Deva + 2874, 45, // rah -> Beng + 2878, 105, // raj -> Deva + 2882, 105, // rav -> Deva + 2886, 355, // rbb -> Mymr + 2890, 10, // rdb -> Arab + 2894, 395, // rei -> Orya + 2898, 440, // rhg -> Rohg + 2902, 105, // rji -> Deva + 2906, 105, // rjs -> Deva + 2910, 235, // rka -> Khmr + 2914, 355, // rki -> Mymr + 2918, 45, // rkt -> Beng + 2922, 20, // rmi -> Armn + 2926, 10, // rmt -> Arab + 2930, 355, // rmz -> Mymr + 2934, 100, // rsk -> Cyrl + 2938, 105, // rtw -> Deva + 2942, 100, // ru -> Cyrl + 2945, 100, // rue -> Cyrl + 2949, 100, // rut -> Cyrl + 2953, 105, // rwr -> Deva + 2957, 220, // ryu -> Kana + 2961, 105, // sa -> Deva + 2964, 100, // sah -> Cyrl + 2968, 450, // sam -> Samr + 2972, 385, // sat -> Olck + 2976, 460, // saz -> Saur + 2980, 10, // sbn -> Arab + 2984, 555, // sbu -> Tibt + 2988, 105, // sck -> Deva + 2992, 10, // scl -> Arab + 2996, 105, // scp -> Deva + 3000, 260, // sct -> Laoo + 3004, 505, // scu -> Takr + 3008, 150, // scx -> Grek + 3012, 10, // sd -> Arab + 3015, 105, // sd_IN -> Deva + 3021, 10, // sdb -> Arab + 3025, 10, // sdf -> Arab + 3029, 10, // sdg -> Arab + 3033, 10, // sdh -> Arab + 3037, 45, // sdr -> Beng + 3041, 10, // sds -> Arab + 3045, 100, // sel -> Cyrl + 3049, 425, // sfm -> Plrd + 3053, 380, // sga -> Ogam + 3057, 100, // sgh -> Cyrl + 3061, 105, // sgj -> Deva + 3065, 10, // sgr -> Arab + 3069, 555, // sgt -> Tibt + 3073, 120, // sgw -> Ethi + 3077, 10, // sgy -> Arab + 3081, 10, // shd -> Arab + 3085, 540, // shi -> Tfng + 3089, 10, // shm -> Arab + 3093, 355, // shn -> Mymr + 3097, 10, // shu -> Arab + 3101, 10, // shv -> Arab + 3105, 470, // si -> Sinh + 3108, 100, // sia -> Cyrl + 3112, 555, // sip -> Tibt + 3116, 10, // siy -> Arab + 3120, 10, // siz -> Arab + 3124, 100, // sjd -> Cyrl + 3128, 105, // sjp -> Deva + 3132, 100, // sjt -> Cyrl + 3136, 550, // skb -> Thai + 3140, 105, // skj -> Deva + 3144, 10, // skr -> Arab + 3148, 595, // smh -> Yiii + 3152, 450, // smp -> Samr + 3156, 235, // smu -> Khmr + 3160, 10, // smy -> Arab + 3164, 530, // soa -> Tavt + 3168, 475, // sog -> Sogd + 3172, 105, // soi -> Deva + 3176, 550, // sou -> Thai + 3180, 555, // spt -> Tibt + 3184, 395, // spv -> Orya + 3188, 10, // sqo -> Arab + 3192, 260, // sqq -> Laoo + 3196, 10, // sqt -> Arab + 3200, 100, // sr -> Cyrl + 3203, 480, // srb -> Sora + 3207, 10, // srh -> Arab + 3211, 105, // srx -> Deva + 3215, 10, // srz -> Arab + 3219, 10, // ssh -> Arab + 3223, 260, // sss -> Laoo + 3227, 10, // sts -> Arab + 3231, 120, // stv -> Ethi + 3235, 100, // sty -> Cyrl + 3239, 490, // suz -> Sunu + 3243, 125, // sva -> Geor + 3247, 10, // swb -> Arab + 3251, 170, // swi -> Hani + 3255, 105, // swv -> Deva + 3259, 445, // sxu -> Runr + 3263, 495, // syc -> Syrc + 3267, 45, // syl -> Beng + 3271, 495, // syn -> Syrc + 3275, 495, // syr -> Syrc + 3279, 105, // syw -> Deva + 3283, 520, // ta -> Taml + 3286, 100, // tab -> Cyrl + 3290, 105, // taj -> Deva + 3294, 500, // tbk -> Tagb + 3298, 555, // tcn -> Tibt + 3302, 355, // tco -> Mymr + 3306, 520, // tcx -> Taml + 3310, 245, // tcy -> Knda + 3314, 540, // tda -> Tfng + 3318, 105, // tdb -> Deva + 3322, 510, // tdd -> Tale + 3326, 105, // tdg -> Deva + 3330, 105, // tdh -> Deva + 3334, 535, // te -> Telu + 3337, 205, // tes -> Java + 3341, 100, // tg -> Cyrl + 3344, 10, // tg_PK -> Arab + 3350, 105, // tge -> Deva + 3354, 555, // tgf -> Tibt + 3358, 550, // th -> Thai + 3361, 105, // the -> Deva + 3365, 105, // thf -> Deva + 3369, 510, // thi -> Tale + 3373, 105, // thl -> Deva + 3377, 550, // thm -> Thai + 3381, 105, // thq -> Deva + 3385, 105, // thr -> Deva + 3389, 105, // ths -> Deva + 3393, 120, // ti -> Ethi + 3396, 120, // tig -> Ethi + 3400, 105, // tij -> Deva + 3404, 100, // tin -> Cyrl + 3408, 355, // tjl -> Mymr + 3412, 10, // tjo -> Arab + 3416, 105, // tkb -> Deva + 3420, 10, // tks -> Arab + 3424, 105, // tkt -> Deva + 3428, 495, // tmr -> Syrc + 3432, 60, // tnv -> Cakm + 3436, 10, // tov -> Arab + 3440, 235, // tpu -> Khmr + 3444, 10, // tra -> Arab + 3448, 185, // trg -> Hebr + 3452, 10, // trm -> Arab + 3456, 10, // trw -> Arab + 3460, 150, // tsd -> Grek + 3464, 555, // tsj -> Tibt + 3468, 100, // tt -> Cyrl + 3471, 260, // tth -> Laoo + 3475, 260, // tto -> Laoo + 3479, 550, // tts -> Thai + 3483, 105, // ttz -> Deva + 3487, 355, // tvn -> Mymr + 3491, 105, // twm -> Deva + 3495, 525, // txg -> Tang + 3499, 565, // txo -> Toto + 3503, 530, // tyr -> Tavt + 3507, 100, // tyv -> Cyrl + 3511, 100, // ude -> Cyrl + 3515, 330, // udg -> Mlym + 3519, 100, // udi -> Cyrl + 3523, 100, // udm -> Cyrl + 3527, 10, // ug -> Arab + 3530, 100, // ug_KZ -> Cyrl + 3536, 100, // ug_MN -> Cyrl + 3542, 570, // uga -> Ugar + 3546, 100, // ugh -> Cyrl + 3550, 550, // ugo -> Thai + 3554, 100, // uk -> Cyrl + 3557, 395, // uki -> Orya + 3561, 100, // ulc -> Cyrl + 3565, 45, // unr -> Beng + 3569, 105, // unr_NP -> Deva + 3576, 45, // unx -> Beng + 3580, 10, // ur -> Arab + 3583, 550, // urk -> Thai + 3587, 10, // ush -> Arab + 3591, 150, // uum -> Grek + 3595, 10, // uz_AF -> Arab + 3601, 100, // uz_CN -> Cyrl + 3607, 10, // uzs -> Arab + 3611, 520, // vaa -> Taml + 3615, 10, // vaf -> Arab + 3619, 105, // vah -> Deva + 3623, 575, // vai -> Vaii + 3627, 105, // vas -> Deva + 3631, 105, // vav -> Deva + 3635, 105, // vay -> Deva + 3639, 10, // vgr -> Arab + 3643, 105, // vjk -> Deva + 3647, 245, // vmd -> Knda + 3651, 10, // vmh -> Arab + 3655, 120, // wal -> Ethi + 3659, 10, // wbk -> Arab + 3663, 535, // wbq -> Telu + 3667, 105, // wbr -> Deva + 3671, 120, // wle -> Ethi + 3675, 10, // wlo -> Arab + 3679, 105, // wme -> Deva + 3683, 10, // wne -> Arab + 3687, 10, // wni -> Arab + 3691, 130, // wsg -> Gong + 3695, 10, // wsv -> Arab + 3699, 105, // wtm -> Deva + 3703, 175, // wuu -> Hans + 3707, 0, // xag -> Aghb + 3711, 100, // xal -> Cyrl + 3715, 120, // xan -> Ethi + 3719, 100, // xas -> Cyrl + 3723, 85, // xco -> Chrs + 3727, 70, // xcr -> Cari + 3731, 100, // xdq -> Cyrl + 3735, 10, // xhe -> Arab + 3739, 235, // xhm -> Khmr + 3743, 395, // xis -> Orya + 3747, 10, // xka -> Arab + 3751, 10, // xkc -> Arab + 3755, 555, // xkf -> Tibt + 3759, 10, // xkj -> Arab + 3763, 10, // xkp -> Arab + 3767, 295, // xlc -> Lyci + 3771, 300, // xld -> Lydi + 3775, 115, // xly -> Elym + 3779, 125, // xmf -> Geor + 3783, 310, // xmn -> Mani + 3787, 325, // xmr -> Merc + 3791, 360, // xna -> Narb + 3795, 105, // xnr -> Deva + 3799, 150, // xpg -> Grek + 3803, 380, // xpi -> Ogam + 3807, 100, // xpm -> Cyrl + 3811, 430, // xpr -> Prti + 3815, 100, // xrm -> Cyrl + 3819, 100, // xrn -> Cyrl + 3823, 455, // xsa -> Sarb + 3827, 105, // xsr -> Deva + 3831, 55, // xtq -> Brah + 3835, 520, // xub -> Taml + 3839, 520, // xuj -> Taml + 3843, 200, // xve -> Ital + 3847, 10, // xvi -> Arab + 3851, 100, // xwo -> Cyrl + 3855, 315, // xzh -> Marc + 3859, 100, // yai -> Cyrl + 3863, 105, // ybh -> Deva + 3867, 105, // ybi -> Deva + 3871, 10, // ydg -> Arab + 3875, 330, // yea -> Mlym + 3879, 150, // yej -> Grek + 3883, 535, // yeu -> Telu + 3887, 425, // ygp -> Plrd + 3891, 185, // yhd -> Hebr + 3895, 185, // yi -> Hebr + 3898, 595, // yig -> Yiii + 3902, 185, // yih -> Hebr + 3906, 595, // yiv -> Yiii + 3910, 100, // ykg -> Cyrl + 3914, 100, // ykh -> Cyrl + 3918, 425, // yna -> Plrd + 3922, 100, // ynk -> Cyrl + 3926, 210, // yoi -> Jpan + 3930, 550, // yoy -> Thai + 3934, 100, // yrk -> Cyrl + 3938, 595, // ysd -> Yiii + 3942, 595, // ysn -> Yiii + 3946, 595, // ysp -> Yiii + 3950, 100, // ysr -> Cyrl + 3954, 425, // ysy -> Plrd + 3958, 185, // yud -> Hebr + 3962, 180, // yue -> Hant + 3966, 175, // yue_CN -> Hans + 3973, 100, // yug -> Cyrl + 3977, 100, // yux -> Cyrl + 3981, 425, // ywq -> Plrd + 3985, 425, // ywu -> Plrd + 3989, 555, // zau -> Tibt + 3993, 10, // zba -> Arab + 3997, 170, // zch -> Hani + 4001, 10, // zdj -> Arab + 4005, 170, // zeh -> Hani + 4009, 540, // zen -> Tfng + 4013, 170, // zgb -> Hani + 4017, 540, // zgh -> Tfng + 4021, 170, // zgm -> Hani + 4025, 170, // zgn -> Hani + 4029, 175, // zh -> Hans + 4032, 180, // zh_AU -> Hant + 4038, 180, // zh_BN -> Hant + 4044, 180, // zh_GB -> Hant + 4050, 180, // zh_GF -> Hant + 4056, 180, // zh_HK -> Hant + 4062, 180, // zh_ID -> Hant + 4068, 180, // zh_MO -> Hant + 4074, 180, // zh_PA -> Hant + 4080, 180, // zh_PF -> Hant + 4086, 180, // zh_PH -> Hant + 4092, 180, // zh_SR -> Hant + 4098, 180, // zh_TH -> Hant + 4104, 180, // zh_TW -> Hant + 4110, 180, // zh_US -> Hant + 4116, 180, // zh_VN -> Hant + 4122, 170, // zhd -> Hani + 4126, 375, // zhx -> Nshu + 4130, 100, // zko -> Cyrl + 4134, 240, // zkt -> Kits + 4138, 100, // zkz -> Cyrl + 4142, 170, // zlj -> Hani + 4146, 170, // zln -> Hani + 4150, 170, // zlq -> Hani + 4154, 170, // zqe -> Hani + 4158, 395, // zrg -> Orya + 4162, 185, // zrp -> Hebr + 4166, 10, // zum -> Arab + 4170, 120, // zwa -> Ethi + 4174, 170, // zyg -> Hani + 4178, 170, // zyn -> Hani + 4182, 170, // zzj -> Hani }; //====================================================================== @@ -1142,26 +1171,26 @@ const char parentLocaleChars[] = "en_ZM\0en_ZW\0es_419\0es_AR\0es_BO\0es_BR\0es_BZ\0es_CL\0es_CO\0" "es_CR\0es_CU\0es_DO\0es_EC\0es_GT\0es_HN\0es_JP\0es_MX\0es_NI\0" "es_PA\0es_PE\0es_PR\0es_PY\0es_SV\0es_US\0es_UY\0es_VE\0ff_Adlm\0" - "ff_Arab\0fr_HT\0ha_Arab\0hi_Latn\0ht\0iu_Latn\0kk_Arab\0ks_Deva\0" - "ku_Arab\0kxv_Deva\0kxv_Orya\0kxv_Telu\0ky_Arab\0ky_Latn\0ml_Arab\0" - "mn_Mong\0mni_Mtei\0ms_Arab\0nb\0nn\0no\0no_NO\0pa_Arab\0pt_AO\0" - "pt_CH\0pt_CV\0pt_FR\0pt_GQ\0pt_GW\0pt_LU\0pt_MO\0pt_MZ\0pt_PT\0" - "pt_ST\0pt_TL\0root\0sat_Deva\0sd_Deva\0sd_Khoj\0sd_Sind\0shi_Latn\0" - "so_Arab\0sr_Latn\0sw_Arab\0tg_Arab\0ug_Cyrl\0uz_Arab\0uz_Cyrl\0" - "vai_Latn\0wo_Arab\0yo_Arab\0yue_Hans\0zh_Hant\0zh_Hant_HK\0zh_Hant_MO\0" - ""; + "ff_Arab\0fr_HT\0ha_Arab\0hi_Latn\0ht\0iu_Latn\0kaa_Latn\0kk_Arab\0" + "kok_Latn\0ks_Deva\0ku_Arab\0kxv_Deva\0kxv_Orya\0kxv_Telu\0ky_Arab\0" + "ky_Latn\0ml_Arab\0mn_Mong\0mni_Mtei\0ms_Arab\0nb\0nn\0no\0no_NO\0" + "pa_Arab\0pt_AO\0pt_CH\0pt_CV\0pt_FR\0pt_GQ\0pt_GW\0pt_LU\0pt_MO\0" + "pt_MZ\0pt_PT\0pt_ST\0pt_TL\0root\0sat_Deva\0sd_Deva\0sd_Khoj\0" + "sd_Sind\0shi_Latn\0so_Arab\0sr_Latn\0sw_Arab\0tg_Arab\0ug_Cyrl\0" + "uz_Arab\0uz_Cyrl\0vai_Latn\0wo_Arab\0yo_Arab\0yue_Hans\0zh_Hant\0" + "zh_Hant_HK\0zh_Hant_MO\0"; const int32_t parentLocaleTable[] = { - 0, 1062, // az_Arab -> root - 8, 1062, // az_Cyrl -> root - 16, 1062, // bal_Latn -> root - 25, 1062, // blt_Latn -> root - 34, 1062, // bm_Nkoo -> root - 42, 1062, // bs_Cyrl -> root - 50, 1062, // byn_Latn -> root - 59, 1062, // cu_Glag -> root - 67, 1062, // dje_Arab -> root - 76, 1062, // dyo_Arab -> root + 0, 1080, // az_Arab -> root + 8, 1080, // az_Cyrl -> root + 16, 1080, // bal_Latn -> root + 25, 1080, // blt_Latn -> root + 34, 1080, // bm_Nkoo -> root + 42, 1080, // bs_Cyrl -> root + 50, 1080, // byn_Latn -> root + 59, 1080, // cu_Glag -> root + 67, 1080, // dje_Arab -> root + 76, 1080, // dyo_Arab -> root 92, 85, // en_150 -> en_001 99, 85, // en_AG -> en_001 105, 85, // en_AI -> en_001 @@ -1183,7 +1212,7 @@ const int32_t parentLocaleTable[] = { 201, 85, // en_DG -> en_001 207, 92, // en_DK -> en_150 213, 85, // en_DM -> en_001 - 219, 1062, // en_Dsrt -> root + 219, 1080, // en_Dsrt -> root 227, 85, // en_ER -> en_001 233, 92, // en_FI -> en_150 239, 85, // en_FJ -> en_001 @@ -1243,7 +1272,7 @@ const int32_t parentLocaleTable[] = { 563, 85, // en_SS -> en_001 569, 85, // en_SX -> en_001 575, 85, // en_SZ -> en_001 - 581, 1062, // en_Shaw -> root + 581, 1080, // en_Shaw -> root 589, 85, // en_TC -> en_001 595, 85, // en_TK -> en_001 601, 85, // en_TO -> en_001 @@ -1281,57 +1310,59 @@ const int32_t parentLocaleTable[] = { 800, 673, // es_US -> es_419 806, 673, // es_UY -> es_419 812, 673, // es_VE -> es_419 - 818, 1062, // ff_Adlm -> root - 826, 1062, // ff_Arab -> root - 840, 1062, // ha_Arab -> root + 818, 1080, // ff_Adlm -> root + 826, 1080, // ff_Arab -> root + 840, 1080, // ha_Arab -> root 848, 329, // hi_Latn -> en_IN 856, 834, // ht -> fr_HT - 859, 1062, // iu_Latn -> root - 867, 1062, // kk_Arab -> root - 875, 1062, // ks_Deva -> root - 883, 1062, // ku_Arab -> root - 891, 1062, // kxv_Deva -> root - 900, 1062, // kxv_Orya -> root - 909, 1062, // kxv_Telu -> root - 918, 1062, // ky_Arab -> root - 926, 1062, // ky_Latn -> root - 934, 1062, // ml_Arab -> root - 942, 1062, // mn_Mong -> root - 950, 1062, // mni_Mtei -> root - 959, 1062, // ms_Arab -> root - 967, 973, // nb -> no - 970, 973, // nn -> no - 976, 973, // no_NO -> no - 982, 1062, // pa_Arab -> root - 990, 1044, // pt_AO -> pt_PT - 996, 1044, // pt_CH -> pt_PT - 1002, 1044, // pt_CV -> pt_PT - 1008, 1044, // pt_FR -> pt_PT - 1014, 1044, // pt_GQ -> pt_PT - 1020, 1044, // pt_GW -> pt_PT - 1026, 1044, // pt_LU -> pt_PT - 1032, 1044, // pt_MO -> pt_PT - 1038, 1044, // pt_MZ -> pt_PT - 1050, 1044, // pt_ST -> pt_PT - 1056, 1044, // pt_TL -> pt_PT - 1067, 1062, // sat_Deva -> root - 1076, 1062, // sd_Deva -> root - 1084, 1062, // sd_Khoj -> root - 1092, 1062, // sd_Sind -> root - 1100, 1062, // shi_Latn -> root - 1109, 1062, // so_Arab -> root - 1117, 1062, // sr_Latn -> root - 1125, 1062, // sw_Arab -> root - 1133, 1062, // tg_Arab -> root - 1141, 1062, // ug_Cyrl -> root - 1149, 1062, // uz_Arab -> root - 1157, 1062, // uz_Cyrl -> root - 1165, 1062, // vai_Latn -> root - 1174, 1062, // wo_Arab -> root - 1182, 1062, // yo_Arab -> root - 1190, 1062, // yue_Hans -> root - 1199, 1062, // zh_Hant -> root - 1218, 1207, // zh_Hant_MO -> zh_Hant_HK + 859, 1080, // iu_Latn -> root + 867, 1080, // kaa_Latn -> root + 876, 1080, // kk_Arab -> root + 884, 1080, // kok_Latn -> root + 893, 1080, // ks_Deva -> root + 901, 1080, // ku_Arab -> root + 909, 1080, // kxv_Deva -> root + 918, 1080, // kxv_Orya -> root + 927, 1080, // kxv_Telu -> root + 936, 1080, // ky_Arab -> root + 944, 1080, // ky_Latn -> root + 952, 1080, // ml_Arab -> root + 960, 1080, // mn_Mong -> root + 968, 1080, // mni_Mtei -> root + 977, 1080, // ms_Arab -> root + 985, 991, // nb -> no + 988, 991, // nn -> no + 994, 991, // no_NO -> no + 1000, 1080, // pa_Arab -> root + 1008, 1062, // pt_AO -> pt_PT + 1014, 1062, // pt_CH -> pt_PT + 1020, 1062, // pt_CV -> pt_PT + 1026, 1062, // pt_FR -> pt_PT + 1032, 1062, // pt_GQ -> pt_PT + 1038, 1062, // pt_GW -> pt_PT + 1044, 1062, // pt_LU -> pt_PT + 1050, 1062, // pt_MO -> pt_PT + 1056, 1062, // pt_MZ -> pt_PT + 1068, 1062, // pt_ST -> pt_PT + 1074, 1062, // pt_TL -> pt_PT + 1085, 1080, // sat_Deva -> root + 1094, 1080, // sd_Deva -> root + 1102, 1080, // sd_Khoj -> root + 1110, 1080, // sd_Sind -> root + 1118, 1080, // shi_Latn -> root + 1127, 1080, // so_Arab -> root + 1135, 1080, // sr_Latn -> root + 1143, 1080, // sw_Arab -> root + 1151, 1080, // tg_Arab -> root + 1159, 1080, // ug_Cyrl -> root + 1167, 1080, // uz_Arab -> root + 1175, 1080, // uz_Cyrl -> root + 1183, 1080, // vai_Latn -> root + 1192, 1080, // wo_Arab -> root + 1200, 1080, // yo_Arab -> root + 1208, 1080, // yue_Hans -> root + 1217, 1080, // zh_Hant -> root + 1236, 1225, // zh_Hant_MO -> zh_Hant_HK }; diff --git a/thirdparty/icu4c/common/localematcher.cpp b/thirdparty/icu4c/common/localematcher.cpp index 8aae596bc8d7..1e74dd1f1493 100644 --- a/thirdparty/icu4c/common/localematcher.cpp +++ b/thirdparty/icu4c/common/localematcher.cpp @@ -780,7 +780,7 @@ int32_t acceptLanguage(UEnumeration &supportedLocales, Locale::Iterator &desired ULOC_ACCEPT_VALID : ULOC_ACCEPT_FALLBACK; } const char *bestStr = result.getSupportedLocale()->getName(); - int32_t bestLength = (int32_t)uprv_strlen(bestStr); + int32_t bestLength = static_cast(uprv_strlen(bestStr)); if (bestLength <= capacity) { uprv_memcpy(dest, bestStr, bestLength); } diff --git a/thirdparty/icu4c/common/locbased.h b/thirdparty/icu4c/common/locbased.h index 45738863b5ec..2d260b527873 100644 --- a/thirdparty/icu4c/common/locbased.h +++ b/thirdparty/icu4c/common/locbased.h @@ -99,7 +99,7 @@ inline LocaleBased::LocaleBased(char* validAlias, char* actualAlias) : inline LocaleBased::LocaleBased(const char* validAlias, const char* actualAlias) : // ugh: cast away const - valid((char*)validAlias), actual((char*)actualAlias) { + valid(const_cast(validAlias)), actual(const_cast(actualAlias)) { } U_NAMESPACE_END diff --git a/thirdparty/icu4c/common/locdispnames.cpp b/thirdparty/icu4c/common/locdispnames.cpp index 0be069357af7..ddf7687a2bf0 100644 --- a/thirdparty/icu4c/common/locdispnames.cpp +++ b/thirdparty/icu4c/common/locdispnames.cpp @@ -245,7 +245,7 @@ Locale::getDisplayName(const Locale &displayLocale, return result; } -#if ! UCONFIG_NO_BREAK_ITERATION +#if !UCONFIG_NO_BREAK_ITERATION // ------------------------------------- // Gets the objectLocale display name in the default locale language. @@ -351,7 +351,7 @@ _getStringOrCopyKey(const char *path, const char *locale, } } else { /* no string from a resource bundle: convert the substitute */ - length=(int32_t)uprv_strlen(substitute); + length = static_cast(uprv_strlen(substitute)); u_charsToUChars(substitute, dest, uprv_min(length, destCapacity)); errorCode = U_USING_DEFAULT_WARNING; } @@ -835,7 +835,10 @@ uloc_getDisplayKeywordValue( const char* locale, } /* get the keyword value */ - CharString keywordValue = ulocimp_getKeywordValue(locale, keyword, *status); + CharString keywordValue; + if (keyword != nullptr && *keyword != '\0') { + keywordValue = ulocimp_getKeywordValue(locale, keyword, *status); + } /* * if the keyword is equal to currency .. then to get the display name diff --git a/thirdparty/icu4c/common/locdspnm.cpp b/thirdparty/icu4c/common/locdspnm.cpp index c65a349dbd38..270684341c5c 100644 --- a/thirdparty/icu4c/common/locdspnm.cpp +++ b/thirdparty/icu4c/common/locdspnm.cpp @@ -336,10 +336,11 @@ LocaleDisplayNamesImpl::LocaleDisplayNamesImpl(const Locale& locale, { while (length-- > 0) { UDisplayContext value = *contexts++; - UDisplayContextType selector = (UDisplayContextType)((uint32_t)value >> 8); + UDisplayContextType selector = + static_cast(static_cast(value) >> 8); switch (selector) { case UDISPCTX_TYPE_DIALECT_HANDLING: - dialectHandling = (UDialectHandling)value; + dialectHandling = static_cast(value); break; case UDISPCTX_TYPE_CAPITALIZATION: capitalizationContext = value; @@ -407,7 +408,7 @@ LocaleDisplayNamesImpl::CapitalizationContextSink::~CapitalizationContextSink() void LocaleDisplayNamesImpl::initialize() { - LocaleDisplayNamesImpl *nonConstThis = (LocaleDisplayNamesImpl *)this; + LocaleDisplayNamesImpl* nonConstThis = this; nonConstThis->locale = langData.getLocale() == Locale::getRoot() ? regionData.getLocale() : langData.getLocale(); @@ -426,16 +427,16 @@ LocaleDisplayNamesImpl::initialize() { pattern = UnicodeString("{0} ({1})", -1, US_INV); } format.applyPatternMinMaxArguments(pattern, 2, 2, status); - if (pattern.indexOf((char16_t)0xFF08) >= 0) { - formatOpenParen.setTo((char16_t)0xFF08); // fullwidth ( - formatReplaceOpenParen.setTo((char16_t)0xFF3B); // fullwidth [ - formatCloseParen.setTo((char16_t)0xFF09); // fullwidth ) - formatReplaceCloseParen.setTo((char16_t)0xFF3D); // fullwidth ] + if (pattern.indexOf(static_cast(0xFF08)) >= 0) { + formatOpenParen.setTo(static_cast(0xFF08)); // fullwidth ( + formatReplaceOpenParen.setTo(static_cast(0xFF3B)); // fullwidth [ + formatCloseParen.setTo(static_cast(0xFF09)); // fullwidth ) + formatReplaceCloseParen.setTo(static_cast(0xFF3D)); // fullwidth ] } else { - formatOpenParen.setTo((char16_t)0x0028); // ( - formatReplaceOpenParen.setTo((char16_t)0x005B); // [ - formatCloseParen.setTo((char16_t)0x0029); // ) - formatReplaceCloseParen.setTo((char16_t)0x005D); // ] + formatOpenParen.setTo(static_cast(0x0028)); // ( + formatReplaceOpenParen.setTo(static_cast(0x005B)); // [ + formatCloseParen.setTo(static_cast(0x0029)); // ) + formatReplaceCloseParen.setTo(static_cast(0x005D)); // ] } UnicodeString ktPattern; @@ -495,7 +496,7 @@ UDisplayContext LocaleDisplayNamesImpl::getContext(UDisplayContextType type) const { switch (type) { case UDISPCTX_TYPE_DIALECT_HANDLING: - return (UDisplayContext)dialectHandling; + return static_cast(dialectHandling); case UDISPCTX_TYPE_CAPITALIZATION: return capitalizationContext; case UDISPCTX_TYPE_DISPLAY_LENGTH: @@ -505,7 +506,7 @@ LocaleDisplayNamesImpl::getContext(UDisplayContextType type) const { default: break; } - return (UDisplayContext)0; + return static_cast(0); } UnicodeString& @@ -652,7 +653,7 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc, appendWithSep(resultRemainder, temp3); } else { appendWithSep(resultRemainder, temp) - .append((char16_t)0x3d /* = */) + .append(static_cast(0x3d) /* = */) .append(temp2); } } diff --git a/thirdparty/icu4c/common/locid.cpp b/thirdparty/icu4c/common/locid.cpp index 37bbe4ba949e..4a73f5592052 100644 --- a/thirdparty/icu4c/common/locid.cpp +++ b/thirdparty/icu4c/common/locid.cpp @@ -31,6 +31,8 @@ ****************************************************************************** */ +#include +#include #include #include "unicode/bytestream.h" @@ -109,7 +111,7 @@ namespace { // void U_CALLCONV deleteLocale(void *obj) { - delete (icu::Locale *) obj; + delete static_cast(obj); } UBool U_CALLCONV locale_cleanup() @@ -132,7 +134,7 @@ void U_CALLCONV locale_init(UErrorCode &status) { U_NAMESPACE_USE U_ASSERT(gLocaleCache == nullptr); - gLocaleCache = new Locale[(int)eMAX_LOCALES]; + gLocaleCache = new Locale[static_cast(eMAX_LOCALES)]; if (gLocaleCache == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; return; @@ -194,7 +196,7 @@ Locale *locale_set_default_internal(const char *id, UErrorCode& status) { ucln_common_registerCleanup(UCLN_COMMON_LOCALE, locale_cleanup); } - Locale *newDefault = (Locale *)uhash_get(gDefaultLocalesHashT, localeNameBuf.data()); + Locale* newDefault = static_cast(uhash_get(gDefaultLocalesHashT, localeNameBuf.data())); if (newDefault == nullptr) { newDefault = new Locale(Locale::eBOGUS); if (newDefault == nullptr) { @@ -202,7 +204,7 @@ Locale *locale_set_default_internal(const char *id, UErrorCode& status) { return gDefaultLocale; } newDefault->init(localeNameBuf.data(), false); - uhash_put(gDefaultLocalesHashT, (char*) newDefault->getName(), newDefault, &status); + uhash_put(gDefaultLocalesHashT, const_cast(newDefault->getName()), newDefault, &status); if (U_FAILURE(status)) { return gDefaultLocale; } @@ -296,7 +298,7 @@ Locale::Locale( const char * newLanguage, // Language if ( newLanguage != nullptr ) { - lsize = (int32_t)uprv_strlen(newLanguage); + lsize = static_cast(uprv_strlen(newLanguage)); if ( lsize < 0 || lsize > ULOC_STRING_LIMIT ) { // int32 wrap setToBogus(); return; @@ -308,7 +310,7 @@ Locale::Locale( const char * newLanguage, // _Country if ( newCountry != nullptr ) { - csize = (int32_t)uprv_strlen(newCountry); + csize = static_cast(uprv_strlen(newCountry)); if ( csize < 0 || csize > ULOC_STRING_LIMIT ) { // int32 wrap setToBogus(); return; @@ -325,7 +327,7 @@ Locale::Locale( const char * newLanguage, } // remove trailing _'s - vsize = (int32_t)uprv_strlen(newVariant); + vsize = static_cast(uprv_strlen(newVariant)); if ( vsize < 0 || vsize > ULOC_STRING_LIMIT ) { // int32 wrap setToBogus(); return; @@ -338,7 +340,7 @@ Locale::Locale( const char * newLanguage, if ( newKeywords != nullptr) { - ksize = (int32_t)uprv_strlen(newKeywords); + ksize = static_cast(uprv_strlen(newKeywords)); if ( ksize < 0 || ksize > ULOC_STRING_LIMIT ) { setToBogus(); return; @@ -1200,8 +1202,8 @@ AliasReplacer::parseLanguageReplacement( return; } // We have multiple field so we have to allocate and parse - CharString* str = new CharString( - replacement, (int32_t)uprv_strlen(replacement), status); + CharString* str = + new CharString(replacement, static_cast(uprv_strlen(replacement)), status); LocalPointer lpStr(str, status); toBeFreed.adoptElement(lpStr.orphan(), status); if (U_FAILURE(status)) { @@ -1213,7 +1215,7 @@ AliasReplacer::parseLanguageReplacement( *endOfField = '\0'; // null terminiate it. endOfField++; const char* start = endOfField; - endOfField = (char*) uprv_strchr(start, '_'); + endOfField = const_cast(uprv_strchr(start, '_')); size_t len = 0; if (endOfField == nullptr) { len = uprv_strlen(start); @@ -1228,7 +1230,7 @@ AliasReplacer::parseLanguageReplacement( return; } start = endOfField++; - endOfField = (char*)uprv_strchr(start, '_'); + endOfField = const_cast(uprv_strchr(start, '_')); if (endOfField == nullptr) { len = uprv_strlen(start); } else { @@ -1243,7 +1245,7 @@ AliasReplacer::parseLanguageReplacement( return; } start = endOfField++; - endOfField = (char*)uprv_strchr(start, '_'); + endOfField = const_cast(uprv_strchr(start, '_')); if (endOfField == nullptr) { len = uprv_strlen(start); } else { @@ -1285,7 +1287,7 @@ AliasReplacer::replaceLanguage( variant_index++) { if (checkVariants) { U_ASSERT(variant_index < variant_size); - searchVariant = (const char*)(variants.elementAt(variant_index)); + searchVariant = static_cast(variants.elementAt(variant_index)); } if (searchVariant != nullptr && uprv_strlen(searchVariant) < 4) { @@ -1406,13 +1408,13 @@ AliasReplacer::replaceTerritory(UVector& toBeFreed, UErrorCode& status) U_ASSERT(foundInReplacement[len] == ' ' || foundInReplacement[len] == '\0'); item.adoptInsteadAndCheckErrorCode( - new CharString(foundInReplacement, (int32_t)len, status), status); + new CharString(foundInReplacement, static_cast(len), status), status); } } if (item.isNull() && U_SUCCESS(status)) { item.adoptInsteadAndCheckErrorCode( new CharString(replacement, - (int32_t)(firstSpace - replacement), status), status); + static_cast(firstSpace - replacement), status), status); } if (U_FAILURE(status)) { return false; } replacedRegion = item->data(); @@ -1454,7 +1456,7 @@ AliasReplacer::replaceVariant(UErrorCode& status) } // Since we may have more than one variant, we need to loop through them. for (int32_t i = 0; i < variants.size(); i++) { - const char *variant = (const char*)(variants.elementAt(i)); + const char* variant = static_cast(variants.elementAt(i)); const char *replacement = data->variantMap().get(variant); if (replacement == nullptr) { // Found no replacement data for this variant. @@ -1496,7 +1498,7 @@ AliasReplacer::replaceSubdivision( size_t len = (firstSpace != nullptr) ? (firstSpace - replacement) : uprv_strlen(replacement); if (2 <= len && len <= 8) { - output.append(replacement, (int32_t)len, status); + output.append(replacement, static_cast(len), status); if (2 == len) { // Add 'zzzz' based on changes to UTS #35 for CLDR-14312. output.append("zzzz", 4, status); @@ -1546,7 +1548,7 @@ AliasReplacer::replaceTransformedExtensions( } const char* nextTKey = ultag_getTKeyStart(tvalue); if (nextTKey != nullptr) { - *((char*)(nextTKey-1)) = '\0'; // NUL terminate tvalue + *const_cast(nextTKey - 1) = '\0'; // NUL terminate tvalue } tfields.insertElementAt((void*)tkey, tfields.size(), status); if (U_FAILURE(status)) { @@ -1561,17 +1563,17 @@ AliasReplacer::replaceTransformedExtensions( if (output.length() > 0) { output.append('-', status); } - const char* tfield = (const char*) tfields.elementAt(i); + const char* tfield = static_cast(tfields.elementAt(i)); const char* tvalue = uprv_strchr(tfield, '-'); if (tvalue == nullptr) { status = U_ILLEGAL_ARGUMENT_ERROR; return false; } // Split the "tkey-tvalue" pair string so that we can canonicalize the tvalue. - *((char*)tvalue++) = '\0'; // NUL terminate tkey + *const_cast(tvalue++) = '\0'; // NUL terminate tkey output.append(tfield, status).append('-', status); - const char* bcpTValue = ulocimp_toBcpType(tfield, tvalue, nullptr, nullptr); - output.append((bcpTValue == nullptr) ? tvalue : bcpTValue, status); + std::optional bcpTValue = ulocimp_toBcpType(tfield, tvalue); + output.append(bcpTValue.has_value() ? *bcpTValue : tvalue, status); } } if (U_FAILURE(status)) { @@ -1604,7 +1606,7 @@ AliasReplacer::outputToString( int32_t variantsStart = out.length(); for (int32_t i = 0; i < variants.size(); i++) { out.append(SEP_CHAR, status) - .append((const char*)(variants.elementAt(i)), + .append(static_cast(variants.elementAt(i)), status); } T_CString_toUpperCase(out.data() + variantsStart); @@ -1673,7 +1675,7 @@ AliasReplacer::replace(const Locale& locale, CharString& out, UErrorCode& status int changed = 0; // A UVector to to hold CharString allocated by the replace* method // and freed when out of scope from his function. - UVector stringsToBeFreed([](void *obj){ delete ((CharString*) obj); }, + UVector stringsToBeFreed([](void *obj) { delete static_cast(obj); }, nullptr, 10, status); while (U_SUCCESS(status)) { // Something wrong with the data cause looping here more than 10 times @@ -1866,14 +1868,14 @@ Locale& Locale::init(const char* localeID, UBool canonicalize) uloc_canonicalize(localeID, fullName, sizeof(fullNameBuffer), &err) : uloc_getName(localeID, fullName, sizeof(fullNameBuffer), &err); - if(err == U_BUFFER_OVERFLOW_ERROR || length >= (int32_t)sizeof(fullNameBuffer)) { + if (err == U_BUFFER_OVERFLOW_ERROR || length >= static_cast(sizeof(fullNameBuffer))) { U_ASSERT(baseName == nullptr); /*Go to heap for the fullName if necessary*/ - fullName = (char *)uprv_malloc(sizeof(char)*(length + 1)); - if (fullName == nullptr) { - fullName = fullNameBuffer; + char* newFullName = static_cast(uprv_malloc(sizeof(char) * (length + 1))); + if (newFullName == nullptr) { break; // error: out of memory } + fullName = newFullName; err = U_ZERO_ERROR; length = canonicalize ? uloc_canonicalize(localeID, fullName, length+1, &err) : @@ -1895,7 +1897,7 @@ Locale& Locale::init(const char* localeID, UBool canonicalize) fieldIdx < UPRV_LENGTHOF(field)-1 && (at == nullptr || separator < at)) { field[fieldIdx] = separator + 1; - fieldLen[fieldIdx-1] = (int32_t)(separator - field[fieldIdx-1]); + fieldLen[fieldIdx - 1] = static_cast(separator - field[fieldIdx - 1]); fieldIdx++; } // variant may contain @foo or .foo POSIX cruft; remove it @@ -1905,12 +1907,12 @@ Locale& Locale::init(const char* localeID, UBool canonicalize) if (separator==nullptr || (sep2!=nullptr && separator > sep2)) { separator = sep2; } - fieldLen[fieldIdx-1] = (int32_t)(separator - field[fieldIdx-1]); + fieldLen[fieldIdx - 1] = static_cast(separator - field[fieldIdx - 1]); } else { - fieldLen[fieldIdx-1] = length - (int32_t)(field[fieldIdx-1] - fullName); + fieldLen[fieldIdx - 1] = length - static_cast(field[fieldIdx - 1] - fullName); } - if (fieldLen[0] >= (int32_t)(sizeof(language))) + if (fieldLen[0] >= static_cast(sizeof(language))) { break; // error: the language field is too long } @@ -1941,7 +1943,7 @@ Locale& Locale::init(const char* localeID, UBool canonicalize) if (fieldLen[variantField] > 0) { /* We have a variant */ - variantBegin = (int32_t)(field[variantField] - fullName); + variantBegin = static_cast(field[variantField] - fullName); } err = U_ZERO_ERROR; @@ -1991,12 +1993,13 @@ Locale::initBaseName(UErrorCode &status) { const char *eqPtr = uprv_strchr(fullName, '='); if (atPtr && eqPtr && atPtr < eqPtr) { // Key words exist. - int32_t baseNameLength = (int32_t)(atPtr - fullName); - baseName = (char *)uprv_malloc(baseNameLength + 1); - if (baseName == nullptr) { + int32_t baseNameLength = static_cast(atPtr - fullName); + char* newBaseName = static_cast(uprv_malloc(baseNameLength + 1)); + if (newBaseName == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; return; } + baseName = newBaseName; uprv_strncpy(baseName, fullName, baseNameLength); baseName[baseNameLength] = 0; @@ -2434,7 +2437,7 @@ class KeywordEnumeration : public StringEnumeration { UErrorCode status = U_ZERO_ERROR; return new KeywordEnumeration( keywords.data(), keywords.length(), - (int32_t)(current - keywords.data()), status); + static_cast(current - keywords.data()), status); } virtual int32_t count(UErrorCode& status) const override { @@ -2453,7 +2456,7 @@ class KeywordEnumeration : public StringEnumeration { int32_t len; if(U_SUCCESS(status) && *current != 0) { result = current; - len = (int32_t)uprv_strlen(current); + len = static_cast(uprv_strlen(current)); current += len+1; if(resultLength != nullptr) { *resultLength = len; @@ -2596,13 +2599,7 @@ Locale::getKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& sta return; } - // TODO: Remove the need for a const char* to a NUL terminated buffer. - const CharString keywordName_nul(keywordName, status); - if (U_FAILURE(status)) { - return; - } - - ulocimp_getKeywordValue(fullName, keywordName_nul.data(), sink, status); + ulocimp_getKeywordValue(fullName, keywordName, sink, status); } void @@ -2613,88 +2610,89 @@ Locale::getUnicodeKeywordValue(StringPiece keywordName, return; } - // TODO: Remove the need for a const char* to a NUL terminated buffer. - const CharString keywordName_nul(keywordName, status); - if (U_FAILURE(status)) { - return; - } - - const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data()); - if (legacy_key == nullptr) { + std::optional legacy_key = ulocimp_toLegacyKeyWithFallback(keywordName); + if (!legacy_key.has_value()) { status = U_ILLEGAL_ARGUMENT_ERROR; return; } - auto legacy_value = getKeywordValue(legacy_key, status); + auto legacy_value = getKeywordValue(*legacy_key, status); if (U_FAILURE(status)) { return; } - const char* unicode_value = uloc_toUnicodeLocaleType( - keywordName_nul.data(), legacy_value.data()); - - if (unicode_value == nullptr) { + std::optional unicode_value = + ulocimp_toBcpTypeWithFallback(keywordName, legacy_value.toStringPiece()); + if (!unicode_value.has_value()) { status = U_ILLEGAL_ARGUMENT_ERROR; return; } - sink.Append(unicode_value, static_cast(uprv_strlen(unicode_value))); + sink.Append(unicode_value->data(), static_cast(unicode_value->size())); } void -Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status) -{ - if (U_FAILURE(status)) { +Locale::setKeywordValue(StringPiece keywordName, + StringPiece keywordValue, + UErrorCode& status) { + if (U_FAILURE(status)) { return; } + if (keywordName.empty()) { + status = U_ILLEGAL_ARGUMENT_ERROR; return; } if (status == U_STRING_NOT_TERMINATED_WARNING) { status = U_ZERO_ERROR; } - int32_t bufferLength = uprv_max((int32_t)(uprv_strlen(fullName) + 1), ULOC_FULLNAME_CAPACITY); - int32_t newLength = uloc_setKeywordValue(keywordName, keywordValue, fullName, - bufferLength, &status) + 1; - U_ASSERT(status != U_STRING_NOT_TERMINATED_WARNING); - /* Handle the case the current buffer is not enough to hold the new id */ - if (status == U_BUFFER_OVERFLOW_ERROR) { - U_ASSERT(newLength > bufferLength); - char* newFullName = (char *)uprv_malloc(newLength); - if (newFullName == nullptr) { - status = U_MEMORY_ALLOCATION_ERROR; - return; - } - uprv_strcpy(newFullName, fullName); - if (fullName != fullNameBuffer) { - // if full Name is already on the heap, need to free it. - uprv_free(fullName); - if (baseName == fullName) { - baseName = newFullName; // baseName should not point to freed memory. + + int32_t length = static_cast(uprv_strlen(fullName)); + int32_t capacity = fullName == fullNameBuffer ? ULOC_FULLNAME_CAPACITY : length + 1; + + const char* start = locale_getKeywordsStart(fullName); + int32_t offset = start == nullptr ? length : start - fullName; + + for (;;) { + // Remove -1 from the capacity so that this function can guarantee NUL termination. + CheckedArrayByteSink sink(fullName + offset, capacity - offset - 1); + + int32_t reslen = ulocimp_setKeywordValue( + {fullName + offset, static_cast(length - offset)}, + keywordName, + keywordValue, + sink, + status); + + if (status == U_BUFFER_OVERFLOW_ERROR) { + capacity = reslen + offset + 1; + char* newFullName = static_cast(uprv_malloc(capacity)); + if (newFullName == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + uprv_memcpy(newFullName, fullName, length + 1); + if (fullName != fullNameBuffer) { + if (baseName == fullName) { + baseName = newFullName; // baseName should not point to freed memory. + } + // if fullName is already on the heap, need to free it. + uprv_free(fullName); } + fullName = newFullName; + status = U_ZERO_ERROR; + continue; } - fullName = newFullName; - status = U_ZERO_ERROR; - uloc_setKeywordValue(keywordName, keywordValue, fullName, newLength, &status); - U_ASSERT(status != U_STRING_NOT_TERMINATED_WARNING); - } else { - U_ASSERT(newLength <= bufferLength); + + if (U_FAILURE(status)) { return; } + u_terminateChars(fullName, capacity, reslen + offset, &status); + break; } - if (U_SUCCESS(status) && baseName == fullName) { + + if (baseName == fullName) { // May have added the first keyword, meaning that the fullName is no longer also the baseName. initBaseName(status); } } -void -Locale::setKeywordValue(StringPiece keywordName, - StringPiece keywordValue, - UErrorCode& status) { - if (U_FAILURE(status)) { return; } - // TODO: Remove the need for a const char* to a NUL terminated buffer. - const CharString keywordName_nul(keywordName, status); - const CharString keywordValue_nul(keywordValue, status); - setKeywordValue(keywordName_nul.data(), keywordValue_nul.data(), status); -} - void Locale::setUnicodeKeywordValue(StringPiece keywordName, StringPiece keywordValue, @@ -2703,32 +2701,25 @@ Locale::setUnicodeKeywordValue(StringPiece keywordName, return; } - // TODO: Remove the need for a const char* to a NUL terminated buffer. - const CharString keywordName_nul(keywordName, status); - const CharString keywordValue_nul(keywordValue, status); - if (U_FAILURE(status)) { - return; - } - - const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data()); - if (legacy_key == nullptr) { + std::optional legacy_key = ulocimp_toLegacyKeyWithFallback(keywordName); + if (!legacy_key.has_value()) { status = U_ILLEGAL_ARGUMENT_ERROR; return; } - const char* legacy_value = nullptr; - - if (!keywordValue_nul.isEmpty()) { - legacy_value = - uloc_toLegacyType(keywordName_nul.data(), keywordValue_nul.data()); + std::string_view value; - if (legacy_value == nullptr) { + if (!keywordValue.empty()) { + std::optional legacy_value = + ulocimp_toLegacyTypeWithFallback(keywordName, keywordValue); + if (!legacy_value.has_value()) { status = U_ILLEGAL_ARGUMENT_ERROR; return; } + value = *legacy_value; } - setKeywordValue(legacy_key, legacy_value, status); + setKeywordValue(*legacy_key, value, status); } const char * diff --git a/thirdparty/icu4c/common/loclikely.cpp b/thirdparty/icu4c/common/loclikely.cpp index 5aa929dc4b15..ccbcbfa7a5d7 100644 --- a/thirdparty/icu4c/common/loclikely.cpp +++ b/thirdparty/icu4c/common/loclikely.cpp @@ -19,6 +19,7 @@ * that then do not depend on resource bundle code and likely-subtags data. */ +#include #include #include "unicode/bytestream.h" @@ -170,7 +171,7 @@ _uloc_addLikelySubtags(const char* localeID, return; } - int32_t trailingLength = (int32_t)uprv_strlen(trailing); + int32_t trailingLength = static_cast(uprv_strlen(trailing)); const icu::LikelySubtags* likelySubtags = icu::LikelySubtags::getSingleton(err); if (U_FAILURE(err)) { @@ -193,11 +194,11 @@ _uloc_addLikelySubtags(const char* localeID, } createTagStringWithAlternates( language, - (int32_t)uprv_strlen(language), + static_cast(uprv_strlen(language)), lsr.script, - (int32_t)uprv_strlen(lsr.script), + static_cast(uprv_strlen(lsr.script)), lsr.region, - (int32_t)uprv_strlen(lsr.region), + static_cast(uprv_strlen(lsr.region)), variant.data(), variant.length(), trailing, @@ -235,7 +236,7 @@ _uloc_minimizeSubtags(const char* localeID, return; } - int32_t trailingLength = (int32_t)uprv_strlen(trailing); + int32_t trailingLength = static_cast(uprv_strlen(trailing)); const icu::LikelySubtags* likelySubtags = icu::LikelySubtags::getSingleton(err); if (U_FAILURE(err)) { @@ -256,11 +257,11 @@ _uloc_minimizeSubtags(const char* localeID, } createTagStringWithAlternates( language, - (int32_t)uprv_strlen(language), + static_cast(uprv_strlen(language)), lsr.script, - (int32_t)uprv_strlen(lsr.script), + static_cast(uprv_strlen(lsr.script)), lsr.region, - (int32_t)uprv_strlen(lsr.region), + static_cast(uprv_strlen(lsr.region)), variant.data(), variant.length(), trailing, @@ -388,21 +389,32 @@ U_NAMESPACE_END namespace { icu::CharString -GetRegionFromKey(const char* localeID, const char* key, UErrorCode& status) { +GetRegionFromKey(const char* localeID, std::string_view key, UErrorCode& status) { icu::CharString result; - // First check for keyword value icu::CharString kw = ulocimp_getKeywordValue(localeID, key, status); int32_t len = kw.length(); - if (U_SUCCESS(status) && len >= 3 && len <= 7) { - // chop off the subdivision code (which will generally be "zzzz" anyway) - const char* const data = kw.data(); - if (uprv_isASCIILetter(data[0])) { - result.append(uprv_toupper(data[0]), status); - result.append(uprv_toupper(data[1]), status); - } else { - // assume three-digit region code - result.append(data, 3, status); + // In UTS35 + // type = alphanum{3,8} (sep alphanum{3,8})* ; + // so we know the subdivision must fit the type already. + // + // unicode_subdivision_id = unicode_region_subtag unicode_subdivision_suffix ; + // unicode_region_subtag = (alpha{2} | digit{3}) ; + // unicode_subdivision_suffix = alphanum{1,4} ; + // But we also know there are no id in start with digit{3} in + // https://github.com/unicode-org/cldr/blob/main/common/validity/subdivision.xml + // Therefore we can simplify as + // unicode_subdivision_id = alpha{2} alphanum{1,4} + // + // and only need to accept/reject the code based on the alpha{2} and the length. + if (U_SUCCESS(status) && len >= 3 && len <= 6 && + uprv_isASCIILetter(kw[0]) && uprv_isASCIILetter(kw[1])) { + // Additional Check + static icu::RegionValidateMap valid; + const char region[] = {kw[0], kw[1], '\0'}; + if (valid.isSet(region)) { + result.append(uprv_toupper(kw[0]), status); + result.append(uprv_toupper(kw[1]), status); } } return result; @@ -435,3 +447,55 @@ ulocimp_getRegionForSupplementalData(const char *localeID, bool inferRegion, return rgBuf; } + +namespace { + +// The following data is generated by unit test code inside +// test/intltest/regiontst.cpp from the resource data while +// the test failed. +const uint32_t gValidRegionMap[] = { + 0xeedf597c, 0xdeddbdef, 0x15943f3f, 0x0e00d580, + 0xb0095c00, 0x0015fb9f, 0x781c068d, 0x0340400f, + 0xf42b1d00, 0xfd4f8141, 0x25d7fffc, 0x0100084b, + 0x538f3c40, 0x40000001, 0xfdf15100, 0x9fbb7ae7, + 0x0410419a, 0x00408557, 0x00004002, 0x00100001, + 0x00400408, 0x00000001, +}; + +} // namespace + // +U_NAMESPACE_BEGIN +RegionValidateMap::RegionValidateMap() { + uprv_memcpy(map, gValidRegionMap, sizeof(map)); +} + +RegionValidateMap::~RegionValidateMap() { +} + +bool RegionValidateMap::isSet(const char* region) const { + int32_t index = value(region); + if (index < 0) { + return false; + } + return 0 != (map[index / 32] & (1L << (index % 32))); +} + +bool RegionValidateMap::equals(const RegionValidateMap& that) const { + return uprv_memcmp(map, that.map, sizeof(map)) == 0; +} + +// The code transform two letter a-z to a integer valued between -1, 26x26. +// -1 indicate the region is outside the range of two letter a-z +// the rest of value is between 0 and 676 (= 26x26) and used as an index +// the the bigmap in map. The map is an array of 22 int32_t. +// since 32x21 < 676/32 < 32x22 we store this 676 bits bitmap into 22 int32_t. +int32_t RegionValidateMap::value(const char* region) const { + if (uprv_isASCIILetter(region[0]) && uprv_isASCIILetter(region[1]) && + region[2] == '\0') { + return (uprv_toupper(region[0])-'A') * 26 + + (uprv_toupper(region[1])-'A'); + } + return -1; +} + +U_NAMESPACE_END diff --git a/thirdparty/icu4c/common/loclikelysubtags.cpp b/thirdparty/icu4c/common/loclikelysubtags.cpp index c182191057f4..7c6131197d89 100644 --- a/thirdparty/icu4c/common/loclikelysubtags.cpp +++ b/thirdparty/icu4c/common/loclikelysubtags.cpp @@ -564,47 +564,40 @@ LSR LikelySubtags::makeMaximizedLsr(const char *language, const char *script, co // Handle pseudolocales like en-XA, ar-XB, fr-PSCRACK. // They should match only themselves, // not other locales with what looks like the same language and script subtags. - char c1; - if (region[0] == 'X' && (c1 = region[1]) != 0 && region[2] == 0) { - switch (c1) { - case 'A': - if (returnInputIfUnmatch) { - return LSR(language, script, region, LSR::EXPLICIT_LSR); - } - return LSR(PSEUDO_ACCENTS_PREFIX, language, script, region, - LSR::EXPLICIT_LSR, errorCode); - case 'B': - if (returnInputIfUnmatch) { - return LSR(language, script, region, LSR::EXPLICIT_LSR); - } - return LSR(PSEUDO_BIDI_PREFIX, language, script, region, - LSR::EXPLICIT_LSR, errorCode); - case 'C': - if (returnInputIfUnmatch) { - return LSR(language, script, region, LSR::EXPLICIT_LSR); + if (!returnInputIfUnmatch) { + char c1; + if (region[0] == 'X' && (c1 = region[1]) != 0 && region[2] == 0) { + switch (c1) { + case 'A': + return LSR(PSEUDO_ACCENTS_PREFIX, language, script, region, + LSR::EXPLICIT_LSR, errorCode); + case 'B': + return LSR(PSEUDO_BIDI_PREFIX, language, script, region, + LSR::EXPLICIT_LSR, errorCode); + case 'C': + return LSR(PSEUDO_CRACKED_PREFIX, language, script, region, + LSR::EXPLICIT_LSR, errorCode); + default: // normal locale + break; } - return LSR(PSEUDO_CRACKED_PREFIX, language, script, region, - LSR::EXPLICIT_LSR, errorCode); - default: // normal locale - break; } - } - if (variant[0] == 'P' && variant[1] == 'S') { - int32_t lsrFlags = *region == 0 ? - LSR::EXPLICIT_LANGUAGE | LSR::EXPLICIT_SCRIPT : LSR::EXPLICIT_LSR; - if (uprv_strcmp(variant, "PSACCENT") == 0) { - return LSR(PSEUDO_ACCENTS_PREFIX, language, script, - *region == 0 ? "XA" : region, lsrFlags, errorCode); - } else if (uprv_strcmp(variant, "PSBIDI") == 0) { - return LSR(PSEUDO_BIDI_PREFIX, language, script, - *region == 0 ? "XB" : region, lsrFlags, errorCode); - } else if (uprv_strcmp(variant, "PSCRACK") == 0) { - return LSR(PSEUDO_CRACKED_PREFIX, language, script, - *region == 0 ? "XC" : region, lsrFlags, errorCode); + if (variant[0] == 'P' && variant[1] == 'S') { + int32_t lsrFlags = *region == 0 ? + LSR::EXPLICIT_LANGUAGE | LSR::EXPLICIT_SCRIPT : LSR::EXPLICIT_LSR; + if (uprv_strcmp(variant, "PSACCENT") == 0) { + return LSR(PSEUDO_ACCENTS_PREFIX, language, script, + *region == 0 ? "XA" : region, lsrFlags, errorCode); + } else if (uprv_strcmp(variant, "PSBIDI") == 0) { + return LSR(PSEUDO_BIDI_PREFIX, language, script, + *region == 0 ? "XB" : region, lsrFlags, errorCode); + } else if (uprv_strcmp(variant, "PSCRACK") == 0) { + return LSR(PSEUDO_CRACKED_PREFIX, language, script, + *region == 0 ? "XC" : region, lsrFlags, errorCode); + } + // else normal locale } - // else normal locale - } + } // end of if (!returnInputIfUnmatch) language = getCanonical(languageAliases, language); // (We have no script mappings.) @@ -616,9 +609,9 @@ LSR LikelySubtags::maximize(const char *language, const char *script, const char bool returnInputIfUnmatch, UErrorCode &errorCode) const { if (U_FAILURE(errorCode)) { return {}; } - return maximize({language, (int32_t)uprv_strlen(language)}, - {script, (int32_t)uprv_strlen(script)}, - {region, (int32_t)uprv_strlen(region)}, + return maximize({language, static_cast(uprv_strlen(language))}, + {script, static_cast(uprv_strlen(script))}, + {region, static_cast(uprv_strlen(region))}, returnInputIfUnmatch, errorCode); } diff --git a/thirdparty/icu4c/common/locmap.cpp b/thirdparty/icu4c/common/locmap.cpp index b95eb04428b5..da78c7716a75 100644 --- a/thirdparty/icu4c/common/locmap.cpp +++ b/thirdparty/icu4c/common/locmap.cpp @@ -979,7 +979,7 @@ getHostID(const ILcidPosixMap *this_0, const char* posixID, UErrorCode& status) if (U_FAILURE(status)) { return locmap_root->hostID; } int32_t bestIdx = 0; int32_t bestIdxDiff = 0; - int32_t posixIDlen = (int32_t)uprv_strlen(posixID); + int32_t posixIDlen = static_cast(uprv_strlen(posixID)); uint32_t idx; for (idx = 0; idx < this_0->numRegions; idx++ ) { diff --git a/thirdparty/icu4c/common/locutil.cpp b/thirdparty/icu4c/common/locutil.cpp index 1abecef1c5b0..a257ec593a80 100644 --- a/thirdparty/icu4c/common/locutil.cpp +++ b/thirdparty/icu4c/common/locutil.cpp @@ -171,7 +171,7 @@ LocaleUtility::initLocaleFromName(const UnicodeString& id, Locale& result) prev = 0; UErrorCode status = U_ZERO_ERROR; do { - i = id.indexOf((char16_t)0x40, prev); + i = id.indexOf(static_cast(0x40), prev); if(i < 0) { // no @ between prev and the rest of the string buffer.appendInvariantChars(id.tempSubString(prev), status); @@ -224,7 +224,7 @@ LocaleUtility::getAvailableLocaleNames(const UnicodeString& bundleID) Hashtable* htp; umtx_lock(nullptr); - htp = (Hashtable*) cache->get(bundleID); + htp = static_cast(cache->get(bundleID)); umtx_unlock(nullptr); if (htp == nullptr) { diff --git a/thirdparty/icu4c/common/lstmbe.cpp b/thirdparty/icu4c/common/lstmbe.cpp index fb8eb01761cd..c1a142469c44 100644 --- a/thirdparty/icu4c/common/lstmbe.cpp +++ b/thirdparty/icu4c/common/lstmbe.cpp @@ -164,7 +164,7 @@ class Array1D : public ReadArray1D { Array1D() : memory_(nullptr), data_(nullptr), d1_(0) {} Array1D(int32_t d1, UErrorCode &status) : memory_(uprv_malloc(d1 * sizeof(float))), - data_((float*)memory_), d1_(d1) { + data_(static_cast(memory_)), d1_(d1) { if (U_SUCCESS(status)) { if (memory_ == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; @@ -301,7 +301,7 @@ class Array2D : public ReadArray2D { Array2D() : memory_(nullptr), data_(nullptr), d1_(0), d2_(0) {} Array2D(int32_t d1, int32_t d2, UErrorCode &status) : memory_(uprv_malloc(d1 * d2 * sizeof(float))), - data_((float*)memory_), d1_(d1), d2_(d2) { + data_(static_cast(memory_)), d1_(d1), d2_(d2) { if (U_SUCCESS(status)) { if (memory_ == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; @@ -526,11 +526,11 @@ void CodePointsVectorizer::vectorize( int32_t current; char16_t str[2] = {0, 0}; while (U_SUCCESS(status) && - (current = (int32_t)utext_getNativeIndex(text)) < endPos) { + (current = static_cast(utext_getNativeIndex(text))) < endPos) { // Since the LSTMBreakEngine is currently only accept chars in BMP, // we can ignore the possibility of hitting supplementary code // point. - str[0] = (char16_t) utext_next32(text); + str[0] = static_cast(utext_next32(text)); U_ASSERT(!U_IS_SURROGATE(str[0])); offsets.addElement(current, status); indices.addElement(stringToIndex(str), status); @@ -733,7 +733,7 @@ LSTMBreakEngine::divideUpDictionaryRange( UText *text, #endif // LSTM_DEBUG // current = argmax(logp) - LSTMClass current = (LSTMClass)logp.maxIndex(); + LSTMClass current = static_cast(logp.maxIndex()); // BIES logic. if (current == BEGIN || current == SINGLE) { if (i != 0) { diff --git a/thirdparty/icu4c/common/messagepattern.cpp b/thirdparty/icu4c/common/messagepattern.cpp index 9e318295f9a9..96555ce8ae33 100644 --- a/thirdparty/icu4c/common/messagepattern.cpp +++ b/thirdparty/icu4c/common/messagepattern.cpp @@ -351,7 +351,7 @@ MessagePattern::autoQuoteApostropheDeep() const { for(int32_t i=count; i>0;) { const Part &part=getPart(--i); if(part.getType()==UMSGPAT_PART_TYPE_INSERT_CHAR) { - modified.insert(part.index, (char16_t)part.value); + modified.insert(part.index, static_cast(part.value)); } } return modified; @@ -437,7 +437,7 @@ MessagePattern::parseMessage(int32_t index, int32_t msgStartLength, if(U_FAILURE(errorCode)) { return 0; } - if(nestingLevel>Part::MAX_VALUE) { + if(nestingLevel>Part::MAX_NESTED_LEVELS) { errorCode=U_INDEX_OUTOFBOUNDS_ERROR; return 0; } @@ -628,7 +628,7 @@ MessagePattern::parseArg(int32_t index, int32_t argStartLength, int32_t nestingL } } // change the ARG_START type from NONE to argType - partsList->a[argStart].value=(int16_t)argType; + partsList->a[argStart].value = static_cast(argType); if(argType==UMSGPAT_ARG_TYPE_SIMPLE) { addPart(UMSGPAT_PART_TYPE_ARG_TYPE, typeIndex, length, 0, errorCode); } @@ -980,13 +980,13 @@ MessagePattern::parseDouble(int32_t start, int32_t limit, UBool allowInfinity, } // Let Double.parseDouble() throw a NumberFormatException. char numberChars[128]; - int32_t capacity=(int32_t)sizeof(numberChars); + int32_t capacity = static_cast(sizeof(numberChars)); int32_t length=limit-start; if(length>=capacity) { break; // number too long } msg.extract(start, length, numberChars, capacity, US_INV); - if((int32_t)uprv_strlen(numberChars)(uprv_strlen(numberChars)) < length) { break; // contains non-invariant character that was turned into NUL } char *end; @@ -1006,7 +1006,7 @@ MessagePattern::skipWhiteSpace(int32_t index) { const char16_t *s=msg.getBuffer(); int32_t msgLength=msg.length(); const char16_t *t=PatternProps::skipWhiteSpace(s+index, msgLength-index); - return (int32_t)(t-s); + return static_cast(t - s); } int32_t @@ -1014,7 +1014,7 @@ MessagePattern::skipIdentifier(int32_t index) { const char16_t *s=msg.getBuffer(); int32_t msgLength=msg.length(); const char16_t *t=PatternProps::skipIdentifier(s+index, msgLength-index); - return (int32_t)(t-s); + return static_cast(t - s); } int32_t @@ -1105,8 +1105,8 @@ MessagePattern::addPart(UMessagePatternPartType type, int32_t index, int32_t len Part &part=partsList->a[partsLength++]; part.type=type; part.index=index; - part.length=(uint16_t)length; - part.value=(int16_t)value; + part.length = static_cast(length); + part.value = static_cast(value); part.limitPartIndex=0; } } diff --git a/thirdparty/icu4c/common/mlbe.cpp b/thirdparty/icu4c/common/mlbe.cpp index 7e734f2c8adf..b5385428e0c5 100644 --- a/thirdparty/icu4c/common/mlbe.cpp +++ b/thirdparty/icu4c/common/mlbe.cpp @@ -57,12 +57,12 @@ int32_t MlBreakEngine::divideUpRange(UText *inText, int32_t rangeStart, int32_t // moving forward, finally the last six values in the indexList are // [length-4, length-3, length-2, length-1, -1, -1]. The "+4" here means four extra "-1". int32_t indexSize = codePointLength + 4; - int32_t *indexList = (int32_t *)uprv_malloc(indexSize * sizeof(int32_t)); - if (indexList == nullptr) { + LocalMemory indexList(static_cast(uprv_malloc(indexSize * sizeof(int32_t)))); + if (indexList.isNull()) { status = U_MEMORY_ALLOCATION_ERROR; return 0; } - int32_t numCodeUnits = initIndexList(inString, indexList, status); + int32_t numCodeUnits = initIndexList(inString, indexList.getAlias(), status); // Add a break for the start. boundary.addElement(0, status); @@ -71,13 +71,12 @@ int32_t MlBreakEngine::divideUpRange(UText *inText, int32_t rangeStart, int32_t for (int32_t idx = 0; idx + 1 < codePointLength && U_SUCCESS(status); idx++) { numBreaks = - evaluateBreakpoint(inString, indexList, idx, numCodeUnits, numBreaks, boundary, status); + evaluateBreakpoint(inString, indexList.getAlias(), idx, numCodeUnits, numBreaks, boundary, status); if (idx + 4 < codePointLength) { indexList[idx + 6] = numCodeUnits; numCodeUnits += U16_LENGTH(inString.char32At(indexList[idx + 6])); } } - uprv_free(indexList); if (U_FAILURE(status)) return 0; diff --git a/thirdparty/icu4c/common/norm2_nfc_data.h b/thirdparty/icu4c/common/norm2_nfc_data.h index 3dada06c5732..89d0287c5429 100644 --- a/thirdparty/icu4c/common/norm2_nfc_data.h +++ b/thirdparty/icu4c/common/norm2_nfc_data.h @@ -9,28 +9,28 @@ #ifdef INCLUDED_FROM_NORMALIZER2_CPP -static const UVersionInfo norm2_nfc_data_formatVersion={4,0,0,0}; -static const UVersionInfo norm2_nfc_data_dataVersion={0xf,1,0,0}; +static const UVersionInfo norm2_nfc_data_formatVersion={5,0,0,0}; +static const UVersionInfo norm2_nfc_data_dataVersion={0x10,0,0,0}; static const int32_t norm2_nfc_data_indexes[Normalizer2Impl::IX_COUNT]={ -0x50,0x4cb8,0x8920,0x8a20,0x8a20,0x8a20,0x8a20,0x8a20,0xc0,0x300,0xae2,0x29e0,0x3c66,0xfc00,0x1288,0x3b9c, -0x3c34,0x3c66,0x300,0 +0x58,0x4e84,0x8c60,0x8d60,0x8d60,0x8d60,0x8d60,0x8d60,0xc0,0x300,0xb0c,0x2a6a,0x3cf0,0xfbc4,0x12c2,0x3c26, +0x3cbe,0x3cf0,0x300,0,0xfb10,0xfb9e }; -static const uint16_t norm2_nfc_data_trieIndex[1788]={ +static const uint16_t norm2_nfc_data_trieIndex[1869]={ 0,0x40,0x7b,0xbb,0xfb,0x13a,0x17a,0x1b2,0x1f2,0x226,0x254,0x226,0x294,0x2d4,0x313,0x353, 0x393,0x3d2,0x40f,0x44e,0x226,0x226,0x488,0x4c8,0x4f8,0x530,0x226,0x570,0x59f,0x5de,0x226,0x5f3, -0x631,0x65f,0x687,0x6bd,0x6fd,0x73a,0x75a,0x799,0x7d8,0x815,0x834,0x871,0x75a,0x8aa,0x8d8,0x917, -0x834,0x951,0x968,0x9a8,0x9bf,0x9fe,0x226,0xa34,0xa54,0xa8f,0xa9b,0xad6,0xafe,0xb3b,0xb7b,0xbb5, -0xbd0,0x226,0xc0b,0x226,0xc4b,0xc6a,0xca0,0xcdd,0x226,0x226,0x226,0x226,0x226,0xd00,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xd2c,0x226,0x226,0xd61, -0x226,0x226,0xd7f,0x226,0xda9,0x226,0x226,0x226,0xde5,0xe05,0xe45,0xe84,0xebf,0xeff,0xf33,0xf5f, -0x839,0x226,0x226,0xf93,0x226,0x226,0x226,0xfd3,0x1013,0x1053,0x1093,0x10d3,0x1113,0x1153,0x1193,0x11d3, -0x1213,0x226,0x226,0x1243,0x1274,0x226,0x12a4,0x12d7,0x1314,0x1353,0x1393,0x13c9,0x13f7,0x226,0x226,0x226, +0x631,0x65f,0x688,0x6be,0x6fe,0x73b,0x75b,0x79a,0x7d9,0x816,0x835,0x872,0x75b,0x8ab,0x8d9,0x918, +0x835,0x952,0x969,0x9a9,0x9c0,0x9ff,0x226,0xa35,0xa55,0xa90,0xa9c,0xad7,0xaff,0xb3c,0xb7c,0xbb6, +0xbd1,0x226,0xc0c,0x226,0xc4c,0xc6b,0xca1,0xcde,0x226,0x226,0x226,0x226,0x226,0xd01,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xd2d,0x226,0x226,0xd62, +0x226,0x226,0xd80,0x226,0xdaa,0x226,0x226,0x226,0xde6,0xe06,0xe46,0xe85,0xec0,0xf00,0xf34,0xf60, +0x83a,0x226,0x226,0xf94,0x226,0x226,0x226,0xfd4,0x1014,0x1054,0x1094,0x10d4,0x1114,0x1154,0x1194,0x11d4, +0x1214,0x226,0x226,0x1244,0x1275,0x226,0x12a5,0x12d8,0x1315,0x1354,0x1394,0x13ca,0x13f8,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1422,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0xcee,0x226,0x143f,0x226,0x147f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x14bf,0x14f9,0x1537,0x1577,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1423,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0xcef,0x226,0x1440,0x226,0x1480,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x14c0,0x14fa,0x1538,0x1578,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, @@ -59,20 +59,20 @@ static const uint16_t norm2_nfc_data_trieIndex[1788]={ 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x15b6,0x15f4,0x1614,0x226,0x226,0x226,0x226, -0x164e,0x226,0x226,0x1676,0x16a8,0x16d6,0x83d,0x16e9,0x226,0x226,0x16f9,0x1739,0x226,0x226,0x226,0x1451, -0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781, -0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791, -0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785, -0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779, -0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789, -0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d, -0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d, -0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781, -0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791, -0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785, -0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x17c5,0x226, -0x1805,0x1840,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x15b7,0x15f5,0x1615,0x226,0x226,0x226,0x226, +0x164f,0x226,0x226,0x1677,0x16a9,0x16d7,0x83e,0x16ea,0x226,0x226,0x16fa,0x173a,0x226,0x226,0x226,0x1452, +0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782, +0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792, +0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786, +0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a, +0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a, +0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e, +0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e, +0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782, +0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792, +0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786, +0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x17c6,0x226, +0x1806,0x1841,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, @@ -80,59 +80,64 @@ static const uint16_t norm2_nfc_data_trieIndex[1788]={ 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x1880,0x18c0,0x1900,0x1940,0x1980,0x19c0,0x1a00,0x1a40,0x1a63,0x1aa3,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac3,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x67e,0x68e,0x6a6,0x6c5,0x6da,0x6da,0x6da,0x6de,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x1881,0x18c1,0x1901,0x1941,0x1981,0x19c1,0x1a01,0x1a41,0x1a64,0x1aa4,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac4,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x6cf,0x6df,0x6f7,0x716,0x72b,0x72b,0x72b,0x72f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc0b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc0c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x54f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x40c, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1af6,0x226,0x226,0x1b06,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0xdf7,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1b16,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1607,0x226,0x226,0x226,0x226,0x66b,0x226,0x226,0x226, -0x226,0x1b20,0x54f,0x226,0x226,0x1b30,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x81c,0x226,0x226, -0x1b40,0x226,0x1b50,0x1b5d,0x1b69,0x226,0x226,0x226,0x226,0x414,0x226,0x1b74,0x1b84,0x226,0x226,0x226, -0x811,0x226,0x226,0x226,0x226,0x1b94,0x226,0x226,0x226,0x1b9f,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x1ba6,0x226,0x226,0x226,0x226,0x1bb1,0x1bc0,0x927,0x1bce,0x412,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x1bdc,0x7c9,0x226,0x226,0x226,0x226,0x226,0x1bec,0x1bfb,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x907,0x1c03,0x1c13,0x226, -0x226,0x226,0x9eb,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c1d,0x226,0x226,0x226,0x226,0x226, -0x226,0x817,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c1a, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c2d, -0x811,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x87e,0x226,0x226,0x226,0x81e,0x81b, -0x226,0x226,0x226,0x226,0x819,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x9eb,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc05,0x226,0x226,0x226, -0x226,0x81b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0xc08,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x1c3d,0x226,0x226,0x226,0xf2c,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c4d,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x1c4f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c5e,0x1c6e,0x1c7c,0x1c89,0x226, -0x1c95,0x1ca3,0x1cb3,0x226,0x226,0x226,0x226,0xd1b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1afb,0x1b09,0x1b15,0x226, +0x1b1a,0x226,0x226,0x1b2a,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xdf8,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x1cc3,0x1ccb,0x1cd9,0x226,0x226,0x226,0x226,0x226,0x4f9,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0xf2c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x7c9,0x226,0x226,0x226,0x4fc,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ce4,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1cf4,0x226,0x226,0x226,0x226, -0x226,0x226,0x1d00,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d10,0x1d20, -0x1d30,0x1d40,0x1d50,0x1d60,0x1d70,0x1d80,0x1d90,0x1da0,0x1db0,0x1dc0,0x1dd0,0x1de0,0x1df0,0x1e00,0x1e10,0x1e20, -0x1e30,0x1e40,0x1e50,0x1e60,0x1e70,0x1e80,0x1e90,0x1ea0,0x1eb0,0x1ec0,0x1ed0,0x1ee0,0x1ef0,0x1f00,0x1f10,0x1f20, +0x226,0x1b3a,0x226,0x226,0x226,0x1b42,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x1608,0x226,0x226,0x226,0x226,0x66b,0x226,0x226,0x226,0x226,0x1b50,0x54f,0x226,0x226,0x1b60,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x81d,0x226,0x226,0x1b70,0x226,0x1b80,0x1b8d,0x1b99,0x226,0x226, +0x226,0x226,0x414,0x226,0x1ba4,0x1bb4,0x226,0x226,0x226,0x812,0x226,0x226,0x226,0x226,0x1bc4,0x226, +0x226,0x226,0x1bcf,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bd6,0x226,0x226, +0x226,0x226,0x1be1,0x1bf0,0x928,0x1bfe,0x412,0x1c0c,0x1c1c,0x226,0x1c24,0x1c32,0x87f,0x226,0x226,0x226, +0x226,0x1c42,0x7ca,0x226,0x226,0x226,0x226,0x226,0x1c52,0x1c61,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x908,0x1c69,0x1c79,0x226,0x226,0x226,0x9ec,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x1c83,0x226,0x226,0x226,0x226,0x226,0x226,0x818,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c80,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c93,0x812,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x87f,0x226,0x226,0x226,0x81f,0x81c,0x226,0x226,0x226,0x226,0x81a, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408,0x428, -0xc4,0xc4,0xc4,0x448,0x457,0x46d,0x489,0x4a6,0x4c2,0x4df,0x4fc,0x51b,0x538,0x552,0xc4,0xc4, -0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -0xc4,0xc4,0xc4,0x567,0xc4,0x57b,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, +0x226,0x226,0x226,0x226,0x226,0x226,0x9ec,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc06,0x226,0x226,0x226,0x226,0x81c,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0xc09,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x1ca2,0x1cb1,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x1cc1,0x226,0x226,0x226,0xf2d,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1cce, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1cde, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ce0,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x1cef,0x1cff,0x1d0d,0x1d1a,0x226,0x1d26,0x1d34,0x1d44,0x226,0x226,0x226,0x226,0xd1c,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d54,0x1d5c,0x1d6a,0x226,0x226,0x226,0x226,0x226, +0x4f9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xf2d,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7ca,0x226,0x226,0x226,0x4fc,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d75,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x5c1,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d85,0x226,0x226,0x226, +0x226,0x226,0x226,0x1d91,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1da1, +0x1db1,0x1dc1,0x1dd1,0x1de1,0x1df1,0x1e01,0x1e11,0x1e21,0x1e31,0x1e41,0x1e51,0x1e61,0x1e71,0x1e81,0x1e91,0x1ea1, +0x1eb1,0x1ec1,0x1ed1,0x1ee1,0x1ef1,0x1f01,0x1f11,0x1f21,0x1f31,0x1f41,0x1f51,0x1f61,0x1f71,0x1f81,0x1f91,0x1fa1, +0x1fb1,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408, +0x428,0x440,0xc4,0xc4,0x460,0x46f,0x486,0x4a2,0x4bf,0x4dd,0x4fa,0x517,0x536,0x553,0x56d,0xc4, +0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x582, +0xc4,0xc4,0xc4,0xc4,0x595,0x5a9,0x5c0,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -0xc4,0xc4,0xc4,0xc4,0x59b,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5a6,0x5c3,0xc4, -0xc4,0xc4,0xc4,0xc4,0xc4,0x5e3,0x5f9,0x60b,0xc4,0x61e,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, +0xc4,0xc4,0xc4,0xc4,0xc4,0x5e0,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5eb,0x608, +0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x628,0x63e,0x650,0xc4,0x66f,0xc4,0xc4,0xc4,0xc4,0xc4, 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x63e,0x65e +0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x68f,0x6af }; -static const uint16_t norm2_nfc_data_trieData[7984]={ +static const uint16_t norm2_nfc_data_trieData[8129]={ 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, @@ -144,30 +149,30 @@ static const uint16_t norm2_nfc_data_trieData[7984]={ 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,0x5e8,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0x128a,0x1290,0xae4,0x1296,0xafa, -0xb04,0x5f4,0xb0e,0x129c,0x12a2,0xb18,0x12a8,0x12ae,0x12b4,0x12ba,0xb2e,1,0x12c0,0x12c6,0x12cc,0xb38, -0xb4e,0xb60,1,0x5fc,0x12d2,0x12d8,0x12de,0xb6a,0x12e4,1,1,0x12ea,0x12f0,0xb80,0x12f6,0xb96, -0xba0,0x600,0xbaa,0x12fc,0x1302,0xbb4,0x1308,0x130e,0x1314,0x131a,0xbca,1,0x1320,0x1326,0x132c,0xbd4, -0xbea,0xbfc,1,0x608,0x1332,0x1338,0x133e,0xc06,0x1344,1,0x134a,0x1350,0x1356,0xc1c,0xc32,0x135d, -0x1363,0x1368,0x136e,0x1374,0x137a,0x1380,0x1386,0x138c,0x1392,0x1398,0x139e,1,1,0xc48,0xc56,0x13a4, -0x13aa,0x13b0,0x13b6,0x13bd,0x13c3,0x13c8,0x13ce,0x13d4,0x13da,0x13e0,0x13e6,0x13ec,0x13f2,0x13f9,0x13ff,0x1404, -0x140a,1,1,0x1410,0x1416,0x141c,0x1422,0x1428,0x142e,0x1435,0x143b,0x1440,1,1,1,0x1447, -0x144d,0x1453,0x1459,1,0x145e,0x1464,0x146b,0x1471,0x1476,0x147c,1,1,1,0x1482,0x1488,0x148f, -0x1495,0x149a,0x14a0,1,1,1,0xc64,0xc72,0x14a6,0x14ac,0x14b2,0x14b8,1,1,0x14be,0x14c4, -0x14cb,0x14d1,0x14d6,0x14dc,0xc80,0xc8a,0x14e2,0x14e8,0x14ef,0x14f5,0xc94,0xc9e,0x14fb,0x1501,0x1506,0x150c, -1,1,0xca8,0xcb2,0xcbc,0xcc6,0x1512,0x1518,0x151e,0x1524,0x152a,0x1530,0x1537,0x153d,0x1542,0x1548, -0x154e,0x1554,0x155a,0x1560,0x1566,0x156c,0x1572,0x1578,0x157e,0x60c,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,0xcd0,0xcea,1,1,1,1, -1,1,1,1,1,1,1,1,1,0xd04,0xd1e,1,1,1,1,1, -1,0x610,1,1,1,1,1,1,1,1,1,1,1,1,1,0x1584, -0x158a,0x1590,0x1596,0x159c,0x15a2,0x15a8,0x15ae,0x15b6,0x15c0,0x15ca,0x15d4,0x15de,0x15e8,0x15f2,0x15fc,1, -0x1606,0x1610,0x161a,0x1624,0x162d,0x1633,1,1,0x1638,0x163e,0x1644,0x164a,0xd38,0xd42,0x1653,0x165d, -0x1665,0x166b,0x1671,1,1,1,0x1676,0x167c,1,1,0x1682,0x1688,0x1690,0x169a,0x16a3,0x16a9, -0x16af,0x16b5,0x16ba,0x16c0,0x16c6,0x16cc,0x16d2,0x16d8,0x16de,0x16e4,0x16ea,0x16f0,0x16f6,0x16fc,0x1702,0x1708, -0x170e,0x1714,0x171a,0x1720,0x1726,0x172c,0x1732,0x1738,0x173e,0x1744,0x174a,0x1750,0x1756,0x175c,1,1, -0x1762,0x1768,1,1,1,1,1,1,0xd4c,0xd56,0xd60,0xd6a,0x1770,0x177a,0x1784,0x178e, -0xd74,0xd7e,0x1798,0x17a2,0x17aa,0x17b0,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0x12c4,0x12ca,0xb0e,0x12d0,0xb24, +0xb2e,0x5f4,0xb38,0x12d6,0x12dc,0xb42,0x12e2,0x12e8,0x12ee,0x12f4,0xb58,1,0x12fa,0x1300,0x1306,0xb62, +0xb78,0xb8a,1,0x5fc,0x130c,0x1312,0x1318,0xb94,0x131e,1,1,0x1324,0x132a,0xbaa,0x1330,0xbc0, +0xbca,0x600,0xbd4,0x1336,0x133c,0xbde,0x1342,0x1348,0x134e,0x1354,0xbf4,1,0x135a,0x1360,0x1366,0xbfe, +0xc14,0xc26,1,0x608,0x136c,0x1372,0x1378,0xc30,0x137e,1,0x1384,0x138a,0x1390,0xc46,0xc5c,0x1397, +0x139d,0x13a2,0x13a8,0x13ae,0x13b4,0x13ba,0x13c0,0x13c6,0x13cc,0x13d2,0x13d8,1,1,0xc72,0xc80,0x13de, +0x13e4,0x13ea,0x13f0,0x13f7,0x13fd,0x1402,0x1408,0x140e,0x1414,0x141a,0x1420,0x1426,0x142c,0x1433,0x1439,0x143e, +0x1444,1,1,0x144a,0x1450,0x1456,0x145c,0x1462,0x1468,0x146f,0x1475,0x147a,1,1,1,0x1481, +0x1487,0x148d,0x1493,1,0x1498,0x149e,0x14a5,0x14ab,0x14b0,0x14b6,1,1,1,0x14bc,0x14c2,0x14c9, +0x14cf,0x14d4,0x14da,1,1,1,0xc8e,0xc9c,0x14e0,0x14e6,0x14ec,0x14f2,1,1,0x14f8,0x14fe, +0x1505,0x150b,0x1510,0x1516,0xcaa,0xcb4,0x151c,0x1522,0x1529,0x152f,0xcbe,0xcc8,0x1535,0x153b,0x1540,0x1546, +1,1,0xcd2,0xcdc,0xce6,0xcf0,0x154c,0x1552,0x1558,0x155e,0x1564,0x156a,0x1571,0x1577,0x157c,0x1582, +0x1588,0x158e,0x1594,0x159a,0x15a0,0x15a6,0x15ac,0x15b2,0x15b8,0x60c,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,0xcfa,0xd14,1,1,1,1, +1,1,1,1,1,1,1,1,1,0xd2e,0xd48,1,1,1,1,1, +1,0x610,1,1,1,1,1,1,1,1,1,1,1,1,1,0x15be, +0x15c4,0x15ca,0x15d0,0x15d6,0x15dc,0x15e2,0x15e8,0x15f0,0x15fa,0x1604,0x160e,0x1618,0x1622,0x162c,0x1636,1, +0x1640,0x164a,0x1654,0x165e,0x1667,0x166d,1,1,0x1672,0x1678,0x167e,0x1684,0xd62,0xd6c,0x168d,0x1697, +0x169f,0x16a5,0x16ab,1,1,1,0x16b0,0x16b6,1,1,0x16bc,0x16c2,0x16ca,0x16d4,0x16dd,0x16e3, +0x16e9,0x16ef,0x16f4,0x16fa,0x1700,0x1706,0x170c,0x1712,0x1718,0x171e,0x1724,0x172a,0x1730,0x1736,0x173c,0x1742, +0x1748,0x174e,0x1754,0x175a,0x1760,0x1766,0x176c,0x1772,0x1778,0x177e,0x1784,0x178a,0x1790,0x1796,1,1, +0x179c,0x17a2,1,1,1,1,1,1,0xd76,0xd80,0xd8a,0xd94,0x17aa,0x17b4,0x17be,0x17c8, +0xd9e,0xda8,0x17d2,0x17dc,0x17e4,0x17ea,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, @@ -178,34 +183,34 @@ static const uint16_t norm2_nfc_data_trieData[7984]={ 0xfdcc,0xffcc,0xffcc,0xfdcc,0xffcc,0xfdcc,0xffcc,0xfdcc,0xfdcc,0xffd0,0xffb8,0xffb8,0xffb8,0xffb8,0xffd0,0xfdb0, 0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xff94,0xff94,0xfdb8,0xfdb8,0xfdb8,0xfdb8,0xfd94,0xfd94,0xffb8,0xffb8,0xffb8, 0xffb8,0xfdb8,0xfdb8,0xffb8,0xfdb8,0xfdb8,0xffb8,0xffb8,0xfe02,0xfe02,0xfe02,0xfe02,0xfc02,0xffb8,0xffb8,0xffb8, -0xffb8,0xffcc,0xffcc,0xffcc,0x3c36,0x3c3c,0xfdcc,0x3c42,0x3c48,0xfde0,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc, +0xffb8,0xffcc,0xffcc,0xffcc,0x3cc0,0x3cc6,0xfdcc,0x3ccc,0x3cd2,0xfde0,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc, 0xffcc,0xffb8,0xffb8,1,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffd0,0xffb8,0xffb8,0xffcc, 0xffd2,0xffd4,0xffd4,0xffd2,0xffd4,0xffd4,0xffd2,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,0x29e1,1,1,1,1,1,1,1, -1,1,0x29e5,1,1,1,1,1,0x17b7,0x17bd,0x29e9,0x17c3,0x17c9,0x17cf,1,0x17d5, -1,0x17db,0x17e1,0x17e9,0x618,1,1,1,0x634,1,0x644,1,0x658,1,1,1, -1,1,0x674,1,0x684,1,1,1,0x688,1,1,1,0x6a0,0x17f1,0x17f7,0xd88, -0x17fd,0xd92,0x1803,0x180b,0x6b4,1,1,1,0x6d4,1,0x6e4,1,0x6fc,1,1,1, -1,1,0x71c,1,0x72c,1,1,1,0x734,1,1,1,0x754,0xd9c,0xdae,0x1813, -0x1819,0xdc0,1,1,1,0x76c,0x181f,0x1825,1,1,1,1,1,1,1,1, +0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,0x2a6b,1,1,1,1,1,1,1, +1,1,0x2a6f,1,1,1,1,1,0x17f1,0x17f7,0x2a73,0x17fd,0x1803,0x1809,1,0x180f, +1,0x1815,0x181b,0x1823,0x618,1,1,1,0x634,1,0x644,1,0x658,1,1,1, +1,1,0x674,1,0x684,1,1,1,0x688,1,1,1,0x6a0,0x182b,0x1831,0xdb2, +0x1837,0xdbc,0x183d,0x1845,0x6b4,1,1,1,0x6d4,1,0x6e4,1,0x6fc,1,1,1, +1,1,0x71c,1,0x72c,1,1,1,0x734,1,1,1,0x754,0xdc6,0xdd8,0x184d, +0x1853,0xdea,1,1,1,0x76c,0x1859,0x185f,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,0x182b,0x1831,1,0x1837,1,1,0x774,0x183d,1,1,1,1,0x1843, -0x1849,0x184f,1,0x778,1,1,0x780,1,0x784,0x790,0x798,0x79c,0x1855,0x7ac,1,1, +1,1,1,0x1865,0x186b,1,0x1871,1,1,0x774,0x1877,1,1,1,1,0x187d, +0x1883,0x1889,1,0x778,1,1,0x780,1,0x784,0x790,0x798,0x79c,0x188f,0x7ac,1,1, 1,0x7b0,1,1,1,1,0x7b4,1,1,1,0x7c4,1,1,1,0x7c8,1, -0x7cc,1,1,0x7d0,1,1,0x7d8,1,0x7dc,0x7e8,0x7f0,0x7f4,0x185b,0x804,1,1, +0x7cc,1,1,0x7d0,1,1,0x7d8,1,0x7dc,0x7e8,0x7f0,0x7f4,0x1895,0x804,1,1, 1,0x808,1,1,1,0x80c,1,1,1,0x81c,1,1,1,0x820,1,0x824, -1,1,0x1861,0x1867,1,0x186d,1,1,0x828,0x1873,1,1,1,1,0x1879,0x187f, -0x1885,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,0x82c,0x830,0x188b,0x1891,1,1,1,1,1,1, +1,1,0x189b,0x18a1,1,0x18a7,1,1,0x828,0x18ad,1,1,1,1,0x18b3,0x18b9, +0x18bf,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0x82c,0x830,0x18c5,0x18cb,1,1,1,1,1,1, 1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,0x1897, -0x189d,1,1,1,1,1,1,1,1,1,1,1,1,1,0x18a3,0x18a9, -0x18af,0x18b5,1,1,0x18bb,0x18c1,0x834,0x838,0x18c7,0x18cd,0x18d3,0x18d9,0x18df,0x18e5,1,1, -0x18eb,0x18f1,0x18f7,0x18fd,0x1903,0x1909,0x83c,0x840,0x190f,0x1915,0x191b,0x1921,0x1927,0x192d,0x1933,0x1939, -0x193f,0x1945,0x194b,0x1951,1,1,0x1957,0x195d,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x18d1, +0x18d7,1,1,1,1,1,1,1,1,1,1,1,1,1,0x18dd,0x18e3, +0x18e9,0x18ef,1,1,0x18f5,0x18fb,0x834,0x838,0x1901,0x1907,0x190d,0x1913,0x1919,0x191f,1,1, +0x1925,0x192b,0x1931,0x1937,0x193d,0x1943,0x83c,0x840,0x1949,0x194f,0x1955,0x195b,0x1961,0x1967,0x196d,0x1973, +0x1979,0x197f,0x1985,0x198b,1,1,0x1991,0x1997,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc, 0xffcc,0xffcc,0xffbc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, 0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffbc,0xffc8,0xffcc,0xfe14,0xfe16,0xfe18,0xfe1a,0xfe1c,0xfe1e,0xfe20,0xfe22, @@ -214,14 +219,14 @@ static const uint16_t norm2_nfc_data_trieData[7984]={ 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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xfe3c,0xfe3e,0xfe40,1,1,1,1,1,1,1,0x1962,0x1968,0x196f,0x1975,0x197b,0x844, +0xfe3c,0xfe3e,0xfe40,1,1,1,1,1,1,1,0x199c,0x19a2,0x19a9,0x19af,0x19b5,0x844, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,0x850,1,0x854,0xfe36,0xfe38,0xfe3a,0xfe3c,0xfe3e, 0xfe40,0xfe42,0xfe44,0xfdcc,0xfdcc,0xfdb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0xfe46,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -0x1981,0x858,0x1987,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0x85c,0x198d,1,0x860,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc, +0x19bb,0x858,0x19c1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,0x85c,0x19c7,1,0x860,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc, 0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,1,1,0xffcc,0xffcc,1,0xffb8,0xffcc,0xffcc,0xffb8,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0xfe48,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, @@ -239,405 +244,415 @@ static const uint16_t norm2_nfc_data_trieData[7984]={ 1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,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,0xffcc, -0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1, +0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8, -0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1, -0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xfe36,0xfe38,0xfe3a, -0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1, +1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8, +0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +1,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xfe36,0xfe38, +0xfe3a,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,0x864,0x1993,1,1,1,1,1,1,0x868,0x1999,1, -0x86c,0x199f,1,1,1,1,1,1,1,0xfc0e,1,1,1,1,1,1, -1,1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,1, -1,1,0x29ec,0x29f2,0x29f8,0x29fe,0x2a04,0x2a0a,0x2a10,0x2a16,1,1,1,1,1,1, +1,1,1,1,1,1,0x864,0x19cd,1,1,1,1,1,1,0x868,0x19d3, +1,0x86c,0x19d9,1,1,1,1,1,1,1,0xfc0e,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc, +1,1,1,0x2a76,0x2a7c,0x2a82,0x2a88,0x2a8e,0x2a94,0x2a9a,0x2aa0,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,0xfe0e,1,0xfc00,1,1,1,1,1,1,1, -0x870,1,1,1,0x19a5,0x19ab,0xfe12,1,1,1,1,1,1,1,1,1, -0xfc00,1,1,1,1,0x2a1c,0x2a22,1,0x2a28,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0xfe0e,1,0xfc00,1,1,1,1,1,1, +1,0x870,1,1,1,0x19df,0x19e5,0xfe12,1,1,1,1,1,1,1,1, +1,0xfc00,1,1,1,1,0x2aa6,0x2aac,1,0x2ab2,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,0xffcc,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xffcc,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,0x2a2e,1,1,0x2a34,1, -1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,0x2a3a,0x2a40, -0x2a46,1,1,0x2a4c,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,0x2ab8,1,1,0x2abe, +1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,0x2ac4, +0x2aca,0x2ad0,1,1,0x2ad6,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, -0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1, +1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12, 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,0x878,0x19b1,1,1,0x19b7,0x19bd,0xfe12,1,1,1,1,1,1,1,1, -0xfc00,0xfc00,1,1,1,1,0x2a52,0x2a58,1,1,1,1,1,1,1,1, +1,1,0x878,0x19eb,1,1,0x19f1,0x19f7,0xfe12,1,1,1,1,1,1,1, +1,0xfc00,0xfc00,1,1,1,1,0x2adc,0x2ae2,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,0x884,1,0x19c3,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0x884,1,0x19fd,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,0xfc00,1,1,1,1,1,1,0x888,0x890,1, -1,0x19c9,0x19cf,0x19d5,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,1, +1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,0x888,0x890, +1,1,0x1a03,0x1a09,0x1a0f,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00, 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,0x894,1,0x19db,1,1,1,1,0xfe12,1, -1,1,1,1,1,1,0xfea8,0xfcb6,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0x894,1,0x1a15,1,1,1,1,0xfe12, +1,1,1,1,1,1,1,0xfea8,0xfcb6,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,0xfe0e,1,1,0x898,0x19e1,1,0xfc00,1,1,1,0x89c,0x19e7, -0x19ed,1,0xdca,0x19f5,1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,1, +1,1,1,1,1,0xfe0e,1,1,0x898,0x1a1b,1,0xfc00,1,1,1,0x89c, +0x1a21,0x1a27,1,0xdf4,0x1a2f,1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00, 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,0xfe12,0xfe12,1,0xfc00,1,1, -1,1,1,1,0x8a8,0x8b0,1,1,0x19fd,0x1a03,0x1a09,0xfe12,1,1,1,1, -1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1, +1,1,1,1,1,0x8a8,0x8b0,1,1,0x1a37,0x1a3d,0x1a43,0xfe12,1,1,1, +1,1,1,1,1,1,0xfc00,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,0xfc12,1, -1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a0f,1, -0xdd4,0x1a17,0x1a1f,0xfc00,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,0xfc12, +1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a49, +1,0xdfe,0x1a51,0x1a59,0xfc00,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,0xfece,0xfece,0xfe12,1, -1,1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,0xfece,0xfece,0xfe12, +1,1,1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,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,0xfeec,0xfeec,0xfe12,1,1,1,1,1,1,1,1,0xfef4,0xfef4, -0xfef4,0xfef4,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xfeec,0xfeec,0xfe12,1,1,1,1,1,1,1,1,0xfef4, +0xfef4,0xfef4,0xfef4,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,0xffb8,0xffb8,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0xffb8,0xffb8,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,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,0x2a5f,1, -1,1,1,1,1,1,1,1,0x2a65,1,1,1,1,0x2a6b,1,1, -1,1,0x2a71,1,1,1,1,0x2a77,1,1,1,1,1,1,1,1, -1,1,1,1,0x2a7d,1,1,1,1,1,1,1,0xff02,0xff04,0x3c50,0xff08, -0x3c58,0x2a82,1,0x2a88,1,0xff04,0xff04,0xff04,0xff04,1,1,0xff04,0x3c60,0xffcc,0xffcc,0xfe12, -1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x2a8f,1, -1,1,1,1,1,1,1,1,0x2a95,1,1,1,1,0x2a9b,1,1, -1,1,0x2aa1,1,1,1,1,0x2aa7,1,1,1,1,1,1,1,1, -1,1,1,1,0x2aad,1,1,1,1,1,1,0xffb8,1,1,1,1, +1,1,1,1,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,0x2ae9, +1,1,1,1,1,1,1,1,1,0x2aef,1,1,1,1,0x2af5,1, +1,1,1,0x2afb,1,1,1,1,0x2b01,1,1,1,1,1,1,1, +1,1,1,1,1,0x2b07,1,1,1,1,1,1,1,0xff02,0xff04,0x3cda, +0xff08,0x3ce2,0x2b0c,1,0x2b12,1,0xff04,0xff04,0xff04,0xff04,1,1,0xff04,0x3cea,0xffcc,0xffcc, +0xfe12,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x2b19, +1,1,1,1,1,1,1,1,1,0x2b1f,1,1,1,1,0x2b25,1, +1,1,1,0x2b2b,1,1,1,1,0x2b31,1,1,1,1,1,1,1, +1,1,1,1,1,0x2b37,1,1,1,1,1,1,0xffb8,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,0x8c0,0x1a25,1,1,1,1,1,1,1,0xfc00,1, -1,1,1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,1,1,1, -1,1,1,1,1,1,1,1,0xffb8,1,1,1,1,1,1,1, +1,1,1,1,1,1,0x8c0,0x1a5f,1,1,1,1,1,1,1,0xfc00, +1,1,1,1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,1,1, +1,1,1,1,1,1,1,1,1,0xffb8,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,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,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,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, +1,1,1,1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00, 0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, +0xfe00,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,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, +1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, 0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, +0xfe00,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,0xffcc,0xffcc, +0xffcc,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,0xffcc,0xffcc,0xffcc, +1,0xfe12,0xfe12,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,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,0xffcc, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -0xfe12,0xfe12,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, -0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,0xffcc,1, +1,1,1,1,1,1,1,1,1,0xffc8,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,0xffc8,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,0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,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,0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,1,1, +1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,1,1,0xffb8,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,0xfe12,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, +0xffb8,0xffcc,0xffcc,0xffb8,1,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8, +0xffcc,0xffcc,0xffcc,0xffcc,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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, -0xffcc,0xffcc,0xffb8,1,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc, -0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0x8c4,0x1a65,0x8c8,0x1a6b,0x8cc,0x1a71,0x8d0,0x1a77,0x8d4,0x1a7d,1, +1,0x8d8,0x1a83,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,0xfe0e,0xfc00,1,1,1,1,0x8dc,0x1a89,0x8e0,0x1a8f,0x8e4,0x8e8, +0x1a95,0x1a9b,0x8ec,0x1aa1,0xfe12,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,0x8c4,0x1a2b,0x8c8,0x1a31,0x8cc,0x1a37,0x8d0,0x1a3d,0x8d4,0x1a43,1,1, -0x8d8,0x1a49,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,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,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,0xfe0e,0xfc00,1,1,1,1,0x8dc,0x1a4f,0x8e0,0x1a55,0x8e4,0x8e8,0x1a5b, -0x1a61,0x8ec,0x1a67,0xfe12,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,0xfe12,0xfe12, 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,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,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,0xfe12,0xfe12,1, +1,1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1, +1,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc, +0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1, +1,0xffb8,1,1,1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,1, +1,1,1,1,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc, +0xffcc,0xffd4,0xffac,0xffb8,0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,0xffb4,0xffcc, +0xffd2,0xffb8,0xffcc,0xffb8,0x1aa6,0x1aac,0x1ab2,0x1ab8,0x1abf,0x1ac5,0x1acb,0x1ad1,0x1ad9,0x1ae3,0x1aea,0x1af0, +0x1af6,0x1afc,0x1b02,0x1b08,0x1b0f,0x1b15,0x1b1a,0x1b20,0x1b28,0x1b32,0x1b3c,0x1b46,0x1b4e,0x1b54,0x1b5a,0x1b60, +0x1b69,0x1b73,0x1b7b,0x1b81,0x1b86,0x1b8c,0x1b92,0x1b98,0x1b9e,0x1ba4,0x1baa,0x1bb0,0x1bb7,0x1bbd,0x1bc2,0x1bc8, +0x1bce,0x1bd4,0x1bdc,0x1be6,0x1bee,0x1bf4,0x1bfa,0x1c00,0x1c06,0x1c0c,0xe08,0xe12,0x1c14,0x1c1e,0x1c26,0x1c2c, +0x1c32,0x1c38,0x1c3e,0x1c44,0x1c4a,0x1c50,0x1c57,0x1c5d,0x1c62,0x1c68,0x1c6e,0x1c74,0x1c7a,0x1c80,0x1c86,0x1c8c, +0x1c94,0x1c9e,0x1ca8,0x1cb2,0x1cbc,0x1cc6,0x1cd0,0x1cda,0x1ce3,0x1ce9,0x1cef,0x1cf5,0x1cfa,0x1d00,0xe1c,0xe26, +0x1d08,0x1d12,0x1d1a,0x1d20,0x1d26,0x1d2c,0xe30,0xe3a,0x1d34,0x1d3e,0x1d48,0x1d52,0x1d5c,0x1d66,0x1d6e,0x1d74, +0x1d7a,0x1d80,0x1d86,0x1d8c,0x1d92,0x1d98,0x1d9e,0x1da4,0x1daa,0x1db0,0x1db6,0x1dbc,0x1dc4,0x1dce,0x1dd8,0x1de2, +0x1dea,0x1df0,0x1df7,0x1dfd,0x1e02,0x1e08,0x1e0e,0x1e14,0x1e1a,0x1e20,0x1e26,0x1e2c,0x1e33,0x1e39,0x1e3f,0x1e45, +0x1e4b,0x1e51,0x1e56,0x1e5c,0x1e62,0x1e68,0x1e6f,0x1e75,0x1e7b,0x1e81,0x1e86,0x1e8c,0x1e92,0x1e98,1,0x1e9f, +1,1,1,1,0xe44,0xe52,0x1ea4,0x1eaa,0x1eb2,0x1ebc,0x1ec6,0x1ed0,0x1eda,0x1ee4,0x1eee,0x1ef8, +0x1f02,0x1f0c,0x1f16,0x1f20,0x1f2a,0x1f34,0x1f3e,0x1f48,0x1f52,0x1f5c,0x1f66,0x1f70,0xe60,0xe6a,0x1f78,0x1f7e, +0x1f84,0x1f8a,0x1f92,0x1f9c,0x1fa6,0x1fb0,0x1fba,0x1fc4,0x1fce,0x1fd8,0x1fe2,0x1fec,0x1ff4,0x1ffa,0x2000,0x2006, +0xe74,0xe7e,0x200c,0x2012,0x201a,0x2024,0x202e,0x2038,0x2042,0x204c,0x2056,0x2060,0x206a,0x2074,0x207e,0x2088, +0x2092,0x209c,0x20a6,0x20b0,0x20ba,0x20c4,0x20ce,0x20d8,0x20e0,0x20e6,0x20ec,0x20f2,0x20fa,0x2104,0x210e,0x2118, +0x2122,0x212c,0x2136,0x2140,0x214a,0x2154,0x215c,0x2162,0x2169,0x216f,0x2174,0x217a,0x2180,0x2186,1,1, +1,1,1,1,0xe88,0xe9e,0xeb6,0xec4,0xed2,0xee0,0xeee,0xefc,0xf08,0xf1e,0xf36,0xf44, +0xf52,0xf60,0xf6e,0xf7c,0xf88,0xf96,0x218f,0x2199,0x21a3,0x21ad,1,1,0xfa4,0xfb2,0x21b7,0x21c1, +0x21cb,0x21d5,1,1,0xfc0,0xfd6,0xfee,0xffc,0x100a,0x1018,0x1026,0x1034,0x1040,0x1056,0x106e,0x107c, +0x108a,0x1098,0x10a6,0x10b4,0x10c0,0x10d2,0x21df,0x21e9,0x21f3,0x21fd,0x2207,0x2211,0x10e4,0x10f6,0x221b,0x2225, +0x222f,0x2239,0x2243,0x224d,0x1108,0x1116,0x2257,0x2261,0x226b,0x2275,1,1,0x1124,0x1132,0x227f,0x2289, +0x2293,0x229d,1,1,0x1140,0x1152,0x22a7,0x22b1,0x22bb,0x22c5,0x22cf,0x22d9,1,0x1164,1,0x22e3, +1,0x22ed,1,0x22f7,0x1176,0x118c,0x11a4,0x11b2,0x11c0,0x11ce,0x11dc,0x11ea,0x11f6,0x120c,0x1224,0x1232, +0x1240,0x124e,0x125c,0x126a,0x1276,0x3c28,0x22ff,0x3c30,0x1280,0x3c38,0x2305,0x3c40,0x230b,0x3c48,0x2311,0x3c50, +0x128a,0x3c58,1,1,0x2318,0x2322,0x2331,0x2341,0x2351,0x2361,0x2371,0x2381,0x238c,0x2396,0x23a5,0x23b5, +0x23c5,0x23d5,0x23e5,0x23f5,0x2400,0x240a,0x2419,0x2429,0x2439,0x2449,0x2459,0x2469,0x2474,0x247e,0x248d,0x249d, +0x24ad,0x24bd,0x24cd,0x24dd,0x24e8,0x24f2,0x2501,0x2511,0x2521,0x2531,0x2541,0x2551,0x255c,0x2566,0x2575,0x2585, +0x2595,0x25a5,0x25b5,0x25c5,0x25cf,0x25d5,0x25dd,0x25e4,0x25ed,1,0x1294,0x25f7,0x25ff,0x2605,0x260b,0x3c60, +0x2610,1,0x2b3c,0x8f0,1,0x2617,0x261f,0x2626,0x262f,1,0x129e,0x2639,0x2641,0x3c68,0x2647,0x3c70, +0x264c,0x2653,0x2659,0x265f,0x2665,0x266b,0x2673,0x3c7a,1,1,0x267b,0x2683,0x268b,0x2691,0x2697,0x3c84, +1,0x269d,0x26a3,0x26a9,0x26af,0x26b5,0x26bd,0x3c8e,0x26c5,0x26cb,0x26d1,0x26d9,0x26e1,0x26e7,0x26ed,0x3c98, +0x26f3,0x26f9,0x3ca0,0x2b41,1,1,0x2701,0x2708,0x2711,1,0x12a8,0x271b,0x2723,0x3ca8,0x2729,0x3cb0, +0x272e,0x2b45,0x8fc,1,0xf919,0xf919,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,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,0xffcc, +0xffcc,1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,0xfe02, +0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,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,0x2b48,1,1,1,0x2b4c, +0x3cb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0x908,1,0x90c,1,0x910,1,1,1,1,1,0x2735, +0x273b,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0x2741,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0x2747,0x274d,0x2753,0x914,1,0x918,1,0x91c,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,0x920,0x2759,1,1,1,0x924,0x275f,1, +0x928,0x2765,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0x92c,0x276b,0x930,0x2771,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,0x934,1,1,1,0x2777,1,0x938,0x277d,0x93c,1,0x2783,0x940,0x2789,1,1, +1,0x944,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0x278f,0x948,0x2795,1,0x94c,0x950,1,1,1,1,1,1, +1,0x279b,0x27a1,0x27a7,0x27ad,0x27b3,0x954,0x958,0x27b9,0x27bf,0x95c,0x960,0x27c5,0x27cb,0x964,0x968, +0x96c,0x970,1,1,0x27d1,0x27d7,0x974,0x978,0x27dd,0x27e3,0x97c,0x980,0x27e9,0x27ef,1,1, +1,1,1,1,1,0x984,0x988,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0x98c,1,1,1,1,1,0x990,0x994,1,0x998, +0x27f5,0x27fb,0x2801,0x2807,1,1,0x99c,0x9a0,0x9a4,0x9a8,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,0x280d,0x2813,0x2819,0x281f,1,1, +1,1,1,1,0x2825,0x282b,0x2831,0x2837,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,0x2b51,0x2b55,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,0x2b59, 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,0xfe0e,1,1,1,1,1,1,1,1,1,1, -1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffb8, -0xffb8,0xffb8,0xffb8,0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1, -0xffb8,1,1,1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,1,1, -1,1,1,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc, -0xffd4,0xffac,0xffb8,0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,0xffb4,0xffcc,0xffd2, -0xffb8,0xffcc,0xffb8,0x1a6c,0x1a72,0x1a78,0x1a7e,0x1a85,0x1a8b,0x1a91,0x1a97,0x1a9f,0x1aa9,0x1ab0,0x1ab6,0x1abc, -0x1ac2,0x1ac8,0x1ace,0x1ad5,0x1adb,0x1ae0,0x1ae6,0x1aee,0x1af8,0x1b02,0x1b0c,0x1b14,0x1b1a,0x1b20,0x1b26,0x1b2f, -0x1b39,0x1b41,0x1b47,0x1b4c,0x1b52,0x1b58,0x1b5e,0x1b64,0x1b6a,0x1b70,0x1b76,0x1b7d,0x1b83,0x1b88,0x1b8e,0x1b94, -0x1b9a,0x1ba2,0x1bac,0x1bb4,0x1bba,0x1bc0,0x1bc6,0x1bcc,0x1bd2,0xdde,0xde8,0x1bda,0x1be4,0x1bec,0x1bf2,0x1bf8, -0x1bfe,0x1c04,0x1c0a,0x1c10,0x1c16,0x1c1d,0x1c23,0x1c28,0x1c2e,0x1c34,0x1c3a,0x1c40,0x1c46,0x1c4c,0x1c52,0x1c5a, -0x1c64,0x1c6e,0x1c78,0x1c82,0x1c8c,0x1c96,0x1ca0,0x1ca9,0x1caf,0x1cb5,0x1cbb,0x1cc0,0x1cc6,0xdf2,0xdfc,0x1cce, -0x1cd8,0x1ce0,0x1ce6,0x1cec,0x1cf2,0xe06,0xe10,0x1cfa,0x1d04,0x1d0e,0x1d18,0x1d22,0x1d2c,0x1d34,0x1d3a,0x1d40, -0x1d46,0x1d4c,0x1d52,0x1d58,0x1d5e,0x1d64,0x1d6a,0x1d70,0x1d76,0x1d7c,0x1d82,0x1d8a,0x1d94,0x1d9e,0x1da8,0x1db0, -0x1db6,0x1dbd,0x1dc3,0x1dc8,0x1dce,0x1dd4,0x1dda,0x1de0,0x1de6,0x1dec,0x1df2,0x1df9,0x1dff,0x1e05,0x1e0b,0x1e11, -0x1e17,0x1e1c,0x1e22,0x1e28,0x1e2e,0x1e35,0x1e3b,0x1e41,0x1e47,0x1e4c,0x1e52,0x1e58,0x1e5e,1,0x1e65,1, -1,1,1,0xe1a,0xe28,0x1e6a,0x1e70,0x1e78,0x1e82,0x1e8c,0x1e96,0x1ea0,0x1eaa,0x1eb4,0x1ebe,0x1ec8, -0x1ed2,0x1edc,0x1ee6,0x1ef0,0x1efa,0x1f04,0x1f0e,0x1f18,0x1f22,0x1f2c,0x1f36,0xe36,0xe40,0x1f3e,0x1f44,0x1f4a, -0x1f50,0x1f58,0x1f62,0x1f6c,0x1f76,0x1f80,0x1f8a,0x1f94,0x1f9e,0x1fa8,0x1fb2,0x1fba,0x1fc0,0x1fc6,0x1fcc,0xe4a, -0xe54,0x1fd2,0x1fd8,0x1fe0,0x1fea,0x1ff4,0x1ffe,0x2008,0x2012,0x201c,0x2026,0x2030,0x203a,0x2044,0x204e,0x2058, -0x2062,0x206c,0x2076,0x2080,0x208a,0x2094,0x209e,0x20a6,0x20ac,0x20b2,0x20b8,0x20c0,0x20ca,0x20d4,0x20de,0x20e8, -0x20f2,0x20fc,0x2106,0x2110,0x211a,0x2122,0x2128,0x212f,0x2135,0x213a,0x2140,0x2146,0x214c,1,1,1, -1,1,1,0xe5e,0xe74,0xe8c,0xe9a,0xea8,0xeb6,0xec4,0xed2,0xede,0xef4,0xf0c,0xf1a,0xf28, -0xf36,0xf44,0xf52,0xf5e,0xf6c,0x2155,0x215f,0x2169,0x2173,1,1,0xf7a,0xf88,0x217d,0x2187,0x2191, -0x219b,1,1,0xf96,0xfac,0xfc4,0xfd2,0xfe0,0xfee,0xffc,0x100a,0x1016,0x102c,0x1044,0x1052,0x1060, -0x106e,0x107c,0x108a,0x1096,0x10a8,0x21a5,0x21af,0x21b9,0x21c3,0x21cd,0x21d7,0x10ba,0x10cc,0x21e1,0x21eb,0x21f5, -0x21ff,0x2209,0x2213,0x10de,0x10ec,0x221d,0x2227,0x2231,0x223b,1,1,0x10fa,0x1108,0x2245,0x224f,0x2259, -0x2263,1,1,0x1116,0x1128,0x226d,0x2277,0x2281,0x228b,0x2295,0x229f,1,0x113a,1,0x22a9,1, -0x22b3,1,0x22bd,0x114c,0x1162,0x117a,0x1188,0x1196,0x11a4,0x11b2,0x11c0,0x11cc,0x11e2,0x11fa,0x1208,0x1216, -0x1224,0x1232,0x1240,0x124c,0x3b9e,0x22c5,0x3ba6,0x1256,0x3bae,0x22cb,0x3bb6,0x22d1,0x3bbe,0x22d7,0x3bc6,0x1260, -0x3bce,1,1,0x22de,0x22e8,0x22f7,0x2307,0x2317,0x2327,0x2337,0x2347,0x2352,0x235c,0x236b,0x237b,0x238b, -0x239b,0x23ab,0x23bb,0x23c6,0x23d0,0x23df,0x23ef,0x23ff,0x240f,0x241f,0x242f,0x243a,0x2444,0x2453,0x2463,0x2473, -0x2483,0x2493,0x24a3,0x24ae,0x24b8,0x24c7,0x24d7,0x24e7,0x24f7,0x2507,0x2517,0x2522,0x252c,0x253b,0x254b,0x255b, -0x256b,0x257b,0x258b,0x2595,0x259b,0x25a3,0x25aa,0x25b3,1,0x126a,0x25bd,0x25c5,0x25cb,0x25d1,0x3bd6,0x25d6, -1,0x2ab2,0x8f0,1,0x25dd,0x25e5,0x25ec,0x25f5,1,0x1274,0x25ff,0x2607,0x3bde,0x260d,0x3be6,0x2612, -0x2619,0x261f,0x2625,0x262b,0x2631,0x2639,0x3bf0,1,1,0x2641,0x2649,0x2651,0x2657,0x265d,0x3bfa,1, -0x2663,0x2669,0x266f,0x2675,0x267b,0x2683,0x3c04,0x268b,0x2691,0x2697,0x269f,0x26a7,0x26ad,0x26b3,0x3c0e,0x26b9, -0x26bf,0x3c16,0x2ab7,1,1,0x26c7,0x26ce,0x26d7,1,0x127e,0x26e1,0x26e9,0x3c1e,0x26ef,0x3c26,0x26f4, -0x2abb,0x8fc,1,0xfa09,0xfa09,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,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,0xffcc,0xffcc, -1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,0xfe02,0xffb8, -0xffb8,0xffb8,0xffb8,0xffcc,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,0x2abe,1,1,1,0x2ac2,0x3c2e, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0x908,1,0x90c,1,0x910,1,1,1,1,1,0x26fb,0x2701, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0x2707,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0x270d,0x2713,0x2719,0x914,1,0x918,1,0x91c,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,0x920,0x271f,1,1,1,0x924,0x2725,1,0x928, -0x272b,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0x92c,0x2731,0x930,0x2737,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -0x934,1,1,1,0x273d,1,0x938,0x2743,0x93c,1,0x2749,0x940,0x274f,1,1,1, -0x944,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0x2755,0x948,0x275b,1,0x94c,0x950,1,1,1,1,1,1,1, -0x2761,0x2767,0x276d,0x2773,0x2779,0x954,0x958,0x277f,0x2785,0x95c,0x960,0x278b,0x2791,0x964,0x968,0x96c, -0x970,1,1,0x2797,0x279d,0x974,0x978,0x27a3,0x27a9,0x97c,0x980,0x27af,0x27b5,1,1,1, -1,1,1,1,0x984,0x988,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,0x98c,1,1,1,1,1,0x990,0x994,1,0x998,0x27bb, -0x27c1,0x27c7,0x27cd,1,1,0x99c,0x9a0,0x9a4,0x9a8,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,0x27d3,0x27d9,0x27df,0x27e5,1,1,1, -1,1,1,0x27eb,0x27f1,0x27f7,0x27fd,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, -0x2ac7,0x2acb,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,0x2acf,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,0xfe12,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,0xffcc, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12, +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, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, 0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,0xffc0,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x9ac, -1,1,1,1,0x9b0,0x2803,0x9b4,0x2809,0x9b8,0x280f,0x9bc,0x2815,0x9c0,0x281b,0x9c4,0x2821, -0x9c8,0x2827,0x9cc,0x282d,0x9d0,0x2833,0x9d4,0x2839,0x9d8,0x283f,0x9dc,0x2845,1,0x9e0,0x284b,0x9e4, -0x2851,0x9e8,0x2857,1,1,1,1,1,0x9ec,0x285d,0x2863,0x9f4,0x2869,0x286f,0x9fc,0x2875, -0x287b,0xa04,0x2881,0x2887,0xa0c,0x288d,0x2893,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0x2899,1,1,1,1, -0xfc10,0xfc10,1,1,0xa14,0x289f,1,1,1,1,1,1,1,0xa18,1,1, -1,1,0xa1c,0x28a5,0xa20,0x28ab,0xa24,0x28b1,0xa28,0x28b7,0xa2c,0x28bd,0xa30,0x28c3,0xa34,0x28c9, -0xa38,0x28cf,0xa3c,0x28d5,0xa40,0x28db,0xa44,0x28e1,0xa48,0x28e7,1,0xa4c,0x28ed,0xa50,0x28f3,0xa54, -0x28f9,1,1,1,1,1,0xa58,0x28ff,0x2905,0xa60,0x290b,0x2911,0xa68,0x2917,0x291d,0xa70, -0x2923,0x2929,0xa78,0x292f,0x2935,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x293b,1,1,0x2941,0x2947, -0x294d,0x2953,1,1,0xa90,0x2959,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,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,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,0xffcc,0xffcc,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,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,0xffc0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1, +0x9ac,1,1,1,1,0x9b0,0x283d,0x9b4,0x2843,0x9b8,0x2849,0x9bc,0x284f,0x9c0,0x2855,0x9c4, +0x285b,0x9c8,0x2861,0x9cc,0x2867,0x9d0,0x286d,0x9d4,0x2873,0x9d8,0x2879,0x9dc,0x287f,1,0x9e0,0x2885, +0x9e4,0x288b,0x9e8,0x2891,1,1,1,1,1,0x9ec,0x2897,0x289d,0x9f4,0x28a3,0x28a9,0x9fc, +0x28af,0x28b5,0xa04,0x28bb,0x28c1,0xa0c,0x28c7,0x28cd,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,0x28d3,1,1,1, +1,0xfc10,0xfc10,1,1,0xa14,0x28d9,1,1,1,1,1,1,1,0xa18,1, +1,1,1,0xa1c,0x28df,0xa20,0x28e5,0xa24,0x28eb,0xa28,0x28f1,0xa2c,0x28f7,0xa30,0x28fd,0xa34, +0x2903,0xa38,0x2909,0xa3c,0x290f,0xa40,0x2915,0xa44,0x291b,0xa48,0x2921,1,0xa4c,0x2927,0xa50,0x292d, +0xa54,0x2933,1,1,1,1,1,0xa58,0x2939,0x293f,0xa60,0x2945,0x294b,0xa68,0x2951,0x2957, +0xa70,0x295d,0x2963,0xa78,0x2969,0x296f,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x2975,1,1,0x297b, +0x2981,0x2987,0x298d,1,1,0xa90,0x2993,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,0xfe12,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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,0xffcc,0xffcc,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,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0xfe12,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,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0xfe12,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,0xfe12,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,0xffcc,1,0xffcc,0xffcc,0xffb8,1,1, -0xffcc,0xffcc,1,1,1,1,1,0xffcc,0xffcc,1,0xffcc,1,1,1,1,1, +1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,0xfe12, -1,1,1,1,1,1,1,1,1,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0x1289,0x1289,0x1289,0x1289,0x1289,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0x1289,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0xae2,0x1289,0x1289, -0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,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,0x3c66,1,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c66, -0x3c66,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0x3c66,1,1,1,1,0x3c66,1,1,1,0x3c66,0x3c66,0x3c66, -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,0x3b97,1, -0x2ad5,0x2ad9,0x2add,0x2ae1,0x2ae5,0x2ae9,0x2aed,0x2af1,0x2af1,0x2af5,0x2af9,0x2afd,0x2b01,0x2b05,0x2b09,0x2b0d, -0x2b11,0x2b15,0x2b19,0x2b1d,0x2b21,0x2b25,0x2b29,0x2b2d,0x2b31,0x2b35,0x2b39,0x2b3d,0x2b41,0x2b45,0x2b49,0x2b4d, -0x2b51,0x2b55,0x2b59,0x2b5d,0x2b61,0x2b65,0x2b69,0x2b6d,0x2b71,0x2b75,0x2b79,0x2b7d,0x2b81,0x2b85,0x2b89,0x2b8d, -0x2b91,0x2b95,0x2b99,0x2b9d,0x2ba1,0x2ba5,0x2ba9,0x2bad,0x2bb1,0x2bb5,0x2bb9,0x2bbd,0x2bc1,0x2bc5,0x2bc9,0x2bcd, -0x2bd1,0x2bd5,0x2bd9,0x2bdd,0x2be1,0x2be5,0x2be9,0x2bed,0x2bf1,0x2bf5,0x2bf9,0x2bfd,0x2c01,0x2c05,0x2c09,0x2c0d, -0x2c11,0x2c15,0x2c19,0x2c1d,0x2c21,0x2c25,0x2c29,0x2c2d,0x2c31,0x2c35,0x2c39,0x2c3d,0x2b21,0x2c41,0x2c45,0x2c49, -0x2c4d,0x2c51,0x2c55,0x2c59,0x2c5d,0x2c61,0x2c65,0x2c69,0x2c6d,0x2c71,0x2c75,0x2c79,0x2c7d,0x2c81,0x2c85,0x2c89, -0x2c8d,0x2c91,0x2c95,0x2c99,0x2c9d,0x2ca1,0x2ca5,0x2ca9,0x2cad,0x2cb1,0x2cb5,0x2cb9,0x2cbd,0x2cc1,0x2cc5,0x2cc9, -0x2ccd,0x2cd1,0x2cd5,0x2cd9,0x2cdd,0x2ce1,0x2ce5,0x2ce9,0x2ced,0x2cf1,0x2cf5,0x2cf9,0x2cfd,0x2d01,0x2d05,0x2d09, -0x2d0d,0x2d11,0x2d15,0x2d19,0x2d1d,0x2d21,0x2d25,0x2d29,0x2d2d,0x2d31,0x2d35,0x2d39,0x2d3d,0x2d41,0x2d45,0x2d49, -0x2d4d,0x2c89,0x2d51,0x2d55,0x2d59,0x2d5d,0x2d61,0x2d65,0x2d69,0x2d6d,0x2c49,0x2d71,0x2d75,0x2d79,0x2d7d,0x2d81, -0x2d85,0x2d89,0x2d8d,0x2d91,0x2d95,0x2d99,0x2d9d,0x2da1,0x2da5,0x2da9,0x2dad,0x2db1,0x2db5,0x2db9,0x2dbd,0x2b21, -0x2dc1,0x2dc5,0x2dc9,0x2dcd,0x2dd1,0x2dd5,0x2dd9,0x2ddd,0x2de1,0x2de5,0x2de9,0x2ded,0x2df1,0x2df5,0x2df9,0x2dfd, -0x2e01,0x2e05,0x2e09,0x2e0d,0x2e11,0x2e15,0x2e19,0x2e1d,0x2e21,0x2e25,0x2e29,0x2c51,0x2e2d,0x2e31,0x2e35,0x2e39, -0x2e3d,0x2e41,0x2e45,0x2e49,0x2e4d,0x2e51,0x2e55,0x2e59,0x2e5d,0x2e61,0x2e65,0x2e69,0x2e6d,0x2e71,0x2e75,0x2e79, -0x2e7d,0x2e81,0x2e85,0x2e89,0x2e8d,0x2e91,0x2e95,0x2e99,0x2e9d,0x2ea1,0x2ea5,0x2ea9,0x2ead,0x2eb1,0x2eb5,0x2eb9, -0x2ebd,0x2ec1,0x2ec5,0x2ec9,0x2ecd,0x2ed1,0x2ed5,0x2ed9,0x2edd,0x2ee1,0x2ee5,0x2ee9,0x2eed,0x2ef1,1,1, -0x2ef5,1,0x2ef9,1,1,0x2efd,0x2f01,0x2f05,0x2f09,0x2f0d,0x2f11,0x2f15,0x2f19,0x2f1d,0x2f21,1, -0x2f25,1,0x2f29,1,1,0x2f2d,0x2f31,1,1,1,0x2f35,0x2f39,0x2f3d,0x2f41,0x2f45,0x2f49, -0x2f4d,0x2f51,0x2f55,0x2f59,0x2f5d,0x2f61,0x2f65,0x2f69,0x2f6d,0x2f71,0x2f75,0x2f79,0x2f7d,0x2f81,0x2f85,0x2f89, -0x2f8d,0x2f91,0x2f95,0x2f99,0x2f9d,0x2fa1,0x2fa5,0x2fa9,0x2fad,0x2fb1,0x2fb5,0x2fb9,0x2fbd,0x2fc1,0x2fc5,0x2fc9, -0x2fcd,0x2fd1,0x2fd5,0x2fd9,0x2fdd,0x2fe1,0x2fe5,0x2d25,0x2fe9,0x2fed,0x2ff1,0x2ff5,0x2ff9,0x2ffd,0x2ffd,0x3001, -0x3005,0x3009,0x300d,0x3011,0x3015,0x3019,0x301d,0x2f2d,0x3021,0x3025,0x3029,0x302d,0x3031,0x3037,1,1, -0x303b,0x303f,0x3043,0x3047,0x304b,0x304f,0x3053,0x3057,0x2f65,0x305b,0x305f,0x3063,0x2ef5,0x3067,0x306b,0x306f, -0x3073,0x3077,0x307b,0x307f,0x3083,0x3087,0x308b,0x308f,0x3093,0x2f89,0x3097,0x2f8d,0x309b,0x309f,0x30a3,0x30a7, -0x30ab,0x2ef9,0x2b75,0x30af,0x30b3,0x30b7,0x2c8d,0x2de9,0x30bb,0x30bf,0x2fa9,0x30c3,0x2fad,0x30c7,0x30cb,0x30cf, -0x2f01,0x30d3,0x30d7,0x30db,0x30df,0x30e3,0x2f05,0x30e7,0x30eb,0x30ef,0x30f3,0x30f7,0x30fb,0x2fe5,0x30ff,0x3103, -0x2d25,0x3107,0x2ff5,0x310b,0x310f,0x3113,0x3117,0x311b,0x3009,0x311f,0x2f29,0x3123,0x300d,0x2c41,0x3127,0x3011, -0x312b,0x3019,0x312f,0x3133,0x3137,0x313b,0x313f,0x3021,0x2f19,0x3143,0x3025,0x3147,0x3029,0x314b,0x2af1,0x314f, -0x3155,0x315b,0x3161,0x3165,0x3169,0x316d,0x3173,0x3179,0x317f,0x3183,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, -0x3186,0xfe34,0x318c,1,1,1,1,1,1,1,1,1,1,0x3192,0x3198,0x31a0, -0x31aa,0x31b2,0x31b8,0x31be,0x31c4,0x31ca,0x31d0,0x31d6,0x31dc,0x31e2,1,0x31e8,0x31ee,0x31f4,0x31fa,0x3200, -1,0x3206,1,0x320c,0x3212,1,0x3218,0x321e,1,0x3224,0x322a,0x3230,0x3236,0x323c,0x3242,0x3248, -0x324e,0x3254,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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, -0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0xffb8,1,0xffcc,1,1,1,1,1,1,1,1,0xffcc,0xfe02, -0xffb8,1,1,1,1,0xfe12,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1, +1,1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,0xfe12,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,0xffcc,1,0xffcc,0xffcc,0xffb8,1, +1,0xffcc,0xffcc,1,1,1,1,1,0xffcc,0xffcc,1,0xffcc,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, +0xfe12,1,1,1,1,1,1,1,1,1,0xb0c,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3, +0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3, +0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0xb0c,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3, +0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3, +0x12c3,0x12c3,0xb0c,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3, +0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0xb0c,0x12c3, +0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3, +0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,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,0x3cf0,0x29a0,0x3cf0,0x3cf0,0x3cf0,0x3cf0,0x3cf0,0x3cf0,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3cf0,1, +0x3cf0,0x3cf0,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0x3cf0,1,1,1,1,0x3cf0,1,1,1,0x3cf0,0x3cf0, +0x3cf0,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,0x3c21, +1,0x2b5f,0x2b63,0x2b67,0x2b6b,0x2b6f,0x2b73,0x2b77,0x2b7b,0x2b7b,0x2b7f,0x2b83,0x2b87,0x2b8b,0x2b8f,0x2b93, +0x2b97,0x2b9b,0x2b9f,0x2ba3,0x2ba7,0x2bab,0x2baf,0x2bb3,0x2bb7,0x2bbb,0x2bbf,0x2bc3,0x2bc7,0x2bcb,0x2bcf,0x2bd3, +0x2bd7,0x2bdb,0x2bdf,0x2be3,0x2be7,0x2beb,0x2bef,0x2bf3,0x2bf7,0x2bfb,0x2bff,0x2c03,0x2c07,0x2c0b,0x2c0f,0x2c13, +0x2c17,0x2c1b,0x2c1f,0x2c23,0x2c27,0x2c2b,0x2c2f,0x2c33,0x2c37,0x2c3b,0x2c3f,0x2c43,0x2c47,0x2c4b,0x2c4f,0x2c53, +0x2c57,0x2c5b,0x2c5f,0x2c63,0x2c67,0x2c6b,0x2c6f,0x2c73,0x2c77,0x2c7b,0x2c7f,0x2c83,0x2c87,0x2c8b,0x2c8f,0x2c93, +0x2c97,0x2c9b,0x2c9f,0x2ca3,0x2ca7,0x2cab,0x2caf,0x2cb3,0x2cb7,0x2cbb,0x2cbf,0x2cc3,0x2cc7,0x2bab,0x2ccb,0x2ccf, +0x2cd3,0x2cd7,0x2cdb,0x2cdf,0x2ce3,0x2ce7,0x2ceb,0x2cef,0x2cf3,0x2cf7,0x2cfb,0x2cff,0x2d03,0x2d07,0x2d0b,0x2d0f, +0x2d13,0x2d17,0x2d1b,0x2d1f,0x2d23,0x2d27,0x2d2b,0x2d2f,0x2d33,0x2d37,0x2d3b,0x2d3f,0x2d43,0x2d47,0x2d4b,0x2d4f, +0x2d53,0x2d57,0x2d5b,0x2d5f,0x2d63,0x2d67,0x2d6b,0x2d6f,0x2d73,0x2d77,0x2d7b,0x2d7f,0x2d83,0x2d87,0x2d8b,0x2d8f, +0x2d93,0x2d97,0x2d9b,0x2d9f,0x2da3,0x2da7,0x2dab,0x2daf,0x2db3,0x2db7,0x2dbb,0x2dbf,0x2dc3,0x2dc7,0x2dcb,0x2dcf, +0x2dd3,0x2dd7,0x2d13,0x2ddb,0x2ddf,0x2de3,0x2de7,0x2deb,0x2def,0x2df3,0x2df7,0x2cd3,0x2dfb,0x2dff,0x2e03,0x2e07, +0x2e0b,0x2e0f,0x2e13,0x2e17,0x2e1b,0x2e1f,0x2e23,0x2e27,0x2e2b,0x2e2f,0x2e33,0x2e37,0x2e3b,0x2e3f,0x2e43,0x2e47, +0x2bab,0x2e4b,0x2e4f,0x2e53,0x2e57,0x2e5b,0x2e5f,0x2e63,0x2e67,0x2e6b,0x2e6f,0x2e73,0x2e77,0x2e7b,0x2e7f,0x2e83, +0x2e87,0x2e8b,0x2e8f,0x2e93,0x2e97,0x2e9b,0x2e9f,0x2ea3,0x2ea7,0x2eab,0x2eaf,0x2eb3,0x2cdb,0x2eb7,0x2ebb,0x2ebf, +0x2ec3,0x2ec7,0x2ecb,0x2ecf,0x2ed3,0x2ed7,0x2edb,0x2edf,0x2ee3,0x2ee7,0x2eeb,0x2eef,0x2ef3,0x2ef7,0x2efb,0x2eff, +0x2f03,0x2f07,0x2f0b,0x2f0f,0x2f13,0x2f17,0x2f1b,0x2f1f,0x2f23,0x2f27,0x2f2b,0x2f2f,0x2f33,0x2f37,0x2f3b,0x2f3f, +0x2f43,0x2f47,0x2f4b,0x2f4f,0x2f53,0x2f57,0x2f5b,0x2f5f,0x2f63,0x2f67,0x2f6b,0x2f6f,0x2f73,0x2f77,0x2f7b,1, +1,0x2f7f,1,0x2f83,1,1,0x2f87,0x2f8b,0x2f8f,0x2f93,0x2f97,0x2f9b,0x2f9f,0x2fa3,0x2fa7,0x2fab, +1,0x2faf,1,0x2fb3,1,1,0x2fb7,0x2fbb,1,1,1,0x2fbf,0x2fc3,0x2fc7,0x2fcb,0x2fcf, +0x2fd3,0x2fd7,0x2fdb,0x2fdf,0x2fe3,0x2fe7,0x2feb,0x2fef,0x2ff3,0x2ff7,0x2ffb,0x2fff,0x3003,0x3007,0x300b,0x300f, +0x3013,0x3017,0x301b,0x301f,0x3023,0x3027,0x302b,0x302f,0x3033,0x3037,0x303b,0x303f,0x3043,0x3047,0x304b,0x304f, +0x3053,0x3057,0x305b,0x305f,0x3063,0x3067,0x306b,0x306f,0x2daf,0x3073,0x3077,0x307b,0x307f,0x3083,0x3087,0x3087, +0x308b,0x308f,0x3093,0x3097,0x309b,0x309f,0x30a3,0x30a7,0x2fb7,0x30ab,0x30af,0x30b3,0x30b7,0x30bb,0x30c1,1, +1,0x30c5,0x30c9,0x30cd,0x30d1,0x30d5,0x30d9,0x30dd,0x30e1,0x2fef,0x30e5,0x30e9,0x30ed,0x2f7f,0x30f1,0x30f5, +0x30f9,0x30fd,0x3101,0x3105,0x3109,0x310d,0x3111,0x3115,0x3119,0x311d,0x3013,0x3121,0x3017,0x3125,0x3129,0x312d, +0x3131,0x3135,0x2f83,0x2bff,0x3139,0x313d,0x3141,0x2d17,0x2e73,0x3145,0x3149,0x3033,0x314d,0x3037,0x3151,0x3155, +0x3159,0x2f8b,0x315d,0x3161,0x3165,0x3169,0x316d,0x2f8f,0x3171,0x3175,0x3179,0x317d,0x3181,0x3185,0x306f,0x3189, +0x318d,0x2daf,0x3191,0x307f,0x3195,0x3199,0x319d,0x31a1,0x31a5,0x3093,0x31a9,0x2fb3,0x31ad,0x3097,0x2ccb,0x31b1, +0x309b,0x31b5,0x30a3,0x31b9,0x31bd,0x31c1,0x31c5,0x31c9,0x30ab,0x2fa3,0x31cd,0x30af,0x31d1,0x30b3,0x31d5,0x2b7b, +0x31d9,0x31df,0x31e5,0x31eb,0x31ef,0x31f3,0x31f7,0x31fd,0x3203,0x3209,0x320d,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,0x3210,0xfe34,0x3216,1,1,1,1,1,1,1,1,1,1,0x321c,0x3222, +0x322a,0x3234,0x323c,0x3242,0x3248,0x324e,0x3254,0x325a,0x3260,0x3266,0x326c,1,0x3272,0x3278,0x327e,0x3284, +0x328a,1,0x3290,1,0x3296,0x329c,1,0x32a2,0x32a8,1,0x32ae,0x32b4,0x32ba,0x32c0,0x32c6,0x32cc, +0x32d2,0x32d8,0x32de,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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, +0xffb8,0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0x2999,1,1,1,1,1,1,0xa94,1,1,1,1, +1,1,1,0xa9a,1,1,1,1,1,0x29a1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0xffb8,1,0xffcc,1,1,1,1,1,1, +1,1,0xffcc,0xfe02,0xffb8,1,1,1,1,0xfe12,1,1,1,1,0xffcc,0xffcc, +0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, 1,1,1,1,1,1,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8, 1,1,0xffcc,0xffb8,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1, 0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12, -1,1,1,1,1,1,1,1,1,0xa94,0x295f,0xa9a,0x2969,1,1,1, -1,1,0xaa0,1,1,1,1,1,0x2973,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,0xaa0,0x29a9,0xaa6,0x29b3,1,1,1, +1,1,0xaac,1,1,1,1,1,0x29bd,1,1,1,1,1,1,1, 1,1,0xfe12,0xfc0e,1,1,1,1,1,1,1,0xfc00,1,1,1,1, -1,1,0x297d,0x2987,1,0xaa6,0xaac,0xfe12,0xfe12,1,1,1,1,1,1,1, +1,1,0x29c7,0x29d1,1,0xab2,0xab8,0xfe12,0xfe12,1,1,1,1,1,1,1, 1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,0xfe0e,1, 1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,0xfe0e, 0xfe12,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,0xfe0e,1,0xfc00, -1,1,1,1,1,1,1,0xab2,1,1,1,0x2991,0x299b,0xfe12,1,1, -1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,0xfe12,1, -1,1,0xfe0e,1,1,1,1,1,1,1,1,1,0xfc00,1,1,1, -1,1,1,1,1,0xabe,0xfc00,0x29a5,0x29af,0xfc00,0x29b9,1,1,0xfe12,0xfe0e,1, -1,1,1,1,1,1,1,1,1,1,1,0xad0,0xad6,0x29c3,0x29cd,1, -1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,0xfc00,1,1, -1,1,0xadc,1,1,0x29d7,1,1,1,1,0xfe12,0xfe12,1,0xfe02,0xfe02,0xfe02, -0xfe02,0xfe02,1,1,1,1,1,1,1,1,1,1,1,0xfe0c,0xfe0c,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe02,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0x325a,0x3264,0x3278,0x3290, -0x32a8,0x32c0,0x32d8,0xffb0,0xffb0,0xfe02,0xfe02,0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0,1, -1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,0xffcc, -0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x32e6,0x32f0, -0x3304,0x331c,0x3334,0x334c,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1, -0xffd0,0xffd0,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,1,1,1, -1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,1,1,1,1, -0x335b,0x335f,0x3363,0x3367,0x336d,0x2f4d,0x3371,0x3375,0x3379,0x337d,0x2f51,0x3381,0x3385,0x3389,0x2f55,0x338f, -0x3393,0x3397,0x339b,0x33a1,0x33a5,0x33a9,0x33ad,0x33b3,0x33b7,0x33bb,0x33bf,0x303f,0x33c3,0x33c9,0x33cd,0x33d1, -0x33d5,0x33d9,0x33dd,0x33e1,0x33e5,0x3053,0x2f59,0x2f5d,0x3057,0x33e9,0x33ed,0x2c59,0x33f1,0x2f61,0x33f5,0x33f9, -0x33fd,0x3401,0x3401,0x3401,0x3405,0x340b,0x340f,0x3413,0x3417,0x341d,0x3421,0x3425,0x3429,0x342d,0x3431,0x3435, -0x3439,0x343d,0x3441,0x3445,0x3449,0x344d,0x344d,0x305f,0x3451,0x3455,0x3459,0x345d,0x2f69,0x3461,0x3465,0x3469, -0x2ebd,0x346d,0x3471,0x3475,0x3479,0x347d,0x3481,0x3485,0x3489,0x348d,0x3493,0x3497,0x349b,0x349f,0x34a3,0x34a7, -0x34ab,0x34b1,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34cb,0x34cf,0x34d3,0x34d7,0x34d7,0x34db,0x34e1,0x34e5,0x2c49, -0x34e9,0x34ed,0x34f3,0x34f7,0x34fb,0x34ff,0x3503,0x3507,0x2f7d,0x350b,0x350f,0x3513,0x3519,0x351d,0x3523,0x3527, -0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3543,0x3547,0x354b,0x354f,0x3555,0x3559,0x355d,0x3561,0x2b71,0x3565, -0x356b,0x356f,0x356f,0x3575,0x3579,0x3579,0x357d,0x3581,0x3587,0x358d,0x3591,0x3595,0x3599,0x359d,0x35a1,0x35a5, -0x35a9,0x35ad,0x35b1,0x2f81,0x35b5,0x35bb,0x35bf,0x35c3,0x308f,0x35c3,0x35c7,0x2f89,0x35cb,0x35cf,0x35d3,0x35d7, -0x2f8d,0x2b05,0x35db,0x35df,0x35e3,0x35e7,0x35eb,0x35ef,0x35f3,0x35f9,0x35fd,0x3601,0x3605,0x3609,0x360d,0x3613, -0x3617,0x361b,0x361f,0x3623,0x3627,0x362b,0x362f,0x3633,0x2f91,0x3637,0x363b,0x3641,0x3645,0x3649,0x364d,0x2f99, -0x3651,0x3655,0x3659,0x365d,0x3661,0x3665,0x3669,0x366d,0x2b75,0x30af,0x3671,0x3675,0x3679,0x367d,0x3683,0x3687, -0x368b,0x368f,0x2f9d,0x3693,0x3699,0x369d,0x36a1,0x3161,0x36a5,0x36a9,0x36ad,0x36b1,0x36b5,0x36bb,0x36bf,0x36c3, -0x36c7,0x36cd,0x36d1,0x36d5,0x36d9,0x2c8d,0x36dd,0x36e1,0x36e7,0x36ed,0x36f3,0x36f7,0x36fd,0x3701,0x3705,0x3709, -0x370d,0x2fa1,0x2de9,0x3711,0x3715,0x3719,0x371d,0x3723,0x3727,0x372b,0x372f,0x30bf,0x3733,0x3737,0x373d,0x3741, -0x3745,0x374b,0x3751,0x3755,0x30c3,0x3759,0x375d,0x3761,0x3765,0x3769,0x376d,0x3771,0x3777,0x377b,0x3781,0x3785, -0x378b,0x30cb,0x378f,0x3793,0x3799,0x379d,0x37a1,0x37a7,0x37ad,0x37b1,0x37b5,0x37b9,0x37bd,0x37bd,0x37c1,0x37c5, -0x30d3,0x37c9,0x37cd,0x37d1,0x37d5,0x37d9,0x37df,0x37e3,0x2c55,0x37e9,0x37ef,0x37f3,0x37f9,0x37ff,0x3805,0x3809, -0x30eb,0x380d,0x3813,0x3819,0x381f,0x3825,0x3829,0x3829,0x30ef,0x3169,0x382d,0x3831,0x3835,0x3839,0x383f,0x2bbd, -0x30f7,0x3843,0x3847,0x2fcd,0x384d,0x3853,0x2f15,0x3859,0x385d,0x2fdd,0x3861,0x3865,0x3869,0x386f,0x386f,0x3875, -0x3879,0x387d,0x3883,0x3887,0x388b,0x388f,0x3895,0x3899,0x389d,0x38a1,0x38a5,0x38a9,0x38af,0x38b3,0x38b7,0x38bb, -0x38bf,0x38c3,0x38c7,0x38cd,0x38d3,0x38d7,0x38dd,0x38e1,0x38e7,0x38eb,0x2ff5,0x38ef,0x38f5,0x38fb,0x38ff,0x3905, -0x3909,0x390f,0x3913,0x3917,0x391b,0x391f,0x3923,0x3927,0x392d,0x3933,0x3939,0x3575,0x393f,0x3943,0x3947,0x394b, -0x394f,0x3953,0x3957,0x395b,0x395f,0x3963,0x3967,0x396b,0x2c9d,0x3971,0x3975,0x3979,0x397d,0x3981,0x3985,0x3001, -0x3989,0x398d,0x3991,0x3995,0x3999,0x399f,0x39a5,0x39ab,0x39af,0x39b3,0x39b7,0x39bb,0x39c1,0x39c5,0x39cb,0x39cf, -0x39d3,0x39d9,0x39df,0x39e3,0x2ba9,0x39e7,0x39eb,0x39ef,0x39f3,0x39f7,0x39fb,0x3113,0x39ff,0x3a03,0x3a07,0x3a0b, -0x3a0f,0x3a13,0x3a17,0x3a1b,0x3a1f,0x3a23,0x3a29,0x3a2d,0x3a31,0x3a35,0x3a39,0x3a3d,0x3a43,0x3a49,0x3a4d,0x3a51, -0x3127,0x312b,0x3a55,0x3a59,0x3a5f,0x3a63,0x3a67,0x3a6b,0x3a6f,0x3a75,0x3a7b,0x3a7f,0x3a83,0x3a87,0x3a8d,0x312f, -0x3a91,0x3a97,0x3a9d,0x3aa1,0x3aa5,0x3aa9,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3abf,0x3ac3,0x3ac7,0x3acb,0x3ad1,0x3ad5, -0x3ad9,0x3add,0x3ae3,0x3ae7,0x3aeb,0x3aef,0x3af3,0x3af9,0x3aff,0x3b03,0x3b07,0x3b0b,0x3b11,0x3b15,0x3147,0x3147, -0x3b1b,0x3b1f,0x3b25,0x3b29,0x3b2d,0x3b31,0x3b35,0x3b39,0x3b3d,0x3b41,0x314b,0x3b47,0x3b4b,0x3b4f,0x3b53,0x3b57, -0x3b5b,0x3b61,0x3b65,0x3b6b,0x3b71,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,0x3b8b,0x3b8f,0x3b93,0x3b97,1,1 +1,1,1,1,1,1,1,0xabe,1,1,1,0x29db,0x29e5,0xfe12,1,1, +1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,0xaca,0x29ef, +0xad0,0x29f9,1,1,1,1,1,0xad6,1,1,0x2a03,1,0xadc,0x2a0d,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,0xfc00,1,1,0xfc00, +1,1,1,1,0xfbc4,1,1,0xfb10,1,0xfb1a,0xfb24,0xfc00,1,1,1,1, +0xfe12,0xfe12,1,1,0xfe12,1,1,1,0xfe0e,1,1,1,1,1,1,1, +1,1,0xfc00,1,1,1,1,1,1,1,1,0xae2,0xfc00,0x2a17,0x2a21,0xfc00, +0x2a2b,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,1, +1,0xaf4,0xafa,0x2a35,0x2a3f,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1, +1,1,1,0xfc00,1,1,1,1,0xb00,1,1,0x2a49,1,1,1,1, +0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0xfbd6,0xfc00,0xfb9e,0xfbb4,0xfb2e,0xfb38,0xfb42,0xfb56,0xfb6e,0xfb86,0xfbee,1,1,1,1,1, +0xfe12,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1,1,1,1,1,1,1, +1,0xb06,1,1,1,0xfbf4,0xfb94,0x12b2,0x2a5d,1,1,1,1,1,0xfe0c,0xfe0c, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe02,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,0x32e4,0x32ee,0x3302, +0x331a,0x3332,0x334a,0x3362,0xffb0,0xffb0,0xfe02,0xfe02,0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0, +1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1, +0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x3370, +0x337a,0x338e,0x33a6,0x33be,0x33d6,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1, +1,0xffd0,0xffd0,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,1,1, +1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,1,1,1, +1,0x33e5,0x33e9,0x33ed,0x33f1,0x33f7,0x2fd7,0x33fb,0x33ff,0x3403,0x3407,0x2fdb,0x340b,0x340f,0x3413,0x2fdf, +0x3419,0x341d,0x3421,0x3425,0x342b,0x342f,0x3433,0x3437,0x343d,0x3441,0x3445,0x3449,0x30c9,0x344d,0x3453,0x3457, +0x345b,0x345f,0x3463,0x3467,0x346b,0x346f,0x30dd,0x2fe3,0x2fe7,0x30e1,0x3473,0x3477,0x2ce3,0x347b,0x2feb,0x347f, +0x3483,0x3487,0x348b,0x348b,0x348b,0x348f,0x3495,0x3499,0x349d,0x34a1,0x34a7,0x34ab,0x34af,0x34b3,0x34b7,0x34bb, +0x34bf,0x34c3,0x34c7,0x34cb,0x34cf,0x34d3,0x34d7,0x34d7,0x30e9,0x34db,0x34df,0x34e3,0x34e7,0x2ff3,0x34eb,0x34ef, +0x34f3,0x2f47,0x34f7,0x34fb,0x34ff,0x3503,0x3507,0x350b,0x350f,0x3513,0x3517,0x351d,0x3521,0x3525,0x3529,0x352d, +0x3531,0x3535,0x353b,0x3541,0x3545,0x3549,0x354d,0x3551,0x3555,0x3559,0x355d,0x3561,0x3561,0x3565,0x356b,0x356f, +0x2cd3,0x3573,0x3577,0x357d,0x3581,0x3585,0x3589,0x358d,0x3591,0x3007,0x3595,0x3599,0x359d,0x35a3,0x35a7,0x35ad, +0x35b1,0x35b5,0x35b9,0x35bd,0x35c1,0x35c5,0x35c9,0x35cd,0x35d1,0x35d5,0x35d9,0x35df,0x35e3,0x35e7,0x35eb,0x2bfb, +0x35ef,0x35f5,0x35f9,0x35f9,0x35ff,0x3603,0x3603,0x3607,0x360b,0x3611,0x3617,0x361b,0x361f,0x3623,0x3627,0x362b, +0x362f,0x3633,0x3637,0x363b,0x300b,0x363f,0x3645,0x3649,0x364d,0x3119,0x364d,0x3651,0x3013,0x3655,0x3659,0x365d, +0x3661,0x3017,0x2b8f,0x3665,0x3669,0x366d,0x3671,0x3675,0x3679,0x367d,0x3683,0x3687,0x368b,0x368f,0x3693,0x3697, +0x369d,0x36a1,0x36a5,0x36a9,0x36ad,0x36b1,0x36b5,0x36b9,0x36bd,0x301b,0x36c1,0x36c5,0x36cb,0x36cf,0x36d3,0x36d7, +0x3023,0x36db,0x36df,0x36e3,0x36e7,0x36eb,0x36ef,0x36f3,0x36f7,0x2bff,0x3139,0x36fb,0x36ff,0x3703,0x3707,0x370d, +0x3711,0x3715,0x3719,0x3027,0x371d,0x3723,0x3727,0x372b,0x31eb,0x372f,0x3733,0x3737,0x373b,0x373f,0x3745,0x3749, +0x374d,0x3751,0x3757,0x375b,0x375f,0x3763,0x2d17,0x3767,0x376b,0x3771,0x3777,0x377d,0x3781,0x3787,0x378b,0x378f, +0x3793,0x3797,0x302b,0x2e73,0x379b,0x379f,0x37a3,0x37a7,0x37ad,0x37b1,0x37b5,0x37b9,0x3149,0x37bd,0x37c1,0x37c7, +0x37cb,0x37cf,0x37d5,0x37db,0x37df,0x314d,0x37e3,0x37e7,0x37eb,0x37ef,0x37f3,0x37f7,0x37fb,0x3801,0x3805,0x380b, +0x380f,0x3815,0x3155,0x3819,0x381d,0x3823,0x3827,0x382b,0x3831,0x3837,0x383b,0x383f,0x3843,0x3847,0x3847,0x384b, +0x384f,0x315d,0x3853,0x3857,0x385b,0x385f,0x3863,0x3869,0x386d,0x2cdf,0x3873,0x3879,0x387d,0x3883,0x3889,0x388f, +0x3893,0x3175,0x3897,0x389d,0x38a3,0x38a9,0x38af,0x38b3,0x38b3,0x3179,0x31f3,0x38b7,0x38bb,0x38bf,0x38c3,0x38c9, +0x2c47,0x3181,0x38cd,0x38d1,0x3057,0x38d7,0x38dd,0x2f9f,0x38e3,0x38e7,0x3067,0x38eb,0x38ef,0x38f3,0x38f9,0x38f9, +0x38ff,0x3903,0x3907,0x390d,0x3911,0x3915,0x3919,0x391f,0x3923,0x3927,0x392b,0x392f,0x3933,0x3939,0x393d,0x3941, +0x3945,0x3949,0x394d,0x3951,0x3957,0x395d,0x3961,0x3967,0x396b,0x3971,0x3975,0x307f,0x3979,0x397f,0x3985,0x3989, +0x398f,0x3993,0x3999,0x399d,0x39a1,0x39a5,0x39a9,0x39ad,0x39b1,0x39b7,0x39bd,0x39c3,0x35ff,0x39c9,0x39cd,0x39d1, +0x39d5,0x39d9,0x39dd,0x39e1,0x39e5,0x39e9,0x39ed,0x39f1,0x39f5,0x2d27,0x39fb,0x39ff,0x3a03,0x3a07,0x3a0b,0x3a0f, +0x308b,0x3a13,0x3a17,0x3a1b,0x3a1f,0x3a23,0x3a29,0x3a2f,0x3a35,0x3a39,0x3a3d,0x3a41,0x3a45,0x3a4b,0x3a4f,0x3a55, +0x3a59,0x3a5d,0x3a63,0x3a69,0x3a6d,0x2c33,0x3a71,0x3a75,0x3a79,0x3a7d,0x3a81,0x3a85,0x319d,0x3a89,0x3a8d,0x3a91, +0x3a95,0x3a99,0x3a9d,0x3aa1,0x3aa5,0x3aa9,0x3aad,0x3ab3,0x3ab7,0x3abb,0x3abf,0x3ac3,0x3ac7,0x3acd,0x3ad3,0x3ad7, +0x3adb,0x31b1,0x31b5,0x3adf,0x3ae3,0x3ae9,0x3aed,0x3af1,0x3af5,0x3af9,0x3aff,0x3b05,0x3b09,0x3b0d,0x3b11,0x3b17, +0x31b9,0x3b1b,0x3b21,0x3b27,0x3b2b,0x3b2f,0x3b33,0x3b39,0x3b3d,0x3b41,0x3b45,0x3b49,0x3b4d,0x3b51,0x3b55,0x3b5b, +0x3b5f,0x3b63,0x3b67,0x3b6d,0x3b71,0x3b75,0x3b79,0x3b7d,0x3b83,0x3b89,0x3b8d,0x3b91,0x3b95,0x3b9b,0x3b9f,0x31d1, +0x31d1,0x3ba5,0x3ba9,0x3baf,0x3bb3,0x3bb7,0x3bbb,0x3bbf,0x3bc3,0x3bc7,0x3bcb,0x31d5,0x3bd1,0x3bd5,0x3bd9,0x3bdd, +0x3be1,0x3be5,0x3beb,0x3bef,0x3bf5,0x3bfb,0x3c01,0x3c05,0x3c09,0x3c0d,0x3c11,0x3c15,0x3c19,0x3c1d,0x3c21,1, +1 }; static const UCPTrie norm2_nfc_data_trie={ norm2_nfc_data_trieIndex, { norm2_nfc_data_trieData }, - 1788, 7984, + 1869, 8129, 0x2fc00, 0x30, 0, 0, 0, 0, @@ -645,7 +660,7 @@ static const UCPTrie norm2_nfc_data_trie={ 0x1, }; -static const uint16_t norm2_nfc_data_extraData[7732]={ +static const uint16_t norm2_nfc_data_extraData[7918]={ 0xffff,0xffff,0x8670,0x44dc,0x8670,0x44c0,0x8670,0x44de,0x600,0x180,0x602,0x182,0x604,0x185,0x606,0x186, 0x608,0x200,0x60c,0x205,0x60e,0x44d,0x610,0x189,0x612,0x3d44,0x614,0x18b,0x618,0x39a,0x61e,0x400, 0x622,0x404,0x646,0x3d41,0x64a,0x3c00,0x8650,0x208,0x60e,0x3c04,0x646,0x3c08,0x8662,0x3c0c,0x602,0x20c, @@ -730,406 +745,417 @@ static const uint16_t norm2_nfc_data_extraData[7732]={ 0xe132,0x615c,0xe132,0x6160,0xe132,0x6164,0xe132,0x6168,0xe132,0x616c,0xe132,0x6170,0xe132,0x6174,0xe132,0x6178, 0xe132,0x617c,0xe132,0x6180,0xe132,0x6184,0xe132,0x618a,0xe132,0x618e,0xe132,0x6192,0x6132,0x61a0,0xe134,0x61a2, 0x6132,0x61a6,0xe134,0x61a8,0x6132,0x61ac,0xe134,0x61ae,0x6132,0x61b2,0xe134,0x61b4,0x6132,0x61b8,0xe134,0x61ba, -0xe132,0x61ee,0xe132,0x61f0,0xe132,0x61f2,0xe132,0x61f4,0xe132,0x61fc,0xb489,0x2e82,0x2134,0xb489,0x2e82,0x2138, -0xb489,0x2e82,0x2156,0xb489,0x49c2,0x225c,0xb489,0x49c2,0x225e,0x3489,0xcf82,0x2696,0xb489,0xd5c2,0x2698,0x348b, -0x2c02,0x2978,0x348b,0x2e82,0x2976,0xb48b,0x2f42,0x297c,0xb48b,0x6bc2,0x2b74,0xb48b,0x6bc2,0x2b76,0xb48d,0x4c02, -0x3270,2,0xe602,0x41,0x302,0x600,0x3d4c,0x602,0x3d48,0x606,0x3d54,0x8612,0x3d50,0xe602,0x41,0x308, -0x8608,0x3bc,0xe602,0x41,0x30a,0x8602,0x3f4,0xca02,0x43,0x327,0x8602,0x3c10,0xe602,0x45,0x302,0x600, -0x3d80,0x602,0x3d7c,0x606,0x3d88,0x8612,0x3d84,0xe602,0x49,0x308,0x8602,0x3c5c,0xe602,0x4f,0x302,0x600, -0x3da4,0x602,0x3da0,0x606,0x3dac,0x8612,0x3da8,0xe602,0x4f,0x303,0x602,0x3c98,0x608,0x458,0x8610,0x3c9c, -0xe602,0x4f,0x308,0x8608,0x454,0xe602,0x55,0x308,0x600,0x3b6,0x602,0x3ae,0x608,0x3aa,0x8618,0x3b2, -0xe602,0x61,0x302,0x600,0x3d4e,0x602,0x3d4a,0x606,0x3d56,0x8612,0x3d52,0xe602,0x61,0x308,0x8608,0x3be, -0xe602,0x61,0x30a,0x8602,0x3f6,0xca02,0x63,0x327,0x8602,0x3c12,0xe602,0x65,0x302,0x600,0x3d82,0x602, -0x3d7e,0x606,0x3d8a,0x8612,0x3d86,0xe602,0x69,0x308,0x8602,0x3c5e,0xe602,0x6f,0x302,0x600,0x3da6,0x602, -0x3da2,0x606,0x3dae,0x8612,0x3daa,0xe602,0x6f,0x303,0x602,0x3c9a,0x608,0x45a,0x8610,0x3c9e,0xe602,0x6f, -0x308,0x8608,0x456,0xe602,0x75,0x308,0x600,0x3b8,0x602,0x3b0,0x608,0x3ac,0x8618,0x3b4,0xe602,0x41, -0x306,0x600,0x3d60,0x602,0x3d5c,0x606,0x3d68,0x8612,0x3d64,0xe602,0x61,0x306,0x600,0x3d62,0x602,0x3d5e, -0x606,0x3d6a,0x8612,0x3d66,0xe602,0x45,0x304,0x600,0x3c28,0x8602,0x3c2c,0xe602,0x65,0x304,0x600,0x3c2a, -0x8602,0x3c2e,0xe602,0x4f,0x304,0x600,0x3ca0,0x8602,0x3ca4,0xe602,0x6f,0x304,0x600,0x3ca2,0x8602,0x3ca6, -0xe602,0x53,0x301,0x860e,0x3cc8,0xe602,0x73,0x301,0x860e,0x3cca,0xe602,0x53,0x30c,0x860e,0x3ccc,0xe602, -0x73,0x30c,0x860e,0x3cce,0xe602,0x55,0x303,0x8602,0x3cf0,0xe602,0x75,0x303,0x8602,0x3cf2,0xe602,0x55, -0x304,0x8610,0x3cf4,0xe602,0x75,0x304,0x8610,0x3cf6,0xd802,0x4f,0x31b,0x600,0x3db8,0x602,0x3db4,0x606, -0x3dc0,0x612,0x3dbc,0x8646,0x3dc4,0xd802,0x6f,0x31b,0x600,0x3dba,0x602,0x3db6,0x606,0x3dc2,0x612,0x3dbe, -0x8646,0x3dc6,0xd802,0x55,0x31b,0x600,0x3dd4,0x602,0x3dd0,0x606,0x3ddc,0x612,0x3dd8,0x8646,0x3de0,0xd802, -0x75,0x31b,0x600,0x3dd6,0x602,0x3dd2,0x606,0x3dde,0x612,0x3dda,0x8646,0x3de2,0xca02,0x4f,0x328,0x8608, -0x3d8,0xca02,0x6f,0x328,0x8608,0x3da,0xe602,0x41,0x307,0x8608,0x3c0,0xe602,0x61,0x307,0x8608,0x3c2, -0xca02,0x45,0x327,0x860c,0x3c38,0xca02,0x65,0x327,0x860c,0x3c3a,0xe602,0x4f,0x307,0x8608,0x460,0xe602, -0x6f,0x307,0x8608,0x462,0xe602,0x3b1,0x301,0x868a,0x3f68,0xe602,0x3b7,0x301,0x868a,0x3f88,0xe602,0x3b9, -0x308,0x600,0x3fa4,0x602,0x720,0x8684,0x3fae,0xe602,0x3c5,0x308,0x600,0x3fc4,0x602,0x760,0x8684,0x3fce, -0xe602,0x3c9,0x301,0x868a,0x3fe8,2,0xcc6,0xcc2,0x99aa,0x1996,2,0xdd9,0xdcf,0x9b94,0x1bba,0xdc02, -0x4c,0x323,0x8608,0x3c70,0xdc02,0x6c,0x323,0x8608,0x3c72,0xdc02,0x52,0x323,0x8608,0x3cb8,0xdc02,0x72, -0x323,0x8608,0x3cba,0xdc02,0x53,0x323,0x860e,0x3cd0,0xdc02,0x73,0x323,0x860e,0x3cd2,0xdc02,0x41,0x323, -0x604,0x3d58,0x860c,0x3d6c,0xdc02,0x61,0x323,0x604,0x3d5a,0x860c,0x3d6e,0xdc02,0x45,0x323,0x8604,0x3d8c, -0xdc02,0x65,0x323,0x8604,0x3d8e,0xdc02,0x4f,0x323,0x8604,0x3db0,0xdc02,0x6f,0x323,0x8604,0x3db2,0xe602, -0x3b1,0x313,0x600,0x3e05,0x602,0x3e09,0x684,0x3e0d,0x868a,0x3f00,0xe602,0x3b1,0x314,0x600,0x3e07,0x602, -0x3e0b,0x684,0x3e0f,0x868a,0x3f02,0x1f00,0xe643,0x3b1,0x313,0x300,0x868a,0x3f04,0x1f01,0xe643,0x3b1,0x314, -0x300,0x868a,0x3f06,0x1f00,0xe643,0x3b1,0x313,0x301,0x868a,0x3f08,0x1f01,0xe643,0x3b1,0x314,0x301,0x868a, -0x3f0a,0x1f00,0xe643,0x3b1,0x313,0x342,0x868a,0x3f0c,0x1f01,0xe643,0x3b1,0x314,0x342,0x868a,0x3f0e,0xe602, -0x391,0x313,0x600,0x3e15,0x602,0x3e19,0x684,0x3e1d,0x868a,0x3f10,0xe602,0x391,0x314,0x600,0x3e17,0x602, -0x3e1b,0x684,0x3e1f,0x868a,0x3f12,0x1f08,0xe643,0x391,0x313,0x300,0x868a,0x3f14,0x1f09,0xe643,0x391,0x314, -0x300,0x868a,0x3f16,0x1f08,0xe643,0x391,0x313,0x301,0x868a,0x3f18,0x1f09,0xe643,0x391,0x314,0x301,0x868a, -0x3f1a,0x1f08,0xe643,0x391,0x313,0x342,0x868a,0x3f1c,0x1f09,0xe643,0x391,0x314,0x342,0x868a,0x3f1e,0xe602, -0x3b5,0x313,0x600,0x3e24,0x8602,0x3e28,0xe602,0x3b5,0x314,0x600,0x3e26,0x8602,0x3e2a,0xe602,0x395,0x313, -0x600,0x3e34,0x8602,0x3e38,0xe602,0x395,0x314,0x600,0x3e36,0x8602,0x3e3a,0xe602,0x3b7,0x313,0x600,0x3e45, -0x602,0x3e49,0x684,0x3e4d,0x868a,0x3f20,0xe602,0x3b7,0x314,0x600,0x3e47,0x602,0x3e4b,0x684,0x3e4f,0x868a, -0x3f22,0x1f20,0xe643,0x3b7,0x313,0x300,0x868a,0x3f24,0x1f21,0xe643,0x3b7,0x314,0x300,0x868a,0x3f26,0x1f20, -0xe643,0x3b7,0x313,0x301,0x868a,0x3f28,0x1f21,0xe643,0x3b7,0x314,0x301,0x868a,0x3f2a,0x1f20,0xe643,0x3b7, -0x313,0x342,0x868a,0x3f2c,0x1f21,0xe643,0x3b7,0x314,0x342,0x868a,0x3f2e,0xe602,0x397,0x313,0x600,0x3e55, -0x602,0x3e59,0x684,0x3e5d,0x868a,0x3f30,0xe602,0x397,0x314,0x600,0x3e57,0x602,0x3e5b,0x684,0x3e5f,0x868a, -0x3f32,0x1f28,0xe643,0x397,0x313,0x300,0x868a,0x3f34,0x1f29,0xe643,0x397,0x314,0x300,0x868a,0x3f36,0x1f28, -0xe643,0x397,0x313,0x301,0x868a,0x3f38,0x1f29,0xe643,0x397,0x314,0x301,0x868a,0x3f3a,0x1f28,0xe643,0x397, -0x313,0x342,0x868a,0x3f3c,0x1f29,0xe643,0x397,0x314,0x342,0x868a,0x3f3e,0xe602,0x3b9,0x313,0x600,0x3e64, -0x602,0x3e68,0x8684,0x3e6c,0xe602,0x3b9,0x314,0x600,0x3e66,0x602,0x3e6a,0x8684,0x3e6e,0xe602,0x399,0x313, -0x600,0x3e74,0x602,0x3e78,0x8684,0x3e7c,0xe602,0x399,0x314,0x600,0x3e76,0x602,0x3e7a,0x8684,0x3e7e,0xe602, -0x3bf,0x313,0x600,0x3e84,0x8602,0x3e88,0xe602,0x3bf,0x314,0x600,0x3e86,0x8602,0x3e8a,0xe602,0x39f,0x313, -0x600,0x3e94,0x8602,0x3e98,0xe602,0x39f,0x314,0x600,0x3e96,0x8602,0x3e9a,0xe602,0x3c5,0x313,0x600,0x3ea4, -0x602,0x3ea8,0x8684,0x3eac,0xe602,0x3c5,0x314,0x600,0x3ea6,0x602,0x3eaa,0x8684,0x3eae,0xe602,0x3a5,0x314, -0x600,0x3eb6,0x602,0x3eba,0x8684,0x3ebe,0xe602,0x3c9,0x313,0x600,0x3ec5,0x602,0x3ec9,0x684,0x3ecd,0x868a, -0x3f40,0xe602,0x3c9,0x314,0x600,0x3ec7,0x602,0x3ecb,0x684,0x3ecf,0x868a,0x3f42,0x1f60,0xe643,0x3c9,0x313, -0x300,0x868a,0x3f44,0x1f61,0xe643,0x3c9,0x314,0x300,0x868a,0x3f46,0x1f60,0xe643,0x3c9,0x313,0x301,0x868a, -0x3f48,0x1f61,0xe643,0x3c9,0x314,0x301,0x868a,0x3f4a,0x1f60,0xe643,0x3c9,0x313,0x342,0x868a,0x3f4c,0x1f61, -0xe643,0x3c9,0x314,0x342,0x868a,0x3f4e,0xe602,0x3a9,0x313,0x600,0x3ed5,0x602,0x3ed9,0x684,0x3edd,0x868a, -0x3f50,0xe602,0x3a9,0x314,0x600,0x3ed7,0x602,0x3edb,0x684,0x3edf,0x868a,0x3f52,0x1f68,0xe643,0x3a9,0x313, -0x300,0x868a,0x3f54,0x1f69,0xe643,0x3a9,0x314,0x300,0x868a,0x3f56,0x1f68,0xe643,0x3a9,0x313,0x301,0x868a, -0x3f58,0x1f69,0xe643,0x3a9,0x314,0x301,0x868a,0x3f5a,0x1f68,0xe643,0x3a9,0x313,0x342,0x868a,0x3f5c,0x1f69, -0xe643,0x3a9,0x314,0x342,0x868a,0x3f5e,0xe602,0x3b1,0x300,0x868a,0x3f64,0xe602,0x3b7,0x300,0x868a,0x3f84, -0xe602,0x3c9,0x300,0x868a,0x3fe4,0xe602,0x3b1,0x342,0x868a,0x3f6e,0xe602,0x3b7,0x342,0x868a,0x3f8e,0xe602, -0x3c9,0x342,0x868a,0x3fee,3,0xe602,0x41,0x300,0xe602,0x41,0x301,0xe602,0x41,0x303,0xe602,0x45, -0x300,0xe602,0x45,0x301,0xe602,0x45,0x308,0xe602,0x49,0x300,0xe602,0x49,0x301,0xe602,0x49,0x302, -0xe602,0x4e,0x303,0xe602,0x4f,0x300,0xe602,0x4f,0x301,0xe602,0x55,0x300,0xe602,0x55,0x301,0xe602, -0x55,0x302,0xe602,0x59,0x301,0xe602,0x61,0x300,0xe602,0x61,0x301,0xe602,0x61,0x303,0xe602,0x65, -0x300,0xe602,0x65,0x301,0xe602,0x65,0x308,0xe602,0x69,0x300,0xe602,0x69,0x301,0xe602,0x69,0x302, -0xe602,0x6e,0x303,0xe602,0x6f,0x300,0xe602,0x6f,0x301,0xe602,0x75,0x300,0xe602,0x75,0x301,0xe602, -0x75,0x302,0xe602,0x79,0x301,0xe602,0x79,0x308,0xe602,0x41,0x304,0xe602,0x61,0x304,0xca02,0x41, -0x328,0xca02,0x61,0x328,0xe602,0x43,0x301,0xe602,0x63,0x301,0xe602,0x43,0x302,0xe602,0x63,0x302, -0xe602,0x43,0x307,0xe602,0x63,0x307,0xe602,0x43,0x30c,0xe602,0x63,0x30c,0xe602,0x44,0x30c,0xe602, -0x64,0x30c,0xe602,0x45,0x306,0xe602,0x65,0x306,0xe602,0x45,0x307,0xe602,0x65,0x307,0xca02,0x45, -0x328,0xca02,0x65,0x328,0xe602,0x45,0x30c,0xe602,0x65,0x30c,0xe602,0x47,0x302,0xe602,0x67,0x302, -0xe602,0x47,0x306,0xe602,0x67,0x306,0xe602,0x47,0x307,0xe602,0x67,0x307,0xca02,0x47,0x327,0xca02, -0x67,0x327,0xe602,0x48,0x302,0xe602,0x68,0x302,0xe602,0x49,0x303,0xe602,0x69,0x303,0xe602,0x49, -0x304,0xe602,0x69,0x304,0xe602,0x49,0x306,0xe602,0x69,0x306,0xca02,0x49,0x328,0xca02,0x69,0x328, -0xe602,0x49,0x307,0xe602,0x4a,0x302,0xe602,0x6a,0x302,0xca02,0x4b,0x327,0xca02,0x6b,0x327,0xe602, -0x4c,0x301,0xe602,0x6c,0x301,0xca02,0x4c,0x327,0xca02,0x6c,0x327,0xe602,0x4c,0x30c,0xe602,0x6c, -0x30c,0xe602,0x4e,0x301,0xe602,0x6e,0x301,0xca02,0x4e,0x327,0xca02,0x6e,0x327,0xe602,0x4e,0x30c, -0xe602,0x6e,0x30c,0xe602,0x4f,0x306,0xe602,0x6f,0x306,0xe602,0x4f,0x30b,0xe602,0x6f,0x30b,0xe602, -0x52,0x301,0xe602,0x72,0x301,0xca02,0x52,0x327,0xca02,0x72,0x327,0xe602,0x52,0x30c,0xe602,0x72, -0x30c,0xe602,0x53,0x302,0xe602,0x73,0x302,0xca02,0x53,0x327,0xca02,0x73,0x327,0xca02,0x54,0x327, -0xca02,0x74,0x327,0xe602,0x54,0x30c,0xe602,0x74,0x30c,0xe602,0x55,0x306,0xe602,0x75,0x306,0xe602, -0x55,0x30a,0xe602,0x75,0x30a,0xe602,0x55,0x30b,0xe602,0x75,0x30b,0xca02,0x55,0x328,0xca02,0x75, -0x328,0xe602,0x57,0x302,0xe602,0x77,0x302,0xe602,0x59,0x302,0xe602,0x79,0x302,0xe602,0x59,0x308, -0xe602,0x5a,0x301,0xe602,0x7a,0x301,0xe602,0x5a,0x307,0xe602,0x7a,0x307,0xe602,0x5a,0x30c,0xe602, -0x7a,0x30c,0xe602,0x41,0x30c,0xe602,0x61,0x30c,0xe602,0x49,0x30c,0xe602,0x69,0x30c,0xe602,0x4f, -0x30c,0xe602,0x6f,0x30c,0xe602,0x55,0x30c,0xe602,0x75,0x30c,0xdc,0xe643,0x55,0x308,0x304,0xfc, -0xe643,0x75,0x308,0x304,0xdc,0xe643,0x55,0x308,0x301,0xfc,0xe643,0x75,0x308,0x301,0xdc,0xe643, -0x55,0x308,0x30c,0xfc,0xe643,0x75,0x308,0x30c,0xdc,0xe643,0x55,0x308,0x300,0xfc,0xe643,0x75, -0x308,0x300,0xc4,0xe643,0x41,0x308,0x304,0xe4,0xe643,0x61,0x308,0x304,0x226,0xe643,0x41,0x307, -0x304,0x227,0xe643,0x61,0x307,0x304,0xe602,0xc6,0x304,0xe602,0xe6,0x304,0xe602,0x47,0x30c,0xe602, -0x67,0x30c,0xe602,0x4b,0x30c,0xe602,0x6b,0x30c,0x1ea,0xe643,0x4f,0x328,0x304,0x1eb,0xe643,0x6f, -0x328,0x304,0xe602,0x1b7,0x30c,0xe602,0x292,0x30c,0xe602,0x6a,0x30c,0xe602,0x47,0x301,0xe602,0x67, -0x301,0xe602,0x4e,0x300,0xe602,0x6e,0x300,0xc5,0xe643,0x41,0x30a,0x301,0xe5,0xe643,0x61,0x30a, -0x301,0xe602,0xc6,0x301,0xe602,0xe6,0x301,0xe602,0xd8,0x301,0xe602,0xf8,0x301,0xe602,0x41,0x30f, -0xe602,0x61,0x30f,0xe602,0x41,0x311,0xe602,0x61,0x311,0xe602,0x45,0x30f,0xe602,0x65,0x30f,0xe602, -0x45,0x311,0xe602,0x65,0x311,0xe602,0x49,0x30f,0xe602,0x69,0x30f,0xe602,0x49,0x311,0xe602,0x69, -0x311,0xe602,0x4f,0x30f,0xe602,0x6f,0x30f,0xe602,0x4f,0x311,0xe602,0x6f,0x311,0xe602,0x52,0x30f, -0xe602,0x72,0x30f,0xe602,0x52,0x311,0xe602,0x72,0x311,0xe602,0x55,0x30f,0xe602,0x75,0x30f,0xe602, -0x55,0x311,0xe602,0x75,0x311,0xdc02,0x53,0x326,0xdc02,0x73,0x326,0xdc02,0x54,0x326,0xdc02,0x74, -0x326,0xe602,0x48,0x30c,0xe602,0x68,0x30c,0xd6,0xe643,0x4f,0x308,0x304,0xf6,0xe643,0x6f,0x308, -0x304,0xd5,0xe643,0x4f,0x303,0x304,0xf5,0xe643,0x6f,0x303,0x304,0x22e,0xe643,0x4f,0x307,0x304, -0x22f,0xe643,0x6f,0x307,0x304,0xe602,0x59,0x304,0xe602,0x79,0x304,0xe602,0xa8,0x301,0xe602,0x391, -0x301,0xe602,0x395,0x301,0xe602,0x397,0x301,0xe602,0x399,0x301,0xe602,0x39f,0x301,0xe602,0x3a5,0x301, -0xe602,0x3a9,0x301,0x3ca,0xe643,0x3b9,0x308,0x301,0xe602,0x399,0x308,0xe602,0x3a5,0x308,0xe602,0x3b5, -0x301,0xe602,0x3b9,0x301,0x3cb,0xe643,0x3c5,0x308,0x301,0xe602,0x3bf,0x301,0xe602,0x3c5,0x301,0xe602, -0x3d2,0x301,0xe602,0x3d2,0x308,0xe602,0x415,0x300,0xe602,0x415,0x308,0xe602,0x413,0x301,0xe602,0x406, -0x308,0xe602,0x41a,0x301,0xe602,0x418,0x300,0xe602,0x423,0x306,0xe602,0x418,0x306,0xe602,0x438,0x306, -0xe602,0x435,0x300,0xe602,0x435,0x308,0xe602,0x433,0x301,0xe602,0x456,0x308,0xe602,0x43a,0x301,0xe602, -0x438,0x300,0xe602,0x443,0x306,0xe602,0x474,0x30f,0xe602,0x475,0x30f,0xe602,0x416,0x306,0xe602,0x436, -0x306,0xe602,0x410,0x306,0xe602,0x430,0x306,0xe602,0x410,0x308,0xe602,0x430,0x308,0xe602,0x415,0x306, -0xe602,0x435,0x306,0xe602,0x4d8,0x308,0xe602,0x4d9,0x308,0xe602,0x416,0x308,0xe602,0x436,0x308,0xe602, -0x417,0x308,0xe602,0x437,0x308,0xe602,0x418,0x304,0xe602,0x438,0x304,0xe602,0x418,0x308,0xe602,0x438, -0x308,0xe602,0x41e,0x308,0xe602,0x43e,0x308,0xe602,0x4e8,0x308,0xe602,0x4e9,0x308,0xe602,0x42d,0x308, -0xe602,0x44d,0x308,0xe602,0x423,0x304,0xe602,0x443,0x304,0xe602,0x423,0x308,0xe602,0x443,0x308,0xe602, -0x423,0x30b,0xe602,0x443,0x30b,0xe602,0x427,0x308,0xe602,0x447,0x308,0xe602,0x42b,0x308,0xe602,0x44b, -0x308,0xe602,0x627,0x653,0xe602,0x627,0x654,0xe602,0x648,0x654,0xdc02,0x627,0x655,0xe602,0x64a,0x654, -0xe602,0x6d5,0x654,0xe602,0x6c1,0x654,0xe602,0x6d2,0x654,0x702,0x928,0x93c,0x702,0x930,0x93c,0x702, -0x933,0x93c,2,0x9c7,0x9be,2,0x9c7,0x9d7,2,0xb47,0xb56,2,0xb47,0xb3e,2,0xb47, -0xb57,2,0xb92,0xbd7,2,0xbc6,0xbbe,2,0xbc7,0xbbe,2,0xbc6,0xbd7,0x5b02,0xc46,0xc56, -2,0xcbf,0xcd5,2,0xcc6,0xcd5,2,0xcc6,0xcd6,0xcca,0x43,0xcc6,0xcc2,0xcd5,2,0xd46, -0xd3e,2,0xd47,0xd3e,2,0xd46,0xd57,0x902,0xdd9,0xdca,0xddc,0x943,0xdd9,0xdcf,0xdca,2, -0xdd9,0xddf,2,0x1025,0x102e,2,0x1b05,0x1b35,2,0x1b07,0x1b35,2,0x1b09,0x1b35,2,0x1b0b, -0x1b35,2,0x1b0d,0x1b35,2,0x1b11,0x1b35,2,0x1b3a,0x1b35,2,0x1b3c,0x1b35,2,0x1b3e,0x1b35, -2,0x1b3f,0x1b35,2,0x1b42,0x1b35,0xdc02,0x41,0x325,0xdc02,0x61,0x325,0xe602,0x42,0x307,0xe602, -0x62,0x307,0xdc02,0x42,0x323,0xdc02,0x62,0x323,0xdc02,0x42,0x331,0xdc02,0x62,0x331,0xc7,0xe643, -0x43,0x327,0x301,0xe7,0xe643,0x63,0x327,0x301,0xe602,0x44,0x307,0xe602,0x64,0x307,0xdc02,0x44, -0x323,0xdc02,0x64,0x323,0xdc02,0x44,0x331,0xdc02,0x64,0x331,0xca02,0x44,0x327,0xca02,0x64,0x327, -0xdc02,0x44,0x32d,0xdc02,0x64,0x32d,0x112,0xe643,0x45,0x304,0x300,0x113,0xe643,0x65,0x304,0x300, -0x112,0xe643,0x45,0x304,0x301,0x113,0xe643,0x65,0x304,0x301,0xdc02,0x45,0x32d,0xdc02,0x65,0x32d, -0xdc02,0x45,0x330,0xdc02,0x65,0x330,0x228,0xe643,0x45,0x327,0x306,0x229,0xe643,0x65,0x327,0x306, -0xe602,0x46,0x307,0xe602,0x66,0x307,0xe602,0x47,0x304,0xe602,0x67,0x304,0xe602,0x48,0x307,0xe602, -0x68,0x307,0xdc02,0x48,0x323,0xdc02,0x68,0x323,0xe602,0x48,0x308,0xe602,0x68,0x308,0xca02,0x48, -0x327,0xca02,0x68,0x327,0xdc02,0x48,0x32e,0xdc02,0x68,0x32e,0xdc02,0x49,0x330,0xdc02,0x69,0x330, -0xcf,0xe643,0x49,0x308,0x301,0xef,0xe643,0x69,0x308,0x301,0xe602,0x4b,0x301,0xe602,0x6b,0x301, -0xdc02,0x4b,0x323,0xdc02,0x6b,0x323,0xdc02,0x4b,0x331,0xdc02,0x6b,0x331,0x1e36,0xe643,0x4c,0x323, -0x304,0x1e37,0xe643,0x6c,0x323,0x304,0xdc02,0x4c,0x331,0xdc02,0x6c,0x331,0xdc02,0x4c,0x32d,0xdc02, -0x6c,0x32d,0xe602,0x4d,0x301,0xe602,0x6d,0x301,0xe602,0x4d,0x307,0xe602,0x6d,0x307,0xdc02,0x4d, -0x323,0xdc02,0x6d,0x323,0xe602,0x4e,0x307,0xe602,0x6e,0x307,0xdc02,0x4e,0x323,0xdc02,0x6e,0x323, -0xdc02,0x4e,0x331,0xdc02,0x6e,0x331,0xdc02,0x4e,0x32d,0xdc02,0x6e,0x32d,0xd5,0xe643,0x4f,0x303, -0x301,0xf5,0xe643,0x6f,0x303,0x301,0xd5,0xe643,0x4f,0x303,0x308,0xf5,0xe643,0x6f,0x303,0x308, -0x14c,0xe643,0x4f,0x304,0x300,0x14d,0xe643,0x6f,0x304,0x300,0x14c,0xe643,0x4f,0x304,0x301,0x14d, -0xe643,0x6f,0x304,0x301,0xe602,0x50,0x301,0xe602,0x70,0x301,0xe602,0x50,0x307,0xe602,0x70,0x307, -0xe602,0x52,0x307,0xe602,0x72,0x307,0x1e5a,0xe643,0x52,0x323,0x304,0x1e5b,0xe643,0x72,0x323,0x304, -0xdc02,0x52,0x331,0xdc02,0x72,0x331,0xe602,0x53,0x307,0xe602,0x73,0x307,0x15a,0xe643,0x53,0x301, -0x307,0x15b,0xe643,0x73,0x301,0x307,0x160,0xe643,0x53,0x30c,0x307,0x161,0xe643,0x73,0x30c,0x307, -0x1e62,0xe643,0x53,0x323,0x307,0x1e63,0xe643,0x73,0x323,0x307,0xe602,0x54,0x307,0xe602,0x74,0x307, -0xdc02,0x54,0x323,0xdc02,0x74,0x323,0xdc02,0x54,0x331,0xdc02,0x74,0x331,0xdc02,0x54,0x32d,0xdc02, -0x74,0x32d,0xdc02,0x55,0x324,0xdc02,0x75,0x324,0xdc02,0x55,0x330,0xdc02,0x75,0x330,0xdc02,0x55, -0x32d,0xdc02,0x75,0x32d,0x168,0xe643,0x55,0x303,0x301,0x169,0xe643,0x75,0x303,0x301,0x16a,0xe643, -0x55,0x304,0x308,0x16b,0xe643,0x75,0x304,0x308,0xe602,0x56,0x303,0xe602,0x76,0x303,0xdc02,0x56, -0x323,0xdc02,0x76,0x323,0xe602,0x57,0x300,0xe602,0x77,0x300,0xe602,0x57,0x301,0xe602,0x77,0x301, -0xe602,0x57,0x308,0xe602,0x77,0x308,0xe602,0x57,0x307,0xe602,0x77,0x307,0xdc02,0x57,0x323,0xdc02, -0x77,0x323,0xe602,0x58,0x307,0xe602,0x78,0x307,0xe602,0x58,0x308,0xe602,0x78,0x308,0xe602,0x59, -0x307,0xe602,0x79,0x307,0xe602,0x5a,0x302,0xe602,0x7a,0x302,0xdc02,0x5a,0x323,0xdc02,0x7a,0x323, -0xdc02,0x5a,0x331,0xdc02,0x7a,0x331,0xdc02,0x68,0x331,0xe602,0x74,0x308,0xe602,0x77,0x30a,0xe602, -0x79,0x30a,0xe602,0x17f,0x307,0xe602,0x41,0x309,0xe602,0x61,0x309,0xc2,0xe643,0x41,0x302,0x301, -0xe2,0xe643,0x61,0x302,0x301,0xc2,0xe643,0x41,0x302,0x300,0xe2,0xe643,0x61,0x302,0x300,0xc2, -0xe643,0x41,0x302,0x309,0xe2,0xe643,0x61,0x302,0x309,0xc2,0xe643,0x41,0x302,0x303,0xe2,0xe643, -0x61,0x302,0x303,0x1ea0,0xe643,0x41,0x323,0x302,0x1ea1,0xe643,0x61,0x323,0x302,0x102,0xe643,0x41, -0x306,0x301,0x103,0xe643,0x61,0x306,0x301,0x102,0xe643,0x41,0x306,0x300,0x103,0xe643,0x61,0x306, -0x300,0x102,0xe643,0x41,0x306,0x309,0x103,0xe643,0x61,0x306,0x309,0x102,0xe643,0x41,0x306,0x303, -0x103,0xe643,0x61,0x306,0x303,0x1ea0,0xe643,0x41,0x323,0x306,0x1ea1,0xe643,0x61,0x323,0x306,0xe602, -0x45,0x309,0xe602,0x65,0x309,0xe602,0x45,0x303,0xe602,0x65,0x303,0xca,0xe643,0x45,0x302,0x301, -0xea,0xe643,0x65,0x302,0x301,0xca,0xe643,0x45,0x302,0x300,0xea,0xe643,0x65,0x302,0x300,0xca, -0xe643,0x45,0x302,0x309,0xea,0xe643,0x65,0x302,0x309,0xca,0xe643,0x45,0x302,0x303,0xea,0xe643, -0x65,0x302,0x303,0x1eb8,0xe643,0x45,0x323,0x302,0x1eb9,0xe643,0x65,0x323,0x302,0xe602,0x49,0x309, -0xe602,0x69,0x309,0xdc02,0x49,0x323,0xdc02,0x69,0x323,0xe602,0x4f,0x309,0xe602,0x6f,0x309,0xd4, -0xe643,0x4f,0x302,0x301,0xf4,0xe643,0x6f,0x302,0x301,0xd4,0xe643,0x4f,0x302,0x300,0xf4,0xe643, -0x6f,0x302,0x300,0xd4,0xe643,0x4f,0x302,0x309,0xf4,0xe643,0x6f,0x302,0x309,0xd4,0xe643,0x4f, -0x302,0x303,0xf4,0xe643,0x6f,0x302,0x303,0x1ecc,0xe643,0x4f,0x323,0x302,0x1ecd,0xe643,0x6f,0x323, -0x302,0x1a0,0xe643,0x4f,0x31b,0x301,0x1a1,0xe643,0x6f,0x31b,0x301,0x1a0,0xe643,0x4f,0x31b,0x300, -0x1a1,0xe643,0x6f,0x31b,0x300,0x1a0,0xe643,0x4f,0x31b,0x309,0x1a1,0xe643,0x6f,0x31b,0x309,0x1a0, -0xe643,0x4f,0x31b,0x303,0x1a1,0xe643,0x6f,0x31b,0x303,0x1a0,0xdc43,0x4f,0x31b,0x323,0x1a1,0xdc43, -0x6f,0x31b,0x323,0xdc02,0x55,0x323,0xdc02,0x75,0x323,0xe602,0x55,0x309,0xe602,0x75,0x309,0x1af, -0xe643,0x55,0x31b,0x301,0x1b0,0xe643,0x75,0x31b,0x301,0x1af,0xe643,0x55,0x31b,0x300,0x1b0,0xe643, -0x75,0x31b,0x300,0x1af,0xe643,0x55,0x31b,0x309,0x1b0,0xe643,0x75,0x31b,0x309,0x1af,0xe643,0x55, -0x31b,0x303,0x1b0,0xe643,0x75,0x31b,0x303,0x1af,0xdc43,0x55,0x31b,0x323,0x1b0,0xdc43,0x75,0x31b, -0x323,0xe602,0x59,0x300,0xe602,0x79,0x300,0xdc02,0x59,0x323,0xdc02,0x79,0x323,0xe602,0x59,0x309, -0xe602,0x79,0x309,0xe602,0x59,0x303,0xe602,0x79,0x303,0x1f10,0xe643,0x3b5,0x313,0x300,0x1f11,0xe643, -0x3b5,0x314,0x300,0x1f10,0xe643,0x3b5,0x313,0x301,0x1f11,0xe643,0x3b5,0x314,0x301,0x1f18,0xe643,0x395, -0x313,0x300,0x1f19,0xe643,0x395,0x314,0x300,0x1f18,0xe643,0x395,0x313,0x301,0x1f19,0xe643,0x395,0x314, -0x301,0x1f30,0xe643,0x3b9,0x313,0x300,0x1f31,0xe643,0x3b9,0x314,0x300,0x1f30,0xe643,0x3b9,0x313,0x301, -0x1f31,0xe643,0x3b9,0x314,0x301,0x1f30,0xe643,0x3b9,0x313,0x342,0x1f31,0xe643,0x3b9,0x314,0x342,0x1f38, -0xe643,0x399,0x313,0x300,0x1f39,0xe643,0x399,0x314,0x300,0x1f38,0xe643,0x399,0x313,0x301,0x1f39,0xe643, -0x399,0x314,0x301,0x1f38,0xe643,0x399,0x313,0x342,0x1f39,0xe643,0x399,0x314,0x342,0x1f40,0xe643,0x3bf, -0x313,0x300,0x1f41,0xe643,0x3bf,0x314,0x300,0x1f40,0xe643,0x3bf,0x313,0x301,0x1f41,0xe643,0x3bf,0x314, -0x301,0x1f48,0xe643,0x39f,0x313,0x300,0x1f49,0xe643,0x39f,0x314,0x300,0x1f48,0xe643,0x39f,0x313,0x301, -0x1f49,0xe643,0x39f,0x314,0x301,0x1f50,0xe643,0x3c5,0x313,0x300,0x1f51,0xe643,0x3c5,0x314,0x300,0x1f50, -0xe643,0x3c5,0x313,0x301,0x1f51,0xe643,0x3c5,0x314,0x301,0x1f50,0xe643,0x3c5,0x313,0x342,0x1f51,0xe643, -0x3c5,0x314,0x342,0x1f59,0xe643,0x3a5,0x314,0x300,0x1f59,0xe643,0x3a5,0x314,0x301,0x1f59,0xe643,0x3a5, -0x314,0x342,0xe602,0x3b5,0x300,0xe602,0x3b9,0x300,0xe602,0x3bf,0x300,0xe602,0x3c5,0x300,0x1f00,0xf043, -0x3b1,0x313,0x345,0x1f01,0xf043,0x3b1,0x314,0x345,0x1f02,0x345,2,0xf044,0x3b1,0x313,0x300,0x345, -0x1f03,0x345,2,0xf044,0x3b1,0x314,0x300,0x345,0x1f04,0x345,2,0xf044,0x3b1,0x313,0x301,0x345, -0x1f05,0x345,2,0xf044,0x3b1,0x314,0x301,0x345,0x1f06,0x345,2,0xf044,0x3b1,0x313,0x342,0x345, -0x1f07,0x345,2,0xf044,0x3b1,0x314,0x342,0x345,0x1f08,0xf043,0x391,0x313,0x345,0x1f09,0xf043,0x391, -0x314,0x345,0x1f0a,0x345,2,0xf044,0x391,0x313,0x300,0x345,0x1f0b,0x345,2,0xf044,0x391,0x314, -0x300,0x345,0x1f0c,0x345,2,0xf044,0x391,0x313,0x301,0x345,0x1f0d,0x345,2,0xf044,0x391,0x314, -0x301,0x345,0x1f0e,0x345,2,0xf044,0x391,0x313,0x342,0x345,0x1f0f,0x345,2,0xf044,0x391,0x314, -0x342,0x345,0x1f20,0xf043,0x3b7,0x313,0x345,0x1f21,0xf043,0x3b7,0x314,0x345,0x1f22,0x345,2,0xf044, -0x3b7,0x313,0x300,0x345,0x1f23,0x345,2,0xf044,0x3b7,0x314,0x300,0x345,0x1f24,0x345,2,0xf044, -0x3b7,0x313,0x301,0x345,0x1f25,0x345,2,0xf044,0x3b7,0x314,0x301,0x345,0x1f26,0x345,2,0xf044, -0x3b7,0x313,0x342,0x345,0x1f27,0x345,2,0xf044,0x3b7,0x314,0x342,0x345,0x1f28,0xf043,0x397,0x313, -0x345,0x1f29,0xf043,0x397,0x314,0x345,0x1f2a,0x345,2,0xf044,0x397,0x313,0x300,0x345,0x1f2b,0x345, -2,0xf044,0x397,0x314,0x300,0x345,0x1f2c,0x345,2,0xf044,0x397,0x313,0x301,0x345,0x1f2d,0x345, -2,0xf044,0x397,0x314,0x301,0x345,0x1f2e,0x345,2,0xf044,0x397,0x313,0x342,0x345,0x1f2f,0x345, -2,0xf044,0x397,0x314,0x342,0x345,0x1f60,0xf043,0x3c9,0x313,0x345,0x1f61,0xf043,0x3c9,0x314,0x345, -0x1f62,0x345,2,0xf044,0x3c9,0x313,0x300,0x345,0x1f63,0x345,2,0xf044,0x3c9,0x314,0x300,0x345, -0x1f64,0x345,2,0xf044,0x3c9,0x313,0x301,0x345,0x1f65,0x345,2,0xf044,0x3c9,0x314,0x301,0x345, -0x1f66,0x345,2,0xf044,0x3c9,0x313,0x342,0x345,0x1f67,0x345,2,0xf044,0x3c9,0x314,0x342,0x345, -0x1f68,0xf043,0x3a9,0x313,0x345,0x1f69,0xf043,0x3a9,0x314,0x345,0x1f6a,0x345,2,0xf044,0x3a9,0x313, -0x300,0x345,0x1f6b,0x345,2,0xf044,0x3a9,0x314,0x300,0x345,0x1f6c,0x345,2,0xf044,0x3a9,0x313, -0x301,0x345,0x1f6d,0x345,2,0xf044,0x3a9,0x314,0x301,0x345,0x1f6e,0x345,2,0xf044,0x3a9,0x313, -0x342,0x345,0x1f6f,0x345,2,0xf044,0x3a9,0x314,0x342,0x345,0xe602,0x3b1,0x306,0xe602,0x3b1,0x304, -0x1f70,0xf043,0x3b1,0x300,0x345,0xf002,0x3b1,0x345,0x3ac,0xf043,0x3b1,0x301,0x345,0x1fb6,0xf043,0x3b1, -0x342,0x345,0xe602,0x391,0x306,0xe602,0x391,0x304,0xe602,0x391,0x300,0xf002,0x391,0x345,0xe602,0xa8, -0x342,0x1f74,0xf043,0x3b7,0x300,0x345,0xf002,0x3b7,0x345,0x3ae,0xf043,0x3b7,0x301,0x345,0x1fc6,0xf043, -0x3b7,0x342,0x345,0xe602,0x395,0x300,0xe602,0x397,0x300,0xf002,0x397,0x345,0xe602,0x1fbf,0x300,0xe602, -0x1fbf,0x301,0xe602,0x1fbf,0x342,0xe602,0x3b9,0x306,0xe602,0x3b9,0x304,0x3ca,0xe643,0x3b9,0x308,0x300, -0xe602,0x3b9,0x342,0x3ca,0xe643,0x3b9,0x308,0x342,0xe602,0x399,0x306,0xe602,0x399,0x304,0xe602,0x399, -0x300,0xe602,0x1ffe,0x300,0xe602,0x1ffe,0x301,0xe602,0x1ffe,0x342,0xe602,0x3c5,0x306,0xe602,0x3c5,0x304, -0x3cb,0xe643,0x3c5,0x308,0x300,0xe602,0x3c1,0x313,0xe602,0x3c1,0x314,0xe602,0x3c5,0x342,0x3cb,0xe643, -0x3c5,0x308,0x342,0xe602,0x3a5,0x306,0xe602,0x3a5,0x304,0xe602,0x3a5,0x300,0xe602,0x3a1,0x314,0xe602, -0xa8,0x300,0x1f7c,0xf043,0x3c9,0x300,0x345,0xf002,0x3c9,0x345,0x3ce,0xf043,0x3c9,0x301,0x345,0x1ff6, -0xf043,0x3c9,0x342,0x345,0xe602,0x39f,0x300,0xe602,0x3a9,0x300,0xf002,0x3a9,0x345,0x102,0x2190,0x338, -0x102,0x2192,0x338,0x102,0x2194,0x338,0x102,0x21d0,0x338,0x102,0x21d4,0x338,0x102,0x21d2,0x338,0x102, -0x2203,0x338,0x102,0x2208,0x338,0x102,0x220b,0x338,0x102,0x2223,0x338,0x102,0x2225,0x338,0x102,0x223c, -0x338,0x102,0x2243,0x338,0x102,0x2245,0x338,0x102,0x2248,0x338,0x102,0x3d,0x338,0x102,0x2261,0x338, -0x102,0x224d,0x338,0x102,0x3c,0x338,0x102,0x3e,0x338,0x102,0x2264,0x338,0x102,0x2265,0x338,0x102, -0x2272,0x338,0x102,0x2273,0x338,0x102,0x2276,0x338,0x102,0x2277,0x338,0x102,0x227a,0x338,0x102,0x227b, -0x338,0x102,0x2282,0x338,0x102,0x2283,0x338,0x102,0x2286,0x338,0x102,0x2287,0x338,0x102,0x22a2,0x338, -0x102,0x22a8,0x338,0x102,0x22a9,0x338,0x102,0x22ab,0x338,0x102,0x227c,0x338,0x102,0x227d,0x338,0x102, -0x2291,0x338,0x102,0x2292,0x338,0x102,0x22b2,0x338,0x102,0x22b3,0x338,0x102,0x22b4,0x338,0x102,0x22b5, -0x338,0x802,0x304b,0x3099,0x802,0x304d,0x3099,0x802,0x304f,0x3099,0x802,0x3051,0x3099,0x802,0x3053,0x3099, -0x802,0x3055,0x3099,0x802,0x3057,0x3099,0x802,0x3059,0x3099,0x802,0x305b,0x3099,0x802,0x305d,0x3099,0x802, -0x305f,0x3099,0x802,0x3061,0x3099,0x802,0x3064,0x3099,0x802,0x3066,0x3099,0x802,0x3068,0x3099,0x802,0x306f, -0x3099,0x802,0x306f,0x309a,0x802,0x3072,0x3099,0x802,0x3072,0x309a,0x802,0x3075,0x3099,0x802,0x3075,0x309a, -0x802,0x3078,0x3099,0x802,0x3078,0x309a,0x802,0x307b,0x3099,0x802,0x307b,0x309a,0x802,0x3046,0x3099,0x802, -0x309d,0x3099,0x802,0x30ab,0x3099,0x802,0x30ad,0x3099,0x802,0x30af,0x3099,0x802,0x30b1,0x3099,0x802,0x30b3, -0x3099,0x802,0x30b5,0x3099,0x802,0x30b7,0x3099,0x802,0x30b9,0x3099,0x802,0x30bb,0x3099,0x802,0x30bd,0x3099, -0x802,0x30bf,0x3099,0x802,0x30c1,0x3099,0x802,0x30c4,0x3099,0x802,0x30c6,0x3099,0x802,0x30c8,0x3099,0x802, -0x30cf,0x3099,0x802,0x30cf,0x309a,0x802,0x30d2,0x3099,0x802,0x30d2,0x309a,0x802,0x30d5,0x3099,0x802,0x30d5, -0x309a,0x802,0x30d8,0x3099,0x802,0x30d8,0x309a,0x802,0x30db,0x3099,0x802,0x30db,0x309a,0x802,0x30a6,0x3099, -0x802,0x30ef,0x3099,0x802,0x30f0,0x3099,0x802,0x30f1,0x3099,0x802,0x30f2,0x3099,0x802,0x30fd,0x3099,0x704, -0xd804,0xdc99,0xd804,0xdcba,0x704,0xd804,0xdc9b,0xd804,0xdcba,0x704,0xd804,0xdca5,0xd804,0xdcba,4,0xd804, -0xdd31,0xd804,0xdd27,4,0xd804,0xdd32,0xd804,0xdd27,4,0xd804,0xdf47,0xd804,0xdf3e,4,0xd804,0xdf47, -0xd804,0xdf57,4,0xd805,0xdcb9,0xd805,0xdcba,4,0xd805,0xdcb9,0xd805,0xdcb0,4,0xd805,0xdcb9,0xd805, -0xdcbd,4,0xd805,0xddb8,0xd805,0xddaf,4,0xd805,0xddb9,0xd805,0xddaf,4,0xd806,0xdd35,0xd806,0xdd30, -1,0x2b9,1,0x3b,1,0xb7,0x702,0x915,0x93c,0x702,0x916,0x93c,0x702,0x917,0x93c,0x702, -0x91c,0x93c,0x702,0x921,0x93c,0x702,0x922,0x93c,0x702,0x92b,0x93c,0x702,0x92f,0x93c,0x702,0x9a1, -0x9bc,0x702,0x9a2,0x9bc,0x702,0x9af,0x9bc,0x702,0xa32,0xa3c,0x702,0xa38,0xa3c,0x702,0xa16,0xa3c, -0x702,0xa17,0xa3c,0x702,0xa1c,0xa3c,0x702,0xa2b,0xa3c,0x702,0xb21,0xb3c,0x702,0xb22,0xb3c,2, -0xf42,0xfb7,2,0xf4c,0xfb7,2,0xf51,0xfb7,2,0xf56,0xfb7,2,0xf5b,0xfb7,2,0xf40, -0xfb5,0x8202,0xfb2,0xf80,0x8202,0xfb3,0xf80,2,0xf92,0xfb7,2,0xf9c,0xfb7,2,0xfa1,0xfb7, -2,0xfa6,0xfb7,2,0xfab,0xfb7,2,0xf90,0xfb5,1,0x3b9,1,0x60,1,0xb4,1, -0x3a9,1,0x4b,1,0x3008,1,0x3009,0x102,0x2add,0x338,1,0x8c48,1,0x66f4,1,0x8eca, -1,0x8cc8,1,0x6ed1,1,0x4e32,1,0x53e5,1,0x9f9c,1,0x5951,1,0x91d1,1,0x5587, -1,0x5948,1,0x61f6,1,0x7669,1,0x7f85,1,0x863f,1,0x87ba,1,0x88f8,1,0x908f, -1,0x6a02,1,0x6d1b,1,0x70d9,1,0x73de,1,0x843d,1,0x916a,1,0x99f1,1,0x4e82, -1,0x5375,1,0x6b04,1,0x721b,1,0x862d,1,0x9e1e,1,0x5d50,1,0x6feb,1,0x85cd, -1,0x8964,1,0x62c9,1,0x81d8,1,0x881f,1,0x5eca,1,0x6717,1,0x6d6a,1,0x72fc, -1,0x90ce,1,0x4f86,1,0x51b7,1,0x52de,1,0x64c4,1,0x6ad3,1,0x7210,1,0x76e7, -1,0x8001,1,0x8606,1,0x865c,1,0x8def,1,0x9732,1,0x9b6f,1,0x9dfa,1,0x788c, -1,0x797f,1,0x7da0,1,0x83c9,1,0x9304,1,0x9e7f,1,0x8ad6,1,0x58df,1,0x5f04, -1,0x7c60,1,0x807e,1,0x7262,1,0x78ca,1,0x8cc2,1,0x96f7,1,0x58d8,1,0x5c62, -1,0x6a13,1,0x6dda,1,0x6f0f,1,0x7d2f,1,0x7e37,1,0x964b,1,0x52d2,1,0x808b, -1,0x51dc,1,0x51cc,1,0x7a1c,1,0x7dbe,1,0x83f1,1,0x9675,1,0x8b80,1,0x62cf, -1,0x8afe,1,0x4e39,1,0x5be7,1,0x6012,1,0x7387,1,0x7570,1,0x5317,1,0x78fb, -1,0x4fbf,1,0x5fa9,1,0x4e0d,1,0x6ccc,1,0x6578,1,0x7d22,1,0x53c3,1,0x585e, -1,0x7701,1,0x8449,1,0x8aaa,1,0x6bba,1,0x8fb0,1,0x6c88,1,0x62fe,1,0x82e5, -1,0x63a0,1,0x7565,1,0x4eae,1,0x5169,1,0x51c9,1,0x6881,1,0x7ce7,1,0x826f, -1,0x8ad2,1,0x91cf,1,0x52f5,1,0x5442,1,0x5973,1,0x5eec,1,0x65c5,1,0x6ffe, -1,0x792a,1,0x95ad,1,0x9a6a,1,0x9e97,1,0x9ece,1,0x529b,1,0x66c6,1,0x6b77, -1,0x8f62,1,0x5e74,1,0x6190,1,0x6200,1,0x649a,1,0x6f23,1,0x7149,1,0x7489, -1,0x79ca,1,0x7df4,1,0x806f,1,0x8f26,1,0x84ee,1,0x9023,1,0x934a,1,0x5217, -1,0x52a3,1,0x54bd,1,0x70c8,1,0x88c2,1,0x5ec9,1,0x5ff5,1,0x637b,1,0x6bae, -1,0x7c3e,1,0x7375,1,0x4ee4,1,0x56f9,1,0x5dba,1,0x601c,1,0x73b2,1,0x7469, -1,0x7f9a,1,0x8046,1,0x9234,1,0x96f6,1,0x9748,1,0x9818,1,0x4f8b,1,0x79ae, -1,0x91b4,1,0x96b8,1,0x60e1,1,0x4e86,1,0x50da,1,0x5bee,1,0x5c3f,1,0x6599, -1,0x71ce,1,0x7642,1,0x84fc,1,0x907c,1,0x9f8d,1,0x6688,1,0x962e,1,0x5289, -1,0x677b,1,0x67f3,1,0x6d41,1,0x6e9c,1,0x7409,1,0x7559,1,0x786b,1,0x7d10, -1,0x985e,1,0x516d,1,0x622e,1,0x9678,1,0x502b,1,0x5d19,1,0x6dea,1,0x8f2a, -1,0x5f8b,1,0x6144,1,0x6817,1,0x9686,1,0x5229,1,0x540f,1,0x5c65,1,0x6613, -1,0x674e,1,0x68a8,1,0x6ce5,1,0x7406,1,0x75e2,1,0x7f79,1,0x88cf,1,0x88e1, -1,0x91cc,1,0x96e2,1,0x533f,1,0x6eba,1,0x541d,1,0x71d0,1,0x7498,1,0x85fa, -1,0x96a3,1,0x9c57,1,0x9e9f,1,0x6797,1,0x6dcb,1,0x81e8,1,0x7acb,1,0x7b20, -1,0x7c92,1,0x72c0,1,0x7099,1,0x8b58,1,0x4ec0,1,0x8336,1,0x523a,1,0x5207, -1,0x5ea6,1,0x62d3,1,0x7cd6,1,0x5b85,1,0x6d1e,1,0x66b4,1,0x8f3b,1,0x884c, -1,0x964d,1,0x898b,1,0x5ed3,1,0x5140,1,0x55c0,1,0x585a,1,0x6674,1,0x51de, -1,0x732a,1,0x76ca,1,0x793c,1,0x795e,1,0x7965,1,0x798f,1,0x9756,1,0x7cbe, -1,0x7fbd,1,0x8612,1,0x8af8,1,0x9038,1,0x90fd,1,0x98ef,1,0x98fc,1,0x9928, -1,0x9db4,1,0x90de,1,0x96b7,1,0x4fae,1,0x50e7,1,0x514d,1,0x52c9,1,0x52e4, -1,0x5351,1,0x559d,1,0x5606,1,0x5668,1,0x5840,1,0x58a8,1,0x5c64,1,0x5c6e, -1,0x6094,1,0x6168,1,0x618e,1,0x61f2,1,0x654f,1,0x65e2,1,0x6691,1,0x6885, -1,0x6d77,1,0x6e1a,1,0x6f22,1,0x716e,1,0x722b,1,0x7422,1,0x7891,1,0x793e, -1,0x7949,1,0x7948,1,0x7950,1,0x7956,1,0x795d,1,0x798d,1,0x798e,1,0x7a40, -1,0x7a81,1,0x7bc0,1,0x7e09,1,0x7e41,1,0x7f72,1,0x8005,1,0x81ed,1,0x8279, -1,0x8457,1,0x8910,1,0x8996,1,0x8b01,1,0x8b39,1,0x8cd3,1,0x8d08,1,0x8fb6, -1,0x96e3,1,0x97ff,1,0x983b,1,0x6075,2,0xd850,0xdeee,1,0x8218,1,0x4e26,1, -0x51b5,1,0x5168,1,0x4f80,1,0x5145,1,0x5180,1,0x52c7,1,0x52fa,1,0x5555,1, -0x5599,1,0x55e2,1,0x58b3,1,0x5944,1,0x5954,1,0x5a62,1,0x5b28,1,0x5ed2,1, -0x5ed9,1,0x5f69,1,0x5fad,1,0x60d8,1,0x614e,1,0x6108,1,0x6160,1,0x6234,1, -0x63c4,1,0x641c,1,0x6452,1,0x6556,1,0x671b,1,0x6756,1,0x6b79,1,0x6edb,1, -0x6ecb,1,0x701e,1,0x77a7,1,0x7235,1,0x72af,1,0x7471,1,0x7506,1,0x753b,1, -0x761d,1,0x761f,1,0x76db,1,0x76f4,1,0x774a,1,0x7740,1,0x78cc,1,0x7ab1,1, -0x7c7b,1,0x7d5b,1,0x7f3e,1,0x8352,1,0x83ef,1,0x8779,1,0x8941,1,0x8986,1, -0x8abf,1,0x8acb,1,0x8aed,1,0x8b8a,1,0x8f38,1,0x9072,1,0x9199,1,0x9276,1, -0x967c,1,0x97db,1,0x980b,1,0x9b12,2,0xd84a,0xdc4a,2,0xd84a,0xdc44,2,0xd84c,0xdfd5, -1,0x3b9d,1,0x4018,1,0x4039,2,0xd854,0xde49,2,0xd857,0xdcd0,2,0xd85f,0xded3,1, -0x9f43,1,0x9f8e,0xe02,0x5d9,0x5b4,0x1102,0x5f2,0x5b7,0x1802,0x5e9,0x5c1,0x1902,0x5e9,0x5c2,0xfb49, -0x1843,0x5e9,0x5bc,0x5c1,0xfb49,0x1943,0x5e9,0x5bc,0x5c2,0x1102,0x5d0,0x5b7,0x1202,0x5d0,0x5b8,0x1502, -0x5d0,0x5bc,0x1502,0x5d1,0x5bc,0x1502,0x5d2,0x5bc,0x1502,0x5d3,0x5bc,0x1502,0x5d4,0x5bc,0x1502,0x5d5, -0x5bc,0x1502,0x5d6,0x5bc,0x1502,0x5d8,0x5bc,0x1502,0x5d9,0x5bc,0x1502,0x5da,0x5bc,0x1502,0x5db,0x5bc, -0x1502,0x5dc,0x5bc,0x1502,0x5de,0x5bc,0x1502,0x5e0,0x5bc,0x1502,0x5e1,0x5bc,0x1502,0x5e3,0x5bc,0x1502, -0x5e4,0x5bc,0x1502,0x5e6,0x5bc,0x1502,0x5e7,0x5bc,0x1502,0x5e8,0x5bc,0x1502,0x5e9,0x5bc,0x1502,0x5ea, -0x5bc,0x1302,0x5d5,0x5b9,0x1702,0x5d1,0x5bf,0x1702,0x5db,0x5bf,0x1702,0x5e4,0x5bf,0xd804,0xd834,0xdd57, -0xd834,0xdd65,0xd804,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd5f,0xd834,0xdd6e,4,0xd846,0xd834,0xdd58,0xd834, -0xdd65,0xd834,0xdd6e,0xd834,0xdd5f,0xd834,0xdd6f,4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd6f,0xd834, -0xdd5f,0xd834,0xdd70,4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd70,0xd834,0xdd5f,0xd834,0xdd71,4, -0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd71,0xd834,0xdd5f,0xd834,0xdd72,4,0xd846,0xd834,0xdd58,0xd834, -0xdd65,0xd834,0xdd72,0xd804,0xd834,0xddb9,0xd834,0xdd65,0xd804,0xd834,0xddba,0xd834,0xdd65,0xd834,0xddbb,0xd834, -0xdd6e,4,0xd846,0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xddbc,0xd834,0xdd6e,4,0xd846,0xd834, -0xddba,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xddbb,0xd834,0xdd6f,4,0xd846,0xd834,0xddb9,0xd834,0xdd65,0xd834, -0xdd6f,0xd834,0xddbc,0xd834,0xdd6f,4,0xd846,0xd834,0xddba,0xd834,0xdd65,0xd834,0xdd6f,1,0x4e3d,1, -0x4e38,1,0x4e41,2,0xd840,0xdd22,1,0x4f60,1,0x4fbb,1,0x5002,1,0x507a,1,0x5099, -1,0x50cf,1,0x349e,2,0xd841,0xde3a,1,0x5154,1,0x5164,1,0x5177,2,0xd841,0xdd1c, -1,0x34b9,1,0x5167,1,0x518d,2,0xd841,0xdd4b,1,0x5197,1,0x51a4,1,0x4ecc,1, -0x51ac,2,0xd864,0xdddf,1,0x51f5,1,0x5203,1,0x34df,1,0x523b,1,0x5246,1,0x5272, -1,0x5277,1,0x3515,1,0x5305,1,0x5306,1,0x5349,1,0x535a,1,0x5373,1,0x537d, -1,0x537f,2,0xd842,0xde2c,1,0x7070,1,0x53ca,1,0x53df,2,0xd842,0xdf63,1,0x53eb, -1,0x53f1,1,0x5406,1,0x549e,1,0x5438,1,0x5448,1,0x5468,1,0x54a2,1,0x54f6, -1,0x5510,1,0x5553,1,0x5563,1,0x5584,1,0x55ab,1,0x55b3,1,0x55c2,1,0x5716, -1,0x5717,1,0x5651,1,0x5674,1,0x58ee,1,0x57ce,1,0x57f4,1,0x580d,1,0x578b, -1,0x5832,1,0x5831,1,0x58ac,2,0xd845,0xdce4,1,0x58f2,1,0x58f7,1,0x5906,1, -0x591a,1,0x5922,1,0x5962,2,0xd845,0xdea8,2,0xd845,0xdeea,1,0x59ec,1,0x5a1b,1, -0x5a27,1,0x59d8,1,0x5a66,1,0x36ee,1,0x36fc,1,0x5b08,1,0x5b3e,2,0xd846,0xddc8, -1,0x5bc3,1,0x5bd8,1,0x5bf3,2,0xd846,0xdf18,1,0x5bff,1,0x5c06,1,0x5f53,1, -0x5c22,1,0x3781,1,0x5c60,1,0x5cc0,1,0x5c8d,2,0xd847,0xdde4,1,0x5d43,2,0xd847, -0xdde6,1,0x5d6e,1,0x5d6b,1,0x5d7c,1,0x5de1,1,0x5de2,1,0x382f,1,0x5dfd,1, -0x5e28,1,0x5e3d,1,0x5e69,1,0x3862,2,0xd848,0xdd83,1,0x387c,1,0x5eb0,1,0x5eb3, -1,0x5eb6,2,0xd868,0xdf92,1,0x5efe,2,0xd848,0xdf31,1,0x8201,1,0x5f22,1,0x38c7, -2,0xd84c,0xdeb8,2,0xd858,0xddda,1,0x5f62,1,0x5f6b,1,0x38e3,1,0x5f9a,1,0x5fcd, -1,0x5fd7,1,0x5ff9,1,0x6081,1,0x393a,1,0x391c,2,0xd849,0xded4,1,0x60c7,1, -0x6148,1,0x614c,1,0x617a,1,0x61b2,1,0x61a4,1,0x61af,1,0x61de,1,0x6210,1, -0x621b,1,0x625d,1,0x62b1,1,0x62d4,1,0x6350,2,0xd84a,0xdf0c,1,0x633d,1,0x62fc, -1,0x6368,1,0x6383,1,0x63e4,2,0xd84a,0xdff1,1,0x6422,1,0x63c5,1,0x63a9,1, -0x3a2e,1,0x6469,1,0x647e,1,0x649d,1,0x6477,1,0x3a6c,1,0x656c,2,0xd84c,0xdc0a, -1,0x65e3,1,0x66f8,1,0x6649,1,0x3b19,1,0x3b08,1,0x3ae4,1,0x5192,1,0x5195, -1,0x6700,1,0x669c,1,0x80ad,1,0x43d9,1,0x6721,1,0x675e,1,0x6753,2,0xd84c, -0xdfc3,1,0x3b49,1,0x67fa,1,0x6785,1,0x6852,2,0xd84d,0xdc6d,1,0x688e,1,0x681f, -1,0x6914,1,0x6942,1,0x69a3,1,0x69ea,1,0x6aa8,2,0xd84d,0xdea3,1,0x6adb,1, -0x3c18,1,0x6b21,2,0xd84e,0xdca7,1,0x6b54,1,0x3c4e,1,0x6b72,1,0x6b9f,1,0x6bbb, -2,0xd84e,0xde8d,2,0xd847,0xdd0b,2,0xd84e,0xdefa,1,0x6c4e,2,0xd84f,0xdcbc,1,0x6cbf, -1,0x6ccd,1,0x6c67,1,0x6d16,1,0x6d3e,1,0x6d69,1,0x6d78,1,0x6d85,2,0xd84f, -0xdd1e,1,0x6d34,1,0x6e2f,1,0x6e6e,1,0x3d33,1,0x6ec7,2,0xd84f,0xded1,1,0x6df9, -1,0x6f6e,2,0xd84f,0xdf5e,2,0xd84f,0xdf8e,1,0x6fc6,1,0x7039,1,0x701b,1,0x3d96, -1,0x704a,1,0x707d,1,0x7077,1,0x70ad,2,0xd841,0xdd25,1,0x7145,2,0xd850,0xde63, -1,0x719c,2,0xd850,0xdfab,1,0x7228,1,0x7250,2,0xd851,0xde08,1,0x7280,1,0x7295, -2,0xd851,0xdf35,2,0xd852,0xdc14,1,0x737a,1,0x738b,1,0x3eac,1,0x73a5,1,0x3eb8, -1,0x7447,1,0x745c,1,0x7485,1,0x74ca,1,0x3f1b,1,0x7524,2,0xd853,0xdc36,1, -0x753e,2,0xd853,0xdc92,2,0xd848,0xdd9f,1,0x7610,2,0xd853,0xdfa1,2,0xd853,0xdfb8,2, -0xd854,0xdc44,1,0x3ffc,1,0x4008,2,0xd854,0xdcf3,2,0xd854,0xdcf2,2,0xd854,0xdd19,2, -0xd854,0xdd33,1,0x771e,1,0x771f,1,0x778b,1,0x4046,1,0x4096,2,0xd855,0xdc1d,1, -0x784e,1,0x40e3,2,0xd855,0xde26,2,0xd855,0xde9a,2,0xd855,0xdec5,1,0x79eb,1,0x412f, -1,0x7a4a,1,0x7a4f,2,0xd856,0xdd7c,2,0xd856,0xdea7,1,0x7aee,1,0x4202,2,0xd856, -0xdfab,1,0x7bc6,1,0x7bc9,1,0x4227,2,0xd857,0xdc80,1,0x7cd2,1,0x42a0,1,0x7ce8, -1,0x7ce3,1,0x7d00,2,0xd857,0xdf86,1,0x7d63,1,0x4301,1,0x7dc7,1,0x7e02,1, -0x7e45,1,0x4334,2,0xd858,0xde28,2,0xd858,0xde47,1,0x4359,2,0xd858,0xded9,1,0x7f7a, -2,0xd858,0xdf3e,1,0x7f95,1,0x7ffa,2,0xd859,0xdcda,2,0xd859,0xdd23,1,0x8060,2, -0xd859,0xdda8,1,0x8070,2,0xd84c,0xdf5f,1,0x43d5,1,0x80b2,1,0x8103,1,0x440b,1, -0x813e,1,0x5ab5,2,0xd859,0xdfa7,2,0xd859,0xdfb5,2,0xd84c,0xdf93,2,0xd84c,0xdf9c,1, -0x8204,1,0x8f9e,1,0x446b,1,0x8291,1,0x828b,1,0x829d,1,0x52b3,1,0x82b1,1, -0x82b3,1,0x82bd,1,0x82e6,2,0xd85a,0xdf3c,1,0x831d,1,0x8363,1,0x83ad,1,0x8323, -1,0x83bd,1,0x83e7,1,0x8353,1,0x83ca,1,0x83cc,1,0x83dc,2,0xd85b,0xdc36,2, -0xd85b,0xdd6b,2,0xd85b,0xdcd5,1,0x452b,1,0x84f1,1,0x84f3,1,0x8516,2,0xd85c,0xdfca, -1,0x8564,2,0xd85b,0xdf2c,1,0x455d,1,0x4561,2,0xd85b,0xdfb1,2,0xd85c,0xdcd2,1, -0x456b,1,0x8650,1,0x8667,1,0x8669,1,0x86a9,1,0x8688,1,0x870e,1,0x86e2,1, -0x8728,1,0x876b,1,0x8786,1,0x45d7,1,0x87e1,1,0x8801,1,0x45f9,1,0x8860,1, -0x8863,2,0xd85d,0xde67,1,0x88d7,1,0x88de,1,0x4635,1,0x88fa,1,0x34bb,2,0xd85e, -0xdcae,2,0xd85e,0xdd66,1,0x46be,1,0x46c7,1,0x8aa0,1,0x8c55,2,0xd85f,0xdca8,1, -0x8cab,1,0x8cc1,1,0x8d1b,1,0x8d77,2,0xd85f,0xdf2f,2,0xd842,0xdc04,1,0x8dcb,1, -0x8dbc,1,0x8df0,2,0xd842,0xdcde,1,0x8ed4,2,0xd861,0xddd2,2,0xd861,0xdded,1,0x9094, -1,0x90f1,1,0x9111,2,0xd861,0xdf2e,1,0x911b,1,0x9238,1,0x92d7,1,0x92d8,1, -0x927c,1,0x93f9,1,0x9415,2,0xd862,0xdffa,1,0x958b,1,0x4995,1,0x95b7,2,0xd863, -0xdd77,1,0x49e6,1,0x96c3,1,0x5db2,1,0x9723,2,0xd864,0xdd45,2,0xd864,0xde1a,1, -0x4a6e,1,0x4a76,1,0x97e0,2,0xd865,0xdc0a,1,0x4ab2,2,0xd865,0xdc96,1,0x9829,2, -0xd865,0xddb6,1,0x98e2,1,0x4b33,1,0x9929,1,0x99a7,1,0x99c2,1,0x99fe,1,0x4bce, -2,0xd866,0xdf30,1,0x9c40,1,0x9cfd,1,0x4cce,1,0x4ced,1,0x9d67,2,0xd868,0xdcce, -1,0x4cf8,2,0xd868,0xdd05,2,0xd868,0xde0e,2,0xd868,0xde91,1,0x9ebb,1,0x4d56,1, -0x9ef9,1,0x9efe,1,0x9f05,1,0x9f0f,1,0x9f16,1,0x9f3b,2,0xd869,0xde00,0x3ac,0xe642, -0x3b1,0x301,0x3ad,0xe642,0x3b5,0x301,0x3ae,0xe642,0x3b7,0x301,0x3af,0xe642,0x3b9,0x301,0x3cc,0xe642, -0x3bf,0x301,0x3cd,0xe642,0x3c5,0x301,0x3ce,0xe642,0x3c9,0x301,0x386,0xe642,0x391,0x301,0x388,0xe642, -0x395,0x301,0x389,0xe642,0x397,0x301,0x390,1,0xe643,0x3b9,0x308,0x301,0x38a,0xe642,0x399,0x301, -0x3b0,1,0xe643,0x3c5,0x308,0x301,0x38e,0xe642,0x3a5,0x301,0x385,0xe642,0xa8,0x301,0x38c,0xe642, -0x39f,0x301,0x38f,0xe642,0x3a9,0x301,0xc5,0xe642,0x41,0x30a,0xe6e6,0xe681,0x300,0xe6e6,0xe681,0x301, -0xe6e6,0xe681,0x313,0xe6e6,0xe682,0x308,0x301,0x8100,0x8282,0xf71,0xf72,0x8100,0x8482,0xf71,0xf74,0x8100, -0x8282,0xf71,0xf80,0 +0xe132,0x61ee,0xe132,0x61f0,0xe132,0x61f2,0xe132,0x61f4,0xe132,0x61fc,0x860f,2,0xb92,0x860f,2,0xbc8, +0xb489,0x2e82,0x2134,0xb489,0x2e82,0x2138,0xb489,0x2e82,0x2156,0xb489,0x49c2,0x225c,0xb489,0x49c2,0x225e,0x3489, +0xcf82,0x2696,0xb489,0xd5c2,0x2698,0xb489,0xf242,0x2706,0xb489,0xeec2,0x270a,0xb489,0xf082,0x271c,0xb489,0xf242, +0x2722,0x348b,0x2c02,0x2978,0x348b,0x2e82,0x2976,0xb48b,0x2f42,0x297c,0xb48b,0x6bc2,0x2b74,0xb48b,0x6bc2,0x2b76, +0xb48d,0x4c02,0x3270,0xb4b7,0x59c2,0xdad3,2,0xe602,0x41,0x302,0x600,0x3d4c,0x602,0x3d48,0x606,0x3d54, +0x8612,0x3d50,0xe602,0x41,0x308,0x8608,0x3bc,0xe602,0x41,0x30a,0x8602,0x3f4,0xca02,0x43,0x327,0x8602, +0x3c10,0xe602,0x45,0x302,0x600,0x3d80,0x602,0x3d7c,0x606,0x3d88,0x8612,0x3d84,0xe602,0x49,0x308,0x8602, +0x3c5c,0xe602,0x4f,0x302,0x600,0x3da4,0x602,0x3da0,0x606,0x3dac,0x8612,0x3da8,0xe602,0x4f,0x303,0x602, +0x3c98,0x608,0x458,0x8610,0x3c9c,0xe602,0x4f,0x308,0x8608,0x454,0xe602,0x55,0x308,0x600,0x3b6,0x602, +0x3ae,0x608,0x3aa,0x8618,0x3b2,0xe602,0x61,0x302,0x600,0x3d4e,0x602,0x3d4a,0x606,0x3d56,0x8612,0x3d52, +0xe602,0x61,0x308,0x8608,0x3be,0xe602,0x61,0x30a,0x8602,0x3f6,0xca02,0x63,0x327,0x8602,0x3c12,0xe602, +0x65,0x302,0x600,0x3d82,0x602,0x3d7e,0x606,0x3d8a,0x8612,0x3d86,0xe602,0x69,0x308,0x8602,0x3c5e,0xe602, +0x6f,0x302,0x600,0x3da6,0x602,0x3da2,0x606,0x3dae,0x8612,0x3daa,0xe602,0x6f,0x303,0x602,0x3c9a,0x608, +0x45a,0x8610,0x3c9e,0xe602,0x6f,0x308,0x8608,0x456,0xe602,0x75,0x308,0x600,0x3b8,0x602,0x3b0,0x608, +0x3ac,0x8618,0x3b4,0xe602,0x41,0x306,0x600,0x3d60,0x602,0x3d5c,0x606,0x3d68,0x8612,0x3d64,0xe602,0x61, +0x306,0x600,0x3d62,0x602,0x3d5e,0x606,0x3d6a,0x8612,0x3d66,0xe602,0x45,0x304,0x600,0x3c28,0x8602,0x3c2c, +0xe602,0x65,0x304,0x600,0x3c2a,0x8602,0x3c2e,0xe602,0x4f,0x304,0x600,0x3ca0,0x8602,0x3ca4,0xe602,0x6f, +0x304,0x600,0x3ca2,0x8602,0x3ca6,0xe602,0x53,0x301,0x860e,0x3cc8,0xe602,0x73,0x301,0x860e,0x3cca,0xe602, +0x53,0x30c,0x860e,0x3ccc,0xe602,0x73,0x30c,0x860e,0x3cce,0xe602,0x55,0x303,0x8602,0x3cf0,0xe602,0x75, +0x303,0x8602,0x3cf2,0xe602,0x55,0x304,0x8610,0x3cf4,0xe602,0x75,0x304,0x8610,0x3cf6,0xd802,0x4f,0x31b, +0x600,0x3db8,0x602,0x3db4,0x606,0x3dc0,0x612,0x3dbc,0x8646,0x3dc4,0xd802,0x6f,0x31b,0x600,0x3dba,0x602, +0x3db6,0x606,0x3dc2,0x612,0x3dbe,0x8646,0x3dc6,0xd802,0x55,0x31b,0x600,0x3dd4,0x602,0x3dd0,0x606,0x3ddc, +0x612,0x3dd8,0x8646,0x3de0,0xd802,0x75,0x31b,0x600,0x3dd6,0x602,0x3dd2,0x606,0x3dde,0x612,0x3dda,0x8646, +0x3de2,0xca02,0x4f,0x328,0x8608,0x3d8,0xca02,0x6f,0x328,0x8608,0x3da,0xe602,0x41,0x307,0x8608,0x3c0, +0xe602,0x61,0x307,0x8608,0x3c2,0xca02,0x45,0x327,0x860c,0x3c38,0xca02,0x65,0x327,0x860c,0x3c3a,0xe602, +0x4f,0x307,0x8608,0x460,0xe602,0x6f,0x307,0x8608,0x462,0xe602,0x3b1,0x301,0x868a,0x3f68,0xe602,0x3b7, +0x301,0x868a,0x3f88,0xe602,0x3b9,0x308,0x600,0x3fa4,0x602,0x720,0x8684,0x3fae,0xe602,0x3c5,0x308,0x600, +0x3fc4,0x602,0x760,0x8684,0x3fce,0xe602,0x3c9,0x301,0x868a,0x3fe8,2,0xcc6,0xcc2,0x99aa,0x1996,2, +0xdd9,0xdcf,0x9b94,0x1bba,0xdc02,0x4c,0x323,0x8608,0x3c70,0xdc02,0x6c,0x323,0x8608,0x3c72,0xdc02,0x52, +0x323,0x8608,0x3cb8,0xdc02,0x72,0x323,0x8608,0x3cba,0xdc02,0x53,0x323,0x860e,0x3cd0,0xdc02,0x73,0x323, +0x860e,0x3cd2,0xdc02,0x41,0x323,0x604,0x3d58,0x860c,0x3d6c,0xdc02,0x61,0x323,0x604,0x3d5a,0x860c,0x3d6e, +0xdc02,0x45,0x323,0x8604,0x3d8c,0xdc02,0x65,0x323,0x8604,0x3d8e,0xdc02,0x4f,0x323,0x8604,0x3db0,0xdc02, +0x6f,0x323,0x8604,0x3db2,0xe602,0x3b1,0x313,0x600,0x3e05,0x602,0x3e09,0x684,0x3e0d,0x868a,0x3f00,0xe602, +0x3b1,0x314,0x600,0x3e07,0x602,0x3e0b,0x684,0x3e0f,0x868a,0x3f02,0x1f00,0xe643,0x3b1,0x313,0x300,0x868a, +0x3f04,0x1f01,0xe643,0x3b1,0x314,0x300,0x868a,0x3f06,0x1f00,0xe643,0x3b1,0x313,0x301,0x868a,0x3f08,0x1f01, +0xe643,0x3b1,0x314,0x301,0x868a,0x3f0a,0x1f00,0xe643,0x3b1,0x313,0x342,0x868a,0x3f0c,0x1f01,0xe643,0x3b1, +0x314,0x342,0x868a,0x3f0e,0xe602,0x391,0x313,0x600,0x3e15,0x602,0x3e19,0x684,0x3e1d,0x868a,0x3f10,0xe602, +0x391,0x314,0x600,0x3e17,0x602,0x3e1b,0x684,0x3e1f,0x868a,0x3f12,0x1f08,0xe643,0x391,0x313,0x300,0x868a, +0x3f14,0x1f09,0xe643,0x391,0x314,0x300,0x868a,0x3f16,0x1f08,0xe643,0x391,0x313,0x301,0x868a,0x3f18,0x1f09, +0xe643,0x391,0x314,0x301,0x868a,0x3f1a,0x1f08,0xe643,0x391,0x313,0x342,0x868a,0x3f1c,0x1f09,0xe643,0x391, +0x314,0x342,0x868a,0x3f1e,0xe602,0x3b5,0x313,0x600,0x3e24,0x8602,0x3e28,0xe602,0x3b5,0x314,0x600,0x3e26, +0x8602,0x3e2a,0xe602,0x395,0x313,0x600,0x3e34,0x8602,0x3e38,0xe602,0x395,0x314,0x600,0x3e36,0x8602,0x3e3a, +0xe602,0x3b7,0x313,0x600,0x3e45,0x602,0x3e49,0x684,0x3e4d,0x868a,0x3f20,0xe602,0x3b7,0x314,0x600,0x3e47, +0x602,0x3e4b,0x684,0x3e4f,0x868a,0x3f22,0x1f20,0xe643,0x3b7,0x313,0x300,0x868a,0x3f24,0x1f21,0xe643,0x3b7, +0x314,0x300,0x868a,0x3f26,0x1f20,0xe643,0x3b7,0x313,0x301,0x868a,0x3f28,0x1f21,0xe643,0x3b7,0x314,0x301, +0x868a,0x3f2a,0x1f20,0xe643,0x3b7,0x313,0x342,0x868a,0x3f2c,0x1f21,0xe643,0x3b7,0x314,0x342,0x868a,0x3f2e, +0xe602,0x397,0x313,0x600,0x3e55,0x602,0x3e59,0x684,0x3e5d,0x868a,0x3f30,0xe602,0x397,0x314,0x600,0x3e57, +0x602,0x3e5b,0x684,0x3e5f,0x868a,0x3f32,0x1f28,0xe643,0x397,0x313,0x300,0x868a,0x3f34,0x1f29,0xe643,0x397, +0x314,0x300,0x868a,0x3f36,0x1f28,0xe643,0x397,0x313,0x301,0x868a,0x3f38,0x1f29,0xe643,0x397,0x314,0x301, +0x868a,0x3f3a,0x1f28,0xe643,0x397,0x313,0x342,0x868a,0x3f3c,0x1f29,0xe643,0x397,0x314,0x342,0x868a,0x3f3e, +0xe602,0x3b9,0x313,0x600,0x3e64,0x602,0x3e68,0x8684,0x3e6c,0xe602,0x3b9,0x314,0x600,0x3e66,0x602,0x3e6a, +0x8684,0x3e6e,0xe602,0x399,0x313,0x600,0x3e74,0x602,0x3e78,0x8684,0x3e7c,0xe602,0x399,0x314,0x600,0x3e76, +0x602,0x3e7a,0x8684,0x3e7e,0xe602,0x3bf,0x313,0x600,0x3e84,0x8602,0x3e88,0xe602,0x3bf,0x314,0x600,0x3e86, +0x8602,0x3e8a,0xe602,0x39f,0x313,0x600,0x3e94,0x8602,0x3e98,0xe602,0x39f,0x314,0x600,0x3e96,0x8602,0x3e9a, +0xe602,0x3c5,0x313,0x600,0x3ea4,0x602,0x3ea8,0x8684,0x3eac,0xe602,0x3c5,0x314,0x600,0x3ea6,0x602,0x3eaa, +0x8684,0x3eae,0xe602,0x3a5,0x314,0x600,0x3eb6,0x602,0x3eba,0x8684,0x3ebe,0xe602,0x3c9,0x313,0x600,0x3ec5, +0x602,0x3ec9,0x684,0x3ecd,0x868a,0x3f40,0xe602,0x3c9,0x314,0x600,0x3ec7,0x602,0x3ecb,0x684,0x3ecf,0x868a, +0x3f42,0x1f60,0xe643,0x3c9,0x313,0x300,0x868a,0x3f44,0x1f61,0xe643,0x3c9,0x314,0x300,0x868a,0x3f46,0x1f60, +0xe643,0x3c9,0x313,0x301,0x868a,0x3f48,0x1f61,0xe643,0x3c9,0x314,0x301,0x868a,0x3f4a,0x1f60,0xe643,0x3c9, +0x313,0x342,0x868a,0x3f4c,0x1f61,0xe643,0x3c9,0x314,0x342,0x868a,0x3f4e,0xe602,0x3a9,0x313,0x600,0x3ed5, +0x602,0x3ed9,0x684,0x3edd,0x868a,0x3f50,0xe602,0x3a9,0x314,0x600,0x3ed7,0x602,0x3edb,0x684,0x3edf,0x868a, +0x3f52,0x1f68,0xe643,0x3a9,0x313,0x300,0x868a,0x3f54,0x1f69,0xe643,0x3a9,0x314,0x300,0x868a,0x3f56,0x1f68, +0xe643,0x3a9,0x313,0x301,0x868a,0x3f58,0x1f69,0xe643,0x3a9,0x314,0x301,0x868a,0x3f5a,0x1f68,0xe643,0x3a9, +0x313,0x342,0x868a,0x3f5c,0x1f69,0xe643,0x3a9,0x314,0x342,0x868a,0x3f5e,0xe602,0x3b1,0x300,0x868a,0x3f64, +0xe602,0x3b7,0x300,0x868a,0x3f84,0xe602,0x3c9,0x300,0x868a,0x3fe4,0xe602,0x3b1,0x342,0x868a,0x3f6e,0xe602, +0x3b7,0x342,0x868a,0x3f8e,0xe602,0x3c9,0x342,0x868a,0x3fee,4,0xd81b,0xdd63,0xd81b,0xdd67,0xb4b7,0x59c2, +0xdad4,3,0xe602,0x41,0x300,0xe602,0x41,0x301,0xe602,0x41,0x303,0xe602,0x45,0x300,0xe602,0x45, +0x301,0xe602,0x45,0x308,0xe602,0x49,0x300,0xe602,0x49,0x301,0xe602,0x49,0x302,0xe602,0x4e,0x303, +0xe602,0x4f,0x300,0xe602,0x4f,0x301,0xe602,0x55,0x300,0xe602,0x55,0x301,0xe602,0x55,0x302,0xe602, +0x59,0x301,0xe602,0x61,0x300,0xe602,0x61,0x301,0xe602,0x61,0x303,0xe602,0x65,0x300,0xe602,0x65, +0x301,0xe602,0x65,0x308,0xe602,0x69,0x300,0xe602,0x69,0x301,0xe602,0x69,0x302,0xe602,0x6e,0x303, +0xe602,0x6f,0x300,0xe602,0x6f,0x301,0xe602,0x75,0x300,0xe602,0x75,0x301,0xe602,0x75,0x302,0xe602, +0x79,0x301,0xe602,0x79,0x308,0xe602,0x41,0x304,0xe602,0x61,0x304,0xca02,0x41,0x328,0xca02,0x61, +0x328,0xe602,0x43,0x301,0xe602,0x63,0x301,0xe602,0x43,0x302,0xe602,0x63,0x302,0xe602,0x43,0x307, +0xe602,0x63,0x307,0xe602,0x43,0x30c,0xe602,0x63,0x30c,0xe602,0x44,0x30c,0xe602,0x64,0x30c,0xe602, +0x45,0x306,0xe602,0x65,0x306,0xe602,0x45,0x307,0xe602,0x65,0x307,0xca02,0x45,0x328,0xca02,0x65, +0x328,0xe602,0x45,0x30c,0xe602,0x65,0x30c,0xe602,0x47,0x302,0xe602,0x67,0x302,0xe602,0x47,0x306, +0xe602,0x67,0x306,0xe602,0x47,0x307,0xe602,0x67,0x307,0xca02,0x47,0x327,0xca02,0x67,0x327,0xe602, +0x48,0x302,0xe602,0x68,0x302,0xe602,0x49,0x303,0xe602,0x69,0x303,0xe602,0x49,0x304,0xe602,0x69, +0x304,0xe602,0x49,0x306,0xe602,0x69,0x306,0xca02,0x49,0x328,0xca02,0x69,0x328,0xe602,0x49,0x307, +0xe602,0x4a,0x302,0xe602,0x6a,0x302,0xca02,0x4b,0x327,0xca02,0x6b,0x327,0xe602,0x4c,0x301,0xe602, +0x6c,0x301,0xca02,0x4c,0x327,0xca02,0x6c,0x327,0xe602,0x4c,0x30c,0xe602,0x6c,0x30c,0xe602,0x4e, +0x301,0xe602,0x6e,0x301,0xca02,0x4e,0x327,0xca02,0x6e,0x327,0xe602,0x4e,0x30c,0xe602,0x6e,0x30c, +0xe602,0x4f,0x306,0xe602,0x6f,0x306,0xe602,0x4f,0x30b,0xe602,0x6f,0x30b,0xe602,0x52,0x301,0xe602, +0x72,0x301,0xca02,0x52,0x327,0xca02,0x72,0x327,0xe602,0x52,0x30c,0xe602,0x72,0x30c,0xe602,0x53, +0x302,0xe602,0x73,0x302,0xca02,0x53,0x327,0xca02,0x73,0x327,0xca02,0x54,0x327,0xca02,0x74,0x327, +0xe602,0x54,0x30c,0xe602,0x74,0x30c,0xe602,0x55,0x306,0xe602,0x75,0x306,0xe602,0x55,0x30a,0xe602, +0x75,0x30a,0xe602,0x55,0x30b,0xe602,0x75,0x30b,0xca02,0x55,0x328,0xca02,0x75,0x328,0xe602,0x57, +0x302,0xe602,0x77,0x302,0xe602,0x59,0x302,0xe602,0x79,0x302,0xe602,0x59,0x308,0xe602,0x5a,0x301, +0xe602,0x7a,0x301,0xe602,0x5a,0x307,0xe602,0x7a,0x307,0xe602,0x5a,0x30c,0xe602,0x7a,0x30c,0xe602, +0x41,0x30c,0xe602,0x61,0x30c,0xe602,0x49,0x30c,0xe602,0x69,0x30c,0xe602,0x4f,0x30c,0xe602,0x6f, +0x30c,0xe602,0x55,0x30c,0xe602,0x75,0x30c,0xdc,0xe643,0x55,0x308,0x304,0xfc,0xe643,0x75,0x308, +0x304,0xdc,0xe643,0x55,0x308,0x301,0xfc,0xe643,0x75,0x308,0x301,0xdc,0xe643,0x55,0x308,0x30c, +0xfc,0xe643,0x75,0x308,0x30c,0xdc,0xe643,0x55,0x308,0x300,0xfc,0xe643,0x75,0x308,0x300,0xc4, +0xe643,0x41,0x308,0x304,0xe4,0xe643,0x61,0x308,0x304,0x226,0xe643,0x41,0x307,0x304,0x227,0xe643, +0x61,0x307,0x304,0xe602,0xc6,0x304,0xe602,0xe6,0x304,0xe602,0x47,0x30c,0xe602,0x67,0x30c,0xe602, +0x4b,0x30c,0xe602,0x6b,0x30c,0x1ea,0xe643,0x4f,0x328,0x304,0x1eb,0xe643,0x6f,0x328,0x304,0xe602, +0x1b7,0x30c,0xe602,0x292,0x30c,0xe602,0x6a,0x30c,0xe602,0x47,0x301,0xe602,0x67,0x301,0xe602,0x4e, +0x300,0xe602,0x6e,0x300,0xc5,0xe643,0x41,0x30a,0x301,0xe5,0xe643,0x61,0x30a,0x301,0xe602,0xc6, +0x301,0xe602,0xe6,0x301,0xe602,0xd8,0x301,0xe602,0xf8,0x301,0xe602,0x41,0x30f,0xe602,0x61,0x30f, +0xe602,0x41,0x311,0xe602,0x61,0x311,0xe602,0x45,0x30f,0xe602,0x65,0x30f,0xe602,0x45,0x311,0xe602, +0x65,0x311,0xe602,0x49,0x30f,0xe602,0x69,0x30f,0xe602,0x49,0x311,0xe602,0x69,0x311,0xe602,0x4f, +0x30f,0xe602,0x6f,0x30f,0xe602,0x4f,0x311,0xe602,0x6f,0x311,0xe602,0x52,0x30f,0xe602,0x72,0x30f, +0xe602,0x52,0x311,0xe602,0x72,0x311,0xe602,0x55,0x30f,0xe602,0x75,0x30f,0xe602,0x55,0x311,0xe602, +0x75,0x311,0xdc02,0x53,0x326,0xdc02,0x73,0x326,0xdc02,0x54,0x326,0xdc02,0x74,0x326,0xe602,0x48, +0x30c,0xe602,0x68,0x30c,0xd6,0xe643,0x4f,0x308,0x304,0xf6,0xe643,0x6f,0x308,0x304,0xd5,0xe643, +0x4f,0x303,0x304,0xf5,0xe643,0x6f,0x303,0x304,0x22e,0xe643,0x4f,0x307,0x304,0x22f,0xe643,0x6f, +0x307,0x304,0xe602,0x59,0x304,0xe602,0x79,0x304,0xe602,0xa8,0x301,0xe602,0x391,0x301,0xe602,0x395, +0x301,0xe602,0x397,0x301,0xe602,0x399,0x301,0xe602,0x39f,0x301,0xe602,0x3a5,0x301,0xe602,0x3a9,0x301, +0x3ca,0xe643,0x3b9,0x308,0x301,0xe602,0x399,0x308,0xe602,0x3a5,0x308,0xe602,0x3b5,0x301,0xe602,0x3b9, +0x301,0x3cb,0xe643,0x3c5,0x308,0x301,0xe602,0x3bf,0x301,0xe602,0x3c5,0x301,0xe602,0x3d2,0x301,0xe602, +0x3d2,0x308,0xe602,0x415,0x300,0xe602,0x415,0x308,0xe602,0x413,0x301,0xe602,0x406,0x308,0xe602,0x41a, +0x301,0xe602,0x418,0x300,0xe602,0x423,0x306,0xe602,0x418,0x306,0xe602,0x438,0x306,0xe602,0x435,0x300, +0xe602,0x435,0x308,0xe602,0x433,0x301,0xe602,0x456,0x308,0xe602,0x43a,0x301,0xe602,0x438,0x300,0xe602, +0x443,0x306,0xe602,0x474,0x30f,0xe602,0x475,0x30f,0xe602,0x416,0x306,0xe602,0x436,0x306,0xe602,0x410, +0x306,0xe602,0x430,0x306,0xe602,0x410,0x308,0xe602,0x430,0x308,0xe602,0x415,0x306,0xe602,0x435,0x306, +0xe602,0x4d8,0x308,0xe602,0x4d9,0x308,0xe602,0x416,0x308,0xe602,0x436,0x308,0xe602,0x417,0x308,0xe602, +0x437,0x308,0xe602,0x418,0x304,0xe602,0x438,0x304,0xe602,0x418,0x308,0xe602,0x438,0x308,0xe602,0x41e, +0x308,0xe602,0x43e,0x308,0xe602,0x4e8,0x308,0xe602,0x4e9,0x308,0xe602,0x42d,0x308,0xe602,0x44d,0x308, +0xe602,0x423,0x304,0xe602,0x443,0x304,0xe602,0x423,0x308,0xe602,0x443,0x308,0xe602,0x423,0x30b,0xe602, +0x443,0x30b,0xe602,0x427,0x308,0xe602,0x447,0x308,0xe602,0x42b,0x308,0xe602,0x44b,0x308,0xe602,0x627, +0x653,0xe602,0x627,0x654,0xe602,0x648,0x654,0xdc02,0x627,0x655,0xe602,0x64a,0x654,0xe602,0x6d5,0x654, +0xe602,0x6c1,0x654,0xe602,0x6d2,0x654,0x702,0x928,0x93c,0x702,0x930,0x93c,0x702,0x933,0x93c,2, +0x9c7,0x9be,2,0x9c7,0x9d7,2,0xb47,0xb56,2,0xb47,0xb3e,2,0xb47,0xb57,2,0xb92, +0xbd7,2,0xbc6,0xbbe,2,0xbc7,0xbbe,2,0xbc6,0xbd7,0x5b02,0xc46,0xc56,2,0xcbf,0xcd5, +2,0xcc6,0xcd5,2,0xcc6,0xcd6,0xcca,0x43,0xcc6,0xcc2,0xcd5,2,0xd46,0xd3e,2,0xd47, +0xd3e,2,0xd46,0xd57,0x902,0xdd9,0xdca,0xddc,0x943,0xdd9,0xdcf,0xdca,2,0xdd9,0xddf,2, +0x1025,0x102e,2,0x1b05,0x1b35,2,0x1b07,0x1b35,2,0x1b09,0x1b35,2,0x1b0b,0x1b35,2,0x1b0d, +0x1b35,2,0x1b11,0x1b35,2,0x1b3a,0x1b35,2,0x1b3c,0x1b35,2,0x1b3e,0x1b35,2,0x1b3f,0x1b35, +2,0x1b42,0x1b35,0xdc02,0x41,0x325,0xdc02,0x61,0x325,0xe602,0x42,0x307,0xe602,0x62,0x307,0xdc02, +0x42,0x323,0xdc02,0x62,0x323,0xdc02,0x42,0x331,0xdc02,0x62,0x331,0xc7,0xe643,0x43,0x327,0x301, +0xe7,0xe643,0x63,0x327,0x301,0xe602,0x44,0x307,0xe602,0x64,0x307,0xdc02,0x44,0x323,0xdc02,0x64, +0x323,0xdc02,0x44,0x331,0xdc02,0x64,0x331,0xca02,0x44,0x327,0xca02,0x64,0x327,0xdc02,0x44,0x32d, +0xdc02,0x64,0x32d,0x112,0xe643,0x45,0x304,0x300,0x113,0xe643,0x65,0x304,0x300,0x112,0xe643,0x45, +0x304,0x301,0x113,0xe643,0x65,0x304,0x301,0xdc02,0x45,0x32d,0xdc02,0x65,0x32d,0xdc02,0x45,0x330, +0xdc02,0x65,0x330,0x228,0xe643,0x45,0x327,0x306,0x229,0xe643,0x65,0x327,0x306,0xe602,0x46,0x307, +0xe602,0x66,0x307,0xe602,0x47,0x304,0xe602,0x67,0x304,0xe602,0x48,0x307,0xe602,0x68,0x307,0xdc02, +0x48,0x323,0xdc02,0x68,0x323,0xe602,0x48,0x308,0xe602,0x68,0x308,0xca02,0x48,0x327,0xca02,0x68, +0x327,0xdc02,0x48,0x32e,0xdc02,0x68,0x32e,0xdc02,0x49,0x330,0xdc02,0x69,0x330,0xcf,0xe643,0x49, +0x308,0x301,0xef,0xe643,0x69,0x308,0x301,0xe602,0x4b,0x301,0xe602,0x6b,0x301,0xdc02,0x4b,0x323, +0xdc02,0x6b,0x323,0xdc02,0x4b,0x331,0xdc02,0x6b,0x331,0x1e36,0xe643,0x4c,0x323,0x304,0x1e37,0xe643, +0x6c,0x323,0x304,0xdc02,0x4c,0x331,0xdc02,0x6c,0x331,0xdc02,0x4c,0x32d,0xdc02,0x6c,0x32d,0xe602, +0x4d,0x301,0xe602,0x6d,0x301,0xe602,0x4d,0x307,0xe602,0x6d,0x307,0xdc02,0x4d,0x323,0xdc02,0x6d, +0x323,0xe602,0x4e,0x307,0xe602,0x6e,0x307,0xdc02,0x4e,0x323,0xdc02,0x6e,0x323,0xdc02,0x4e,0x331, +0xdc02,0x6e,0x331,0xdc02,0x4e,0x32d,0xdc02,0x6e,0x32d,0xd5,0xe643,0x4f,0x303,0x301,0xf5,0xe643, +0x6f,0x303,0x301,0xd5,0xe643,0x4f,0x303,0x308,0xf5,0xe643,0x6f,0x303,0x308,0x14c,0xe643,0x4f, +0x304,0x300,0x14d,0xe643,0x6f,0x304,0x300,0x14c,0xe643,0x4f,0x304,0x301,0x14d,0xe643,0x6f,0x304, +0x301,0xe602,0x50,0x301,0xe602,0x70,0x301,0xe602,0x50,0x307,0xe602,0x70,0x307,0xe602,0x52,0x307, +0xe602,0x72,0x307,0x1e5a,0xe643,0x52,0x323,0x304,0x1e5b,0xe643,0x72,0x323,0x304,0xdc02,0x52,0x331, +0xdc02,0x72,0x331,0xe602,0x53,0x307,0xe602,0x73,0x307,0x15a,0xe643,0x53,0x301,0x307,0x15b,0xe643, +0x73,0x301,0x307,0x160,0xe643,0x53,0x30c,0x307,0x161,0xe643,0x73,0x30c,0x307,0x1e62,0xe643,0x53, +0x323,0x307,0x1e63,0xe643,0x73,0x323,0x307,0xe602,0x54,0x307,0xe602,0x74,0x307,0xdc02,0x54,0x323, +0xdc02,0x74,0x323,0xdc02,0x54,0x331,0xdc02,0x74,0x331,0xdc02,0x54,0x32d,0xdc02,0x74,0x32d,0xdc02, +0x55,0x324,0xdc02,0x75,0x324,0xdc02,0x55,0x330,0xdc02,0x75,0x330,0xdc02,0x55,0x32d,0xdc02,0x75, +0x32d,0x168,0xe643,0x55,0x303,0x301,0x169,0xe643,0x75,0x303,0x301,0x16a,0xe643,0x55,0x304,0x308, +0x16b,0xe643,0x75,0x304,0x308,0xe602,0x56,0x303,0xe602,0x76,0x303,0xdc02,0x56,0x323,0xdc02,0x76, +0x323,0xe602,0x57,0x300,0xe602,0x77,0x300,0xe602,0x57,0x301,0xe602,0x77,0x301,0xe602,0x57,0x308, +0xe602,0x77,0x308,0xe602,0x57,0x307,0xe602,0x77,0x307,0xdc02,0x57,0x323,0xdc02,0x77,0x323,0xe602, +0x58,0x307,0xe602,0x78,0x307,0xe602,0x58,0x308,0xe602,0x78,0x308,0xe602,0x59,0x307,0xe602,0x79, +0x307,0xe602,0x5a,0x302,0xe602,0x7a,0x302,0xdc02,0x5a,0x323,0xdc02,0x7a,0x323,0xdc02,0x5a,0x331, +0xdc02,0x7a,0x331,0xdc02,0x68,0x331,0xe602,0x74,0x308,0xe602,0x77,0x30a,0xe602,0x79,0x30a,0xe602, +0x17f,0x307,0xe602,0x41,0x309,0xe602,0x61,0x309,0xc2,0xe643,0x41,0x302,0x301,0xe2,0xe643,0x61, +0x302,0x301,0xc2,0xe643,0x41,0x302,0x300,0xe2,0xe643,0x61,0x302,0x300,0xc2,0xe643,0x41,0x302, +0x309,0xe2,0xe643,0x61,0x302,0x309,0xc2,0xe643,0x41,0x302,0x303,0xe2,0xe643,0x61,0x302,0x303, +0x1ea0,0xe643,0x41,0x323,0x302,0x1ea1,0xe643,0x61,0x323,0x302,0x102,0xe643,0x41,0x306,0x301,0x103, +0xe643,0x61,0x306,0x301,0x102,0xe643,0x41,0x306,0x300,0x103,0xe643,0x61,0x306,0x300,0x102,0xe643, +0x41,0x306,0x309,0x103,0xe643,0x61,0x306,0x309,0x102,0xe643,0x41,0x306,0x303,0x103,0xe643,0x61, +0x306,0x303,0x1ea0,0xe643,0x41,0x323,0x306,0x1ea1,0xe643,0x61,0x323,0x306,0xe602,0x45,0x309,0xe602, +0x65,0x309,0xe602,0x45,0x303,0xe602,0x65,0x303,0xca,0xe643,0x45,0x302,0x301,0xea,0xe643,0x65, +0x302,0x301,0xca,0xe643,0x45,0x302,0x300,0xea,0xe643,0x65,0x302,0x300,0xca,0xe643,0x45,0x302, +0x309,0xea,0xe643,0x65,0x302,0x309,0xca,0xe643,0x45,0x302,0x303,0xea,0xe643,0x65,0x302,0x303, +0x1eb8,0xe643,0x45,0x323,0x302,0x1eb9,0xe643,0x65,0x323,0x302,0xe602,0x49,0x309,0xe602,0x69,0x309, +0xdc02,0x49,0x323,0xdc02,0x69,0x323,0xe602,0x4f,0x309,0xe602,0x6f,0x309,0xd4,0xe643,0x4f,0x302, +0x301,0xf4,0xe643,0x6f,0x302,0x301,0xd4,0xe643,0x4f,0x302,0x300,0xf4,0xe643,0x6f,0x302,0x300, +0xd4,0xe643,0x4f,0x302,0x309,0xf4,0xe643,0x6f,0x302,0x309,0xd4,0xe643,0x4f,0x302,0x303,0xf4, +0xe643,0x6f,0x302,0x303,0x1ecc,0xe643,0x4f,0x323,0x302,0x1ecd,0xe643,0x6f,0x323,0x302,0x1a0,0xe643, +0x4f,0x31b,0x301,0x1a1,0xe643,0x6f,0x31b,0x301,0x1a0,0xe643,0x4f,0x31b,0x300,0x1a1,0xe643,0x6f, +0x31b,0x300,0x1a0,0xe643,0x4f,0x31b,0x309,0x1a1,0xe643,0x6f,0x31b,0x309,0x1a0,0xe643,0x4f,0x31b, +0x303,0x1a1,0xe643,0x6f,0x31b,0x303,0x1a0,0xdc43,0x4f,0x31b,0x323,0x1a1,0xdc43,0x6f,0x31b,0x323, +0xdc02,0x55,0x323,0xdc02,0x75,0x323,0xe602,0x55,0x309,0xe602,0x75,0x309,0x1af,0xe643,0x55,0x31b, +0x301,0x1b0,0xe643,0x75,0x31b,0x301,0x1af,0xe643,0x55,0x31b,0x300,0x1b0,0xe643,0x75,0x31b,0x300, +0x1af,0xe643,0x55,0x31b,0x309,0x1b0,0xe643,0x75,0x31b,0x309,0x1af,0xe643,0x55,0x31b,0x303,0x1b0, +0xe643,0x75,0x31b,0x303,0x1af,0xdc43,0x55,0x31b,0x323,0x1b0,0xdc43,0x75,0x31b,0x323,0xe602,0x59, +0x300,0xe602,0x79,0x300,0xdc02,0x59,0x323,0xdc02,0x79,0x323,0xe602,0x59,0x309,0xe602,0x79,0x309, +0xe602,0x59,0x303,0xe602,0x79,0x303,0x1f10,0xe643,0x3b5,0x313,0x300,0x1f11,0xe643,0x3b5,0x314,0x300, +0x1f10,0xe643,0x3b5,0x313,0x301,0x1f11,0xe643,0x3b5,0x314,0x301,0x1f18,0xe643,0x395,0x313,0x300,0x1f19, +0xe643,0x395,0x314,0x300,0x1f18,0xe643,0x395,0x313,0x301,0x1f19,0xe643,0x395,0x314,0x301,0x1f30,0xe643, +0x3b9,0x313,0x300,0x1f31,0xe643,0x3b9,0x314,0x300,0x1f30,0xe643,0x3b9,0x313,0x301,0x1f31,0xe643,0x3b9, +0x314,0x301,0x1f30,0xe643,0x3b9,0x313,0x342,0x1f31,0xe643,0x3b9,0x314,0x342,0x1f38,0xe643,0x399,0x313, +0x300,0x1f39,0xe643,0x399,0x314,0x300,0x1f38,0xe643,0x399,0x313,0x301,0x1f39,0xe643,0x399,0x314,0x301, +0x1f38,0xe643,0x399,0x313,0x342,0x1f39,0xe643,0x399,0x314,0x342,0x1f40,0xe643,0x3bf,0x313,0x300,0x1f41, +0xe643,0x3bf,0x314,0x300,0x1f40,0xe643,0x3bf,0x313,0x301,0x1f41,0xe643,0x3bf,0x314,0x301,0x1f48,0xe643, +0x39f,0x313,0x300,0x1f49,0xe643,0x39f,0x314,0x300,0x1f48,0xe643,0x39f,0x313,0x301,0x1f49,0xe643,0x39f, +0x314,0x301,0x1f50,0xe643,0x3c5,0x313,0x300,0x1f51,0xe643,0x3c5,0x314,0x300,0x1f50,0xe643,0x3c5,0x313, +0x301,0x1f51,0xe643,0x3c5,0x314,0x301,0x1f50,0xe643,0x3c5,0x313,0x342,0x1f51,0xe643,0x3c5,0x314,0x342, +0x1f59,0xe643,0x3a5,0x314,0x300,0x1f59,0xe643,0x3a5,0x314,0x301,0x1f59,0xe643,0x3a5,0x314,0x342,0xe602, +0x3b5,0x300,0xe602,0x3b9,0x300,0xe602,0x3bf,0x300,0xe602,0x3c5,0x300,0x1f00,0xf043,0x3b1,0x313,0x345, +0x1f01,0xf043,0x3b1,0x314,0x345,0x1f02,0x345,2,0xf044,0x3b1,0x313,0x300,0x345,0x1f03,0x345,2, +0xf044,0x3b1,0x314,0x300,0x345,0x1f04,0x345,2,0xf044,0x3b1,0x313,0x301,0x345,0x1f05,0x345,2, +0xf044,0x3b1,0x314,0x301,0x345,0x1f06,0x345,2,0xf044,0x3b1,0x313,0x342,0x345,0x1f07,0x345,2, +0xf044,0x3b1,0x314,0x342,0x345,0x1f08,0xf043,0x391,0x313,0x345,0x1f09,0xf043,0x391,0x314,0x345,0x1f0a, +0x345,2,0xf044,0x391,0x313,0x300,0x345,0x1f0b,0x345,2,0xf044,0x391,0x314,0x300,0x345,0x1f0c, +0x345,2,0xf044,0x391,0x313,0x301,0x345,0x1f0d,0x345,2,0xf044,0x391,0x314,0x301,0x345,0x1f0e, +0x345,2,0xf044,0x391,0x313,0x342,0x345,0x1f0f,0x345,2,0xf044,0x391,0x314,0x342,0x345,0x1f20, +0xf043,0x3b7,0x313,0x345,0x1f21,0xf043,0x3b7,0x314,0x345,0x1f22,0x345,2,0xf044,0x3b7,0x313,0x300, +0x345,0x1f23,0x345,2,0xf044,0x3b7,0x314,0x300,0x345,0x1f24,0x345,2,0xf044,0x3b7,0x313,0x301, +0x345,0x1f25,0x345,2,0xf044,0x3b7,0x314,0x301,0x345,0x1f26,0x345,2,0xf044,0x3b7,0x313,0x342, +0x345,0x1f27,0x345,2,0xf044,0x3b7,0x314,0x342,0x345,0x1f28,0xf043,0x397,0x313,0x345,0x1f29,0xf043, +0x397,0x314,0x345,0x1f2a,0x345,2,0xf044,0x397,0x313,0x300,0x345,0x1f2b,0x345,2,0xf044,0x397, +0x314,0x300,0x345,0x1f2c,0x345,2,0xf044,0x397,0x313,0x301,0x345,0x1f2d,0x345,2,0xf044,0x397, +0x314,0x301,0x345,0x1f2e,0x345,2,0xf044,0x397,0x313,0x342,0x345,0x1f2f,0x345,2,0xf044,0x397, +0x314,0x342,0x345,0x1f60,0xf043,0x3c9,0x313,0x345,0x1f61,0xf043,0x3c9,0x314,0x345,0x1f62,0x345,2, +0xf044,0x3c9,0x313,0x300,0x345,0x1f63,0x345,2,0xf044,0x3c9,0x314,0x300,0x345,0x1f64,0x345,2, +0xf044,0x3c9,0x313,0x301,0x345,0x1f65,0x345,2,0xf044,0x3c9,0x314,0x301,0x345,0x1f66,0x345,2, +0xf044,0x3c9,0x313,0x342,0x345,0x1f67,0x345,2,0xf044,0x3c9,0x314,0x342,0x345,0x1f68,0xf043,0x3a9, +0x313,0x345,0x1f69,0xf043,0x3a9,0x314,0x345,0x1f6a,0x345,2,0xf044,0x3a9,0x313,0x300,0x345,0x1f6b, +0x345,2,0xf044,0x3a9,0x314,0x300,0x345,0x1f6c,0x345,2,0xf044,0x3a9,0x313,0x301,0x345,0x1f6d, +0x345,2,0xf044,0x3a9,0x314,0x301,0x345,0x1f6e,0x345,2,0xf044,0x3a9,0x313,0x342,0x345,0x1f6f, +0x345,2,0xf044,0x3a9,0x314,0x342,0x345,0xe602,0x3b1,0x306,0xe602,0x3b1,0x304,0x1f70,0xf043,0x3b1, +0x300,0x345,0xf002,0x3b1,0x345,0x3ac,0xf043,0x3b1,0x301,0x345,0x1fb6,0xf043,0x3b1,0x342,0x345,0xe602, +0x391,0x306,0xe602,0x391,0x304,0xe602,0x391,0x300,0xf002,0x391,0x345,0xe602,0xa8,0x342,0x1f74,0xf043, +0x3b7,0x300,0x345,0xf002,0x3b7,0x345,0x3ae,0xf043,0x3b7,0x301,0x345,0x1fc6,0xf043,0x3b7,0x342,0x345, +0xe602,0x395,0x300,0xe602,0x397,0x300,0xf002,0x397,0x345,0xe602,0x1fbf,0x300,0xe602,0x1fbf,0x301,0xe602, +0x1fbf,0x342,0xe602,0x3b9,0x306,0xe602,0x3b9,0x304,0x3ca,0xe643,0x3b9,0x308,0x300,0xe602,0x3b9,0x342, +0x3ca,0xe643,0x3b9,0x308,0x342,0xe602,0x399,0x306,0xe602,0x399,0x304,0xe602,0x399,0x300,0xe602,0x1ffe, +0x300,0xe602,0x1ffe,0x301,0xe602,0x1ffe,0x342,0xe602,0x3c5,0x306,0xe602,0x3c5,0x304,0x3cb,0xe643,0x3c5, +0x308,0x300,0xe602,0x3c1,0x313,0xe602,0x3c1,0x314,0xe602,0x3c5,0x342,0x3cb,0xe643,0x3c5,0x308,0x342, +0xe602,0x3a5,0x306,0xe602,0x3a5,0x304,0xe602,0x3a5,0x300,0xe602,0x3a1,0x314,0xe602,0xa8,0x300,0x1f7c, +0xf043,0x3c9,0x300,0x345,0xf002,0x3c9,0x345,0x3ce,0xf043,0x3c9,0x301,0x345,0x1ff6,0xf043,0x3c9,0x342, +0x345,0xe602,0x39f,0x300,0xe602,0x3a9,0x300,0xf002,0x3a9,0x345,0x102,0x2190,0x338,0x102,0x2192,0x338, +0x102,0x2194,0x338,0x102,0x21d0,0x338,0x102,0x21d4,0x338,0x102,0x21d2,0x338,0x102,0x2203,0x338,0x102, +0x2208,0x338,0x102,0x220b,0x338,0x102,0x2223,0x338,0x102,0x2225,0x338,0x102,0x223c,0x338,0x102,0x2243, +0x338,0x102,0x2245,0x338,0x102,0x2248,0x338,0x102,0x3d,0x338,0x102,0x2261,0x338,0x102,0x224d,0x338, +0x102,0x3c,0x338,0x102,0x3e,0x338,0x102,0x2264,0x338,0x102,0x2265,0x338,0x102,0x2272,0x338,0x102, +0x2273,0x338,0x102,0x2276,0x338,0x102,0x2277,0x338,0x102,0x227a,0x338,0x102,0x227b,0x338,0x102,0x2282, +0x338,0x102,0x2283,0x338,0x102,0x2286,0x338,0x102,0x2287,0x338,0x102,0x22a2,0x338,0x102,0x22a8,0x338, +0x102,0x22a9,0x338,0x102,0x22ab,0x338,0x102,0x227c,0x338,0x102,0x227d,0x338,0x102,0x2291,0x338,0x102, +0x2292,0x338,0x102,0x22b2,0x338,0x102,0x22b3,0x338,0x102,0x22b4,0x338,0x102,0x22b5,0x338,0x802,0x304b, +0x3099,0x802,0x304d,0x3099,0x802,0x304f,0x3099,0x802,0x3051,0x3099,0x802,0x3053,0x3099,0x802,0x3055,0x3099, +0x802,0x3057,0x3099,0x802,0x3059,0x3099,0x802,0x305b,0x3099,0x802,0x305d,0x3099,0x802,0x305f,0x3099,0x802, +0x3061,0x3099,0x802,0x3064,0x3099,0x802,0x3066,0x3099,0x802,0x3068,0x3099,0x802,0x306f,0x3099,0x802,0x306f, +0x309a,0x802,0x3072,0x3099,0x802,0x3072,0x309a,0x802,0x3075,0x3099,0x802,0x3075,0x309a,0x802,0x3078,0x3099, +0x802,0x3078,0x309a,0x802,0x307b,0x3099,0x802,0x307b,0x309a,0x802,0x3046,0x3099,0x802,0x309d,0x3099,0x802, +0x30ab,0x3099,0x802,0x30ad,0x3099,0x802,0x30af,0x3099,0x802,0x30b1,0x3099,0x802,0x30b3,0x3099,0x802,0x30b5, +0x3099,0x802,0x30b7,0x3099,0x802,0x30b9,0x3099,0x802,0x30bb,0x3099,0x802,0x30bd,0x3099,0x802,0x30bf,0x3099, +0x802,0x30c1,0x3099,0x802,0x30c4,0x3099,0x802,0x30c6,0x3099,0x802,0x30c8,0x3099,0x802,0x30cf,0x3099,0x802, +0x30cf,0x309a,0x802,0x30d2,0x3099,0x802,0x30d2,0x309a,0x802,0x30d5,0x3099,0x802,0x30d5,0x309a,0x802,0x30d8, +0x3099,0x802,0x30d8,0x309a,0x802,0x30db,0x3099,0x802,0x30db,0x309a,0x802,0x30a6,0x3099,0x802,0x30ef,0x3099, +0x802,0x30f0,0x3099,0x802,0x30f1,0x3099,0x802,0x30f2,0x3099,0x802,0x30fd,0x3099,0xe603,0xd801,0xddd2,0x307, +0xe603,0xd801,0xddda,0x307,0x704,0xd804,0xdc99,0xd804,0xdcba,0x704,0xd804,0xdc9b,0xd804,0xdcba,0x704,0xd804, +0xdca5,0xd804,0xdcba,4,0xd804,0xdd31,0xd804,0xdd27,4,0xd804,0xdd32,0xd804,0xdd27,4,0xd804,0xdf47, +0xd804,0xdf3e,4,0xd804,0xdf47,0xd804,0xdf57,4,0xd804,0xdf82,0xd804,0xdfc9,4,0xd804,0xdf84,0xd804, +0xdfbb,4,0xd804,0xdf8b,0xd804,0xdfc2,4,0xd804,0xdf90,0xd804,0xdfc9,4,0xd805,0xdcb9,0xd805,0xdcba, +4,0xd805,0xdcb9,0xd805,0xdcb0,4,0xd805,0xdcb9,0xd805,0xdcbd,4,0xd805,0xddb8,0xd805,0xddaf,4, +0xd805,0xddb9,0xd805,0xddaf,4,0xd806,0xdd35,0xd806,0xdd30,0xd81b,0xdd69,0xd81b,0xdd67,4,0x46,0xd81b, +0xdd63,0xd81b,0xdd67,0xd81b,0xdd67,1,0x2b9,1,0x3b,1,0xb7,0x702,0x915,0x93c,0x702,0x916, +0x93c,0x702,0x917,0x93c,0x702,0x91c,0x93c,0x702,0x921,0x93c,0x702,0x922,0x93c,0x702,0x92b,0x93c, +0x702,0x92f,0x93c,0x702,0x9a1,0x9bc,0x702,0x9a2,0x9bc,0x702,0x9af,0x9bc,0x702,0xa32,0xa3c,0x702, +0xa38,0xa3c,0x702,0xa16,0xa3c,0x702,0xa17,0xa3c,0x702,0xa1c,0xa3c,0x702,0xa2b,0xa3c,0x702,0xb21, +0xb3c,0x702,0xb22,0xb3c,2,0xf42,0xfb7,2,0xf4c,0xfb7,2,0xf51,0xfb7,2,0xf56,0xfb7, +2,0xf5b,0xfb7,2,0xf40,0xfb5,0x8202,0xfb2,0xf80,0x8202,0xfb3,0xf80,2,0xf92,0xfb7,2, +0xf9c,0xfb7,2,0xfa1,0xfb7,2,0xfa6,0xfb7,2,0xfab,0xfb7,2,0xf90,0xfb5,1,0x3b9, +1,0x60,1,0xb4,1,0x3a9,1,0x4b,1,0x3008,1,0x3009,0x102,0x2add,0x338,1, +0x8c48,1,0x66f4,1,0x8eca,1,0x8cc8,1,0x6ed1,1,0x4e32,1,0x53e5,1,0x9f9c,1, +0x5951,1,0x91d1,1,0x5587,1,0x5948,1,0x61f6,1,0x7669,1,0x7f85,1,0x863f,1, +0x87ba,1,0x88f8,1,0x908f,1,0x6a02,1,0x6d1b,1,0x70d9,1,0x73de,1,0x843d,1, +0x916a,1,0x99f1,1,0x4e82,1,0x5375,1,0x6b04,1,0x721b,1,0x862d,1,0x9e1e,1, +0x5d50,1,0x6feb,1,0x85cd,1,0x8964,1,0x62c9,1,0x81d8,1,0x881f,1,0x5eca,1, +0x6717,1,0x6d6a,1,0x72fc,1,0x90ce,1,0x4f86,1,0x51b7,1,0x52de,1,0x64c4,1, +0x6ad3,1,0x7210,1,0x76e7,1,0x8001,1,0x8606,1,0x865c,1,0x8def,1,0x9732,1, +0x9b6f,1,0x9dfa,1,0x788c,1,0x797f,1,0x7da0,1,0x83c9,1,0x9304,1,0x9e7f,1, +0x8ad6,1,0x58df,1,0x5f04,1,0x7c60,1,0x807e,1,0x7262,1,0x78ca,1,0x8cc2,1, +0x96f7,1,0x58d8,1,0x5c62,1,0x6a13,1,0x6dda,1,0x6f0f,1,0x7d2f,1,0x7e37,1, +0x964b,1,0x52d2,1,0x808b,1,0x51dc,1,0x51cc,1,0x7a1c,1,0x7dbe,1,0x83f1,1, +0x9675,1,0x8b80,1,0x62cf,1,0x8afe,1,0x4e39,1,0x5be7,1,0x6012,1,0x7387,1, +0x7570,1,0x5317,1,0x78fb,1,0x4fbf,1,0x5fa9,1,0x4e0d,1,0x6ccc,1,0x6578,1, +0x7d22,1,0x53c3,1,0x585e,1,0x7701,1,0x8449,1,0x8aaa,1,0x6bba,1,0x8fb0,1, +0x6c88,1,0x62fe,1,0x82e5,1,0x63a0,1,0x7565,1,0x4eae,1,0x5169,1,0x51c9,1, +0x6881,1,0x7ce7,1,0x826f,1,0x8ad2,1,0x91cf,1,0x52f5,1,0x5442,1,0x5973,1, +0x5eec,1,0x65c5,1,0x6ffe,1,0x792a,1,0x95ad,1,0x9a6a,1,0x9e97,1,0x9ece,1, +0x529b,1,0x66c6,1,0x6b77,1,0x8f62,1,0x5e74,1,0x6190,1,0x6200,1,0x649a,1, +0x6f23,1,0x7149,1,0x7489,1,0x79ca,1,0x7df4,1,0x806f,1,0x8f26,1,0x84ee,1, +0x9023,1,0x934a,1,0x5217,1,0x52a3,1,0x54bd,1,0x70c8,1,0x88c2,1,0x5ec9,1, +0x5ff5,1,0x637b,1,0x6bae,1,0x7c3e,1,0x7375,1,0x4ee4,1,0x56f9,1,0x5dba,1, +0x601c,1,0x73b2,1,0x7469,1,0x7f9a,1,0x8046,1,0x9234,1,0x96f6,1,0x9748,1, +0x9818,1,0x4f8b,1,0x79ae,1,0x91b4,1,0x96b8,1,0x60e1,1,0x4e86,1,0x50da,1, +0x5bee,1,0x5c3f,1,0x6599,1,0x71ce,1,0x7642,1,0x84fc,1,0x907c,1,0x9f8d,1, +0x6688,1,0x962e,1,0x5289,1,0x677b,1,0x67f3,1,0x6d41,1,0x6e9c,1,0x7409,1, +0x7559,1,0x786b,1,0x7d10,1,0x985e,1,0x516d,1,0x622e,1,0x9678,1,0x502b,1, +0x5d19,1,0x6dea,1,0x8f2a,1,0x5f8b,1,0x6144,1,0x6817,1,0x9686,1,0x5229,1, +0x540f,1,0x5c65,1,0x6613,1,0x674e,1,0x68a8,1,0x6ce5,1,0x7406,1,0x75e2,1, +0x7f79,1,0x88cf,1,0x88e1,1,0x91cc,1,0x96e2,1,0x533f,1,0x6eba,1,0x541d,1, +0x71d0,1,0x7498,1,0x85fa,1,0x96a3,1,0x9c57,1,0x9e9f,1,0x6797,1,0x6dcb,1, +0x81e8,1,0x7acb,1,0x7b20,1,0x7c92,1,0x72c0,1,0x7099,1,0x8b58,1,0x4ec0,1, +0x8336,1,0x523a,1,0x5207,1,0x5ea6,1,0x62d3,1,0x7cd6,1,0x5b85,1,0x6d1e,1, +0x66b4,1,0x8f3b,1,0x884c,1,0x964d,1,0x898b,1,0x5ed3,1,0x5140,1,0x55c0,1, +0x585a,1,0x6674,1,0x51de,1,0x732a,1,0x76ca,1,0x793c,1,0x795e,1,0x7965,1, +0x798f,1,0x9756,1,0x7cbe,1,0x7fbd,1,0x8612,1,0x8af8,1,0x9038,1,0x90fd,1, +0x98ef,1,0x98fc,1,0x9928,1,0x9db4,1,0x90de,1,0x96b7,1,0x4fae,1,0x50e7,1, +0x514d,1,0x52c9,1,0x52e4,1,0x5351,1,0x559d,1,0x5606,1,0x5668,1,0x5840,1, +0x58a8,1,0x5c64,1,0x5c6e,1,0x6094,1,0x6168,1,0x618e,1,0x61f2,1,0x654f,1, +0x65e2,1,0x6691,1,0x6885,1,0x6d77,1,0x6e1a,1,0x6f22,1,0x716e,1,0x722b,1, +0x7422,1,0x7891,1,0x793e,1,0x7949,1,0x7948,1,0x7950,1,0x7956,1,0x795d,1, +0x798d,1,0x798e,1,0x7a40,1,0x7a81,1,0x7bc0,1,0x7e09,1,0x7e41,1,0x7f72,1, +0x8005,1,0x81ed,1,0x8279,1,0x8457,1,0x8910,1,0x8996,1,0x8b01,1,0x8b39,1, +0x8cd3,1,0x8d08,1,0x8fb6,1,0x96e3,1,0x97ff,1,0x983b,1,0x6075,2,0xd850,0xdeee, +1,0x8218,1,0x4e26,1,0x51b5,1,0x5168,1,0x4f80,1,0x5145,1,0x5180,1,0x52c7, +1,0x52fa,1,0x5555,1,0x5599,1,0x55e2,1,0x58b3,1,0x5944,1,0x5954,1,0x5a62, +1,0x5b28,1,0x5ed2,1,0x5ed9,1,0x5f69,1,0x5fad,1,0x60d8,1,0x614e,1,0x6108, +1,0x6160,1,0x6234,1,0x63c4,1,0x641c,1,0x6452,1,0x6556,1,0x671b,1,0x6756, +1,0x6b79,1,0x6edb,1,0x6ecb,1,0x701e,1,0x77a7,1,0x7235,1,0x72af,1,0x7471, +1,0x7506,1,0x753b,1,0x761d,1,0x761f,1,0x76db,1,0x76f4,1,0x774a,1,0x7740, +1,0x78cc,1,0x7ab1,1,0x7c7b,1,0x7d5b,1,0x7f3e,1,0x8352,1,0x83ef,1,0x8779, +1,0x8941,1,0x8986,1,0x8abf,1,0x8acb,1,0x8aed,1,0x8b8a,1,0x8f38,1,0x9072, +1,0x9199,1,0x9276,1,0x967c,1,0x97db,1,0x980b,1,0x9b12,2,0xd84a,0xdc4a,2, +0xd84a,0xdc44,2,0xd84c,0xdfd5,1,0x3b9d,1,0x4018,1,0x4039,2,0xd854,0xde49,2,0xd857, +0xdcd0,2,0xd85f,0xded3,1,0x9f43,1,0x9f8e,0xe02,0x5d9,0x5b4,0x1102,0x5f2,0x5b7,0x1802,0x5e9, +0x5c1,0x1902,0x5e9,0x5c2,0xfb49,0x1843,0x5e9,0x5bc,0x5c1,0xfb49,0x1943,0x5e9,0x5bc,0x5c2,0x1102,0x5d0, +0x5b7,0x1202,0x5d0,0x5b8,0x1502,0x5d0,0x5bc,0x1502,0x5d1,0x5bc,0x1502,0x5d2,0x5bc,0x1502,0x5d3,0x5bc, +0x1502,0x5d4,0x5bc,0x1502,0x5d5,0x5bc,0x1502,0x5d6,0x5bc,0x1502,0x5d8,0x5bc,0x1502,0x5d9,0x5bc,0x1502, +0x5da,0x5bc,0x1502,0x5db,0x5bc,0x1502,0x5dc,0x5bc,0x1502,0x5de,0x5bc,0x1502,0x5e0,0x5bc,0x1502,0x5e1, +0x5bc,0x1502,0x5e3,0x5bc,0x1502,0x5e4,0x5bc,0x1502,0x5e6,0x5bc,0x1502,0x5e7,0x5bc,0x1502,0x5e8,0x5bc, +0x1502,0x5e9,0x5bc,0x1502,0x5ea,0x5bc,0x1302,0x5d5,0x5b9,0x1702,0x5d1,0x5bf,0x1702,0x5db,0x5bf,0x1702, +0x5e4,0x5bf,0xd804,0xd834,0xdd57,0xd834,0xdd65,0xd804,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd5f,0xd834,0xdd6e, +4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xdd5f,0xd834,0xdd6f,4,0xd846,0xd834,0xdd58, +0xd834,0xdd65,0xd834,0xdd6f,0xd834,0xdd5f,0xd834,0xdd70,4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd70, +0xd834,0xdd5f,0xd834,0xdd71,4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd71,0xd834,0xdd5f,0xd834,0xdd72, +4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd72,0xd804,0xd834,0xddb9,0xd834,0xdd65,0xd804,0xd834,0xddba, +0xd834,0xdd65,0xd834,0xddbb,0xd834,0xdd6e,4,0xd846,0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xddbc, +0xd834,0xdd6e,4,0xd846,0xd834,0xddba,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xddbb,0xd834,0xdd6f,4,0xd846, +0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6f,0xd834,0xddbc,0xd834,0xdd6f,4,0xd846,0xd834,0xddba,0xd834,0xdd65, +0xd834,0xdd6f,1,0x4e3d,1,0x4e38,1,0x4e41,2,0xd840,0xdd22,1,0x4f60,1,0x4fbb,1, +0x5002,1,0x507a,1,0x5099,1,0x50cf,1,0x349e,2,0xd841,0xde3a,1,0x5154,1,0x5164, +1,0x5177,2,0xd841,0xdd1c,1,0x34b9,1,0x5167,1,0x518d,2,0xd841,0xdd4b,1,0x5197, +1,0x51a4,1,0x4ecc,1,0x51ac,2,0xd864,0xdddf,1,0x51f5,1,0x5203,1,0x34df,1, +0x523b,1,0x5246,1,0x5272,1,0x5277,1,0x3515,1,0x5305,1,0x5306,1,0x5349,1, +0x535a,1,0x5373,1,0x537d,1,0x537f,2,0xd842,0xde2c,1,0x7070,1,0x53ca,1,0x53df, +2,0xd842,0xdf63,1,0x53eb,1,0x53f1,1,0x5406,1,0x549e,1,0x5438,1,0x5448,1, +0x5468,1,0x54a2,1,0x54f6,1,0x5510,1,0x5553,1,0x5563,1,0x5584,1,0x55ab,1, +0x55b3,1,0x55c2,1,0x5716,1,0x5717,1,0x5651,1,0x5674,1,0x58ee,1,0x57ce,1, +0x57f4,1,0x580d,1,0x578b,1,0x5832,1,0x5831,1,0x58ac,2,0xd845,0xdce4,1,0x58f2, +1,0x58f7,1,0x5906,1,0x591a,1,0x5922,1,0x5962,2,0xd845,0xdea8,2,0xd845,0xdeea, +1,0x59ec,1,0x5a1b,1,0x5a27,1,0x59d8,1,0x5a66,1,0x36ee,1,0x36fc,1,0x5b08, +1,0x5b3e,2,0xd846,0xddc8,1,0x5bc3,1,0x5bd8,1,0x5bf3,2,0xd846,0xdf18,1,0x5bff, +1,0x5c06,1,0x5f53,1,0x5c22,1,0x3781,1,0x5c60,1,0x5cc0,1,0x5c8d,2,0xd847, +0xdde4,1,0x5d43,2,0xd847,0xdde6,1,0x5d6e,1,0x5d6b,1,0x5d7c,1,0x5de1,1,0x5de2, +1,0x382f,1,0x5dfd,1,0x5e28,1,0x5e3d,1,0x5e69,1,0x3862,2,0xd848,0xdd83,1, +0x387c,1,0x5eb0,1,0x5eb3,1,0x5eb6,2,0xd868,0xdf92,1,0x5efe,2,0xd848,0xdf31,1, +0x8201,1,0x5f22,1,0x38c7,2,0xd84c,0xdeb8,2,0xd858,0xddda,1,0x5f62,1,0x5f6b,1, +0x38e3,1,0x5f9a,1,0x5fcd,1,0x5fd7,1,0x5ff9,1,0x6081,1,0x393a,1,0x391c,2, +0xd849,0xded4,1,0x60c7,1,0x6148,1,0x614c,1,0x617a,1,0x61b2,1,0x61a4,1,0x61af, +1,0x61de,1,0x6210,1,0x621b,1,0x625d,1,0x62b1,1,0x62d4,1,0x6350,2,0xd84a, +0xdf0c,1,0x633d,1,0x62fc,1,0x6368,1,0x6383,1,0x63e4,2,0xd84a,0xdff1,1,0x6422, +1,0x63c5,1,0x63a9,1,0x3a2e,1,0x6469,1,0x647e,1,0x649d,1,0x6477,1,0x3a6c, +1,0x656c,2,0xd84c,0xdc0a,1,0x65e3,1,0x66f8,1,0x6649,1,0x3b19,1,0x3b08,1, +0x3ae4,1,0x5192,1,0x5195,1,0x6700,1,0x669c,1,0x80ad,1,0x43d9,1,0x6721,1, +0x675e,1,0x6753,2,0xd84c,0xdfc3,1,0x3b49,1,0x67fa,1,0x6785,1,0x6852,2,0xd84d, +0xdc6d,1,0x688e,1,0x681f,1,0x6914,1,0x6942,1,0x69a3,1,0x69ea,1,0x6aa8,2, +0xd84d,0xdea3,1,0x6adb,1,0x3c18,1,0x6b21,2,0xd84e,0xdca7,1,0x6b54,1,0x3c4e,1, +0x6b72,1,0x6b9f,1,0x6bbb,2,0xd84e,0xde8d,2,0xd847,0xdd0b,2,0xd84e,0xdefa,1,0x6c4e, +2,0xd84f,0xdcbc,1,0x6cbf,1,0x6ccd,1,0x6c67,1,0x6d16,1,0x6d3e,1,0x6d69,1, +0x6d78,1,0x6d85,2,0xd84f,0xdd1e,1,0x6d34,1,0x6e2f,1,0x6e6e,1,0x3d33,1,0x6ec7, +2,0xd84f,0xded1,1,0x6df9,1,0x6f6e,2,0xd84f,0xdf5e,2,0xd84f,0xdf8e,1,0x6fc6,1, +0x7039,1,0x701b,1,0x3d96,1,0x704a,1,0x707d,1,0x7077,1,0x70ad,2,0xd841,0xdd25, +1,0x7145,2,0xd850,0xde63,1,0x719c,2,0xd850,0xdfab,1,0x7228,1,0x7250,2,0xd851, +0xde08,1,0x7280,1,0x7295,2,0xd851,0xdf35,2,0xd852,0xdc14,1,0x737a,1,0x738b,1, +0x3eac,1,0x73a5,1,0x3eb8,1,0x7447,1,0x745c,1,0x7485,1,0x74ca,1,0x3f1b,1, +0x7524,2,0xd853,0xdc36,1,0x753e,2,0xd853,0xdc92,2,0xd848,0xdd9f,1,0x7610,2,0xd853, +0xdfa1,2,0xd853,0xdfb8,2,0xd854,0xdc44,1,0x3ffc,1,0x4008,2,0xd854,0xdcf3,2,0xd854, +0xdcf2,2,0xd854,0xdd19,2,0xd854,0xdd33,1,0x771e,1,0x771f,1,0x778b,1,0x4046,1, +0x4096,2,0xd855,0xdc1d,1,0x784e,1,0x40e3,2,0xd855,0xde26,2,0xd855,0xde9a,2,0xd855, +0xdec5,1,0x79eb,1,0x412f,1,0x7a4a,1,0x7a4f,2,0xd856,0xdd7c,2,0xd856,0xdea7,1, +0x7aee,1,0x4202,2,0xd856,0xdfab,1,0x7bc6,1,0x7bc9,1,0x4227,2,0xd857,0xdc80,1, +0x7cd2,1,0x42a0,1,0x7ce8,1,0x7ce3,1,0x7d00,2,0xd857,0xdf86,1,0x7d63,1,0x4301, +1,0x7dc7,1,0x7e02,1,0x7e45,1,0x4334,2,0xd858,0xde28,2,0xd858,0xde47,1,0x4359, +2,0xd858,0xded9,1,0x7f7a,2,0xd858,0xdf3e,1,0x7f95,1,0x7ffa,2,0xd859,0xdcda,2, +0xd859,0xdd23,1,0x8060,2,0xd859,0xdda8,1,0x8070,2,0xd84c,0xdf5f,1,0x43d5,1,0x80b2, +1,0x8103,1,0x440b,1,0x813e,1,0x5ab5,2,0xd859,0xdfa7,2,0xd859,0xdfb5,2,0xd84c, +0xdf93,2,0xd84c,0xdf9c,1,0x8204,1,0x8f9e,1,0x446b,1,0x8291,1,0x828b,1,0x829d, +1,0x52b3,1,0x82b1,1,0x82b3,1,0x82bd,1,0x82e6,2,0xd85a,0xdf3c,1,0x831d,1, +0x8363,1,0x83ad,1,0x8323,1,0x83bd,1,0x83e7,1,0x8353,1,0x83ca,1,0x83cc,1, +0x83dc,2,0xd85b,0xdc36,2,0xd85b,0xdd6b,2,0xd85b,0xdcd5,1,0x452b,1,0x84f1,1,0x84f3, +1,0x8516,2,0xd85c,0xdfca,1,0x8564,2,0xd85b,0xdf2c,1,0x455d,1,0x4561,2,0xd85b, +0xdfb1,2,0xd85c,0xdcd2,1,0x456b,1,0x8650,1,0x8667,1,0x8669,1,0x86a9,1,0x8688, +1,0x870e,1,0x86e2,1,0x8728,1,0x876b,1,0x8786,1,0x45d7,1,0x87e1,1,0x8801, +1,0x45f9,1,0x8860,1,0x8863,2,0xd85d,0xde67,1,0x88d7,1,0x88de,1,0x4635,1, +0x88fa,1,0x34bb,2,0xd85e,0xdcae,2,0xd85e,0xdd66,1,0x46be,1,0x46c7,1,0x8aa0,1, +0x8c55,2,0xd85f,0xdca8,1,0x8cab,1,0x8cc1,1,0x8d1b,1,0x8d77,2,0xd85f,0xdf2f,2, +0xd842,0xdc04,1,0x8dcb,1,0x8dbc,1,0x8df0,2,0xd842,0xdcde,1,0x8ed4,2,0xd861,0xddd2, +2,0xd861,0xdded,1,0x9094,1,0x90f1,1,0x9111,2,0xd861,0xdf2e,1,0x911b,1,0x9238, +1,0x92d7,1,0x92d8,1,0x927c,1,0x93f9,1,0x9415,2,0xd862,0xdffa,1,0x958b,1, +0x4995,1,0x95b7,2,0xd863,0xdd77,1,0x49e6,1,0x96c3,1,0x5db2,1,0x9723,2,0xd864, +0xdd45,2,0xd864,0xde1a,1,0x4a6e,1,0x4a76,1,0x97e0,2,0xd865,0xdc0a,1,0x4ab2,2, +0xd865,0xdc96,1,0x9829,2,0xd865,0xddb6,1,0x98e2,1,0x4b33,1,0x9929,1,0x99a7,1, +0x99c2,1,0x99fe,1,0x4bce,2,0xd866,0xdf30,1,0x9c40,1,0x9cfd,1,0x4cce,1,0x4ced, +1,0x9d67,2,0xd868,0xdcce,1,0x4cf8,2,0xd868,0xdd05,2,0xd868,0xde0e,2,0xd868,0xde91, +1,0x9ebb,1,0x4d56,1,0x9ef9,1,0x9efe,1,0x9f05,1,0x9f0f,1,0x9f16,1,0x9f3b, +2,0xd869,0xde00,0x3ac,0xe642,0x3b1,0x301,0x3ad,0xe642,0x3b5,0x301,0x3ae,0xe642,0x3b7,0x301,0x3af, +0xe642,0x3b9,0x301,0x3cc,0xe642,0x3bf,0x301,0x3cd,0xe642,0x3c5,0x301,0x3ce,0xe642,0x3c9,0x301,0x386, +0xe642,0x391,0x301,0x388,0xe642,0x395,0x301,0x389,0xe642,0x397,0x301,0x390,1,0xe643,0x3b9,0x308, +0x301,0x38a,0xe642,0x399,0x301,0x3b0,1,0xe643,0x3c5,0x308,0x301,0x38e,0xe642,0x3a5,0x301,0x385, +0xe642,0xa8,0x301,0x38c,0xe642,0x39f,0x301,0x38f,0xe642,0x3a9,0x301,0xc5,0xe642,0x41,0x30a,0xe6e6, +0xe681,0x300,0xe6e6,0xe681,0x301,0xe6e6,0xe681,0x313,0xe6e6,0xe682,0x308,0x301,0x8100,0x8282,0xf71,0xf72, +0x8100,0x8482,0xf71,0xf74,0x8100,0x8282,0xf71,0xf80,4,0xd804,0xdfc2,0xd804,0xdfc2,4,0xd804,0xdfc2, +0xd804,0xdfb8,4,0xd804,0xdfc2,0xd804,0xdfc9,4,0xd818,0xdd1e,0xd818,0xdd1f,4,0xd818,0xdd29,0xd818, +0xdd1f,4,0xd818,0xdd1e,0xd818,0xdd20,0xd818,0xdd21,0xd818,0xdd1f,4,0x46,0xd818,0xdd1e,0xd818,0xdd1e, +0xd818,0xdd1f,0xd818,0xdd22,0xd818,0xdd1f,4,0x46,0xd818,0xdd1e,0xd818,0xdd29,0xd818,0xdd1f,0xd818,0xdd21, +0xd818,0xdd20,4,0x46,0xd818,0xdd1e,0xd818,0xdd1e,0xd818,0xdd20,4,0xd81b,0xdd67,0xd81b,0xdd67,4, +0xd818,0xdd1e,0xd818,0xdd1e,0x34b1,0x47c2,0xc24c,0xb4b1,0x4802,0xc250,4,0xd818,0xdd1e,0xd818,0xdd29,0xb4b1, +0x47c2,0xc24e,0x3489,0xee02,0x278e,0x3489,0xf082,0x278a,0xb489,0xf242,0x2790,0x34b1,0x4782,0xc243,0x34b1,0x47c2, +0xc246,0x34b1,0x4802,0xc24a,0xb4b1,0x4a42,0xc245,0xb4b1,0x47c2,0xc248,0xb4b7,0x59c2,0xdad0,0 }; static const uint8_t norm2_nfc_data_smallFCD[256]={ diff --git a/thirdparty/icu4c/common/norm2allmodes.h b/thirdparty/icu4c/common/norm2allmodes.h index a2cfc89c1a81..4b30d787e87c 100644 --- a/thirdparty/icu4c/common/norm2allmodes.h +++ b/thirdparty/icu4c/common/norm2allmodes.h @@ -174,7 +174,7 @@ class Normalizer2WithImpl : public Normalizer2 { errorCode=U_ILLEGAL_ARGUMENT_ERROR; return 0; } - return (int32_t)(spanQuickCheckYes(sArray, sArray+s.length(), errorCode)-sArray); + return static_cast(spanQuickCheckYes(sArray, sArray + s.length(), errorCode) - sArray); } virtual const char16_t * spanQuickCheckYes(const char16_t *src, const char16_t *limit, UErrorCode &errorCode) const = 0; diff --git a/thirdparty/icu4c/common/normalizer2.cpp b/thirdparty/icu4c/common/normalizer2.cpp index 6856736b888a..dad3df4edee2 100644 --- a/thirdparty/icu4c/common/normalizer2.cpp +++ b/thirdparty/icu4c/common/normalizer2.cpp @@ -380,8 +380,8 @@ normalizeSecondAndAppend(const UNormalizer2 *norm2, firstLength=firstString.length(); // In case it was -1. // secondLength==0: Nothing to do, and n2wi->normalizeAndAppend(nullptr, nullptr, buffer, ...) would crash. if(secondLength!=0) { - const Normalizer2 *n2=(const Normalizer2 *)norm2; - const Normalizer2WithImpl *n2wi=dynamic_cast(n2); + const Normalizer2* n2 = reinterpret_cast(norm2); + const Normalizer2WithImpl* n2wi = dynamic_cast(n2); if(n2wi!=nullptr) { // Avoid duplicate argument checking and support NUL-terminated src. UnicodeString safeMiddle; diff --git a/thirdparty/icu4c/common/normalizer2impl.cpp b/thirdparty/icu4c/common/normalizer2impl.cpp index 9c715ac3efaa..758a84c11069 100644 --- a/thirdparty/icu4c/common/normalizer2impl.cpp +++ b/thirdparty/icu4c/common/normalizer2impl.cpp @@ -53,9 +53,9 @@ namespace { */ inline uint8_t leadByteForCP(UChar32 c) { if (c <= 0x7f) { - return (uint8_t)c; + return static_cast(c); } else if (c <= 0x7ff) { - return (uint8_t)(0xc0+(c>>6)); + return static_cast(0xc0 + (c >> 6)); } else { // Should not occur because ccc(U+0300)!=0. return 0xe0; @@ -82,7 +82,7 @@ UChar32 codePointFromValidUTF8(const uint8_t *cpStart, const uint8_t *cpLimit) { return ((c&0x1f)<<6) | (cpStart[1]&0x3f); case 3: // no need for (c&0xf) because the upper bits are truncated after <<12 in the cast to (char16_t) - return (char16_t)((c<<12) | ((cpStart[1]&0x3f)<<6) | (cpStart[2]&0x3f)); + return static_cast((c << 12) | ((cpStart[1] & 0x3f) << 6) | (cpStart[2] & 0x3f)); case 4: return ((c&7)<<18) | ((cpStart[1]&0x3f)<<12) | ((cpStart[2]&0x3f)<<6) | (cpStart[3]&0x3f); default: @@ -100,8 +100,8 @@ UChar32 previousHangulOrJamo(const uint8_t *start, const uint8_t *p) { uint8_t l = *p; uint8_t t1, t2; if (0xe1 <= l && l <= 0xed && - (t1 = (uint8_t)(p[1] - 0x80)) <= 0x3f && - (t2 = (uint8_t)(p[2] - 0x80)) <= 0x3f && + (t1 = static_cast(p[1] - 0x80)) <= 0x3f && + (t2 = static_cast(p[2] - 0x80)) <= 0x3f && (l < 0xed || t1 <= 0x1f)) { return ((l & 0xf) << 12) | (t1 << 6) | t2; } @@ -125,7 +125,7 @@ int32_t getJamoTMinusBase(const uint8_t *src, const uint8_t *limit) { } } else if (src[1] == 0x87) { uint8_t t = src[2]; - if ((int8_t)t <= (int8_t)0x82u) { + if (static_cast(t) <= static_cast(0x82u)) { return t - (0xa7 - 0x40); } } @@ -138,10 +138,10 @@ appendCodePointDelta(const uint8_t *cpStart, const uint8_t *cpLimit, int32_t del ByteSink &sink, Edits *edits) { char buffer[U8_MAX_LENGTH]; int32_t length; - int32_t cpLength = (int32_t)(cpLimit - cpStart); + int32_t cpLength = static_cast(cpLimit - cpStart); if (cpLength == 1) { // The builder makes ASCII map to ASCII. - buffer[0] = (uint8_t)(*cpStart + delta); + buffer[0] = static_cast(*cpStart + delta); length = 1; } else { int32_t trail = *(cpLimit-1) + delta; @@ -150,7 +150,7 @@ appendCodePointDelta(const uint8_t *cpStart, const uint8_t *cpLimit, int32_t del --cpLimit; length = 0; do { buffer[length++] = *cpStart++; } while (cpStart < cpLimit); - buffer[length++] = (uint8_t)trail; + buffer[length++] = static_cast(trail); } else { // Decode the code point, add the delta, re-encode. UChar32 c = codePointFromValidUTF8(cpStart, cpLimit) + delta; @@ -205,16 +205,16 @@ UBool ReorderingBuffer::init(int32_t destCapacity, UErrorCode &errorCode) { } UBool ReorderingBuffer::equals(const char16_t *otherStart, const char16_t *otherLimit) const { - int32_t length=(int32_t)(limit-start); + int32_t length = static_cast(limit - start); return - length==(int32_t)(otherLimit-otherStart) && + length == static_cast(otherLimit - otherStart) && 0==u_memcmp(start, otherStart, length); } UBool ReorderingBuffer::equals(const uint8_t *otherStart, const uint8_t *otherLimit) const { U_ASSERT((otherLimit - otherStart) <= INT32_MAX); // ensured by caller - int32_t length = (int32_t)(limit - start); - int32_t otherLength = (int32_t)(otherLimit - otherStart); + int32_t length = static_cast(limit - start); + int32_t otherLength = static_cast(otherLimit - otherStart); // For equal strings, UTF-8 is at least as long as UTF-16, and at most three times as long. if (otherLength < length || (otherLength / 3) > length) { return false; @@ -284,7 +284,7 @@ UBool ReorderingBuffer::append(const char16_t *s, int32_t length, UBool isNFD, U16_NEXT(s, i, length, c); if(i(c); } else { limit[0]=U16_LEAD(c); limit[1]=U16_TRAIL(c); @@ -319,7 +319,7 @@ UBool ReorderingBuffer::appendZeroCC(const char16_t *s, const char16_t *sLimit, if(s==sLimit) { return true; } - int32_t length=(int32_t)(sLimit-s); + int32_t length = static_cast(sLimit - s); if(remainingCapacity(reorderStart - start); + int32_t length = static_cast(limit - start); str.releaseBuffer(length); int32_t newCapacity=length+appendLength; int32_t doubleCapacity=2*str.getCapacity(); @@ -392,7 +392,7 @@ uint8_t ReorderingBuffer::previousCC() { --codePointStart; c=U16_GET_SUPPLEMENTARY(c2, c); } - return impl.getCCFromYesOrMaybeCP(c); + return impl.getCCFromYesOrMaybeYesCP(c); } // Inserts c somewhere before the last character. @@ -440,15 +440,14 @@ Normalizer2Impl::init(const int32_t *inIndexes, const UCPTrie *inTrie, minNoNoCompNoMaybeCC = static_cast(inIndexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC]); minNoNoEmpty = static_cast(inIndexes[IX_MIN_NO_NO_EMPTY]); limitNoNo = static_cast(inIndexes[IX_LIMIT_NO_NO]); + minMaybeNo = static_cast(inIndexes[IX_MIN_MAYBE_NO]); + minMaybeNoCombinesFwd = static_cast(inIndexes[IX_MIN_MAYBE_NO_COMBINES_FWD]); minMaybeYes = static_cast(inIndexes[IX_MIN_MAYBE_YES]); - U_ASSERT((minMaybeYes & 7) == 0); // 8-aligned for noNoDelta bit fields - centerNoNoDelta = (minMaybeYes >> DELTA_SHIFT) - MAX_DELTA - 1; + U_ASSERT((minMaybeNo & 7) == 0); // 8-aligned for noNoDelta bit fields + centerNoNoDelta = (minMaybeNo >> DELTA_SHIFT) - MAX_DELTA - 1; normTrie=inTrie; - - maybeYesCompositions=inExtraData; - extraData=maybeYesCompositions+((MIN_NORMAL_MAYBE_YES-minMaybeYes)>>OFFSET_SHIFT); - + extraData=inExtraData; smallFCD=inSmallFCD; } @@ -486,7 +485,7 @@ Normalizer2Impl::addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode while ((end = ucptrie_getRange(normTrie, start, UCPMAP_RANGE_FIXED_LEAD_SURROGATES, INERT, nullptr, nullptr, &value)) >= 0) { sa->add(sa->set, start); - if (start != end && isAlgorithmicNoNo((uint16_t)value) && + if (start != end && isAlgorithmicNoNo(static_cast(value)) && (value & Normalizer2Impl::DELTA_TCCC_MASK) > Normalizer2Impl::DELTA_TCCC_1) { // Range of code points with same-norm16-value algorithmic decompositions. // They might have different non-zero FCD16 values. @@ -570,7 +569,7 @@ Normalizer2Impl::decompose(const char16_t *src, const char16_t *limit, int32_t destLengthEstimate, UErrorCode &errorCode) const { if(destLengthEstimate<0 && limit!=nullptr) { - destLengthEstimate=(int32_t)(limit-src); + destLengthEstimate = static_cast(limit - src); } dest.remove(); ReorderingBuffer buffer(*this, dest); @@ -650,7 +649,7 @@ Normalizer2Impl::decompose(const char16_t *src, const char16_t *limit, } } else { if(isDecompYes(norm16)) { - uint8_t cc=getCCFromYesOrMaybe(norm16); + uint8_t cc=getCCFromYesOrMaybeYes(norm16); if(prevCC<=cc || cc==0) { prevCC=cc; if(cc<=1) { @@ -702,12 +701,13 @@ UBool Normalizer2Impl::decompose(UChar32 c, uint16_t norm16, UErrorCode &errorCode) const { // get the decomposition and the lead and trail cc's if (norm16 >= limitNoNo) { - if (isMaybeOrNonZeroCC(norm16)) { - return buffer.append(c, getCCFromYesOrMaybe(norm16), errorCode); + if (isMaybeYesOrNonZeroCC(norm16)) { + return buffer.append(c, getCCFromYesOrMaybeYes(norm16), errorCode); + } else if (norm16 < minMaybeNo) { + // Maps to an isCompYesAndZeroCC. + c=mapAlgorithmic(c, norm16); + norm16=getRawNorm16(c); } - // Maps to an isCompYesAndZeroCC. - c=mapAlgorithmic(c, norm16); - norm16=getRawNorm16(c); } if (norm16 < minYesNo) { // c does not decompose @@ -718,17 +718,17 @@ UBool Normalizer2Impl::decompose(UChar32 c, uint16_t norm16, return buffer.appendZeroCC(jamos, jamos+Hangul::decompose(c, jamos), errorCode); } // c decomposes, get everything from the variable-length extra data - const uint16_t *mapping=getMapping(norm16); + const uint16_t *mapping=getData(norm16); uint16_t firstUnit=*mapping; int32_t length=firstUnit&MAPPING_LENGTH_MASK; uint8_t leadCC, trailCC; - trailCC=(uint8_t)(firstUnit>>8); + trailCC = static_cast(firstUnit >> 8); if(firstUnit&MAPPING_HAS_CCC_LCCC_WORD) { - leadCC=(uint8_t)(*(mapping-1)>>8); + leadCC = static_cast(*(mapping - 1) >> 8); } else { leadCC=0; } - return buffer.append((const char16_t *)mapping+1, length, true, leadCC, trailCC, errorCode); + return buffer.append(reinterpret_cast(mapping) + 1, length, true, leadCC, trailCC, errorCode); } // Dual functionality: @@ -787,9 +787,9 @@ Normalizer2Impl::decomposeUTF8(uint32_t options, } // Medium-fast path: Quick check. - if (isMaybeOrNonZeroCC(norm16)) { + if (isMaybeYesOrNonZeroCC(norm16)) { // Does not decompose. - uint8_t cc = getCCFromYesOrMaybe(norm16); + uint8_t cc = getCCFromYesOrMaybeYes(norm16); if (prevCC <= cc || cc == 0) { prevCC = cc; if (cc <= 1) { @@ -836,7 +836,7 @@ Normalizer2Impl::decomposeUTF8(uint32_t options, } // We already know there was a change if the original character decomposed; // otherwise compare. - if (isMaybeOrNonZeroCC(norm16) && buffer.equals(prevBoundary, src)) { + if (isMaybeYesOrNonZeroCC(norm16) && buffer.equals(prevBoundary, src)) { if (!ByteSinkUtil::appendUnchanged(prevBoundary, src, *sink, options, edits, errorCode)) { break; @@ -867,9 +867,9 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit, // Get the decomposition and the lead and trail cc's. UChar32 c = U_SENTINEL; if (norm16 >= limitNoNo) { - if (isMaybeOrNonZeroCC(norm16)) { + if (isMaybeYesOrNonZeroCC(norm16)) { // No comp boundaries around this character. - uint8_t cc = getCCFromYesOrMaybe(norm16); + uint8_t cc = getCCFromYesOrMaybeYes(norm16); if (cc == 0 && stopAt == STOP_AT_DECOMP_BOUNDARY) { return prevSrc; } @@ -881,14 +881,15 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit, return src; } continue; + } else if (norm16 < minMaybeNo) { + // Maps to an isCompYesAndZeroCC. + if (stopAt != STOP_AT_LIMIT) { + return prevSrc; + } + c = codePointFromValidUTF8(prevSrc, src); + c = mapAlgorithmic(c, norm16); + norm16 = getRawNorm16(c); } - // Maps to an isCompYesAndZeroCC. - if (stopAt != STOP_AT_LIMIT) { - return prevSrc; - } - c = codePointFromValidUTF8(prevSrc, src); - c = mapAlgorithmic(c, norm16); - norm16 = getRawNorm16(c); } else if (stopAt != STOP_AT_LIMIT && norm16 < minNoNoCompNoMaybeCC) { return prevSrc; } @@ -918,20 +919,20 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit, } } else { // The character decomposes, get everything from the variable-length extra data. - const uint16_t *mapping = getMapping(norm16); + const uint16_t *mapping = getData(norm16); uint16_t firstUnit = *mapping; int32_t length = firstUnit & MAPPING_LENGTH_MASK; - uint8_t trailCC = (uint8_t)(firstUnit >> 8); + uint8_t trailCC = static_cast(firstUnit >> 8); uint8_t leadCC; if (firstUnit & MAPPING_HAS_CCC_LCCC_WORD) { - leadCC = (uint8_t)(*(mapping-1) >> 8); + leadCC = static_cast(*(mapping - 1) >> 8); } else { leadCC = 0; } if (leadCC == 0 && stopAt == STOP_AT_DECOMP_BOUNDARY) { return prevSrc; } - if (!buffer.append((const char16_t *)mapping+1, length, true, leadCC, trailCC, errorCode)) { + if (!buffer.append(reinterpret_cast(mapping) + 1, length, true, leadCC, trailCC, errorCode)) { return nullptr; } } @@ -946,7 +947,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit, const char16_t * Normalizer2Impl::getDecomposition(UChar32 c, char16_t buffer[4], int32_t &length) const { uint16_t norm16; - if(c(mapping) + 1; } // The capacity of the buffer must be 30=MAPPING_LENGTH_MASK-1 @@ -995,7 +996,7 @@ Normalizer2Impl::getRawDecomposition(UChar32 c, char16_t buffer[30], int32_t &le return buffer; } // c decomposes, get everything from the variable-length extra data - const uint16_t *mapping=getMapping(norm16); + const uint16_t *mapping=getData(norm16); uint16_t firstUnit=*mapping; int32_t mLength=firstUnit&MAPPING_LENGTH_MASK; // length of normal mapping if(firstUnit&MAPPING_HAS_RAW_MAPPING) { @@ -1005,17 +1006,17 @@ Normalizer2Impl::getRawDecomposition(UChar32 c, char16_t buffer[30], int32_t &le uint16_t rm0=*rawMapping; if(rm0<=MAPPING_LENGTH_MASK) { length=rm0; - return (const char16_t *)rawMapping-rm0; + return reinterpret_cast(rawMapping) - rm0; } else { // Copy the normal mapping and replace its first two code units with rm0. - buffer[0]=(char16_t)rm0; - u_memcpy(buffer+1, (const char16_t *)mapping+1+2, mLength-2); + buffer[0] = static_cast(rm0); + u_memcpy(buffer + 1, reinterpret_cast(mapping) + 1 + 2, mLength - 2); length=mLength-1; return buffer; } } else { length=mLength; - return (const char16_t *)mapping+1; + return reinterpret_cast(mapping) + 1; } } @@ -1052,7 +1053,7 @@ void Normalizer2Impl::decomposeAndAppend(const char16_t *src, const char16_t *li limit=u_strchr(p, 0); } - if (buffer.append(src, (int32_t)(p - src), false, firstCC, prevCC, errorCode)) { + if (buffer.append(src, static_cast(p - src), false, firstCC, prevCC, errorCode)) { buffer.appendZeroCC(p, limit, errorCode); } } @@ -1070,7 +1071,7 @@ UBool Normalizer2Impl::norm16HasDecompBoundaryBefore(uint16_t norm16) const { return norm16 <= MIN_NORMAL_MAYBE_YES || norm16 == JAMO_VT; } // c decomposes, get everything from the variable-length extra data - const uint16_t *mapping=getMapping(norm16); + const uint16_t *mapping=getDataForYesOrNo(norm16); uint16_t firstUnit=*mapping; // true if leadCC==0 (hasFCDBoundaryBefore()) return (firstUnit&MAPPING_HAS_CCC_LCCC_WORD)==0 || (*(mapping-1)&0xff00)==0; @@ -1091,14 +1092,15 @@ UBool Normalizer2Impl::norm16HasDecompBoundaryAfter(uint16_t norm16) const { return true; } if (norm16 >= limitNoNo) { - if (isMaybeOrNonZeroCC(norm16)) { + if (isMaybeYesOrNonZeroCC(norm16)) { return norm16 <= MIN_NORMAL_MAYBE_YES || norm16 == JAMO_VT; + } else if (norm16 < minMaybeNo) { + // Maps to an isCompYesAndZeroCC. + return (norm16 & DELTA_TCCC_MASK) <= DELTA_TCCC_1; } - // Maps to an isCompYesAndZeroCC. - return (norm16 & DELTA_TCCC_MASK) <= DELTA_TCCC_1; } // c decomposes, get everything from the variable-length extra data - const uint16_t *mapping=getMapping(norm16); + const uint16_t *mapping=getData(norm16); uint16_t firstUnit=*mapping; // decomp after-boundary: same as hasFCDBoundaryAfter(), // fcd16<=1 || trailCC==0 @@ -1140,13 +1142,13 @@ int32_t Normalizer2Impl::combine(const uint16_t *list, UChar32 trail) { if(trail(trail << 1); while(key1>(firstUnit=*list)) { list+=2+(firstUnit&COMP_1_TRIPLE); } if(key1==(firstUnit&COMP_1_TRAIL_MASK)) { if(firstUnit&COMP_1_TRIPLE) { - return ((int32_t)list[1]<<16)|list[2]; + return (static_cast(list[1]) << 16) | list[2]; } else { return list[1]; } @@ -1154,10 +1156,10 @@ int32_t Normalizer2Impl::combine(const uint16_t *list, UChar32 trail) { } else { // trail character is 3400..10FFFF // result entry has 3 units - key1=(uint16_t)(COMP_1_TRAIL_LIMIT+ + key1 = static_cast(COMP_1_TRAIL_LIMIT + (((trail>>COMP_1_TRAIL_SHIFT))& ~COMP_1_TRIPLE)); - uint16_t key2=(uint16_t)(trail<(trail << COMP_2_TRAIL_SHIFT); uint16_t secondUnit; for(;;) { if(key1>(firstUnit=*list)) { @@ -1170,7 +1172,7 @@ int32_t Normalizer2Impl::combine(const uint16_t *list, UChar32 trail) { list+=3; } } else if(key2==(secondUnit&COMP_2_TRAIL_MASK)) { - return ((int32_t)(secondUnit&~COMP_2_TRAIL_MASK)<<16)|list[2]; + return (static_cast(secondUnit & ~COMP_2_TRAIL_MASK) << 16) | list[2]; } else { break; } @@ -1195,7 +1197,7 @@ void Normalizer2Impl::addComposites(const uint16_t *list, UnicodeSet &set) const compositeAndFwd=list[1]; list+=2; } else { - compositeAndFwd=(((int32_t)list[1]&~COMP_2_TRAIL_MASK)<<16)|list[2]; + compositeAndFwd = ((static_cast(list[1]) & ~COMP_2_TRAIL_MASK) << 16) | list[2]; list+=3; } UChar32 composite=compositeAndFwd>>1; @@ -1240,7 +1242,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart for(;;) { UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16); - cc=getCCFromYesOrMaybe(norm16); + cc=getCCFromYesOrMaybeYes(norm16); if( // this character combines backward and isMaybe(norm16) && // we have seen a starter that combines forward and @@ -1252,15 +1254,15 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart // c is a Jamo V/T, see if we can compose it with the previous character. if(c(*starter - Hangul::JAMO_L_BASE); if(prev( + Hangul::HANGUL_BASE + (prev*Hangul::JAMO_V_COUNT+(c-Hangul::JAMO_V_BASE))* Hangul::JAMO_T_COUNT); char16_t t; - if(p!=limit && (t=(char16_t)(*p-Hangul::JAMO_T_BASE))(*p - Hangul::JAMO_T_BASE)) < Hangul::JAMO_T_COUNT) { ++p; syllable+=t; // The next character was a Jamo T. } @@ -1298,7 +1300,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart starter[0]=U16_LEAD(composite); starter[1]=U16_TRAIL(composite); } else { - *starter=(char16_t)composite; + *starter = static_cast(composite); // The composite is shorter than the starter, // move the intermediate characters forward one. starterIsSupplementary=false; @@ -1323,7 +1325,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart *--starter=U16_LEAD(composite); // undo the temporary increment } else { // both are on the BMP - *starter=(char16_t)composite; + *starter = static_cast(composite); } /* remove the combining mark by moving the following text over it */ @@ -1414,17 +1416,22 @@ Normalizer2Impl::composePair(UChar32 a, UChar32 b) const { } } else { // 'a' has a compositions list in extraData - list=getMapping(norm16); + list=getDataForYesOrNo(norm16); if(norm16>minYesNo) { // composite 'a' has both mapping & compositions list list+= // mapping pointer 1+ // +1 to skip the first unit with the mapping length (*list&MAPPING_LENGTH_MASK); // + mapping length } } - } else if(norm16=minNoNo. // The current character is either a "noNo" (has a mapping) - // or a "maybeYes" (combines backward) + // or a "maybeYes" / "maybeNo" (combines backward) // or a "yesYes" with ccc!=0. // It is not a Hangul syllable or Jamo L because those have "yes" properties. // Medium-fast path: Handle cases that do not require full decomposition and recomposition. - if (!isMaybeOrNonZeroCC(norm16)) { // minNoNo <= norm16 < minMaybeYes + if (norm16 < minMaybeNo) { // minNoNo <= norm16 < minMaybeNo if (!doCompose) { return false; } @@ -1534,7 +1541,7 @@ Normalizer2Impl::compose(const char16_t *src, const char16_t *limit, if (prevBoundary != prevSrc && !buffer.appendZeroCC(prevBoundary, prevSrc, errorCode)) { break; } - const char16_t *mapping = reinterpret_cast(getMapping(norm16)); + const char16_t *mapping = reinterpret_cast(getDataForYesOrNo(norm16)); int32_t length = *mapping++ & MAPPING_LENGTH_MASK; if(!buffer.appendZeroCC(mapping, mapping + length, errorCode)) { break; @@ -1562,14 +1569,14 @@ Normalizer2Impl::compose(const char16_t *src, const char16_t *limit, if(c(prev - Hangul::JAMO_L_BASE); if(l(*src) - Hangul::JAMO_T_BASE)) && t < Hangul::JAMO_T_COUNT) { // The next character is a Jamo T. ++src; @@ -1587,7 +1594,7 @@ Normalizer2Impl::compose(const char16_t *src, const char16_t *limit, if (prevBoundary != prevSrc && !buffer.appendZeroCC(prevBoundary, prevSrc, errorCode)) { break; } - if(!buffer.appendBMP((char16_t)syllable, 0, errorCode)) { + if (!buffer.appendBMP(static_cast(syllable), 0, errorCode)) { break; } prevBoundary = src; @@ -1612,7 +1619,7 @@ Normalizer2Impl::compose(const char16_t *src, const char16_t *limit, if (prevBoundary != prevSrc && !buffer.appendZeroCC(prevBoundary, prevSrc, errorCode)) { break; } - if(!buffer.appendBMP((char16_t)syllable, 0, errorCode)) { + if (!buffer.appendBMP(static_cast(syllable), 0, errorCode)) { break; } prevBoundary = src; @@ -1763,7 +1770,7 @@ Normalizer2Impl::composeQuickCheck(const char16_t *src, const char16_t *limit, } // isCompYesAndZeroCC(norm16) is false, that is, norm16>=minNoNo. // The current character is either a "noNo" (has a mapping) - // or a "maybeYes" (combines backward) + // or a "maybeYes" / "maybeNo" (combines backward) // or a "yesYes" with ccc!=0. // It is not a Hangul syllable or Jamo L because those have "yes" properties. @@ -1784,8 +1791,9 @@ Normalizer2Impl::composeQuickCheck(const char16_t *src, const char16_t *limit, } } - if(isMaybeOrNonZeroCC(norm16)) { - uint8_t cc=getCCFromYesOrMaybe(norm16); + if (norm16 >= minMaybeNo) { + uint16_t fcd16 = getFCD16FromMaybeOrNonZeroCC(norm16); + uint8_t cc = fcd16 >> 8; if (onlyContiguous /* FCC */ && cc != 0 && getTrailCCFromCompYesAndZeroCC(prevNorm16) > cc) { // The [prevBoundary..prevSrc[ character @@ -1806,11 +1814,12 @@ Normalizer2Impl::composeQuickCheck(const char16_t *src, const char16_t *limit, if (src == limit) { return src; } - uint8_t prevCC = cc; + uint8_t prevCC = fcd16; nextSrc = src; UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, c, norm16); - if (isMaybeOrNonZeroCC(norm16)) { - cc = getCCFromYesOrMaybe(norm16); + if (norm16 >= minMaybeNo) { + fcd16 = getFCD16FromMaybeOrNonZeroCC(norm16); + cc = fcd16 >> 8; if (!(prevCC <= cc || cc == 0)) { break; } @@ -1845,11 +1854,11 @@ void Normalizer2Impl::composeAndAppend(const char16_t *src, const char16_t *limi if(src!=firstStarterInSrc) { const char16_t *lastStarterInDest=findPreviousCompBoundary(buffer.getStart(), buffer.getLimit(), onlyContiguous); - int32_t destSuffixLength=(int32_t)(buffer.getLimit()-lastStarterInDest); + int32_t destSuffixLength = static_cast(buffer.getLimit() - lastStarterInDest); UnicodeString middle(lastStarterInDest, destSuffixLength); buffer.removeSuffix(destSuffixLength); safeMiddle=middle; - middle.append(src, (int32_t)(firstStarterInSrc-src)); + middle.append(src, static_cast(firstStarterInSrc - src)); const char16_t *middleStart=middle.getBuffer(); compose(middleStart, middleStart+middle.length(), onlyContiguous, true, buffer, errorCode); @@ -1903,12 +1912,12 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, } // isCompYesAndZeroCC(norm16) is false, that is, norm16>=minNoNo. // The current character is either a "noNo" (has a mapping) - // or a "maybeYes" (combines backward) + // or a "maybeYes" / "maybeNo" (combines backward) // or a "yesYes" with ccc!=0. // It is not a Hangul syllable or Jamo L because those have "yes" properties. // Medium-fast path: Handle cases that do not require full decomposition and recomposition. - if (!isMaybeOrNonZeroCC(norm16)) { // minNoNo <= norm16 < minMaybeYes + if (norm16 < minMaybeNo) { // minNoNo <= norm16 < minMaybeNo if (sink == nullptr) { return false; } @@ -1937,9 +1946,9 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, *sink, options, edits, errorCode)) { break; } - const uint16_t *mapping = getMapping(norm16); + const uint16_t *mapping = getDataForYesOrNo(norm16); int32_t length = *mapping++ & MAPPING_LENGTH_MASK; - if (!ByteSinkUtil::appendChange(prevSrc, src, (const char16_t *)mapping, length, + if (!ByteSinkUtil::appendChange(prevSrc, src, reinterpret_cast(mapping), length, *sink, edits, errorCode)) { break; } @@ -1958,7 +1967,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, break; } if (edits != nullptr) { - edits->addReplace((int32_t)(src - prevSrc), 0); + edits->addReplace(static_cast(src - prevSrc), 0); } prevBoundary = src; continue; @@ -1976,7 +1985,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, // The current character is a Jamo Vowel, // compose with previous Jamo L and following Jamo T. UChar32 l = prev - Hangul::JAMO_L_BASE; - if ((uint32_t)l < Hangul::JAMO_L_COUNT) { + if (static_cast(l) < Hangul::JAMO_L_COUNT) { if (sink == nullptr) { return false; } @@ -2204,20 +2213,20 @@ uint8_t Normalizer2Impl::getPreviousTrailCC(const char16_t *start, const char16_ if (start == p) { return 0; } - int32_t i = (int32_t)(p - start); + int32_t i = static_cast(p - start); UChar32 c; U16_PREV(start, 0, i, c); - return (uint8_t)getFCD16(c); + return static_cast(getFCD16(c)); } uint8_t Normalizer2Impl::getPreviousTrailCC(const uint8_t *start, const uint8_t *p) const { if (start == p) { return 0; } - int32_t i = (int32_t)(p - start); + int32_t i = static_cast(p - start); UChar32 c; U8_PREV(start, 0, i, c); - return (uint8_t)getFCD16(c); + return static_cast(getFCD16(c)); } // Note: normalizer2impl.cpp r30982 (2011-nov-27) @@ -2245,7 +2254,7 @@ uint16_t Normalizer2Impl::getFCD16FromNormData(UChar32 c) const { return norm16|(norm16<<8); } else if(norm16>=minMaybeYes) { return 0; - } else { // isDecompNoAlgorithmic(norm16) + } else if(norm16> OFFSET_SHIFT; @@ -2260,7 +2269,7 @@ uint16_t Normalizer2Impl::getFCD16FromNormData(UChar32 c) const { return 0; } // c decomposes, get everything from the variable-length extra data - const uint16_t *mapping=getMapping(norm16); + const uint16_t *mapping=getData(norm16); uint16_t firstUnit=*mapping; norm16=firstUnit>>8; // tccc if(firstUnit&MAPPING_HAS_CCC_LCCC_WORD) { @@ -2272,6 +2281,23 @@ uint16_t Normalizer2Impl::getFCD16FromNormData(UChar32 c) const { #pragma optimize( "", on ) #endif +uint16_t Normalizer2Impl::getFCD16FromMaybeOrNonZeroCC(uint16_t norm16) const { + U_ASSERT(norm16 >= minMaybeNo); + if (norm16 >= MIN_NORMAL_MAYBE_YES) { + // combining mark + norm16 = getCCFromNormalYesOrMaybe(norm16); + return norm16 | (norm16<<8); + } else if (norm16 >= minMaybeYes) { + return 0; + } + // c decomposes, get everything from the variable-length extra data + const uint16_t *mapping = getDataForMaybe(norm16); + uint16_t firstUnit = *mapping; + // maybeNo has lccc = 0 + U_ASSERT((firstUnit & MAPPING_HAS_CCC_LCCC_WORD) == 0 || (*(mapping - 1) & 0xff00) == 0); + return firstUnit >> 8; // tccc +} + // Dual functionality: // buffer!=nullptr: normalize // buffer==nullptr: isNormalized/quickCheck/spanQuickCheckYes @@ -2395,7 +2421,7 @@ Normalizer2Impl::makeFCD(const char16_t *src, const char16_t *limit, * already but is now going to be decomposed. * prevSrc is set to after what was copied/appended. */ - buffer->removeSuffix((int32_t)(prevSrc-prevBoundary)); + buffer->removeSuffix(static_cast(prevSrc - prevBoundary)); /* * Find the part of the source that needs to be decomposed, * up to the next safe boundary. @@ -2426,11 +2452,11 @@ void Normalizer2Impl::makeFCDAndAppend(const char16_t *src, const char16_t *limi if(src!=firstBoundaryInSrc) { const char16_t *lastBoundaryInDest=findPreviousFCDBoundary(buffer.getStart(), buffer.getLimit()); - int32_t destSuffixLength=(int32_t)(buffer.getLimit()-lastBoundaryInDest); + int32_t destSuffixLength = static_cast(buffer.getLimit() - lastBoundaryInDest); UnicodeString middle(lastBoundaryInDest, destSuffixLength); buffer.removeSuffix(destSuffixLength); safeMiddle=middle; - middle.append(src, (int32_t)(firstBoundaryInSrc-src)); + middle.append(src, static_cast(firstBoundaryInSrc - src)); const char16_t *middleStart=middle.getBuffer(); makeFCD(middleStart, middleStart+middle.length(), &buffer, errorCode); if(U_FAILURE(errorCode)) { @@ -2507,8 +2533,8 @@ void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode if(U_FAILURE(errorCode)) { return; } - UChar32 firstOrigin=(UChar32)(canonValue&CANON_VALUE_MASK); - canonValue=(canonValue&~CANON_VALUE_MASK)|CANON_HAS_SET|(uint32_t)canonStartSets.size(); + UChar32 firstOrigin = static_cast(canonValue & CANON_VALUE_MASK); + canonValue = (canonValue & ~CANON_VALUE_MASK) | CANON_HAS_SET | static_cast(canonStartSets.size()); umutablecptrie_set(mutableTrie, decompLead, canonValue, &errorCode); canonStartSets.adoptElement(lpSet.orphan(), errorCode); if (U_FAILURE(errorCode)) { @@ -2518,7 +2544,7 @@ void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode set->add(firstOrigin); } } else { - set=(UnicodeSet *)canonStartSets[(int32_t)(canonValue&CANON_VALUE_MASK)]; + set = static_cast(canonStartSets[static_cast(canonValue & CANON_VALUE_MASK)]); } set->add(origin); } @@ -2575,9 +2601,11 @@ void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) { void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, const uint16_t norm16, CanonIterData &newData, UErrorCode &errorCode) const { - if(isInert(norm16) || (minYesNo<=norm16 && norm16 minYesNo) { // c decomposes, get everything from the variable-length extra data - const uint16_t *mapping=getMapping(norm16_2); + const uint16_t *mapping=getDataForYesOrNo(norm16_2); uint16_t firstUnit=*mapping; int32_t length=firstUnit&MAPPING_LENGTH_MASK; if((firstUnit&MAPPING_HAS_CCC_LCCC_WORD)!=0) { @@ -2657,11 +2685,11 @@ UBool Normalizer2Impl::ensureCanonIterData(UErrorCode &errorCode) const { } int32_t Normalizer2Impl::getCanonValue(UChar32 c) const { - return (int32_t)ucptrie_get(fCanonIterData->trie, c); + return static_cast(ucptrie_get(fCanonIterData->trie, c)); } const UnicodeSet &Normalizer2Impl::getCanonStartSet(int32_t n) const { - return *(const UnicodeSet *)fCanonIterData->canonStartSets[n]; + return *static_cast(fCanonIterData->canonStartSets[n]); } UBool Normalizer2Impl::isCanonSegmentStarter(UChar32 c) const { @@ -2684,7 +2712,7 @@ UBool Normalizer2Impl::getCanonStartSet(UChar32 c, UnicodeSet &set) const { uint16_t norm16=getRawNorm16(c); if(norm16==JAMO_L) { UChar32 syllable= - (UChar32)(Hangul::HANGUL_BASE+(c-Hangul::JAMO_L_BASE)*Hangul::JAMO_VT_COUNT); + static_cast(Hangul::HANGUL_BASE + (c - Hangul::JAMO_L_BASE) * Hangul::JAMO_VT_COUNT); set.add(syllable, syllable+Hangul::JAMO_VT_COUNT-1); } else { addComposites(getCompositionsList(norm16), set); @@ -2728,7 +2756,7 @@ unorm2_swap(const UDataSwapper *ds, pInfo->dataFormat[1]==0x72 && pInfo->dataFormat[2]==0x6d && pInfo->dataFormat[3]==0x32 && - (1<=formatVersion0 && formatVersion0<=4) + (1<=formatVersion0 && formatVersion0<=5) )) { udata_printError(ds, "unorm2_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as Normalizer2 data\n", pInfo->dataFormat[0], pInfo->dataFormat[1], @@ -2747,8 +2775,10 @@ unorm2_swap(const UDataSwapper *ds, minIndexesLength=Normalizer2Impl::IX_MIN_MAYBE_YES+1; } else if(formatVersion0==2) { minIndexesLength=Normalizer2Impl::IX_MIN_YES_NO_MAPPINGS_ONLY+1; - } else { + } else if(formatVersion0<=4) { minIndexesLength=Normalizer2Impl::IX_MIN_LCCC_CP+1; + } else { + minIndexesLength=Normalizer2Impl::IX_MIN_MAYBE_NO_COMBINES_FWD+1; } if(length>=0) { diff --git a/thirdparty/icu4c/common/normalizer2impl.h b/thirdparty/icu4c/common/normalizer2impl.h index b74c2a1125b5..5999190bae9b 100644 --- a/thirdparty/icu4c/common/normalizer2impl.h +++ b/thirdparty/icu4c/common/normalizer2impl.h @@ -81,10 +81,10 @@ class U_COMMON_API Hangul { return 0<=c && c(c - JAMO_L_BASE) < JAMO_L_COUNT; } static inline UBool isJamoV(UChar32 c) { - return (uint32_t)(c-JAMO_V_BASE)(c - JAMO_V_BASE) < JAMO_V_COUNT; } static inline UBool isJamoT(UChar32 c) { int32_t t=c-JAMO_T_BASE; @@ -103,12 +103,12 @@ class U_COMMON_API Hangul { c-=HANGUL_BASE; UChar32 c2=c%JAMO_T_COUNT; c/=JAMO_T_COUNT; - buffer[0]=(char16_t)(JAMO_L_BASE+c/JAMO_V_COUNT); - buffer[1]=(char16_t)(JAMO_V_BASE+c%JAMO_V_COUNT); + buffer[0] = static_cast(JAMO_L_BASE + c / JAMO_V_COUNT); + buffer[1] = static_cast(JAMO_V_BASE + c % JAMO_V_COUNT); if(c2==0) { return 2; } else { - buffer[2]=(char16_t)(JAMO_T_BASE+c2); + buffer[2] = static_cast(JAMO_T_BASE + c2); return 3; } } @@ -123,11 +123,11 @@ class U_COMMON_API Hangul { UChar32 c2=c%JAMO_T_COUNT; if(c2==0) { c/=JAMO_T_COUNT; - buffer[0]=(char16_t)(JAMO_L_BASE+c/JAMO_V_COUNT); - buffer[1]=(char16_t)(JAMO_V_BASE+c%JAMO_V_COUNT); + buffer[0] = static_cast(JAMO_L_BASE + c / JAMO_V_COUNT); + buffer[1] = static_cast(JAMO_V_BASE + c % JAMO_V_COUNT); } else { - buffer[0]=(char16_t)(orig-c2); // LV syllable - buffer[1]=(char16_t)(JAMO_T_BASE+c2); + buffer[0] = static_cast(orig - c2); // LV syllable + buffer[1] = static_cast(JAMO_T_BASE + c2); } } private: @@ -147,13 +147,13 @@ class U_COMMON_API ReorderingBuffer : public UMemory { ReorderingBuffer(const Normalizer2Impl &ni, UnicodeString &dest, UErrorCode &errorCode); ~ReorderingBuffer() { if (start != nullptr) { - str.releaseBuffer((int32_t)(limit-start)); + str.releaseBuffer(static_cast(limit - start)); } } UBool init(int32_t destCapacity, UErrorCode &errorCode); UBool isEmpty() const { return start==limit; } - int32_t length() const { return (int32_t)(limit-start); } + int32_t length() const { return static_cast(limit - start); } char16_t *getStart() { return start; } char16_t *getLimit() { return limit; } uint8_t getLastCC() const { return lastCC; } @@ -163,7 +163,7 @@ class U_COMMON_API ReorderingBuffer : public UMemory { UBool append(UChar32 c, uint8_t cc, UErrorCode &errorCode) { return (c<=0xffff) ? - appendBMP((char16_t)c, cc, errorCode) : + appendBMP(static_cast(c), cc, errorCode) : appendSupplementary(c, cc, errorCode); } UBool append(const char16_t *s, int32_t length, UBool isNFD, @@ -190,12 +190,12 @@ class U_COMMON_API ReorderingBuffer : public UMemory { void remove(); void removeSuffix(int32_t suffixLength); void setReorderingLimit(char16_t *newLimit) { - remainingCapacity+=(int32_t)(limit-newLimit); + remainingCapacity += static_cast(limit - newLimit); reorderStart=limit=newLimit; lastCC=0; } void copyReorderableSuffixTo(UnicodeString &s) const { - s.setTo(ConstChar16Ptr(reorderStart), (int32_t)(limit-reorderStart)); + s.setTo(ConstChar16Ptr(reorderStart), static_cast(limit - reorderStart)); } private: /* @@ -215,7 +215,7 @@ class U_COMMON_API ReorderingBuffer : public UMemory { void insert(UChar32 c, uint8_t cc); static void writeCodePoint(char16_t *p, UChar32 c) { if(c<=0xffff) { - *p=(char16_t)c; + *p = static_cast(c); } else { p[0]=U16_LEAD(c); p[1]=U16_TRAIL(c); @@ -241,7 +241,7 @@ class U_COMMON_API ReorderingBuffer : public UMemory { * Low-level implementation of the Unicode Normalization Algorithm. * For the data structure and details see the documentation at the end of * this normalizer2impl.h and in the design doc at - * https://icu.unicode.org/design/normalization/custom + * https://unicode-org.github.io/icu/design/normalization/custom.html */ class U_COMMON_API Normalizer2Impl : public UObject { public: @@ -271,14 +271,14 @@ class U_COMMON_API Normalizer2Impl : public UObject { UNormalizationCheckResult getCompQuickCheck(uint16_t norm16) const { if(norm16> OFFSET_SHIFT); + return static_cast(norm16 >> OFFSET_SHIFT); } - static uint8_t getCCFromYesOrMaybe(uint16_t norm16) { + static uint8_t getCCFromYesOrMaybeYes(uint16_t norm16) { return norm16>=MIN_NORMAL_MAYBE_YES ? getCCFromNormalYesOrMaybe(norm16) : 0; } - uint8_t getCCFromYesOrMaybeCP(UChar32 c) const { + uint8_t getCCFromYesOrMaybeYesCP(UChar32 c) const { if (c < minCompNoMaybeCP) { return 0; } - return getCCFromYesOrMaybe(getNorm16(c)); + return getCCFromYesOrMaybeYes(getNorm16(c)); } /** @@ -364,11 +364,13 @@ class U_COMMON_API Normalizer2Impl : public UObject { // 0<=lead<=0xffff uint8_t bits=smallFCD[lead>>8]; if(bits==0) { return false; } - return (UBool)((bits>>((lead>>5)&7))&1); + return (bits >> ((lead >> 5) & 7)) & 1; } /** Returns the FCD value from the regular normalization data. */ uint16_t getFCD16FromNormData(UChar32 c) const; + uint16_t getFCD16FromMaybeOrNonZeroCC(uint16_t norm16) const; + /** * Gets the decomposition for one code point. * @param c code point @@ -450,7 +452,13 @@ class U_COMMON_API Normalizer2Impl : public UObject { IX_MIN_LCCC_CP, IX_RESERVED19, - IX_COUNT + + /** Two-way mappings; each starts with a character that combines backward. */ + IX_MIN_MAYBE_NO, // 20 + /** Two-way mappings & compositions. */ + IX_MIN_MAYBE_NO_COMBINES_FWD, + + IX_COUNT // 22 }; enum { @@ -541,7 +549,8 @@ class U_COMMON_API Normalizer2Impl : public UObject { uint16_t norm16=getNorm16(c); return isCompYesAndZeroCC(norm16) && (norm16 & HAS_COMP_BOUNDARY_AFTER) != 0 && - (!onlyContiguous || isInert(norm16) || *getMapping(norm16) <= 0x1ff); + (!onlyContiguous || isInert(norm16) || *getDataForYesOrNo(norm16) <= 0x1ff); + // The last check fetches the mapping's first unit and checks tccc<=1. } UBool hasFCDBoundaryBefore(UChar32 c) const { return hasDecompBoundaryBefore(c); } @@ -551,8 +560,8 @@ class U_COMMON_API Normalizer2Impl : public UObject { friend class InitCanonIterData; friend class LcccContext; - UBool isMaybe(uint16_t norm16) const { return minMaybeYes<=norm16 && norm16<=JAMO_VT; } - UBool isMaybeOrNonZeroCC(uint16_t norm16) const { return norm16>=minMaybeYes; } + UBool isMaybe(uint16_t norm16) const { return minMaybeNo<=norm16 && norm16<=JAMO_VT; } + UBool isMaybeYesOrNonZeroCC(uint16_t norm16) const { return norm16>=minMaybeYes; } static UBool isInert(uint16_t norm16) { return norm16==INERT; } static UBool isJamoL(uint16_t norm16) { return norm16==JAMO_L; } static UBool isJamoVT(uint16_t norm16) { return norm16==JAMO_VT; } @@ -566,7 +575,7 @@ class U_COMMON_API Normalizer2Impl : public UObject { // return norm16>=MIN_YES_YES_WITH_CC || norm16=limitNoNo; } + /** Since formatVersion 5: same as isAlgorithmicNoNo() */ + UBool isDecompNoAlgorithmic(uint16_t norm16) const { return limitNoNo<=norm16 && norm16=MIN_YES_YES_WITH_CC ? getCCFromNormalYesOrMaybe(norm16) : 0; // } uint8_t getCCFromNoNo(uint16_t norm16) const { - const uint16_t *mapping=getMapping(norm16); + const uint16_t *mapping=getDataForYesOrNo(norm16); if(*mapping&MAPPING_HAS_CCC_LCCC_WORD) { - return (uint8_t)*(mapping-1); + return static_cast(*(mapping - 1)); } else { return 0; } @@ -605,7 +614,7 @@ class U_COMMON_API Normalizer2Impl : public UObject { return 0; // yesYes and Hangul LV have ccc=tccc=0 } else { // For Hangul LVT we harmlessly fetch a firstUnit with tccc=0 here. - return (uint8_t)(*getMapping(norm16)>>8); // tccc from yesNo + return static_cast(*getDataForYesOrNo(norm16) >> 8); // tccc from yesNo } } uint8_t getPreviousTrailCC(const char16_t *start, const char16_t *p) const; @@ -619,28 +628,33 @@ class U_COMMON_API Normalizer2Impl : public UObject { return (norm16>>DELTA_SHIFT)-centerNoNoDelta; } - // Requires minYesNo>OFFSET_SHIFT); } + const uint16_t *getDataForYesOrNo(uint16_t norm16) const { + return extraData+(norm16>>OFFSET_SHIFT); + } + const uint16_t *getDataForMaybe(uint16_t norm16) const { + return extraData+((norm16-minMaybeNo+limitNoNo)>>OFFSET_SHIFT); + } + const uint16_t *getData(uint16_t norm16) const { + if(norm16>=minMaybeNo) { + norm16=norm16-minMaybeNo+limitNoNo; + } + return extraData+(norm16>>OFFSET_SHIFT); + } const uint16_t *getCompositionsListForDecompYes(uint16_t norm16) const { if(norm16>OFFSET_SHIFT); - } /** * @param c code point must have compositions * @return compositions list pointer @@ -692,11 +706,13 @@ class U_COMMON_API Normalizer2Impl : public UObject { /** For FCC: Given norm16 HAS_COMP_BOUNDARY_AFTER, does it have tccc<=1? */ UBool isTrailCC01ForCompBoundaryAfter(uint16_t norm16) const { return isInert(norm16) || (isDecompNoAlgorithmic(norm16) ? - (norm16 & DELTA_TCCC_MASK) <= DELTA_TCCC_1 : *getMapping(norm16) <= 0x1ff); + (norm16 & DELTA_TCCC_MASK) <= DELTA_TCCC_1 : *getDataForYesOrNo(norm16) <= 0x1ff); } - const char16_t *findPreviousCompBoundary(const char16_t *start, const char16_t *p, UBool onlyContiguous) const; - const char16_t *findNextCompBoundary(const char16_t *p, const char16_t *limit, UBool onlyContiguous) const; + const char16_t *findPreviousCompBoundary(const char16_t *start, const char16_t *p, + UBool onlyContiguous) const; + const char16_t *findNextCompBoundary(const char16_t *p, const char16_t *limit, + UBool onlyContiguous) const; const char16_t *findPreviousFCDBoundary(const char16_t *start, const char16_t *p) const; const char16_t *findNextFCDBoundary(const char16_t *p, const char16_t *limit) const; @@ -723,11 +739,12 @@ class U_COMMON_API Normalizer2Impl : public UObject { uint16_t minNoNoEmpty; uint16_t limitNoNo; uint16_t centerNoNoDelta; + uint16_t minMaybeNo; + uint16_t minMaybeNoCombinesFwd; uint16_t minMaybeYes; const UCPTrie *normTrie; - const uint16_t *maybeYesCompositions; - const uint16_t *extraData; // mappings and/or compositions for yesYes, yesNo & noNo characters + const uint16_t *extraData; // mappings and/or compositions const uint8_t *smallFCD; // [0x100] one bit per 32 BMP code points, set if any FCD!=0 UInitOnce fCanonIterDataInitOnce {}; @@ -785,7 +802,7 @@ unorm_getFCD16(UChar32 c); /** * Format of Normalizer2 .nrm data files. - * Format version 4.0. + * Format version 5.0. * * Normalizer2 .nrm data files provide data for the Unicode Normalization algorithms. * ICU ships with data files for standard Unicode Normalization Forms @@ -807,7 +824,7 @@ unorm_getFCD16(UChar32 c); * Constants are defined as enum values of the Normalizer2Impl class. * * Many details of the data structures are described in the design doc - * which is at https://icu.unicode.org/design/normalization/custom + * which is at https://unicode-org.github.io/icu/design/normalization/custom.html * * int32_t indexes[indexesLength]; -- indexesLength=indexes[IX_NORM_TRIE_OFFSET]/4; * @@ -829,7 +846,9 @@ unorm_getFCD16(UChar32 c); * * The next eight indexes are thresholds of 16-bit trie values for ranges of * values indicating multiple normalization properties. - * They are listed here in threshold order, not in the order they are stored in the indexes. + * Format version 5 adds the two minMaybeNo* threshold indexes. + * The thresholds are listed here in threshold order, + * not in the order they are stored in the indexes. * minYesNo=indexes[IX_MIN_YES_NO]; * minYesNoMappingsOnly=indexes[IX_MIN_YES_NO_MAPPINGS_ONLY]; * minNoNo=indexes[IX_MIN_NO_NO]; @@ -837,6 +856,8 @@ unorm_getFCD16(UChar32 c); * minNoNoCompNoMaybeCC=indexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC]; * minNoNoEmpty=indexes[IX_MIN_NO_NO_EMPTY]; * limitNoNo=indexes[IX_LIMIT_NO_NO]; + * minMaybeNo=indexes[IX_MIN_MAYBE_NO]; + * minMaybeNoCombinesFwd=indexes[IX_MIN_MAYBE_NO_COMBINES_FWD]; * minMaybeYes=indexes[IX_MIN_MAYBE_YES]; * See the normTrie description below and the design doc for details. * @@ -845,13 +866,14 @@ unorm_getFCD16(UChar32 c); * The trie holds the main normalization data. Each code point is mapped to a 16-bit value. * Rather than using independent bits in the value (which would require more than 16 bits), * information is extracted primarily via range checks. - * Except, format version 3 uses bit 0 for hasCompBoundaryAfter(). + * Except, format version 3+ uses bit 0 for hasCompBoundaryAfter(). * For example, a 16-bit value norm16 in the range minYesNo<=norm16>1)&1; + return (latin1[c] >> 1) & 1; } else if(c<0x2010) { return false; } else if(c<=0x3030) { uint32_t bits=syntax2000[index2000[(c-0x2000)>>5]]; - return (UBool)((bits>>(c&0x1f))&1); + return (bits >> (c & 0x1f)) & 1; } else if(0xfd3e<=c && c<=0xfe46) { return c<=0xfd3f || 0xfe45<=c; } else { @@ -138,12 +138,12 @@ PatternProps::isSyntaxOrWhiteSpace(UChar32 c) { if(c<0) { return false; } else if(c<=0xff) { - return (UBool)(latin1[c]&1); + return latin1[c] & 1; } else if(c<0x200e) { return false; } else if(c<=0x3030) { uint32_t bits=syntaxOrWhiteSpace2000[index2000[(c-0x2000)>>5]]; - return (UBool)((bits>>(c&0x1f))&1); + return (bits >> (c & 0x1f)) & 1; } else if(0xfd3e<=c && c<=0xfe46) { return c<=0xfd3f || 0xfe45<=c; } else { @@ -156,7 +156,7 @@ PatternProps::isWhiteSpace(UChar32 c) { if(c<0) { return false; } else if(c<=0xff) { - return (UBool)(latin1[c]>>2)&1; + return (latin1[c] >> 2) & 1; } else if(0x200e<=c && c<=0x2029) { return c<=0x200f || 0x2028<=c; } else { diff --git a/thirdparty/icu4c/common/propname.cpp b/thirdparty/icu4c/common/propname.cpp index 45062bfbd931..640578c5ee37 100644 --- a/thirdparty/icu4c/common/propname.cpp +++ b/thirdparty/icu4c/common/propname.cpp @@ -43,7 +43,7 @@ getASCIIPropertyNameChar(const char *name) { ) {} if(c!=0) { - return (i<<8)|(uint8_t)uprv_asciitolower((char)c); + return (i << 8) | static_cast(uprv_asciitolower(c)); } else { return i<<8; } @@ -66,7 +66,7 @@ getEBCDICPropertyNameChar(const char *name) { ) {} if(c!=0) { - return (i<<8)|(uint8_t)uprv_ebcdictolower((char)c); + return (i << 8) | static_cast(uprv_ebcdictolower(c)); } else { return i<<8; } @@ -231,7 +231,7 @@ UBool PropNameData::containsName(BytesTrie &trie, const char *name) { if(!USTRINGTRIE_HAS_NEXT(result)) { return false; } - result=trie.next((uint8_t)c); + result = trie.next(static_cast(c)); } return USTRINGTRIE_HAS_VALUE(result); } diff --git a/thirdparty/icu4c/common/propname_data.h b/thirdparty/icu4c/common/propname_data.h index 579547e41601..99233a0bd601 100644 --- a/thirdparty/icu4c/common/propname_data.h +++ b/thirdparty/icu4c/common/propname_data.h @@ -11,105 +11,107 @@ U_NAMESPACE_BEGIN -const int32_t PropNameData::indexes[8]={0x20,0x16fc,0x5471,0xb130,0xb130,0xb130,0x31,0}; +const int32_t PropNameData::indexes[8]={0x20,0x1778,0x5653,0xb539,0xb539,0xb539,0x31,0}; -const int32_t PropNameData::valueMaps[1463]={ -6,0,0x4b,0,0xfb,0x368,0xfb,0x37e,0xfb,0x393,0xfb,0x3a9,0xfb,0x3b4,0xfb,0x3d5, -0xfb,0x3e5,0xfb,0x3f4,0xfb,0x402,0xfb,0x426,0xfb,0x43d,0xfb,0x455,0xfb,0x46c,0xfb,0x47b, -0xfb,0x48a,0xfb,0x49b,0xfb,0x4a9,0xfb,0x4bb,0xfb,0x4d5,0xfb,0x4f0,0xfb,0x505,0xfb,0x522, -0xfb,0x533,0xfb,0x53e,0xfb,0x55d,0xfb,0x573,0xfb,0x584,0xfb,0x594,0xfb,0x5af,0xfb,0x5c8, -0xfb,0x5d9,0xfb,0x5f3,0xfb,0x606,0xfb,0x616,0xfb,0x630,0xfb,0x649,0xfb,0x660,0xfb,0x674, -0xfb,0x68a,0xfb,0x69e,0xfb,0x6b4,0xfb,0x6ce,0xfb,0x6e6,0xfb,0x702,0xfb,0x70a,0xfb,0x712, -0xfb,0x71a,0xfb,0x722,0xfb,0x72b,0xfb,0x738,0xfb,0x74b,0xfb,0x768,0xfb,0x785,0xfb,0x7a2, -0xfb,0x7c0,0xfb,0x7de,0xfb,0x802,0xfb,0x80f,0xfb,0x829,0xfb,0x83e,0xfb,0x859,0xfb,0x870, -0xfb,0x887,0xfb,0x8a9,0xfb,0x8c8,0xfb,0x8e1,0xfb,0x90e,0xfb,0x947,0xfb,0x978,0xfb,0x9a7, -0xfb,0x9d6,0xfb,0x9eb,0xfb,0xa04,0xfb,0xa2f,0xfb,0x1000,0x101a,0xa60,0x177,0xc80,0x192,0x331c, -0x101,0x333b,0x2df,0x3479,0x2f5,0x34d3,0x2ff,0x3730,0x321,0x405b,0x38d,0x40cb,0x397,0x43b0,0x3cb,0x43ee, -0x3d3,0x4f3e,0x4a0,0x4fbc,0x4aa,0x4fe1,0x4b0,0x4ffb,0x4b6,0x501c,0x4bd,0x5036,0x101,0x505b,0x101,0x5081, -0x4c4,0x512b,0x4da,0x51a4,0x4ed,0x5256,0x508,0x528d,0x50f,0x546d,0x523,0x58ed,0x54b,0x594c,0x553,0x2000, -0x2001,0x5999,0x559,0x3000,0x3001,0x5a25,0,0x4000,0x400e,0x5a37,0,0x5a40,0,0x5a5a,0,0x5a6b, -0,0x5a7c,0,0x5a92,0,0x5a9b,0,0x5ab8,0,0x5ad6,0,0x5af4,0,0x5b12,0,0x5b28, -0,0x5b3c,0,0x5b52,0,0x7000,0x7002,0x5b6b,0,0x5b82,0x5a7,0x896,0x12,0,1,0x12, -0x20,0x8b4,0x4a,0,1,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf,0x10, -0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20, -0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,0x7a,0x81,0x82,0x84,0x85,0xc8,0xca, -0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xe9,0xea,0xf0,0x2e,0x40,0x4c, -0x5e,0x68,0x79,0x84,0x91,0x9e,0xab,0xb8,0xc5,0xd2,0xdf,0xec,0xf9,0x106,0x113,0x120, -0x12d,0x13a,0x147,0x154,0x161,0x16e,0x17b,0x188,0x195,0x1a2,0x1af,0x1bc,0x1c9,0x1d6,0x1e3,0x1f0, -0x1fd,0x20c,0x21b,0x22a,0x239,0x248,0x257,0x266,0x275,0x28f,0x2a3,0x2b7,0x2d2,0x2e1,0x2ea,0x2fa, -0x302,0x30b,0x31a,0x323,0x333,0x344,0x355,0xa55,1,0,0x17,0xa6f,0xa80,0xa91,0xaa5,0xabc, -0xad4,0xae6,0xafb,0xb12,0xb27,0xb37,0xb49,0xb66,0xb82,0xb94,0xbb1,0xbcd,0xbe9,0xbfe,0xc13,0xc2d, -0xc48,0xc63,0xbf7,1,0,0x149,0xc8b,0xc98,0xcab,0xcd3,0xcf1,0xd0f,0xd27,0xd52,0xd7c,0xd94, -0xda7,0xdba,0xdc9,0xdd8,0xde7,0xdf6,0xe0d,0xe1e,0xe31,0xe44,0xe51,0xe5e,0xe6d,0xe7e,0xe93,0xea4, -0xeaf,0xeb8,0xec9,0xeda,0xeed,0xeff,0xf12,0xf25,0xf64,0xf71,0xf7e,0xf8b,0xfa0,0xfd0,0xfea,0x100b, -0x1036,0x1059,0x10b7,0x10de,0x10f9,0x1108,0x112f,0x1157,0x117a,0x119d,0x11c7,0x11e0,0x11ff,0x1222,0x1246,0x1259, -0x1273,0x129d,0x12b5,0x12dd,0x1306,0x1319,0x132c,0x133f,0x1366,0x1375,0x1395,0x13c3,0x13e1,0x140f,0x142b,0x1446, -0x145f,0x1478,0x1499,0x14c9,0x14e8,0x150a,0x153e,0x156b,0x15b0,0x15d1,0x15fb,0x161c,0x1645,0x1658,0x168b,0x16a2, -0x16b1,0x16c2,0x16ed,0x1704,0x1735,0x1763,0x17a6,0x17b1,0x17ea,0x17fb,0x180c,0x1819,0x182c,0x1866,0x188a,0x18ae, -0x18e8,0x1920,0x194b,0x1963,0x198f,0x19bb,0x19c8,0x19d7,0x19f4,0x1a16,0x1a44,0x1a64,0x1a8b,0x1ab2,0x1ad1,0x1ae4, -0x1af5,0x1b06,0x1b2b,0x1b50,0x1b77,0x1bab,0x1bd8,0x1bf6,0x1c09,0x1c22,0x1c5b,0x1c6a,0x1c8a,0x1cac,0x1cce,0x1ce5, -0x1cfc,0x1d29,0x1d42,0x1d5b,0x1d8c,0x1db6,0x1dd1,0x1de4,0x1e03,0x1e0c,0x1e1f,0x1e3d,0x1e5b,0x1e6e,0x1e85,0x1e9a, -0x1ecf,0x1ef3,0x1f08,0x1f17,0x1f2a,0x1f4e,0x1f57,0x1f7b,0x1f92,0x1fa5,0x1fb4,0x1fbf,0x1fe0,0x1ff8,0x2007,0x2016, -0x2025,0x203c,0x2051,0x2066,0x209f,0x20b2,0x20ce,0x20d9,0x20e6,0x2114,0x2138,0x215b,0x216e,0x2190,0x21a3,0x21be, -0x21e1,0x2204,0x2229,0x223a,0x2269,0x2296,0x22ad,0x22c8,0x22d7,0x2302,0x233a,0x2374,0x23a2,0x23b3,0x23c0,0x23e4, -0x23f3,0x240f,0x2429,0x2446,0x247e,0x2493,0x24c0,0x24df,0x250d,0x252d,0x2561,0x2570,0x259a,0x25bd,0x25e8,0x25f3, -0x2604,0x261f,0x2643,0x2650,0x2665,0x268c,0x26b7,0x26ee,0x2701,0x2712,0x2742,0x2753,0x2762,0x2777,0x2795,0x27a8, -0x27bb,0x27d2,0x27ef,0x27fa,0x2803,0x2825,0x283a,0x285f,0x2876,0x289f,0x28ba,0x28cf,0x28e8,0x2909,0x293e,0x294f, -0x2980,0x29a4,0x29b5,0x29ce,0x29d9,0x2a06,0x2a28,0x2a56,0x2a89,0x2a98,0x2aa9,0x2ac6,0x2b08,0x2b2f,0x2b3c,0x2b51, -0x2b75,0x2b9b,0x2bd4,0x2be5,0x2c09,0x2c14,0x2c21,0x2c30,0x2c55,0x2c83,0x2c9f,0x2cbc,0x2cc9,0x2cda,0x2cf8,0x2d1b, -0x2d38,0x2d45,0x2d65,0x2d82,0x2da3,0x2dcc,0x2ddd,0x2dfc,0x2e15,0x2e2e,0x2e3f,0x2e88,0x2e99,0x2eb2,0x2ee1,0x2f0e, -0x2f33,0x2f75,0x2f91,0x2fa0,0x2fb7,0x2fe5,0x2ffe,0x3027,0x3041,0x307c,0x309a,0x30a9,0x30c9,0x30e4,0x3108,0x3124, -0x3142,0x3160,0x3177,0x3186,0x3191,0x31ce,0x31e1,0x320b,0x322b,0x3259,0x327d,0x32a5,0x32ca,0x32d5,0x32ee,0x2001, -1,0,0x12,0x3352,0x3362,0x3375,0x3385,0x3395,0x33a4,0x33b4,0x33c6,0x33d9,0x33eb,0x33fb,0x340b,0x341a, -0x3429,0x3439,0x3446,0x3455,0x3469,0x20bf,1,0,6,0x348e,0x3499,0x34a6,0x34b3,0x34c0,0x34cb,0x2103, -1,0,0x1e,0x34e8,0x34f7,0x350c,0x3521,0x3536,0x354a,0x355b,0x356f,0x3582,0x3593,0x35ac,0x35be,0x35cf, -0x35e3,0x35f6,0x360e,0x3620,0x362b,0x363b,0x3649,0x365e,0x3673,0x3689,0x36a3,0x36b9,0x36c9,0x36dd,0x36f1,0x3702, -0x371a,0x232e,1,0,0x68,0x3742,0x3765,0x376e,0x377b,0x3786,0x378f,0x379a,0x37a3,0x37bc,0x37c1,0x37ca, -0x37e7,0x37f0,0x37fd,0x3806,0x382a,0x3831,0x383a,0x384d,0x3858,0x3861,0x386c,0x3885,0x388e,0x389d,0x38a8,0x38b1, -0x38bc,0x38c5,0x38cc,0x38d5,0x38e0,0x38e9,0x3902,0x390b,0x3918,0x3923,0x3934,0x393f,0x3954,0x396b,0x3974,0x397d, -0x3996,0x39a1,0x39aa,0x39b3,0x39ca,0x39e7,0x39f2,0x3a03,0x3a0e,0x3a15,0x3a22,0x3a2f,0x3a5c,0x3a71,0x3a7a,0x3a95, -0x3ab8,0x3ad9,0x3afa,0x3b1f,0x3b46,0x3b67,0x3b8a,0x3bab,0x3bd2,0x3bf3,0x3c18,0x3c37,0x3c56,0x3c75,0x3c92,0x3cb3, -0x3cd4,0x3cf7,0x3d1c,0x3d3b,0x3d5a,0x3d7b,0x3da2,0x3dc7,0x3de6,0x3e07,0x3e2a,0x3e45,0x3e5e,0x3e79,0x3e92,0x3eaf, -0x3eca,0x3ee7,0x3f06,0x3f23,0x3f40,0x3f5f,0x3f7c,0x3f97,0x3fb4,0x3fd1,0x4004,0x402b,0x403e,0x2691,1,0, -6,0x406c,0x407b,0x408b,0x409b,0x40ab,0x40bc,0x26ef,1,0,0x30,0x40da,0x40e6,0x40f4,0x4103,0x4112, -0x4122,0x4133,0x4147,0x415c,0x4172,0x4185,0x4199,0x41a9,0x41b2,0x41bd,0x41cd,0x41e9,0x41fb,0x4209,0x4218,0x4224, -0x4239,0x424d,0x4260,0x426e,0x4282,0x4290,0x429a,0x42ac,0x42b8,0x42c6,0x42d6,0x42dd,0x42e4,0x42eb,0x42f2,0x42f9, -0x430f,0x4330,0x870,0x4342,0x434d,0x435c,0x4365,0x4370,0x4383,0x4394,0x43a5,0x297f,1,0,4,0x43c1, -0x43cc,0x43d8,0x43e2,0x29a5,1,0,0xc9,0x43f9,0x4406,0x441b,0x4428,0x4437,0x4445,0x4454,0x4463,0x4475, -0x4484,0x4492,0x44a3,0x44b2,0x44c1,0x44ce,0x44da,0x44e9,0x44f8,0x4502,0x450f,0x451c,0x452b,0x4539,0x4548,0x4554, -0x455e,0x456a,0x457a,0x458a,0x4598,0x45a4,0x45b5,0x45c1,0x45cd,0x45db,0x45e8,0x45f4,0x4601,0xea4,0x460e,0x461c, -0x4636,0x463f,0x464d,0x465b,0x4667,0x4676,0x4684,0x4692,0x469e,0x46ad,0x46bb,0x46c9,0x46d6,0x46e5,0x4700,0x470f, -0x4720,0x4731,0x4744,0x4756,0x4765,0x4777,0x4786,0x4792,0x479d,0x1fb4,0x47aa,0x47b5,0x47c0,0x47cb,0x47d6,0x47f1, -0x47fc,0x4807,0x4812,0x4825,0x4839,0x4844,0x4853,0x4862,0x486d,0x4878,0x4885,0x4894,0x48a2,0x48ad,0x48c8,0x48d2, -0x48e3,0x48f4,0x4903,0x4914,0x491f,0x492a,0x4935,0x4940,0x494b,0x4956,0x4961,0x496b,0x4976,0x4986,0x4991,0x499f, -0x49ac,0x49b7,0x49c6,0x49d3,0x49e0,0x49ef,0x49fc,0x4a0d,0x4a1f,0x4a2f,0x4a3a,0x4a4d,0x4a64,0x4a72,0x4a7f,0x4a8a, -0x4a97,0x4aa8,0x4ac4,0x4ada,0x4ae5,0x4b02,0x4b12,0x4b21,0x4b2c,0x4b37,0x20ce,0x4b43,0x4b4e,0x4b66,0x4b76,0x4b85, -0x4b93,0x4ba1,0x4bac,0x4bb7,0x4bcb,0x4be2,0x4bfa,0x4c0a,0x4c1a,0x4c2a,0x4c3c,0x4c47,0x4c52,0x4c5c,0x4c68,0x4c76, -0x4c89,0x4c95,0x4ca2,0x4cad,0x4cc9,0x4cd6,0x4ce4,0x4cfd,0x29ce,0x4d0c,0x27ef,0x4d19,0x4d27,0x4d39,0x4d47,0x4d53, -0x4d63,0x2c09,0x4d71,0x4d7d,0x4d88,0x4d93,0x4d9e,0x4db2,0x4dc0,0x4dd7,0x4de3,0x4df7,0x4e05,0x4e17,0x4e2d,0x4e3b, -0x4e4d,0x4e5b,0x4e78,0x4e8a,0x4e97,0x4ea8,0x4eba,0x4ed4,0x4ee1,0x4ef4,0x4f05,0x3186,0x4f12,0x32ca,0x4f21,0x4f33, -0x3403,1,0,6,0x4f58,0x4f6b,0x4f7b,0x4f89,0x4f9a,0x4faa,0x345f,0x12,0,1,0x4fd4,0x4fda, -0x346c,0x12,0,1,0x4fd4,0x4fda,0x3479,1,0,3,0x4fd4,0x4fda,0x5013,0x348f,1,0, -3,0x4fd4,0x4fda,0x5013,0x34a5,1,0,0x12,0x509d,0x50a7,0x50b3,0x50ba,0x50c5,0x50ca,0x50d1,0x50d8, -0x50e1,0x50e6,0x50eb,0x50fb,0x870,0x4342,0x5107,0x434d,0x5117,0x435c,0x354e,1,0,0xf,0x509d,0x513e, -0x5148,0x5152,0x515d,0x4218,0x5167,0x5173,0x517b,0x5182,0x518c,0x50b3,0x50ba,0x50ca,0x5196,0x35d5,1,0, -0x17,0x509d,0x51b3,0x5152,0x51bf,0x51cc,0x51da,0x4218,0x51e5,0x50b3,0x51f6,0x50ca,0x5205,0x5213,0x870,0x4330, -0x521f,0x5230,0x4342,0x5107,0x434d,0x5117,0x435c,0x5241,0x36f2,1,0,3,0x5274,0x527c,0x5284,0x370b, -1,0,0x10,0x52ad,0x52b4,0x52c3,0x52e4,0x5307,0x5312,0x5331,0x5348,0x5355,0x535e,0x537d,0x53b0,0x53cb, -0x53fa,0x5417,0x543c,0x37a4,1,0,0x24,0x548b,0x5498,0x54ab,0x54b8,0x54e5,0x550a,0x551f,0x553e,0x555f, -0x558c,0x55c5,0x55e8,0x560b,0x5638,0x566d,0x5694,0x56bd,0x56f4,0x5723,0x5744,0x5769,0x5778,0x579b,0x57b2,0x57bf, -0x57ce,0x57eb,0x5804,0x5827,0x584c,0x5865,0x587a,0x5889,0x589a,0x58a7,0x58c8,0x3974,1,0,4,0x5906, -0x5911,0x5929,0x5941,0x39b0,0x12,0,1,0x5971,0x5988,0x39c7,0x36,1,2,4,8,0xe, -0x10,0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,0x4000,0x7000,0x8000, -0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0xf000000,0x10000000,0x20000000, -0x30f80000,0x34e8,0x34f7,0x350c,0x3521,0x59c7,0x3536,0x354a,0x59bd,0x355b,0x356f,0x3582,0x59d8,0x3593,0x35ac,0x35be, -0x59ef,0x35cf,0x35e3,0x35f6,0x5a18,0x360e,0x3620,0x362b,0x363b,0x59b4,0x3649,0x365e,0x3673,0x3689,0x36a3,0x36b9, -0x36c9,0x36dd,0x36f1,0x5a0e,0x3702,0x371a,0x59f9,0x3cde,1,0,0xc,0x5ba3,0x5bc0,0x5bd7,0x5bfc,0x5c0f, -0x5c20,0x5c35,0x5c48,0x5c5d,0x5c78,0x5c91,0x5ca6 +const int32_t PropNameData::valueMaps[1494]={ +6,0,0x4c,0,0xff,0x368,0xff,0x37e,0xff,0x393,0xff,0x3a9,0xff,0x3b4,0xff,0x3d5, +0xff,0x3e5,0xff,0x3f4,0xff,0x402,0xff,0x426,0xff,0x43d,0xff,0x455,0xff,0x46c,0xff,0x47b, +0xff,0x48a,0xff,0x49b,0xff,0x4a9,0xff,0x4bb,0xff,0x4d5,0xff,0x4f0,0xff,0x505,0xff,0x522, +0xff,0x533,0xff,0x53e,0xff,0x55d,0xff,0x573,0xff,0x584,0xff,0x594,0xff,0x5af,0xff,0x5c8, +0xff,0x5d9,0xff,0x5f3,0xff,0x606,0xff,0x616,0xff,0x630,0xff,0x649,0xff,0x660,0xff,0x674, +0xff,0x68a,0xff,0x69e,0xff,0x6b4,0xff,0x6ce,0xff,0x6e6,0xff,0x702,0xff,0x70a,0xff,0x712, +0xff,0x71a,0xff,0x722,0xff,0x72b,0xff,0x738,0xff,0x74b,0xff,0x768,0xff,0x785,0xff,0x7a2, +0xff,0x7c0,0xff,0x7de,0xff,0x802,0xff,0x80f,0xff,0x829,0xff,0x83e,0xff,0x859,0xff,0x870, +0xff,0x887,0xff,0x8a9,0xff,0x8c8,0xff,0x8e1,0xff,0x90e,0xff,0x947,0xff,0x978,0xff,0x9a7, +0xff,0x9d6,0xff,0x9eb,0xff,0xa04,0xff,0xa2f,0xff,0xa60,0xff,0x1000,0x101b,0xa7d,0x17b,0xc9d, +0x196,0x346c,0x105,0x348b,0x2ed,0x35c9,0x303,0x3623,0x30d,0x3880,0x32f,0x41d7,0x39c,0x4247,0x3a6,0x452c, +0x3da,0x456a,0x3e2,0x5126,0x4b6,0x51a4,0x4c0,0x51c9,0x4c6,0x51e3,0x4cc,0x5204,0x4d3,0x521e,0x105,0x5243, +0x105,0x5269,0x4da,0x5313,0x4f0,0x538c,0x503,0x543e,0x51e,0x5475,0x525,0x5655,0x539,0x5afa,0x562,0x5b59, +0x56a,0x5b9e,0x570,0x2000,0x2001,0x5bc8,0x578,0x3000,0x3001,0x5c54,0,0x4000,0x400e,0x5c66,0,0x5c6f, +0,0x5c89,0,0x5c9a,0,0x5cab,0,0x5cc1,0,0x5cca,0,0x5ce7,0,0x5d05,0,0x5d23, +0,0x5d41,0,0x5d57,0,0x5d6b,0,0x5d81,0,0x7000,0x7002,0x5d9a,0,0x5db1,0x5c6,0x8de, +0x12,0,1,0x12,0x20,0x8fc,0x4a,0,1,6,7,8,9,0xa,0xb,0xc, +0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c, +0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,0x7a,0x81,0x82, +0x84,0x85,0xc8,0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xe9,0xea, +0xf0,0x2e,0x40,0x4c,0x5e,0x68,0x79,0x84,0x91,0x9e,0xab,0xb8,0xc5,0xd2,0xdf,0xec, +0xf9,0x106,0x113,0x120,0x12d,0x13a,0x147,0x154,0x161,0x16e,0x17b,0x188,0x195,0x1a2,0x1af,0x1bc, +0x1c9,0x1d6,0x1e3,0x1f0,0x1fd,0x20c,0x21b,0x22a,0x239,0x248,0x257,0x266,0x275,0x28f,0x2a3,0x2b7, +0x2d2,0x2e1,0x2ea,0x2fa,0x302,0x30b,0x31a,0x323,0x333,0x344,0x355,0xa9d,1,0,0x17,0xa8c, +0xa9d,0xaae,0xac2,0xad9,0xaf1,0xb03,0xb18,0xb2f,0xb44,0xb54,0xb66,0xb83,0xb9f,0xbb1,0xbce,0xbea, +0xc06,0xc1b,0xc30,0xc4a,0xc65,0xc80,0xc3f,1,0,0x153,0xca8,0xcb5,0xcc8,0xcf0,0xd0e,0xd2c, +0xd44,0xd6f,0xd99,0xdb1,0xdc4,0xdd7,0xde6,0xdf5,0xe04,0xe13,0xe2a,0xe3b,0xe4e,0xe61,0xe6e,0xe7b, +0xe8a,0xe9b,0xeb0,0xec1,0xecc,0xed5,0xee6,0xef7,0xf0a,0xf1c,0xf2f,0xf42,0xf81,0xf8e,0xf9b,0xfa8, +0xfbd,0xfed,0x1007,0x1028,0x1053,0x1076,0x10d4,0x10fb,0x1116,0x1125,0x114c,0x1174,0x1197,0x11ba,0x11e4,0x11fd, +0x121c,0x123f,0x1263,0x1276,0x1290,0x12ba,0x12d2,0x12fa,0x1323,0x1336,0x1349,0x135c,0x1383,0x1392,0x13b2,0x13e0, +0x13fe,0x142c,0x1448,0x1463,0x147c,0x1495,0x14b6,0x14e6,0x1505,0x1527,0x155b,0x1588,0x15cd,0x15ee,0x1618,0x1639, +0x1662,0x1675,0x16a8,0x16bf,0x16ce,0x16df,0x170a,0x1721,0x1752,0x1780,0x17c3,0x17ce,0x1807,0x1818,0x1829,0x1836, +0x1849,0x1883,0x18a7,0x18cb,0x1905,0x193d,0x1968,0x1980,0x19ac,0x19d8,0x19e5,0x19f4,0x1a11,0x1a33,0x1a61,0x1a81, +0x1aa8,0x1acf,0x1aee,0x1b01,0x1b12,0x1b23,0x1b48,0x1b6d,0x1b94,0x1bc8,0x1bf5,0x1c13,0x1c26,0x1c3f,0x1c78,0x1c87, +0x1ca7,0x1cc9,0x1ceb,0x1d02,0x1d19,0x1d46,0x1d5f,0x1d78,0x1da9,0x1dd3,0x1dee,0x1e01,0x1e20,0x1e29,0x1e3c,0x1e5a, +0x1e78,0x1e8b,0x1ea2,0x1eb7,0x1eec,0x1f10,0x1f25,0x1f34,0x1f47,0x1f6b,0x1f74,0x1f98,0x1faf,0x1fc2,0x1fd1,0x1fdc, +0x1ffd,0x2015,0x2024,0x2033,0x2042,0x2059,0x206e,0x2083,0x20bc,0x20cf,0x20eb,0x20f6,0x2103,0x2131,0x2155,0x2178, +0x218b,0x21ad,0x21c0,0x21db,0x21fe,0x2221,0x2246,0x2257,0x2286,0x22b3,0x22ca,0x22e5,0x22f4,0x231f,0x2357,0x2391, +0x23bf,0x23d0,0x23dd,0x2401,0x2410,0x242c,0x2446,0x2463,0x249b,0x24b0,0x24dd,0x24fc,0x252a,0x254a,0x257e,0x258d, +0x25b7,0x25da,0x2605,0x2610,0x2621,0x263c,0x2660,0x266d,0x2682,0x26a9,0x26d4,0x270b,0x271e,0x272f,0x275f,0x2770, +0x277f,0x2794,0x27b2,0x27c5,0x27d8,0x27ef,0x280c,0x2817,0x2820,0x2842,0x2857,0x287c,0x2893,0x28bc,0x28d7,0x28ec, +0x2905,0x2926,0x295b,0x296c,0x299d,0x29c1,0x29d2,0x29eb,0x29f6,0x2a23,0x2a45,0x2a73,0x2aa6,0x2ab5,0x2ac6,0x2ae3, +0x2b25,0x2b4c,0x2b59,0x2b6e,0x2b92,0x2bb8,0x2bf1,0x2c02,0x2c26,0x2c31,0x2c3e,0x2c4d,0x2c72,0x2ca0,0x2cbc,0x2cd9, +0x2ce6,0x2cf7,0x2d15,0x2d38,0x2d55,0x2d62,0x2d82,0x2d9f,0x2dc0,0x2de9,0x2dfa,0x2e19,0x2e32,0x2e4b,0x2e5c,0x2ea5, +0x2eb6,0x2ecf,0x2efe,0x2f2b,0x2f50,0x2f92,0x2fae,0x2fbd,0x2fd4,0x3002,0x301b,0x3044,0x305e,0x3099,0x30b7,0x30c6, +0x30e6,0x3101,0x3125,0x3141,0x315f,0x317d,0x3194,0x31a3,0x31ae,0x31eb,0x31fe,0x3228,0x3248,0x3276,0x329a,0x32c2, +0x32e7,0x32f2,0x330b,0x3339,0x3375,0x3382,0x339d,0x33b2,0x33d4,0x33e5,0x33f6,0x3440,0x344f,0x20b6,1,0, +0x12,0x34a2,0x34b2,0x34c5,0x34d5,0x34e5,0x34f4,0x3504,0x3516,0x3529,0x353b,0x354b,0x355b,0x356a,0x3579,0x3589, +0x3596,0x35a5,0x35b9,0x2174,1,0,6,0x35de,0x35e9,0x35f6,0x3603,0x3610,0x361b,0x21b8,1,0, +0x1e,0x3638,0x3647,0x365c,0x3671,0x3686,0x369a,0x36ab,0x36bf,0x36d2,0x36e3,0x36fc,0x370e,0x371f,0x3733,0x3746, +0x375e,0x3770,0x377b,0x378b,0x3799,0x37ae,0x37c3,0x37d9,0x37f3,0x3809,0x3819,0x382d,0x3841,0x3852,0x386a,0x23e3, +1,0,0x69,0x3892,0x38b5,0x38be,0x38cb,0x38d6,0x38df,0x38ea,0x38f3,0x390c,0x3911,0x391a,0x3937,0x3940, +0x394d,0x3956,0x398b,0x3992,0x399b,0x39ae,0x39b9,0x39c2,0x39cd,0x39e6,0x39ef,0x39fe,0x3a09,0x3a12,0x3a1d,0x3a26, +0x3a2d,0x3a36,0x3a41,0x3a4a,0x3a63,0x3a6c,0x3a79,0x3a84,0x3a95,0x3aa0,0x3ab5,0x3acc,0x3ad5,0x3ade,0x3af7,0x3b02, +0x3b0b,0x3b14,0x3b2b,0x3b48,0x3b53,0x3b64,0x3b6f,0x3b76,0x3b83,0x3b90,0x3bbd,0x3bd2,0x3bdb,0x3bf6,0x3c19,0x3c3a, +0x3c5b,0x3c80,0x3ca7,0x3cc8,0x3ceb,0x3d0c,0x3d33,0x3d54,0x3d79,0x3d98,0x3db7,0x3dd6,0x3df3,0x3e14,0x3e35,0x3e58, +0x3e7d,0x3e9c,0x3ebb,0x3edc,0x3f03,0x3f28,0x3f47,0x3f68,0x3f8b,0x3fa6,0x3fbf,0x3fda,0x3ff3,0x4010,0x402b,0x4048, +0x4067,0x4084,0x40a1,0x40c0,0x40dd,0x40f8,0x4115,0x4132,0x4165,0x418c,0x419f,0x41bc,0x2753,1,0,6, +0x41e8,0x41f7,0x4207,0x4217,0x4227,0x4238,0x27b1,1,0,0x30,0x4256,0x4262,0x4270,0x427f,0x428e,0x429e, +0x42af,0x42c3,0x42d8,0x42ee,0x4301,0x4315,0x4325,0x432e,0x4339,0x4349,0x4365,0x4377,0x4385,0x4394,0x43a0,0x43b5, +0x43c9,0x43dc,0x43ea,0x43fe,0x440c,0x4416,0x4428,0x4434,0x4442,0x4452,0x4459,0x4460,0x4467,0x446e,0x4475,0x448b, +0x44ac,0x870,0x44be,0x44c9,0x44d8,0x44e1,0x44ec,0x44ff,0x4510,0x4521,0x2a41,1,0,4,0x453d,0x4548, +0x4554,0x455e,0x2a67,1,0,0xd0,0x4575,0x4582,0x4597,0x45a4,0x45b3,0x45c1,0x45d0,0x45df,0x45f1,0x4600, +0x460e,0x461f,0x462e,0x463d,0x464a,0x4656,0x4665,0x4674,0x467e,0x468b,0x4698,0x46a7,0x46b5,0x46c4,0x46d0,0x46da, +0x46e6,0x46f6,0x4706,0x4714,0x4720,0x4731,0x473d,0x4749,0x4757,0x4764,0x4770,0x477d,0xec1,0x478a,0x4798,0x47b2, +0x47bb,0x47c9,0x47d7,0x47e3,0x47f2,0x4800,0x480e,0x481a,0x4829,0x4837,0x4845,0x4852,0x4861,0x487c,0x488b,0x489c, +0x48ad,0x48c0,0x48d2,0x48e1,0x48f3,0x4902,0x490e,0x4919,0x1fd1,0x4926,0x4931,0x493c,0x4947,0x4952,0x496d,0x4978, +0x4983,0x498e,0x49a1,0x49b5,0x49c0,0x49cf,0x49de,0x49e9,0x49f4,0x4a01,0x4a10,0x4a1e,0x4a29,0x4a44,0x4a4e,0x4a5f, +0x4a70,0x4a7f,0x4a90,0x4a9b,0x4aa6,0x4ab1,0x4abc,0x4ac7,0x4ad2,0x4add,0x4ae7,0x4af2,0x4b02,0x4b0d,0x4b1b,0x4b28, +0x4b33,0x4b42,0x4b4f,0x4b5c,0x4b6b,0x4b78,0x4b89,0x4b9b,0x4bab,0x4bb6,0x4bc9,0x4be0,0x4bee,0x4bfb,0x4c06,0x4c13, +0x4c24,0x4c40,0x4c56,0x4c61,0x4c7e,0x4c8e,0x4c9d,0x4ca8,0x4cb3,0x20eb,0x4cbf,0x4cca,0x4ce2,0x4cf2,0x4d01,0x4d0f, +0x4d1d,0x4d28,0x4d33,0x4d47,0x4d5e,0x4d76,0x4d86,0x4d96,0x4da6,0x4db8,0x4dc3,0x4dce,0x4dd8,0x4de4,0x4df2,0x4e05, +0x4e11,0x4e1e,0x4e29,0x4e45,0x4e52,0x4e60,0x4e79,0x29eb,0x4e88,0x280c,0x4e95,0x4ea3,0x4eb5,0x4ec3,0x4ecf,0x4edf, +0x2c26,0x4eed,0x4ef9,0x4f04,0x4f0f,0x4f1a,0x4f2e,0x4f3c,0x4f53,0x4f5f,0x4f73,0x4f81,0x4f93,0x4fa9,0x4fb7,0x4fc9, +0x4fd7,0x4ff4,0x5006,0x5013,0x5024,0x5036,0x5050,0x505d,0x5070,0x5081,0x31a3,0x508e,0x32e7,0x509d,0x50af,0x50ba, +0x50c6,0x50d9,0x50e9,0x50f7,0x5105,0x5112,0x3531,1,0,6,0x5140,0x5153,0x5163,0x5171,0x5182,0x5192, +0x358d,0x12,0,1,0x51bc,0x51c2,0x359a,0x12,0,1,0x51bc,0x51c2,0x35a7,1,0,3, +0x51bc,0x51c2,0x51fb,0x35bd,1,0,3,0x51bc,0x51c2,0x51fb,0x35d3,1,0,0x12,0x5285,0x528f, +0x529b,0x52a2,0x52ad,0x52b2,0x52b9,0x52c0,0x52c9,0x52ce,0x52d3,0x52e3,0x870,0x44be,0x52ef,0x44c9,0x52ff,0x44d8, +0x367c,1,0,0xf,0x5285,0x5326,0x5330,0x533a,0x5345,0x4394,0x534f,0x535b,0x5363,0x536a,0x5374,0x529b, +0x52a2,0x52b2,0x537e,0x3703,1,0,0x17,0x5285,0x539b,0x533a,0x53a7,0x53b4,0x53c2,0x4394,0x53cd,0x529b, +0x53de,0x52b2,0x53ed,0x53fb,0x870,0x44ac,0x5407,0x5418,0x44be,0x52ef,0x44c9,0x52ff,0x44d8,0x5429,0x3820,1, +0,3,0x545c,0x5464,0x546c,0x3839,1,0,0x10,0x5495,0x549c,0x54ab,0x54cc,0x54ef,0x54fa,0x5519, +0x5530,0x553d,0x5546,0x5565,0x5598,0x55b3,0x55e2,0x55ff,0x5624,0x38d2,1,0,0x25,0x5673,0x5680,0x5693, +0x56a0,0x56cd,0x56f2,0x5707,0x5726,0x5747,0x5774,0x57ad,0x57d0,0x57f3,0x5820,0x5855,0x587c,0x58a5,0x58dc,0x590b, +0x592c,0x5951,0x5960,0x5983,0x599a,0x59a7,0x59b6,0x59d3,0x59ec,0x5a0f,0x5a34,0x5a4d,0x5a62,0x5a71,0x5a82,0x5a8f, +0x5ab0,0x5ad5,0x3ab5,1,0,4,0x5b13,0x5b1e,0x5b36,0x5b4e,0x3af1,0x12,0,1,0x5b76,0x5b8d, +0x3b08,1,0,4,0x453d,0x56f2,0x53de,0x5bb9,0x3b2d,0x36,1,2,4,8,0xe,0x10, +0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,0x4000,0x7000,0x8000,0x10000, +0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0xf000000,0x10000000,0x20000000,0x30f80000, +0x3638,0x3647,0x365c,0x3671,0x5bf6,0x3686,0x369a,0x5bec,0x36ab,0x36bf,0x36d2,0x5c07,0x36e3,0x36fc,0x370e,0x5c1e, +0x371f,0x3733,0x3746,0x5c47,0x375e,0x3770,0x377b,0x378b,0x5be3,0x3799,0x37ae,0x37c3,0x37d9,0x37f3,0x3809,0x3819, +0x382d,0x3841,0x5c3d,0x3852,0x386a,0x5c28,0x3e44,1,0,0xc,0x5dca,0x5de7,0x5dfe,0x5e23,0x5e36,0x5e47, +0x5e5c,0x5e6f,0x5e84,0x5e9f,0x5eb8,0x5ecd }; -const uint8_t PropNameData::bytesTries[15733]={ -0,0x15,0x6d,0xc3,0xc7,0x73,0xc2,0x12,0x76,0x7a,0x76,0x6a,0x77,0xa2,0x52,0x78, +const uint8_t PropNameData::bytesTries[16091]={ +0,0x15,0x6d,0xc3,0xe7,0x73,0xc2,0x12,0x76,0x7a,0x76,0x6a,0x77,0xa2,0x52,0x78, 1,0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74, 0x63,0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74, 0x81,3,0x61,0x2e,0x65,0x4c,0x6f,0xc3,0x18,0x73,0x69,0x1e,0x72,0x69,0x61,0x74, @@ -142,15 +144,17 @@ const uint8_t PropNameData::bytesTries[15733]={ 0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11,0xd8,0x40,0xa,0x11,0x63, 0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63, 0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c,0x65,0x63,0x61,0x73,0x65, -0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,0xa2,0x76,0x6e,0xa2,0x78, -0x70,0xa4,0x3e,0x71,0xa4,0x90,0x72,3,0x61,0x2c,0x65,0x36,0x67,0x54,0x69,0x9d, +0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,0xa2,0x76,0x6e,0xa2,0x98, +0x70,0xa4,0x5e,0x71,0xa4,0xb0,0x72,3,0x61,0x2c,0x65,0x36,0x67,0x54,0x69,0x9d, 0x14,0x64,0x69,0x63,0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e, 0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x9d,0x15,0x69,0x65,0x6d,0x6f,0x6a,0x69,0xa2, 0x47,3,0x66,0x44,0x6d,0x5c,0x74,0x7c,0x7a,0x19,0x77,0x6a,0x73,0x65,0x71,0x75, 0x65,0x6e,0x63,0x65,0xa3,0x46,0x1a,0x6c,0x61,0x67,0x73,0x65,0x71,0x75,0x65,0x6e, 0x63,0x65,0xa3,0x44,0x1e,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x65,0x71,0x75, 0x65,0x6e,0x63,0x65,0xa3,0x43,0x19,0x61,0x67,0x73,0x65,0x71,0x75,0x65,0x6e,0x63, -0x65,0xa3,0x45,0x12,0x61,0x74,0x68,0x4f,6,0x6f,0x39,0x6f,0x32,0x74,0xc3,9, +0x65,0xa3,0x45,2,0x61,0x54,0x63,0x58,0x6f,0x12,0x64,0x69,0x66,0x1f,0x69,0x65, +0x72,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x4b, +0x11,0x74,0x68,0x4f,0x10,0x6d,0xa3,0x4b,6,0x6f,0x39,0x6f,0x32,0x74,0xc3,9, 0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,0x1f,0x61,0x72,0x61,0x63,0x74, 0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x51,0x14,0x6d,0x65,0x72, 0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,0x65,0xd9,0x30,0,0x12,0x79, @@ -169,158 +173,162 @@ const uint8_t PropNameData::bytesTries[15733]={ 0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,0x65,0x72,0x6e,1,0x73,0x38, 0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x77,0x14,0x79,0x6e,0x74, 0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,0x1a,0x6f,0x74,0x61,0x74,0x69, -0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc2,0x4a,0x69, -0xc1,0x8e,0x69,0xa2,0x6f,0x6a,0xa4,0x5b,0x6c,4,0x62,0xc3,8,0x63,0x8c,0x65, +0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc2,0x72,0x69, +0xc1,0xb6,0x69,0xa2,0x6f,0x6a,0xa4,0x83,0x6c,4,0x62,0xc3,8,0x63,0x8c,0x65, 0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,0x77,0x11,0x65,0x72,0x4c,0x13, 0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,4, 0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x65,0x78,0x63,0x65,0x70, 0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,0x63,0xc3,0x10,0x18,0x61,0x64, 0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e, 0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,0x16,0x6e,0x65,0x62,0x72,0x65, -0x61,0x6b,0xc3,8,2,0x64,0x4a,0x6e,0xa2,0xad,0x73,1,0x63,0xd9,0x40,3, -0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,0x63,0xa2,0x44, -0x65,0xa2,0x6c,0x73,0x40,2,0x62,0x48,0x74,0x64,0x75,0xa2,0x48,0x1b,0x6e,0x61, -0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0xa3,0x48,0x44,0x1c,0x69,0x6e, -0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x45,0x46,1,0x61,0x40, -0x72,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47, -0x11,0x72,0x74,0x41,0x3e,0x10,0x6f,1,0x6d,0x30,0x6e,0x14,0x74,0x69,0x6e,0x75, -0x65,0x3f,0x16,0x70,0x61,0x74,0x6d,0x61,0x74,0x68,1,0x63,0x30,0x73,0x13,0x74, -0x61,0x72,0x74,0xa3,0x49,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0xa3,0x4a,1, -0x6e,0x36,0x6f,0x42,0x16,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x43,0x15,0x74,0x69, -0x66,0x69,0x65,0x72,1,0x73,0x30,0x74,0x12,0x79,0x70,0x65,0xd9,0x70,1,0x14, -0x74,0x61,0x74,0x75,0x73,0xc3,0x19,2,0x64,0x2e,0x70,0x86,0x73,0x10,0x63,0xc3, -0x17,0x11,0x69,0x63,1,0x70,0x46,0x73,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63, -0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x17,0x10,0x6f,0x1f,0x73,0x69,0x74, -0x69,0x6f,0x6e,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x16,0x10, -0x63,0xc3,0x16,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,7,0x11,0x69,0x6e,1, -0x63,0x4a,0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7, -0x13,0x72,0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49, -0x66,0x86,0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70, -0x68,0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c, -0x65,0x74,0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74, -0x3b,0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73, -0x69,0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2, -0x63,0xa2,0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12, -0x69,0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63, -0x30,0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72, -0x62,0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61, -0x73,0x65,0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20, -0,0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2, -5,0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,0xa2,0x62,0xa2,0xd0,0x63, -0xa4,0x4f,0x64,0xa6,0x1c,0x65,5,0x6d,0x75,0x6d,0x6e,0x70,0xa2,0x6b,0x78,0x10, -0x74,0x30,1,0x65,0x2c,0x70,0x12,0x69,0x63,0x74,0xa1,0x12,0x6e,0x64,0x65,1, -0x64,0x24,0x72,0x31,0x1b,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x69, -0x63,0xa1,0x10,0x6f,1,0x64,0x97,0x6a,0x10,0x69,0x92,3,0x63,0x44,0x6b,0x54, -0x6d,0x70,0x70,0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95, -0x17,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x1c,0x65,0x79,0x63,0x61,0x70, -0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0xa3,0x42,0x16,0x6f,0x64,0x69,0x66,0x69, -0x65,0x72,0x96,0x13,0x62,0x61,0x73,0x65,0x99,0x12,0x72,0x65,0x73,0x95,0x61,0x30, -0x62,0x4e,0x63,0x12,0x6f,0x6d,0x70,0x9b,0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69, -0x61,0x6e,0x77,0x69,0x64,0x74,0x68,0xc3,4,0x12,0x61,0x73,0x65,0x99,3,0x67, -0x44,0x68,0x4a,0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67, -0x69,0x74,0x23,0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70, -0x11,0x68,0x61,0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,0x6d,0x79,5, -0x6c,0x22,0x6c,0x36,0x6d,0x52,0x70,1,0x62,0xd9,0x40,0xd,0x74,0xc3,0x15,2, -0x61,0x32,0x6b,0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10, -0x67,0xd9,0x40,1,0x61,0xa2,0x4f,0x63,0xc3,0,0x69,0x11,0x64,0x69,2,0x63, -0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,0x65,0x64,0x62,0x72,0x61,0x63,0x6b,0x65, -0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,0x65,0xc3,0x15,0x24,1,0x6c,0x30,0x6f, -0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,0x61,0x73,0x73,0xc3,0,0x26,0x14,0x69, -0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,0x16,0x6e,0x67,0x67,0x6c,0x79,0x70,0x68, -0xd9,0x40,1,0x10,0x64,0x27,0x17,0x73,0x69,0x63,0x65,0x6d,0x6f,0x6a,0x69,0xa3, -0x41,6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b, -0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91, -0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e, -0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12, -0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f, -0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87, -0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18, -0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33, -0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,0x73,0x10,0x65,3, -0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65, -0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72, -0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d, -0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3, -2,3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29, -2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d, -0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3, -3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65, -0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63, -0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11, -0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12, -0x72,0x75,0x65,0x23,0xb,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69, -0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c, -0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74, -0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74, -0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,0x24,0x76,0x31,0x18, -0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74, -0xa3,0xe0,0x64,0x45,0x64,0x4e,0x68,0x88,0x69,1,0x6f,0x26,0x73,0xa3,0xf0,0x1a, -0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0xa3,0xf0,2,0x61,0xa3, -0xea,0x62,0xa3,0xe9,0x6f,0x13,0x75,0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65, -0x6c,0x6f,0x77,0xa3,0xe9,0x13,0x62,0x6f,0x76,0x65,0xa3,0xea,0x12,0x61,0x6e,0x72, -0x2c,0x15,0x65,0x61,0x64,0x69,0x6e,0x67,0x2d,0x61,0xa2,0x7b,0x62,0xa2,0xd4,0x63, -0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39, -0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39, -0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67, -0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81, -0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53, -0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f, -0x34,0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31, -0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72, -0xa3,0xe8,0x74,2,0x61,0x74,0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,1, -0x61,0x3e,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3, -0xc8,0x13,0x62,0x6f,0x76,0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8, -0xa2,0xd6,0x10,0x72,0xa3,0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65, -0xa2,0xe6,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66, -0x74,0xa3,0xe4,0xa2,0xdc,2,0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c, -0x6f,0x77,0xa2,0xdc,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12, -0x65,0x66,0x74,0xa3,0xda,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,0x48, -0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x33, -0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,0x74, -0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65, -0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x3d, -0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,0x74, -0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,0x53, -0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,0x65,0x63,0x74,0x69, -0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4d, -0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73, -0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,0x69,0x4d,1,0x6f, -0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61, -0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,0x65,0x75,0x74,0x72, -0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,1,0x65,0x30,0x72, -2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,0x72,0x69,0x67,0x68, -0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65, -0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,0x61, -0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,0x72,0x6f,0x70,0x65, -0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74, -0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,0x70,0x61,0x72,0x61, -0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,0x72,0x73,0x74,0x73, -0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,0x62, -0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,0x61, -0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,0x69, -0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,0x14,0x65,0x74,0x74, -0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,0x6e, -0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x16,0x6d,0xc9,0x20,0x74,0xc2,0x30,0x77, -0x89,0x77,0x86,0x79,0xa2,0x46,0x7a,1,0x61,0x58,0x6e,0x1a,0x61,0x6d,0x65,0x6e, -0x6e,0x79,0x6d,0x75,0x73,0x69,0x63,0xa4,0x40,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61, -0x74,0x69,0x6f,0x6e,0xa5,0x40,0x1c,0x6e,0x61,0x62,0x61,0x7a,0x61,0x72,0x73,0x71, -0x75,0x61,0x72,0x65,0xa5,0x18,0x10,0x61,1,0x6e,0x36,0x72,0x16,0x61,0x6e,0x67, -0x63,0x69,0x74,0x69,0xa3,0xfc,0x12,0x63,0x68,0x6f,0xa5,0x2c,1,0x65,0x88,0x69, -2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3, -0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e,0x68,0x65,0x78,0x61,0x67,0x72,0x61,0x6d, -0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x74,0x16,0x61,0x64,0x69,0x63,0x61,0x6c, -0x73,0xa3,0x49,0x13,0x7a,0x69,0x64,0x69,0xa5,0x34,0x74,0xa2,0x65,0x75,0xa4,0x4f, -0x76,3,0x61,0x3c,0x65,0x80,0x69,0xa2,0x50,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70, -0xa3,0x7d,1,0x69,0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65, -0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73,0x75,0x70,0x70,0x6c,0x65, -0x6d,0x65,0x6e,0x74,0xa3,0x7d,1,0x64,0x3c,0x72,0x19,0x74,0x69,0x63,0x61,0x6c, -0x66,0x6f,0x72,0x6d,0x73,0xa3,0x91,0x14,0x69,0x63,0x65,0x78,0x74,0xa2,0xaf,0x16, -0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xaf,0x15,0x74,0x68,0x6b,0x75,0x71,0x69, -0xa5,0x3f,5,0x69,0x3f,0x69,0x5a,0x6f,0x8c,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f, +0x61,0x6b,0xc3,8,2,0x64,0x4a,0x6e,0xa2,0xbd,0x73,1,0x63,0xd9,0x40,3, +0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,3,0x63,0x3a,0x65, +0x8c,0x73,0xa2,0x5b,0x74,0x12,0x79,0x70,0x65,0xd9,0x70,1,0x3e,0x10,0x6f,1, +0x6d,0x30,0x6e,0x14,0x74,0x69,0x6e,0x75,0x65,0x3f,0x16,0x70,0x61,0x74,0x6d,0x61, +0x74,0x68,1,0x63,0x30,0x73,0x13,0x74,0x61,0x72,0x74,0xa3,0x49,0x16,0x6f,0x6e, +0x74,0x69,0x6e,0x75,0x65,0xa3,0x4a,1,0x6e,0x36,0x6f,0x42,0x16,0x67,0x72,0x61, +0x70,0x68,0x69,0x63,0x43,0x15,0x74,0x69,0x66,0x69,0x65,0x72,1,0x73,0x30,0x74, +0x12,0x79,0x70,0x65,0xd9,0x70,1,0x14,0x74,0x61,0x74,0x75,0x73,0xc3,0x19,0x40, +2,0x62,0x48,0x74,0x64,0x75,0xa2,0x48,0x1b,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65, +0x72,0x61,0x74,0x6f,0x72,0xa3,0x48,0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70, +0x65,0x72,0x61,0x74,0x6f,0x72,0x45,0x46,1,0x61,0x40,0x72,0x1c,0x69,0x6e,0x61, +0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,1,0x72,0x2c,0x74,0x11, +0x75,0x73,0xc3,0x19,0x10,0x74,0x41,3,0x63,0x34,0x64,0x38,0x70,0xa2,0x48,0x73, +0x10,0x63,0xc3,0x17,0x10,0x62,0xc3,0x1a,0x11,0x69,0x63,2,0x63,0x4a,0x70,0x64, +0x73,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x63,0x61,0x74,0x65,0x67,0x6f,0x72, +0x79,0xc3,0x17,0x1b,0x6f,0x6e,0x6a,0x75,0x6e,0x63,0x74,0x62,0x72,0x65,0x61,0x6b, +0xc3,0x1a,0x10,0x6f,0x1f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x63,0x61,0x74, +0x65,0x67,0x6f,0x72,0x79,0xc3,0x16,0x10,0x63,0xc3,0x16,2,0x67,0xc3,6,0x6f, +0x26,0x74,0xc3,7,0x11,0x69,0x6e,1,0x63,0x4a,0x69,0x11,0x6e,0x67,1,0x67, +0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7,0x13,0x72,0x6f,0x75,0x70,0xc3,6,0x48, +0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49,0x66,0x86,0x67,0xa2,0x4a,0x68,3,0x61, +0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70,0x68,0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75, +0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x74,0x79,0x70,0x65,0xc3,0xb,0x10, +0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74,0x3b,0x10,0x74,0xc3,0xb,0x16,0x75,0x6c, +0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x78,0x63, +0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2,0x63,0xa2,0x44,0x65,0xa2,0x4b,0x72,3, +0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c, +0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63,0x30,0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b, +0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72,0x62,0x72,0x65,0x61,0x6b,0xc3,0x12,0x14, +0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61,0x73,0x65,0x35,0x11,0x78,0x74,0x37,0xc2, +5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20,0,0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63, +0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2,5,0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20, +0,0x61,0xa2,0xa2,0x62,0xa2,0xd0,0x63,0xa4,0x4f,0x64,0xa6,0x1c,0x65,5,0x6d, +0x75,0x6d,0x6e,0x70,0xa2,0x6b,0x78,0x10,0x74,0x30,1,0x65,0x2c,0x70,0x12,0x69, +0x63,0x74,0xa1,0x12,0x6e,0x64,0x65,1,0x64,0x24,0x72,0x31,0x1b,0x70,0x69,0x63, +0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0xa1,0x10,0x6f,1,0x64,0x97,0x6a, +0x10,0x69,0x92,3,0x63,0x44,0x6b,0x54,0x6d,0x70,0x70,0x1a,0x72,0x65,0x73,0x65, +0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95,0x17,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e, +0x74,0x9b,0x1c,0x65,0x79,0x63,0x61,0x70,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65, +0xa3,0x42,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x96,0x13,0x62,0x61,0x73,0x65, +0x99,0x12,0x72,0x65,0x73,0x95,0x61,0x30,0x62,0x4e,0x63,0x12,0x6f,0x6d,0x70,0x9b, +0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69,0x61,0x6e,0x77,0x69,0x64,0x74,0x68,0xc3, +4,0x12,0x61,0x73,0x65,0x99,3,0x67,0x44,0x68,0x4a,0x6c,0x4e,0x73,0x1a,0x63, +0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,0x74,0x23,0x10,0x65,0xd9,0x40,0, +0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,0x68,0x61,0x20,0x14,0x62,0x65,0x74, +0x69,0x63,0x21,0x11,0x75,0x6d,0x79,5,0x6c,0x22,0x6c,0x36,0x6d,0x52,0x70,1, +0x62,0xd9,0x40,0xd,0x74,0xc3,0x15,2,0x61,0x32,0x6b,0xc3,1,0x6f,0x11,0x63, +0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,0xd9,0x40,1,0x61,0xa2,0x4f,0x63, +0xc3,0,0x69,0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72, +0x65,0x64,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70, +0x65,0xc3,0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12, +0x61,0x73,0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69, +0x16,0x6e,0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,0x17,0x73, +0x69,0x63,0x65,0x6d,0x6f,0x6a,0x69,0xa3,0x41,6,0x68,0x7c,0x68,0x54,0x69,0x85, +0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b,0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1, +0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91,0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68, +0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e,0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65, +0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12,0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14, +0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f,0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77, +0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87,0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65, +0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65, +0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33,0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40, +2,1,0x6e,0x72,0x73,0x10,0x65,3,0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17, +0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67, +0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e, +0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c, +0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3,2,3,0x61,0x30,0x65,0x34,0x69,0xa2, +0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29,2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16, +0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d,0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74, +0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3,3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67, +0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e, +0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63,0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66, +0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73, +0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12,0x72,0x75,0x65,0x23,0xb,0x6b,0x5b,0x6f, +0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69,0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61, +0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c,0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67, +0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74,0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21, +0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74,0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65, +0x64,0x21,1,0x61,0x24,0x76,0x31,0x18,0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e, +0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74,0xa3,0xe0,0x64,0x45,0x64,0x4e,0x68,0x88, +0x69,1,0x6f,0x26,0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72, +0x69,0x70,0x74,0xa3,0xf0,2,0x61,0xa3,0xea,0x62,0xa3,0xe9,0x6f,0x13,0x75,0x62, +0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa3,0xe9,0x13,0x62,0x6f, +0x76,0x65,0xa3,0xea,0x12,0x61,0x6e,0x72,0x2c,0x15,0x65,0x61,0x64,0x69,0x6e,0x67, +0x2d,0x61,0xa2,0x7b,0x62,0xa2,0xd4,0x63,0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2, +0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39,0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35, +0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39,0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33, +0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67,0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76, +0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81,0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84, +0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53,0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b, +0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f,0x34,0x51,6,0x33,8,0x33,0x63,0x34, +0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31,0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,0xa2, +0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72,0xa3,0xe8,0x74,2,0x61,0x74,0x62,0x7c, +0x74,0x14,0x61,0x63,0x68,0x65,0x64,1,0x61,0x3e,0x62,0x13,0x65,0x6c,0x6f,0x77, +0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3,0xc8,0x13,0x62,0x6f,0x76,0x65,0xa2,0xd6, +0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8,0xa2,0xd6,0x10,0x72,0xa3,0xd8,0xa2,0xca, +0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65,0xa2,0xe6,1,0x6c,0x30,0x72,0x13,0x69, +0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66,0x74,0xa3,0xe4,0xa2,0xdc,2,0x65,0x2c, +0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c,0x6f,0x77,0xa2,0xdc,1,0x6c,0x30,0x72, +0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12,0x65,0x66,0x74,0xa3,0xda,0xb,0x6e,0xc0, +0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,0x48,0x77,1,0x68,0x24,0x73,0x33,0x17,0x69, +0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x33,0x22,1,0x69,0x30,0x6c,2,0x65,0x3d, +0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,0x74,0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2, +0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d, +0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x3d,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b, +0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f, +0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,0x53,0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b, +0x70,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69, +0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4d,0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f, +0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72, +0x2f,1,0x66,0x41,0x69,0x4d,1,0x6f,0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73, +0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19, +0x68,0x65,0x72,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66, +0xa2,0x6a,0x6c,0x20,1,0x65,0x30,0x72,2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18, +0x66,0x74,0x74,0x6f,0x72,0x69,0x67,0x68,0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f, +0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69, +0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27, +0x74,0x29,0x75,0x15,0x72,0x6f,0x70,0x65,0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74, +0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65, +0x72,0x25,0x17,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73, +0x10,0x69,0x47,0x1f,0x72,0x73,0x74,0x73,0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f, +0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,0x62,0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c, +0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c, +0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,0x69,0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d, +0x62,0x65,0x72,0x2b,0x14,0x65,0x74,0x74,0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f, +0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0, +0x16,0x6d,0xc9,0x5e,0x74,0xc2,0x48,0x77,0x89,0x77,0x86,0x79,0xa2,0x46,0x7a,1, +0x61,0x58,0x6e,0x1a,0x61,0x6d,0x65,0x6e,0x6e,0x79,0x6d,0x75,0x73,0x69,0x63,0xa4, +0x40,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa5,0x40,0x1c,0x6e, +0x61,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x10,0x61, +1,0x6e,0x36,0x72,0x16,0x61,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0xfc,0x12,0x63, +0x68,0x6f,0xa5,0x2c,1,0x65,0x88,0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79, +0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e, +0x68,0x65,0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3, +0x74,0x16,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,0x13,0x7a,0x69,0x64,0x69, +0xa5,0x34,0x74,0xa2,0x65,0x75,0xa4,0x67,0x76,3,0x61,0x3c,0x65,0x80,0x69,0xa2, +0x50,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d,1,0x69,0xa3,0x9f,0x72,0x1e, +0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0xa2, +0x6c,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x7d,1,0x64, +0x3c,0x72,0x19,0x74,0x69,0x63,0x61,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x91,0x14, +0x69,0x63,0x65,0x78,0x74,0xa2,0xaf,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3, +0xaf,0x15,0x74,0x68,0x6b,0x75,0x71,0x69,0xa5,0x3f,6,0x69,0x57,0x69,0x44,0x6f, +0x76,0x72,0x8e,0x75,0x19,0x6c,0x75,0x74,0x69,0x67,0x61,0x6c,0x61,0x72,0x69,0xa5, +0x52,2,0x62,0x34,0x66,0x3c,0x72,0x13,0x68,0x75,0x74,0x61,0xa3,0xfb,0x13,0x65, +0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61,0x67,0x68,0xa3,0x90,1,0x64,0x2a,0x74, +0x10,0x6f,0xa5,0x3d,0x12,0x68,0x72,0x69,0xa5,0x51,0x1c,0x61,0x6e,0x73,0x70,0x6f, 0x72,0x74,0x61,0x6e,0x64,0x6d,0x61,0x70,0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f, -0x6c,0x73,0xa3,0xcf,2,0x62,0x34,0x66,0x3c,0x72,0x13,0x68,0x75,0x74,0x61,0xa3, -0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61,0x67,0x68,0xa3,0x90,0x11, -0x74,0x6f,0xa5,0x3d,0x61,0x3e,0x65,0xa2,0xa0,0x68,0x10,0x61,1,0x61,0x24,0x69, +0x6c,0x73,0xa3,0xcf,0x61,0x3e,0x65,0xa2,0xa0,0x68,0x10,0x61,1,0x61,0x24,0x69, 0x53,0x11,0x6e,0x61,0x3d,4,0x67,0x8e,0x69,0xa2,0x49,0x6b,0xa2,0x72,0x6d,0xa2, 0x74,0x6e,0x10,0x67,1,0x73,0x68,0x75,0x10,0x74,0xa4,0x10,1,0x63,0x40,0x73, 0x11,0x75,0x70,0xa4,0x33,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x33,0x18, @@ -336,518 +344,528 @@ const uint8_t PropNameData::bytesTries[15733]={ 0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78,0x74,0x65,0x6e,0x64, 0x65,0x64,0xa2,0xad,0x10,0x61,0xa5,0x3e,0x11,0x61,0x73,0x62,0x12,0x65,0x78,0x74, 0xa2,0xad,0x10,0x61,0xa5,0x3e,0x15,0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70, -0xc3,0x4b,0x70,0xa6,0x61,0x72,0xa8,0x1d,0x73,7,0x6f,0xc1,0xbe,0x6f,0xa2,0x69, -0x70,0xa2,0x85,0x75,0xa2,0xa4,0x79,2,0x6c,0x50,0x6d,0x62,0x72,0x12,0x69,0x61, +0xc3,0x64,0x70,0xa6,0x7a,0x72,0xa8,0x36,0x73,7,0x6f,0xc1,0xd7,0x6f,0xa2,0x79, +0x70,0xa2,0x95,0x75,0xa2,0xb4,0x79,2,0x6c,0x50,0x6d,0x62,0x72,0x12,0x69,0x61, 0x63,0x3a,0x12,0x73,0x75,0x70,0xa4,0x17,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74, 0xa5,0x17,0x17,0x6f,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0xa3,0x8f,0x13,0x62,0x6f, -0x6c,0x73,1,0x61,0x4c,0x66,0x10,0x6f,0x1f,0x72,0x6c,0x65,0x67,0x61,0x63,0x79, -0x63,0x6f,0x6d,0x70,0x75,0x74,0x69,0x6e,0x67,0xa5,0x32,0x1f,0x6e,0x64,0x70,0x69, +0x6c,0x73,1,0x61,0x6c,0x66,0x10,0x6f,0x1f,0x72,0x6c,0x65,0x67,0x61,0x63,0x79, +0x63,0x6f,0x6d,0x70,0x75,0x74,0x69,0x6e,0x67,0xa4,0x32,0x12,0x73,0x75,0x70,0xa4, +0x50,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x50,0x1f,0x6e,0x64,0x70,0x69, 0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x78,0x74,1,0x61,0xa5,0x2a, 0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa5,0x2a,2,0x67,0x34,0x72,0x3e,0x79,0x13, 0x6f,0x6d,0x62,0x6f,0xa5,0x16,0x13,0x64,0x69,0x61,0x6e,0xa5,0x23,0x17,0x61,0x73, 0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,0x69,0x61, 0x6c,0x73,0xa3,0x56,0x12,0x63,0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,0x66,0x69, -0x65,0x72,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x76,0x74, +0x65,0x72,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x88,0x74, 0x1d,0x74,0x6f,0x6e,0x73,0x69,0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa5, -6,0x15,0x64,0x61,0x6e,0x65,0x73,0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb, -0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c, -0x6d,0x9e,0x70,0xa2,0x4b,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e, -0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72, -1,0x61,0x4e,0x73,0x12,0x63,0x72,0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73, -0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62, -0x73,0x1b,0x61,0x74,0x68,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a, -1,0x6c,0x40,0x75,1,0x61,0x6e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, -0x6e,0xa3,0x8e,0x15,0x65,0x6d,0x65,0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79, -0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61, -0xa3,0x6d,0x62,0xa3,0x6e,3,0x61,0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79, -0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72, -0x61,0x70,0x68,0x73,0xa5,5,0x14,0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67, -0x62,0xa3,0x68,0x63,0xa3,0xfa,0x13,0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69, -0x63,0x61,0x6c,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75, -0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x61,0x88,0x68,0xa2,0x48, -0x69,0xa2,0x71,0x6d,0x12,0x61,0x6c,0x6c,1,0x66,0x46,0x6b,0x15,0x61,0x6e,0x61, -0x65,0x78,0x74,0xa4,0x29,0x15,0x65,0x6e,0x73,0x69,0x6f,0x6e,0xa5,0x29,0x12,0x6f, -0x72,0x6d,1,0x73,0xa3,0x54,0x76,0x16,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0xa3, -0x54,1,0x6d,0x36,0x75,0x16,0x72,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0xa1,0x15, -0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,0xac,1,0x61,0x52,0x6f,0x13,0x72,0x74,0x68, -0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f, -0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,0x76,0x12,0x69,0x61,0x6e,0xa3,0x79,0x12,0x61, -0x64,0x61,0xa3,0xd9,1,0x64,0x50,0x6e,0x13,0x68,0x61,0x6c,0x61,0x50,0x1d,0x61, -0x72,0x63,0x68,0x61,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xf9,0x13, -0x64,0x68,0x61,0x6d,0xa3,0xf8,5,0x72,0x35,0x72,0x44,0x73,0x64,0x75,1,0x61, -0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x69,0x76, -0x61,0x74,0x65,0x75,0x73,0x65,0xa2,0x4e,0x13,0x61,0x72,0x65,0x61,0xa3,0x4e,0x1b, -0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0xf6,0x61,0x40, -0x68,0x82,0x6c,0x19,0x61,0x79,0x69,0x6e,0x67,0x63,0x61,0x72,0x64,0x73,0xa3,0xcc, -2,0x68,0x38,0x6c,0x4a,0x75,0x15,0x63,0x69,0x6e,0x68,0x61,0x75,0xa3,0xf5,0x17, -0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xf3,0x15,0x6d,0x79,0x72,0x65,0x6e, -0x65,0xa3,0xf4,1,0x61,0x8e,0x6f,1,0x65,0x74,0x6e,0x16,0x65,0x74,0x69,0x63, -0x65,0x78,0x74,0xa2,0x72,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,0x8d,0x15,0x6e, -0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65, -0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x97,1,0x67,0x3e, -0x69,0x13,0x73,0x74,0x6f,0x73,0xa2,0xa6,0x13,0x64,0x69,0x73,0x63,0xa3,0xa6,0x12, -0x73,0x70,0x61,0xa3,0x96,1,0x65,0x5c,0x75,1,0x6d,0x2a,0x6e,0x11,0x69,0x63, -0x67,0x10,0x69,0xa2,0xc0,0x1d,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0x79,0x6d, -0x62,0x6f,0x6c,0x73,0xa3,0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,0xa3,0x6d,0xa2,0xf0, -0x6e,0xa8,0x23,0x6f,6,0x70,0x63,0x70,0x56,0x72,0x8a,0x73,0xa2,0x4c,0x74,0x10, -0x74,0x1f,0x6f,0x6d,0x61,0x6e,0x73,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65, -0x72,0x73,0xa5,0x28,0x18,0x74,0x69,0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,0x61, -0x63,0x74,0x65,0x72,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x85, -1,0x69,0x46,0x6e,0x1e,0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,0x67, -0x62,0x61,0x74,0x73,0xa3,0xf2,0x11,0x79,0x61,0x47,1,0x61,0x30,0x6d,0x13,0x61, -0x6e,0x79,0x61,0xa3,0x7a,0x11,0x67,0x65,0xa5,0xf,0x63,0xa2,0x7b,0x67,0xa2,0x7b, -0x6c,1,0x63,0xa2,0x6c,0x64,6,0x70,0x42,0x70,0x3a,0x73,0x5a,0x74,0x88,0x75, -0x14,0x79,0x67,0x68,0x75,0x72,0xa5,0x3b,0x11,0x65,0x72,1,0x6d,0x2e,0x73,0x12, -0x69,0x61,0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3,0xf1,0x10,0x6f,1,0x67,0x3a,0x75, -0x18,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61, -0x6e,0xa5,0x22,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0xbf,0x68,0x42,0x69,0x54,0x6e, -0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xf0,0x17,0x75, -0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,0x14,0x74,0x61,0x6c,0x69,0x63,0xa3, -0x58,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,0x72,0x85,0x12,0x68,0x61,0x6d,0x65, -6,0x6f,0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,0xa2,0x62,0x79,0x14,0x61,0x6e,0x6d, -0x61,0x72,0x58,0x12,0x65,0x78,0x74,2,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x65,0x13, -0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb6,0x62,0xa3,0xee,1,0x64,0x52,0x6e,0x15, -0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75,0x70,0xa4,0xd,0x16,0x70,0x6c, -0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2,0xec,0x13,0x66,0x69,0x65,0x72, -1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0xa3, -0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10,0x6f,0xa3,0xed,1,0x6c,0x44, -0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73, -0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61,0xa2,0x9b,0x65,0xa4,0x4c,0x69, -1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18,0x70,0xa2,0x71,0x73,0x36,0x74, -0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x15,0x79,0x6d,0x62,0x6f,0x6c, -0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61,0x74,0x68,0x73,0x79,0x6d,0x62, -0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x17,0x6c,0x6c,0x61,0x6e,0x65, -0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63, -0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c, -0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x15,0x79, -0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64,1,0x61,0x3c,0x70,0x19,0x69, -0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3,0xcd,0x14,0x72,0x72,0x6f,0x77, -0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,0x6f,0x72,0x44,0x73,0x4e,0x74,0x62, -0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa5,0x20,0x13,0x63, -0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa5, -0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f, -0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0xa3,0x5d,0x16,0x6d,0x61, -0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f, -0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63, -0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x68,0x50,0x6b,0x7e,0x6c,0x88,0x6e, -1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0xea,0x12,0x61,0x69, -0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67,0xa2,0xaa,0x14,0x74,0x69, -0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xe9,0x13,0x61,0x73,0x61, -0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x4f,3,0x64,0x6c,0x65,0x7e, -0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,0x69, -0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xd7,0x15,0x75,0x72,0x73,0x69, -0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa5,0x21,0x17, -0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8,0x12,0x65,0x78,0x74,0xa2,0xd5, -0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5,0x18,0x64,0x65,0x6b,0x69,0x6b, -0x61,0x6b,0x75,0x69,0xa3,0xeb,6,0x6b,0x3b,0x6b,0x56,0x6f,0x5a,0x75,0x64,0x79, -0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70,0x75,0x61,0x63,0x68,0x75,0x65,0x68, -0x6d,0x6f,0x6e,0x67,0xa5,0x27,0x10,0x6f,0xa3,0x92,0x14,0x62,0x6c,0x6f,0x63,0x6b, -0x21,1,0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,0x17,0x62,0x65,0x72,0x66,0x6f, -0x72,0x6d,0x73,0x7b,0x61,0x44,0x62,0x21,0x65,0x10,0x77,1,0x61,0xa5,0xe,0x74, -0x14,0x61,0x69,0x6c,0x75,0x65,0xa3,0x8b,2,0x62,0x3c,0x67,0x4a,0x6e,0x17,0x64, -0x69,0x6e,0x61,0x67,0x61,0x72,0x69,0xa5,0x26,0x15,0x61,0x74,0x61,0x65,0x61,0x6e, -0xa3,0xef,0x16,0x6d,0x75,0x6e,0x64,0x61,0x72,0x69,0xa5,0x47,0x67,0xc4,0x5d,0x6a, -0xc1,0xe4,0x6a,0xa2,0xdf,0x6b,0xa2,0xf8,0x6c,4,0x61,0x54,0x65,0xa2,0x6b,0x69, -0xa2,0x82,0x6f,0xa2,0xc1,0x79,1,0x63,0x2e,0x64,0x12,0x69,0x61,0x6e,0xa3,0xa9, -0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,0x69,0x6e,1,0x31,0x96, -0x65,0x11,0x78,0x74,6,0x64,0x21,0x64,0xa3,0x95,0x65,0x2c,0x66,0xa5,0x39,0x67, -0xa5,0x3a,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,6,0x64,0xc,0x64,0xa3,0x95,0x65, -0xa3,0xe7,0x66,0xa5,0x39,0x67,0xa5,0x3a,0x61,0x2a,0x62,0x29,0x63,0xa3,0x94,0x26, -0x18,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6d,0x24,0x12,0x73,0x75,0x70, -0x24,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,1,0x70,0x42,0x74,0x1d,0x74, -0x65,0x72,0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x79,0x12,0x63, -0x68,0x61,0xa3,0x9c,2,0x6d,0x4e,0x6e,0x54,0x73,0x10,0x75,0xa2,0xb0,0x12,0x73, -0x75,0x70,0xa4,0x31,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x31,0x11,0x62, -0x75,0xa3,0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,0xe8,0x62,1,0x69,0x38,0x73, -0x17,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x75,0x17,0x64,0x65,0x6f,0x67, -0x72,0x61,0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74, -0x65,0x73,0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,0x14,0x61,0x6e,0x65,0x73,0x65, -0xa3,0xb5,0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9, -1,0x61,0xa2,0x43,0x68,4,0x61,0x40,0x69,0x50,0x6d,0x6e,0x6f,0x86,0x75,0x15, +6,1,0x64,0x2e,0x75,0x12,0x77,0x61,0x72,0xa5,0x4f,0x14,0x61,0x6e,0x65,0x73, +0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e, +0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c,0x6d,0x9e,0x70,0xa2,0x4b,0x73,0x13, +0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67, +0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72,1,0x61,0x4e,0x73,0x12,0x63,0x72, +0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70, +0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62,0x73,0x1b,0x61,0x74,0x68,0x6f,0x70, +0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,1,0x6c,0x40,0x75,1,0x61,0x6e, +0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x15,0x65,0x6d,0x65, +0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79,0x70,0x72,0x69,0x76,0x61,0x74,0x65, +0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61,0xa3,0x6d,0x62,0xa3,0x6e,3,0x61, +0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61, +0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x14, +0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67,0x62,0xa3,0x68,0x63,0xa3,0xfa,0x13, +0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6f,0x70,0x65,0x72, +0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69, +0x6f,0x6e,0xa3,0x8e,0x61,0x88,0x68,0xa2,0x48,0x69,0xa2,0x71,0x6d,0x12,0x61,0x6c, +0x6c,1,0x66,0x46,0x6b,0x15,0x61,0x6e,0x61,0x65,0x78,0x74,0xa4,0x29,0x15,0x65, +0x6e,0x73,0x69,0x6f,0x6e,0xa5,0x29,0x12,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76, +0x16,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72, +0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3, +0xac,1,0x61,0x52,0x6f,0x13,0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72, +0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e, +0x76,0x12,0x69,0x61,0x6e,0xa3,0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50, +0x6e,0x13,0x68,0x61,0x6c,0x61,0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e, +0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,5, +0x72,0x35,0x72,0x44,0x73,0x64,0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75, +0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xa2, +0x4e,0x13,0x61,0x72,0x65,0x61,0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61, +0x68,0x6c,0x61,0x76,0x69,0xa3,0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,0x79,0x69, +0x6e,0x67,0x63,0x61,0x72,0x64,0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,0x75,0x15, +0x63,0x69,0x6e,0x68,0x61,0x75,0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e, +0x67,0xa3,0xf3,0x15,0x6d,0x79,0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,0x8e,0x6f, +1,0x65,0x74,0x6e,0x16,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,1,0x65, +0x2c,0x73,0x11,0x75,0x70,0xa3,0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72, +0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69, +0x63,0x69,0x61,0x6e,0xa3,0x97,1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,0x73,0xa2, +0xa6,0x13,0x64,0x69,0x73,0x63,0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,1,0x65, +0x5c,0x75,1,0x6d,0x2a,0x6e,0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0,0x1d,0x6e, +0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xc0,0x13, +0x6a,0x61,0x6e,0x67,0xa3,0xa3,0x6d,0xa2,0xf7,0x6e,0xa8,0x30,0x6f,6,0x70,0x63, +0x70,0x56,0x72,0x8a,0x73,0xa2,0x4c,0x74,0x10,0x74,0x1f,0x6f,0x6d,0x61,0x6e,0x73, +0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa5,0x28,0x18,0x74,0x69, +0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,0x61,0x63,0x74,0x65,0x72,0x72,0x65,0x63, +0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x85,1,0x69,0x46,0x6e,0x1e,0x61,0x6d, +0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,0x67,0x62,0x61,0x74,0x73,0xa3,0xf2,0x11, +0x79,0x61,0x47,1,0x61,0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,0xa3,0x7a,0x11,0x67, +0x65,0xa5,0xf,0x63,0xa2,0x82,0x67,0xa2,0x82,0x6c,2,0x63,0x32,0x64,0x3c,0x6f, +0x12,0x6e,0x61,0x6c,0xa5,0x4e,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,6,0x70,0x42, +0x70,0x3a,0x73,0x5a,0x74,0x88,0x75,0x14,0x79,0x67,0x68,0x75,0x72,0xa5,0x3b,0x11, +0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,0x61,0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3, +0xf1,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61, +0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61,0x6e,0xa5,0x22,0x14,0x75,0x72,0x6b,0x69,0x63, +0xa3,0xbf,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62, +0x69,0x61,0x6e,0xa3,0xf0,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4, +0x14,0x74,0x61,0x6c,0x69,0x63,0xa3,0x58,0x10,0x72,0x85,0x12,0x68,0x61,0x6d,0x65, +6,0x6f,0x8c,0x6f,0x78,0x72,0xa2,0x67,0x75,0xa2,0x68,0x79,0x14,0x61,0x6e,0x6d, +0x61,0x72,0x58,0x12,0x65,0x78,0x74,3,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x63,0xa5, +0x4d,0x65,0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x63,0xa5, +0x4d,1,0x64,0x52,0x6e,0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75, +0x70,0xa4,0xd,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2, +0xec,0x13,0x66,0x69,0x65,0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65, +0x74,0x74,0x65,0x72,0x73,0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10, +0x6f,0xa3,0xed,1,0x6c,0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73, +0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61, +0xa2,0x9b,0x65,0xa4,0x4c,0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18, +0x70,0xa2,0x71,0x73,0x36,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81, +0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61, +0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69, +0x17,0x6c,0x6c,0x61,0x6e,0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17, +0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d, +0x61,0x74,0x69,0x63,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3, +0x66,0x62,0xa3,0x69,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64, +1,0x61,0x3c,0x70,0x19,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3, +0xcd,0x14,0x72,0x72,0x6f,0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,0x6f, +0x72,0x44,0x73,0x4e,0x74,0x62,0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,0x61, +0x6c,0x73,0xa5,0x20,0x13,0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,0x6d, +0x67,0x6f,0x6e,0x64,0x69,0xa5,0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17, +0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75, +0x6d,0xa3,0x5d,0x16,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17, +0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e, +0x75,0x6d,0x65,0x72,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x68, +0x50,0x6b,0x7e,0x6c,0x88,0x6e,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61, +0x6e,0xa3,0xea,0x12,0x61,0x69,0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e, +0x67,0xa2,0xaa,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69, +0xa3,0xe9,0x13,0x61,0x73,0x61,0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d, +0x4f,3,0x64,0x6c,0x65,0x7e,0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,0x63, +1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3, +0xd7,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,0x64, +0x72,0x69,0x6e,0xa5,0x21,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8, +0x12,0x65,0x78,0x74,0xa2,0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5, +0x18,0x64,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,6,0x6b,0x3b,0x6b, +0x56,0x6f,0x5a,0x75,0x64,0x79,0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70,0x75, +0x61,0x63,0x68,0x75,0x65,0x68,0x6d,0x6f,0x6e,0x67,0xa5,0x27,0x10,0x6f,0xa3,0x92, +0x14,0x62,0x6c,0x6f,0x63,0x6b,0x21,1,0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15, +0x17,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0x7b,0x61,0x44,0x62,0x21,0x65,0x10, +0x77,1,0x61,0xa5,0xe,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0xa3,0x8b,2,0x62, +0x3c,0x67,0x4a,0x6e,0x17,0x64,0x69,0x6e,0x61,0x67,0x61,0x72,0x69,0xa5,0x26,0x15, +0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0xef,0x16,0x6d,0x75,0x6e,0x64,0x61,0x72,0x69, +0xa5,0x47,0x67,0xc4,0x7b,0x6a,0xc1,0xef,0x6a,0xa2,0xdf,0x6b,0xa2,0xf8,0x6c,4, +0x61,0x54,0x65,0xa2,0x6b,0x69,0xa2,0x82,0x6f,0xa2,0xc1,0x79,1,0x63,0x2e,0x64, +0x12,0x69,0x61,0x6e,0xa3,0xa9,0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74, +0x11,0x69,0x6e,1,0x31,0x96,0x65,0x11,0x78,0x74,6,0x64,0x21,0x64,0xa3,0x95, +0x65,0x2c,0x66,0xa5,0x39,0x67,0xa5,0x3a,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,6, +0x64,0xc,0x64,0xa3,0x95,0x65,0xa3,0xe7,0x66,0xa5,0x39,0x67,0xa5,0x3a,0x61,0x2a, +0x62,0x29,0x63,0xa3,0x94,0x26,0x18,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c, +0x6d,0x24,0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25, +1,0x70,0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62, +0x6f,0x6c,0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,0x6d,0x4e,0x6e,0x54,0x73, +0x10,0x75,0xa2,0xb0,0x12,0x73,0x75,0x70,0xa4,0x31,0x16,0x70,0x6c,0x65,0x6d,0x65, +0x6e,0x74,0xa5,0x31,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3, +0xe8,0x62,1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3, +0x75,0x17,0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75, +0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76, +0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1, +0x61,0xa3,0xb4,0x62,0xa3,0xb9,2,0x61,0x3a,0x68,0xa2,0xa9,0x69,0x15,0x72,0x61, +0x74,0x72,0x61,0x69,0xa5,0x4c,5,0x74,0x35,0x74,0x34,0x77,0x7a,0x79,0x13,0x61, +0x68,0x6c,0x69,0xa3,0xa2,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e,1,0x65,0x4c,0x70, +0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0x65,0x6e,0x73,0x69, +0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78,0x74,0xa3,0x6b,0x10,0x69,0xa5,0x46,0x69,0xa2, +0x4e,0x6b,0xa2,0x51,0x6e,3,0x61,0x34,0x62,0x84,0x67,0x8a,0x6e,0x12,0x61,0x64, +0x61,0x4d,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65,0x6d, +0x65,0x6e,0x74,0xa3,0xcb,0x11,0x78,0x74,2,0x61,0xa5,0x13,0x62,0xa5,0x38,0x65, +0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa5,0x13,0x62,0xa5,0x38,0x11,0x75,0x6e,0xa3, +0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x97,0x12, +0x74,0x68,0x69,0xa3,0xc1,0x1c,0x74,0x6f,0x76,0x69,0x6b,0x6e,0x75,0x6d,0x65,0x72, +0x61,0x6c,0x73,0xa5,0x45,4,0x61,0x40,0x69,0x50,0x6d,0x6e,0x6f,0x86,0x75,0x15, 0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,0x68,0x74,0x68,0x69, 0xa3,0x89,0x1d,0x74,0x61,0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x63,0x72,0x69,0x70, 0x74,0xa5,0x30,0x11,0x65,0x72,0x68,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3, -0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,5,0x74,0x35,0x74,0x34,0x77,0x7a,0x79,0x13, -0x61,0x68,0x6c,0x69,0xa3,0xa2,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e,1,0x65,0x4c, -0x70,0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0x65,0x6e,0x73, -0x69,0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78,0x74,0xa3,0x6b,0x10,0x69,0xa5,0x46,0x69, -0xa2,0x4e,0x6b,0xa2,0x51,0x6e,3,0x61,0x34,0x62,0x84,0x67,0x8a,0x6e,0x12,0x61, -0x64,0x61,0x4d,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65, -0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11,0x78,0x74,2,0x61,0xa5,0x13,0x62,0xa5,0x38, -0x65,0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa5,0x13,0x62,0xa5,0x38,0x11,0x75,0x6e, -0xa3,0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x97, -0x12,0x74,0x68,0x69,0xa3,0xc1,0x1c,0x74,0x6f,0x76,0x69,0x6b,0x6e,0x75,0x6d,0x65, -0x72,0x61,0x6c,0x73,0xa5,0x45,0x67,0xa2,0xb5,0x68,0xa4,0x84,0x69,3,0x64,0x4c, -0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65,0x6e, -0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,0x17,0x6f,0x67,0x72,0x61,0x70, -0x68,0x69,0x63,1,0x64,0x56,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4,0xb, -0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa5, -0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,0x6e,0x63,0x68,0x61, -0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61, -0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,0x62,0x73,0x1b,0x63,0x72,0x69, -0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68, -0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,0x11,0x69,0x63,1, -0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa5, -0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,4,0x65, -0x74,0x6c,0xa2,0x82,0x6f,0xa2,0x9a,0x72,0xa2,0x9e,0x75,2,0x6a,0x34,0x6e,0x3e, -0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43,0x14,0x61,0x72,0x61,0x74,0x69,0x45,0x18, -0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x1c,1,0x6e,0xa2,0x46,0x6f, -1,0x6d,0x6e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,1,0x65,0x40,0x73,0x11,0x75, -0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x87,0x11,0x78,0x74, -0xa4,0x1b,0x14,0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,0x1a,0x65,0x74,0x72,0x69,0x63, -0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e, -0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75, -0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61,0x67,0x6f,0x6c,0x69,0x74,0x69,0x63,0xa2, -0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5, -0xa,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,0x5c,0x65,0x11,0x65,0x6b,0x30, -1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,0x6e,0x64,0x65,0x64,0x6f,0x17, -0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,0x6e,0x74,0x68,0x61,0xa3,0xe4, -2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69,1,0x67,0x30,0x72,0x14,0x61,0x67,0x61, -0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,0x73,0x18,0x75,0x72,0x72,0x6f,0x67,0x61, -0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,0x75,0x19,0x73,0x75,0x72,0x72,0x6f,0x67, -0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,0x61,0x74,0x65,0x75,0x73,0x65, -0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,2,0x6c,0x32,0x6e, -0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2,0x10,0x66,2,0x61,0x58,0x6d,0x70,0x77, -0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x77,0x69,0x64, -0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x1a,0x6e,0x64,0x66,0x75,0x6c,0x6c, -0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13,0x61,0x72,0x6b,0x73,0xa3,0x52,2,0x67, -0x34,0x69,0xa2,0x45,0x75,0x12,0x6e,0x6f,0x6f,0xa3,0x63,0x11,0x75,0x6c,0xa2,0x4a, -2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3, -0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x6a,0x61, -0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,0x65,0x78,0x74,0x65,0x6e,0x64, -0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x19,0x66,0x69,0x72,0x6f,0x68,0x69, -0x6e,0x67,0x79,0x61,0xa5,0x1d,0x13,0x62,0x72,0x65,0x77,0x37,0x61,0xa4,0xc,0x62, -0xa6,0x59,0x63,0xa8,0x2e,0x64,0xac,0xe9,0x65,5,0x6d,0xa9,0x6d,0x94,0x6e,0xa2, -0x41,0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,0x5e,1,0x65,0x40,0x73,0x11,0x75, -0x70,0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x86,0x11,0x78,0x74, -0xa2,0x85,2,0x61,0xa3,0xc8,0x62,0xa5,0x37,0x65,0x13,0x6e,0x64,0x65,0x64,0xa2, -0x85,1,0x61,0xa3,0xc8,0x62,0xa5,0x37,0x16,0x6f,0x74,0x69,0x63,0x6f,0x6e,0x73, -0xa3,0xce,0x15,0x63,0x6c,0x6f,0x73,0x65,0x64,2,0x61,0x5a,0x63,0x9e,0x69,0x1c, -0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x73,0x75,0x70,0xa2,0xc4,0x16, -0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc4,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75, -0x6d,0x86,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,0xc3,0x13,0x72,0x69,0x63,0x73, -0x86,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc3,0x11,0x6a,0x6b, -0xa2,0x44,0x1f,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x61,0x6e,0x64,0x6d,0x6f,0x6e, -0x74,0x68,0x73,0xa3,0x44,0x61,0x4a,0x67,0x76,0x6c,1,0x62,0x30,0x79,0x13,0x6d, -0x61,0x69,0x63,0xa5,0x25,0x13,0x61,0x73,0x61,0x6e,0xa3,0xe2,0x13,0x72,0x6c,0x79, -0x64,0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63,0x75,0x6e,0x65,0x69,0x66,0x6f, -0x72,0x6d,0xa5,1,0x1f,0x79,0x70,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f, -0x67,0x6c,0x79,0x70,0x68,1,0x66,0x26,0x73,0xa3,0xc2,0x1c,0x6f,0x72,0x6d,0x61, -0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa5,0x24,7,0x6e,0xc0,0xf2,0x6e, -0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xe5,0x76,0x14,0x65,0x73,0x74,0x61,0x6e,0xa3,0xbc, -1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,0x34,0x73,0x15,0x79,0x6d, -0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,1,0x6d,0x34,0x6e,0x15, -0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,0x69,0x63,0xa2,0x7e,0x19, -0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x7e,0x10,0x74,0x1f,0x6f, -0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3, -0xfe,2,0x61,0x32,0x6d,0xa2,0x7e,0x72,0x12,0x6f,0x77,0x73,0x7d,0x12,0x62,0x69, -0x63,0x38,3,0x65,0x4a,0x6d,0x80,0x70,0xa2,0x50,0x73,0x11,0x75,0x70,0xa2,0x80, -0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,0x78,0x74,3,0x61,0xa3, -0xd2,0x62,0xa5,0x35,0x63,0xa5,0x41,0x65,0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3, -0xd2,0x62,0xa5,0x35,0x63,0xa5,0x41,0x12,0x61,0x74,0x68,0xa2,0xd3,0x18,0x65,0x6d, -0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x69, -0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,1,0x66,0x42,0x72,0x1e,0x65, -0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,1,0x61, -0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,0x6e,0x35,0x12,0x63,0x69,0x69, -0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,1,0x63,0x62,0x70,0x17,0x68, -0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,0x50,0x72,0x1e,0x65,0x73,0x65, -0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x50,0x16,0x68, -0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73, -0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,0x65,0x61,0x6e,0x6e,0x75,0x6d, -0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,0xfd,7,0x6f,0x71,0x6f,0x64, -0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,0x6e,0x74,0x69,0x6e,0x65,0x6d, -0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73, -0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,0x77,0x69,0x6e,0x67,0x89,0x14, -0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,0xa2,0x43,0x14,0x65,0x6e,0x64, -0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,0x12,0x6c,0x6c,0x65,0x92,0x17, -0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,0x6d,0x69,0xa3,0xc9,1,0x67, -0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x81,0x61, -0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,0x63,0x6b,0x65,0x6c,0x65,0x6d, -0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,0x73,0x66,0x74,0x11,0x61,0x6b, -0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,0x11,0x75,0x6d,0xa2,0xb1,0x12, -0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xca,1, -0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,0x15,0x63,0x6c,0x61,0x74,0x69, -0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,0x61,0x69,0x6b,0x73,0x75,0x6b, -0x69,0xa5,8,5,0x6f,0xc1,0x60,0x6f,0xa2,0x69,0x75,0xa4,0x24,0x79,1,0x70, -0xa2,0x44,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1,0x65,0x4c,0x73,0x11,0x75, -0x70,0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa2,0x61,0x12,0x61,0x72, -0x79,0xa3,0x61,0x11,0x78,0x74,4,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9, -0x64,0xa5,0x43,0x65,0x13,0x6e,0x64,0x65,0x64,3,0x61,0xa3,0x9e,0x62,0xa3,0xa0, -0x63,0xa5,9,0x64,0xa5,0x43,0x10,0x72,1,0x69,0x34,0x6f,0x15,0x6d,0x69,0x6e, -0x6f,0x61,0x6e,0xa5,0x36,0x1a,0x6f,0x74,0x73,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72, -0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,0x75,0x17,0x6e,0x74, -0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c, -0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,0x74,0x6a,0x61,0x6d, -0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2,0x64,0x46,0x68,0x9e,0x6d,0x1d, -0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x1e, -0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,0x72,0x6b,0x73,0x2e, -2,0x65,0x40,0x66,0xa6,0x52,0x73,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e, -0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe0,0x17,0x61,0x6c, -0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,0x69,0x6e,0x64,0x69, -0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,0x1b,0x74, -0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x73,0x83,0x12,0x74,0x69,0x63, -0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3, -0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f, -0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,0x16,0x6e,0x75,0x6d, -0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75, -0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xea,0x68,0xa4,0x14,0x6a,0x10,0x6b, -0xa2,0x47,4,0x63,0x92,0x65,0xa2,0x83,0x72,0xa2,0xa1,0x73,0xa2,0xb3,0x75,0x1f, -0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73, -0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,8,0x65,0x71,0x65, -0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e,0x68,0xa5,0x42,0x69,0xa5,0x48,0x14,0x6f, -0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,1,0x62,0x44,0x64,0x17,0x65, -0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,0x73,0x75,0x70,0xa3,0x5f,0x14, -0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,0x69,0x18,0x64,0x65,0x6f,0x67, -0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65, -0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53,0x11,0x78,0x74,8,0x65, -0xf,0x65,0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e,0x68,0xa5,0x42,0x69,0xa5,0x48, -0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x64,0xa3,0xd1,0x19,0x61,0x64,0x69, -0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74, -0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,0x1d,0x61,0x6e,0x64, -0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,0x14,0x72,0x6f,0x6b, -0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,0x61,0x73,0x69,0x61, -0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,0x61,0x64,0x69,0x61, -0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,0x69,0x61,0x6e,0xa3, -0xa8,2,0x61,0x3a,0x65,0x4c,0x6f,0x16,0x72,0x61,0x73,0x6d,0x69,0x61,0x6e,0xa5, -0x2d,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,0xd4,1,0x72,0x38,0x73, -0x17,0x73,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa5,0x19,0x13,0x6f,0x6b,0x65,0x65, -0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3, -0xff,3,0x65,0x3e,0x69,0x8e,0x6f,0xa2,0x71,0x75,0x15,0x70,0x6c,0x6f,0x79,0x61, -0x6e,0xa3,0xe1,1,0x73,0x60,0x76,0x16,0x61,0x6e,0x61,0x67,0x61,0x72,0x69,0x3e, -0x12,0x65,0x78,0x74,0xa2,0xb3,1,0x61,0xa5,0x44,0x65,0x13,0x6e,0x64,0x65,0x64, -0xa2,0xb3,0x10,0x61,0xa5,0x44,0x13,0x65,0x72,0x65,0x74,0xa3,0x5a,2,0x61,0x3a, -0x6e,0x82,0x76,0x16,0x65,0x73,0x61,0x6b,0x75,0x72,0x75,0xa5,0x2f,0x18,0x63,0x72, -0x69,0x74,0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30,0x66,0x36,0x73,0x11,0x75, -0x70,0xa3,0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f, -0x6c,0x73,0x77,0x14,0x67,0x62,0x61,0x74,0x73,0x91,1,0x67,0x3e,0x6d,0x12,0x69, -0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab,0x11,0x72,0x61,0xa5, -0x1a,8,0x6d,0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,0x77,0x12,0x69, -0x64,0x65,0x43,0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33,2,0x61,0x40,0x62, -0x37,0x6f,1,0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65,0x61,0x6b,0x37,0x10, -0x72,0x34,0x12,0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46,0x75,1,0x62,0x3d, -0x70,0x3e,0x11,0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11,0x6c,0x6c,0x39,1, -0x72,0x3b,0x75,0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74,0x40,0x13,0x69,0x63, -0x61,0x6c,0x41,0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e,0x36,0x73,0x10,0x6f, -0x30,0x14,0x6c,0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e,0x12,0x69,0x61,0x6c, -0x2f,2,0x61,0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,0x74,0x25,0x10, -0x6e,0x22,0x15,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72,0x63,0x6c,0x65,0x27, -0x11,0x6e,0x63,0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,0x14,0x63,0x74, -0x69,0x6f,0x6e,0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,0x74,0x2b,4, -0x61,0x3a,0x66,0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,0x65,0x2b,0x22, -0x17,0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17,0x75,0x6c,0x6c,0x77, -0x69,0x64,0x74,0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69,0x64,0x74,0x68,0x25, -0x20,1,0x61,0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21,0x28,0x13,0x72,0x72, -0x6f,0x77,0x29,0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,0x75,0xa2,0x49, -0x7a,2,0x6c,0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f,0x57,0x70,0x34,0x75, -0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63,1,0x65,0x32,0x69, -0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74, -0x6f,0x72,0x39,0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61, -0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40,0x70,0x1c,0x70,0x65, -0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x17,0x61,0x73,0x73, -0x69,0x67,0x6e,0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,0x66,0x14,0x66, -0x5b,0x69,0x59,0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76,0x61,0x74,0x65,0x75, -0x73,0x65,0x43,0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,0x61,0x67,0x72, -0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,2,0x64,0x33, -0x6c,0x35,0x6f,0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72, -0x6b,0x2d,1,0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c,0x38,0x6e,0x42,0x70, -0x4c,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,0x65,0x72,0x2b, -0x14,0x75,0x6d,0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69, -0x6f,0x6e,0x4f,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, -0x6e,0x49,0x66,0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,4,0x61,0x60, -0x63,0x31,0x65,0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c, -0x30,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,0x65,0x72,0x29, -0x17,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69,0x2e,0x6f,0x13,0x72, -0x6d,0x61,0x74,0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74, -0x69,0x6f,0x6e,0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63, -0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,0x29,0x6f,0x28,0x74, -0x27,0x75,0x23,0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74, -0x65,0x72,0x25,0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,0x72,0x6e,0x75, -0x6d,0x62,0x65,0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f, -0x72,0x3b,0x63,0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e, -0x67,0x6d,0x61,0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,0x73,0x45,0x75, -0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x53,0x20,0x12, -0x74,0x72,0x6c,0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12,0x72,0x6f,0x6c,0x3f, -0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, -0x6e,0x4d,0x63,0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74, -0x75,0x61,0x74,0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a,0x69,0x12,0x67,0x69, -0x74,0x33,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, -0x47,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0x33,0,0x13, -0x6e,0xc1,0xf,0x74,0x76,0x74,0x4c,0x76,0x9a,0x77,0xa2,0x48,0x79,0xa2,0x49,0x7a, -1,0x61,0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,0x85,2,0x61,0x36, -0x65,0x3c,0x68,0x14,0x69,0x6e,0x79,0x65,0x68,0xa3,0x66,1,0x68,0x71,0x77,0x73, -1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72,0x62,0x75,0x74,0x61,0x74, -0x13,0x67,0x6f,0x61,0x6c,0x3d,0x1a,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x74,0x61, -0x69,0x6c,0xa3,0x67,0x11,0x61,0x77,0x79,1,0x65,0x32,0x75,0x11,0x64,0x68,0x80, -0x11,0x68,0x65,0x83,0x10,0x68,0x7a,1,0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74, -0x61,0x69,0x6c,0x7f,0x14,0x61,0x72,0x72,0x65,0x65,0x7d,0x6e,0xa2,0x4c,0x70,0xa2, -0x69,0x71,0xa2,0x69,0x72,0xa2,0x6f,0x73,5,0x74,0x22,0x74,0x38,0x77,0x4c,0x79, -0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18,0x72,0x61,0x69,0x67,0x68,0x74, -0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b,0x61,0x66,0x6d,0x61,0x2e,0x65, -0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11,0x68,0x65,0x65,1,0x65,0x2e, -0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67,2,0x6f,0x2c,0x75,0x50,0x79, -0x10,0x61,0x91,1,0x6a,0x28,0x6f,0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e, -0x67,0x67,0x72,0x6f,0x75,0x70,0x21,0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1, -0x66,0x5b,0x70,0x10,0x68,0x5d,1,0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79, -0x61,0x79,0x65,0x68,0x93,1,0x68,0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70, -0x65,0x61,0x67,0xc1,0xc7,0x67,0xa4,0x52,0x68,0xa4,0x59,0x6b,0xa4,0x99,0x6c,0xa4, -0xb2,0x6d,2,0x61,0x2e,0x65,0xa4,0x3e,0x69,0x10,0x6d,0x53,1,0x6c,0xa2,0xe7, -0x6e,0x16,0x69,0x63,0x68,0x61,0x65,0x61,0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73, -0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,0x42,0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54, -0x10,0x61,1,0x64,0x2e,0x6d,0x12,0x65,0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3, -0x4b,3,0x61,0x38,0x65,0x3c,0x68,0x4a,0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51, -0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,0x4e,0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d, -0x65,0x64,0x68,0xa3,0x50,0x11,0x61,0x77,0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53, -0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,0x4a,0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11, -0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,0xa3,0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70, -0x68,0xa3,0x49,0x67,0x33,0x67,0x38,0x68,0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65, -0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,0x6c,0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64, -0x72,0x65,0x64,0xa3,0x42,0x11,0x74,0x68,0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43, -0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x44,0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12, -0x69,0x76,0x65,0x9f,1,0x6c,0x2a,0x79,0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68, -0x95,0x12,0x65,0x74,0x68,0x99,1,0x61,0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68, -0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,6,0x6e, -0x2c,0x6e,0x34,0x72,0x5e,0x73,0x62,0x74,0x11,0x74,0x61,0xa3,0x63,2,0x67,0x2e, -0x6e,0x32,0x79,0x10,0x61,0xa3,0x60,0x10,0x61,0xa3,0x5d,1,0x61,0xa3,0x5e,0x6e, -0x10,0x61,0xa3,0x5f,0x10,0x61,0xa3,0x61,0x11,0x73,0x61,0xa3,0x62,0x62,0x3c,0x6a, -0x42,0x6c,0x10,0x6c,1,0x61,0xa3,0x5b,0x6c,0x10,0x61,0xa3,0x5c,0x11,0x68,0x61, -0xa3,0x59,0x10,0x61,0xa3,0x5a,0x11,0x65,0x6d,0x51,0x10,0x61,1,0x66,0x37,0x6d, -0x11,0x61,0x6c,0x39,1,0x61,0x40,0x65,0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45, -0x40,0x13,0x67,0x6f,0x61,0x6c,0x43,2,0x68,0x3b,0x6d,0x5c,0x6e,0x1a,0x69,0x66, -0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,1,0x6b,0x2a,0x70,0x10,0x61,0xa3, -0x65,0x15,0x69,0x6e,0x6e,0x61,0x79,0x61,0xa3,0x64,0x1a,0x7a,0x61,0x6f,0x6e,0x68, -0x65,0x68,0x67,0x6f,0x61,0x6c,0x3d,2,0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74, -0x74,0x65,0x64,0x68,0x65,0x68,0x4b,1,0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61, -0x70,0x68,0x89,0x11,0x61,0x6d,0x4c,0x12,0x61,0x64,0x68,0x4f,0x61,0x6e,0x62,0xa2, -0x54,0x64,0xa2,0x70,0x65,0x31,0x66,2,0x61,0x3e,0x65,0x4a,0x69,0x19,0x6e,0x61, -0x6c,0x73,0x65,0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,0x79,0x65,0x68, -0x8f,0x86,0x10,0x68,0x33,2,0x66,0x3c,0x69,0x70,0x6c,1,0x61,0x28,0x65,0x10, -0x66,0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,0x6e,2,0x66,0x30,0x6e, -0x36,0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,0x56,0x12,0x6f,0x6f,0x6e, -0xa3,0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73,0x68,0x61, -0x73,0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1,0x68,0x29, -0x74,0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69,0x73,0x68, -0x2f,7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f,0x6e,0x6a, -0x6f,0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a,0x6f,0x69, -0x6e,0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e, -0x74,0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74,0x6a,0x6f, -0x69,0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69,0x6e,0x69, -0x6e,0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67,0x23,0, -0x14,0x6e,0xc0,0xe5,0x73,0x5e,0x77,0x23,0x77,0x40,0x78,0x58,0x7a,0x10,0x77,0x58, -1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,0x59,1,0x6a,0x5d,0x6f,0x17,0x72, -0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x73,0x4a,0x75,0x7a,0x76, -1,0x66,0x7d,0x69,0x7e,0x13,0x72,0x61,0x6d,0x61,0x7e,0x14,0x66,0x69,0x6e,0x61, -0x6c,0x7d,4,0x61,0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79,0x57,0x54,0x12,0x61, -0x63,0x65,0x55,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53,0x15,0x6e,0x6b,0x6e, -0x6f,0x77,0x6e,0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,0x6e,0x72, -1,0x65,0x24,0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69, -0x63,0x61,0x74,0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,0x45,0x75, -0x46,0x14,0x6d,0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,0x65,0x5b, -0x17,0x6e,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,0x65,0x6e, -0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,0x3e,0x72, -0x4c,0x1a,0x65,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,0x4a,0x1b, -0x73,0x74,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,0x75,0x4e, -0x16,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,0x86,0x6a, -0xa2,0x61,0x6c,0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x62, -0x72,0x65,0x61,0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,0x79,0x3a, -0x13,0x70,0x68,0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65, -0x72,0x6d,2,0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,0x72,0x61, -0x70,0x68,0x69,0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11,0x65,0x70,1,0x61,0x22, -0x65,0x14,0x72,0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72, -0x69,0x63,0x41,2,0x6c,0x63,0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,0x15,0x6e, -0x65,0x66,0x65,0x65,0x64,0x43,0x61,0x42,0x62,0xa2,0x49,0x63,0xa2,0x76,0x65,0xa2, -0xfc,0x67,0x10,0x6c,0x38,0x11,0x75,0x65,0x39,5,0x6d,0xf,0x6d,0x28,0x70,0x79, -0x73,0x7b,0x16,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x69,0x23,0x6b,0x38,0x6c, -0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x25,0x76,0x13,0x73,0x61,0x72, -0x61,0x76,1,0x70,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x7b,0x15,0x72,0x65,0x62, -0x61,0x73,0x65,0x79,4,0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,0x2d,0x72,0x12,0x65, -0x61,0x6b,2,0x61,0x36,0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x57, -0x13,0x66,0x74,0x65,0x72,0x29,1,0x65,0x2a,0x6f,0x11,0x74,0x68,0x27,0x13,0x66, -0x6f,0x72,0x65,0x2b,7,0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,0x69,0x72,0x35,1, -0x6d,0x76,0x6e,1,0x64,0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,0x6e,0x74,0x62,0x72, -0x65,0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,0x6c,0x6a,0x61,0x70, -0x61,0x6e,0x65,0x73,0x65,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x6b,1,0x62,0x3a, -0x70,0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x51,0x18,0x69,0x6e, -0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,0x6a,0x6b,0x6c,0x30, -0x13,0x6f,0x73,0x65,0x70,1,0x61,0x38,0x75,0x18,0x6e,0x63,0x74,0x75,0x61,0x74, -0x69,0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x69,0x1b, -0x72,0x72,0x69,0x61,0x67,0x65,0x72,0x65,0x74,0x75,0x72,0x6e,0x35,2,0x62,0x3e, -0x6d,0x46,0x78,0x36,0x18,0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,0x70, -0x12,0x61,0x73,0x65,0x71,0x72,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,1, -0x64,0x42,0x6e,1,0x6f,0x32,0x75,0x26,0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11, -0x6e,0x65,0x21,1,0x65,0x2e,0x69,0x24,0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63, -0x69,0x6d,0x61,0x6c,0x23,0,0x18,0x6e,0xc4,0x6f,0x74,0xc1,0x91,0x77,0x96,0x77, -0xa2,0x4c,0x78,0xa2,0x70,0x79,0xa2,0x7a,0x7a,6,0x73,0x1e,0x73,0x34,0x78,0x42, -0x79,0x48,0x7a,0x11,0x7a,0x7a,0xa3,0x67,0x10,0x79,1,0x65,0xa3,0xae,0x6d,0xa3, -0x81,0x11,0x78,0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x61,0x30,0x69,0x58,0x6d,0x11, -0x74,0x68,0xa3,0x80,0x10,0x6e,1,0x61,0x26,0x62,0xa3,0xb1,0x1a,0x62,0x61,0x7a, -0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa3,0xb1,0x11,0x6e,0x68,0x23,2,0x61, -0x30,0x63,0x5a,0x6f,0x11,0x6c,0x65,0xa3,0x9b,1,0x6e,0x3c,0x72,0x10,0x61,0xa2, -0x92,0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,0x12,0x63,0x68,0x6f,0xa3,0xbc, -0x11,0x68,0x6f,0xa3,0xbc,1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3,0x65,0x11,0x65, -0x6f,0x9b,1,0x65,0x2c,0x69,0x72,0x11,0x69,0x69,0x73,0x11,0x7a,0x69,0xa2,0xc0, -0x11,0x64,0x69,0xa3,0xc0,0x74,0x66,0x75,0xa2,0xde,0x76,1,0x61,0x48,0x69,1, -0x73,0x38,0x74,0x10,0x68,0xa2,0xc5,0x13,0x6b,0x75,0x71,0x69,0xa3,0xc5,0x10,0x70, -0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,7,0x68,0x3e,0x68,0x34,0x69, -0x48,0x6e,0x86,0x6f,0x11,0x74,0x6f,0xa3,0xc4,0x10,0x61,1,0x61,0x24,0x69,0x6d, -0x6a,0x11,0x6e,0x61,0x6b,2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68,0xa2,0x9e,0x12, -0x75,0x74,0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61,0x6e,0x6f,0x14, -0x69,0x6e,0x61,0x67,0x68,0x99,0x11,0x73,0x61,0xa3,0xc3,0x61,0x36,0x65,0xa2,0x65, -0x66,0xa2,0x71,0x67,0x11,0x6c,0x67,0x75,6,0x6c,0x28,0x6c,0x32,0x6d,0x38,0x6e, -0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65,0x89,0x75,0x97,1,0x69,0x24,0x6c,0x67, -0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,1,0x73,0x2a,0x75,0x10,0x74,0xa3,0x9a,0x10, -0x61,0xa3,0xc3,0x67,0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10,0x69,0xa3,0x99, -1,0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c,0x6f,0x67,0x75, -2,0x6c,0x32,0x74,0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10,0x65,0x89,0x12, -0x68,0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62,0x10,0x75,0x68, -0x11,0x67,0x75,0x69,0x11,0x6e,0x67,0x99,1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f, -0x77,0x6e,0xa3,0x67,0x11,0x61,0x72,0x8a,0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc1, -0x13,0x71,0xa2,0xde,0x72,0xa2,0xe3,0x73,6,0x69,0x8a,0x69,0x72,0x6f,0xa2,0x4c, -0x75,0xa2,0x75,0x79,1,0x6c,0x46,0x72,4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c, -0x6a,0xa3,0x60,0x6e,0xa3,0x61,0x11,0x61,0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69, -0x6e,0x61,0x67,0x72,0x69,0x95,2,0x64,0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91, -0x68,0x62,0x12,0x61,0x6c,0x61,0x63,0x10,0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3, -0xa6,0x17,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa3,0x70,2,0x67,0x3a,0x72, -0x52,0x79,0x10,0x6f,0xa2,0xb0,0x12,0x6d,0x62,0x6f,0xa3,0xb0,1,0x64,0x26,0x6f, -0xa3,0xb8,0xa2,0xb7,0x12,0x69,0x61,0x6e,0xa3,0xb7,0x10,0x61,0xa2,0x98,0x16,0x73, -0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98,0x11,0x6e,0x64,0xa2,0x71,0x14,0x61,0x6e, -0x65,0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61,0x2a,0x72,0x10, -0x64,0xa3,0x97,2,0x72,0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64,0x61,0xa3,0x97, -0x12,0x69,0x61,0x6e,0x87,2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72,0xa2,0x6f,0x15, -0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3,0x7e,0x14,0x72, -0x69,0x74,0x61,0x6e,0xa3,0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85,0x11,0x6e,0x77, -0xa3,0x70,0x11,0x61,0x61,1,0x63,0x2f,0x69,0x23,3,0x65,0x3e,0x6a,0x48,0x6f, -0x4e,0x75,0x10,0x6e,1,0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13,0x6a,0x61,0x6e, -0x67,0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,1,0x68,0x2a,0x72,0x10,0x6f,0xa3,0x5d, -0x10,0x67,0xa3,0xb6,0x6e,0xa2,0x83,0x6f,0xa4,1,0x70,5,0x6c,0x1e,0x6c,0x44, -0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69, -0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,0x61,0x7c,0x65,0xa2, -0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,0x6e,0x69,0x63,0x69, -0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,0xa3,0x5a,2,0x69, -0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,2,0x68,0x3e,0x6c, -0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,0xa3,0xa5,0x17,0x61, -0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,0x90,0x14,0x79,0x72, -0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d,0xa3,0x59,6,0x6b,0x36,0x6b,0x56,0x73, -0x6e,0x75,0x74,0x79,0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70,0x75,0x61,0x63, -0x68,0x75,0x65,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xba,1,0x67,0x2e,0x6f,0xa2,0x57, -0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,0x11,0x68,0x75,0xa3,0x96,0x12,0x73,0x68, -0x75,0xa3,0x96,0x61,0x42,0x62,0x9e,0x65,0x10,0x77,1,0x61,0xa3,0xaa,0x74,0x14, -0x61,0x69,0x6c,0x75,0x65,0x97,3,0x62,0x32,0x67,0x40,0x6e,0x56,0x72,0x10,0x62, -0xa3,0x8e,0x15,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x10,0x6d,0xa2,0xc7,0x15, -0x75,0x6e,0x64,0x61,0x72,0x69,0xa3,0xc7,0x10,0x64,0xa2,0xbb,0x16,0x69,0x6e,0x61, -0x67,0x61,0x72,0x69,0xa3,0xbb,0x11,0x61,0x74,0xa3,0x8f,4,0x67,0x3c,0x6c,0x4e, -0x72,0xa2,0x8e,0x73,0xa2,0x9c,0x75,0x11,0x67,0x72,0xa3,0xc2,1,0x61,0x2a,0x68, -0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,1,0x63,0xa2,0x6a,0x64,6,0x70,0x41,0x70, -0x3a,0x73,0x58,0x74,0x86,0x75,0x14,0x79,0x67,0x68,0x75,0x72,0xa3,0xc2,0x11,0x65, -0x72,1,0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69,0x63,0xa3,0x59,0x10, -0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3, -0x85,0x13,0x64,0x69,0x61,0x6e,0xa3,0xb8,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0x58, -0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61, -0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa3,0x4c,0x14,0x74, -0x61,0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,0xa3,0x6d,0x12,0x69,0x6b,0x69,0xa3, -0x6d,2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,0x5f,0x11,0x79,0x61,0x5f,0x10,0x68, -0xa3,0x58,2,0x61,0x36,0x67,0x3c,0x6d,0x10,0x61,0x84,0x12,0x6e,0x79,0x61,0x85, -0x11,0x67,0x65,0xa3,0xab,0x10,0x65,0xa3,0xab,0x68,0xc3,0x15,0x6b,0xc2,0x2c,0x6b, -0xa4,0x17,0x6c,0xa4,0xba,0x6d,8,0x6f,0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75, +0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,0x67,0xa2,0xb5,0x68,0xa4,0x97,0x69,3,0x64, +0x4c,0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65, +0x6e,0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,0x17,0x6f,0x67,0x72,0x61, +0x70,0x68,0x69,0x63,1,0x64,0x56,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4, +0xb,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, +0xa5,0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,0x6e,0x63,0x68, +0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c, +0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,0x62,0x73,0x1b,0x63,0x72, +0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74, +0x68,0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,0x11,0x69,0x63, +1,0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73, +0xa5,0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,5, +0x6f,0x61,0x6f,0x80,0x72,0x8a,0x75,2,0x6a,0x4e,0x6e,0x58,0x72,1,0x6d,0x36, +0x75,0x16,0x6e,0x67,0x6b,0x68,0x65,0x6d,0x61,0xa5,0x4b,0x13,0x75,0x6b,0x68,0x69, +0x43,0x14,0x61,0x72,0x61,0x74,0x69,0x45,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e, +0x64,0x69,0xa5,0x1c,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,0x5c,0x65,0x11, +0x65,0x6b,0x30,1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,0x6e,0x64,0x65, +0x64,0x6f,0x17,0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,0x6e,0x74,0x68, +0x61,0xa3,0xe4,0x61,0x5c,0x65,0x64,0x6c,0x17,0x61,0x67,0x6f,0x6c,0x69,0x74,0x69, +0x63,0xa2,0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e, +0x74,0xa5,0xa,0x12,0x72,0x61,0x79,0xa5,0x4a,1,0x6e,0xa2,0x46,0x6f,1,0x6d, +0x6e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2, +0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x87,0x11,0x78,0x74,0xa4,0x1b, +0x14,0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,0x1a,0x65,0x74,0x72,0x69,0x63,0x73,0x68, +0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e,0x64,0x65, +0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74, +0x69,0x6f,0x6e,0x71,2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69,1,0x67,0x30,0x72, +0x14,0x61,0x67,0x61,0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,0x73,0x18,0x75,0x72, +0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,0x75,0x19,0x73,0x75, +0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,0x61,0x74, +0x65,0x75,0x73,0x65,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c, +2,0x6c,0x32,0x6e,0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2,0x10,0x66,2,0x61, +0x58,0x6d,0x70,0x77,0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x75,0x6c, +0x6c,0x77,0x69,0x64,0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x1a,0x6e,0x64, +0x66,0x75,0x6c,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13,0x61,0x72,0x6b,0x73, +0xa3,0x52,2,0x67,0x34,0x69,0xa2,0x45,0x75,0x12,0x6e,0x6f,0x6f,0xa3,0x63,0x11, +0x75,0x6c,0xa2,0x4a,2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62, +0x6c,0x65,0x73,0xa3,0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69, +0x74,0x79,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,0x65,0x78, +0x74,0x65,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x19,0x66,0x69, +0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa5,0x1d,0x13,0x62,0x72,0x65,0x77,0x37, +0x61,0xa4,0x1d,0x62,0xa6,0x6a,0x63,0xa8,0x3f,0x64,0xac,0xfa,0x65,5,0x6d,0xa9, +0x6d,0x94,0x6e,0xa2,0x41,0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,0x5e,1,0x65, +0x40,0x73,0x11,0x75,0x70,0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3, +0x86,0x11,0x78,0x74,0xa2,0x85,2,0x61,0xa3,0xc8,0x62,0xa5,0x37,0x65,0x13,0x6e, +0x64,0x65,0x64,0xa2,0x85,1,0x61,0xa3,0xc8,0x62,0xa5,0x37,0x16,0x6f,0x74,0x69, +0x63,0x6f,0x6e,0x73,0xa3,0xce,0x15,0x63,0x6c,0x6f,0x73,0x65,0x64,2,0x61,0x5a, +0x63,0x9e,0x69,0x1c,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x73,0x75, +0x70,0xa2,0xc4,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc4,0x16,0x6c,0x70, +0x68,0x61,0x6e,0x75,0x6d,0x86,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,0xc3,0x13, +0x72,0x69,0x63,0x73,0x86,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3, +0xc3,0x11,0x6a,0x6b,0xa2,0x44,0x1f,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x61,0x6e, +0x64,0x6d,0x6f,0x6e,0x74,0x68,0x73,0xa3,0x44,0x61,0x4a,0x67,0x76,0x6c,1,0x62, +0x30,0x79,0x13,0x6d,0x61,0x69,0x63,0xa5,0x25,0x13,0x61,0x73,0x61,0x6e,0xa3,0xe2, +0x13,0x72,0x6c,0x79,0x64,0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63,0x75,0x6e, +0x65,0x69,0x66,0x6f,0x72,0x6d,0xa5,1,0x1f,0x79,0x70,0x74,0x69,0x61,0x6e,0x68, +0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,1,0x66,0x48,0x73,0xa2,0xc2,0x12, +0x65,0x78,0x74,1,0x61,0xa5,0x49,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa5,0x49, +0x1c,0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa5,0x24, +7,0x6e,0xc0,0xf2,0x6e,0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xe5,0x76,0x14,0x65,0x73, +0x74,0x61,0x6e,0xa3,0xbc,1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67, +0x34,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b, +1,0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73, +0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3, +0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c, +0x79,0x70,0x68,0x73,0xa3,0xfe,2,0x61,0x32,0x6d,0xa2,0x7e,0x72,0x12,0x6f,0x77, +0x73,0x7d,0x12,0x62,0x69,0x63,0x38,3,0x65,0x4a,0x6d,0x80,0x70,0xa2,0x50,0x73, +0x11,0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11, +0x78,0x74,3,0x61,0xa3,0xd2,0x62,0xa5,0x35,0x63,0xa5,0x41,0x65,0x13,0x6e,0x64, +0x65,0x64,2,0x61,0xa3,0xd2,0x62,0xa5,0x35,0x63,0xa5,0x41,0x12,0x61,0x74,0x68, +0xa2,0xd3,0x18,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,0x68, +0x61,0x62,0x65,0x74,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,1, +0x66,0x42,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f, +0x72,0x6d,0x73,1,0x61,0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,0x6e, +0x35,0x12,0x63,0x69,0x69,0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,1, +0x63,0x62,0x70,0x17,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,0x50, +0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d, +0x73,0xa3,0x50,0x16,0x68,0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,0x79, +0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,0x65, +0x61,0x6e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,0xfd, +7,0x6f,0x71,0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,0x6e, +0x74,0x69,0x6e,0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,0x79, +0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,0x77, +0x69,0x6e,0x67,0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,0xa2, +0x43,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,0x12, +0x6c,0x6c,0x65,0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,0x6d, +0x69,0xa3,0xc9,1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,0x65, +0x73,0x65,0xa3,0x81,0x61,0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,0x63, +0x6b,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,0x73, +0x66,0x74,0x11,0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,0x11, +0x75,0x6d,0xa2,0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,0x65, +0x6e,0x74,0xa3,0xca,1,0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,0x15, +0x63,0x6c,0x61,0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,0x61, +0x69,0x6b,0x73,0x75,0x6b,0x69,0xa5,8,5,0x6f,0xc1,0x60,0x6f,0xa2,0x69,0x75, +0xa4,0x24,0x79,1,0x70,0xa2,0x44,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1, +0x65,0x4c,0x73,0x11,0x75,0x70,0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74, +0xa2,0x61,0x12,0x61,0x72,0x79,0xa3,0x61,0x11,0x78,0x74,4,0x61,0xa3,0x9e,0x62, +0xa3,0xa0,0x63,0xa5,9,0x64,0xa5,0x43,0x65,0x13,0x6e,0x64,0x65,0x64,3,0x61, +0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x64,0xa5,0x43,0x10,0x72,1,0x69,0x34, +0x6f,0x15,0x6d,0x69,0x6e,0x6f,0x61,0x6e,0xa5,0x36,0x1a,0x6f,0x74,0x73,0x79,0x6c, +0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2, +0xa0,0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75, +0x6d,0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15, +0x61,0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2,0x64, +0x46,0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d,0x62, +0x6f,0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x6d, +0x61,0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,0xa6,0x52,0x73,0x18,0x75,0x70,0x70, +0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65,0x64, +0xa3,0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e, +0x1f,0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d, +0x73,0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x73, +0x83,0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75,0x6d, +0x62,0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63,0x79, +0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2, +0x98,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70, +0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xea,0x68, +0xa4,0x14,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,0x92,0x65,0xa2,0x83,0x72,0xa2,0xa1, +0x73,0xa2,0xb3,0x75,0x1f,0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67, +0x72,0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f, +0x6e,8,0x65,0x71,0x65,0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e,0x68,0xa5,0x42, +0x69,0xa5,0x48,0x14,0x6f,0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,1, +0x62,0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,0x73, +0x75,0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,0x69, +0x18,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,0x70, +0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53, +0x11,0x78,0x74,8,0x65,0xf,0x65,0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e,0x68, +0xa5,0x42,0x69,0xa5,0x48,0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x64,0xa3, +0xd1,0x19,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c, +0x65,0x6d,0x65,0x6e,0x74,0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73, +0x9a,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, +0x9b,0x14,0x72,0x6f,0x6b,0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d, +0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde, +0x1d,0x61,0x64,0x69,0x61,0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63, +0x12,0x69,0x61,0x6e,0xa3,0xa8,2,0x61,0x3a,0x65,0x4c,0x6f,0x16,0x72,0x61,0x73, +0x6d,0x69,0x61,0x6e,0xa5,0x2d,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3, +0xd4,1,0x72,0x38,0x73,0x17,0x73,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa5,0x19, +0x13,0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,0x65, +0x6d,0x65,0x6e,0x74,0xa3,0xff,3,0x65,0x3e,0x69,0x8e,0x6f,0xa2,0x71,0x75,0x15, +0x70,0x6c,0x6f,0x79,0x61,0x6e,0xa3,0xe1,1,0x73,0x60,0x76,0x16,0x61,0x6e,0x61, +0x67,0x61,0x72,0x69,0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,1,0x61,0xa5,0x44,0x65, +0x13,0x6e,0x64,0x65,0x64,0xa2,0xb3,0x10,0x61,0xa5,0x44,0x13,0x65,0x72,0x65,0x74, +0xa3,0x5a,2,0x61,0x3a,0x6e,0x82,0x76,0x16,0x65,0x73,0x61,0x6b,0x75,0x72,0x75, +0xa5,0x2f,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30, +0x66,0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72, +0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x14,0x67,0x62,0x61,0x74,0x73,0x91,1, +0x67,0x3e,0x6d,0x12,0x69,0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3, +0xab,0x11,0x72,0x61,0xa5,0x1a,8,0x6d,0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76, +0xa2,0x4b,0x77,0x12,0x69,0x64,0x65,0x43,0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c, +0x33,2,0x61,0x40,0x62,0x37,0x6f,1,0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72, +0x65,0x61,0x6b,0x37,0x10,0x72,0x34,0x12,0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71, +0x46,0x75,1,0x62,0x3d,0x70,0x3e,0x11,0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39, +0x11,0x6c,0x6c,0x39,1,0x72,0x3b,0x75,0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72, +0x74,0x40,0x13,0x69,0x63,0x61,0x6c,0x41,0x63,0x58,0x65,0x92,0x66,0x96,0x69,1, +0x6e,0x36,0x73,0x10,0x6f,0x30,0x14,0x6c,0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74, +0x2e,0x12,0x69,0x61,0x6c,0x2f,2,0x61,0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12, +0x70,0x61,0x74,0x25,0x10,0x6e,0x22,0x15,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13, +0x72,0x63,0x6c,0x65,0x27,0x11,0x6e,0x63,0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10, +0x61,0x2c,0x14,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29, +0x11,0x6e,0x74,0x2b,4,0x61,0x3a,0x66,0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12, +0x69,0x64,0x65,0x2b,0x22,0x17,0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26, +0x17,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77, +0x69,0x64,0x74,0x68,0x25,0x20,1,0x61,0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c, +0x21,0x28,0x13,0x72,0x72,0x6f,0x77,0x29,0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a, +0x74,0x98,0x75,0xa2,0x49,0x7a,2,0x6c,0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28, +0x6f,0x57,0x70,0x34,0x75,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61, +0x63,1,0x65,0x32,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65, +0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x39,0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69, +0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e, +0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72, +0x23,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47, +0x70,8,0x66,0x14,0x66,0x5b,0x69,0x59,0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69, +0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x43,0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b, +0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f, +0x72,0x3d,2,0x64,0x33,0x6c,0x35,0x6f,0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69, +0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2d,1,0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3, +0x6c,0x38,0x6e,0x42,0x70,0x4c,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65, +0x74,0x74,0x65,0x72,0x2b,0x14,0x75,0x6d,0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63, +0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74, +0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,0x66,0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2, +0x5c,0x6d,4,0x61,0x60,0x63,0x31,0x65,0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66, +0x69,0x65,0x72,1,0x6c,0x30,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65, +0x74,0x74,0x65,0x72,0x29,0x17,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1, +0x69,0x2e,0x6f,0x13,0x72,0x6d,0x61,0x74,0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e, +0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61, +0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18, +0x6d,0x29,0x6f,0x28,0x74,0x27,0x75,0x23,0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73, +0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74, +0x74,0x65,0x72,0x6e,0x75,0x6d,0x62,0x65,0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70, +0x61,0x72,0x61,0x74,0x6f,0x72,0x3b,0x63,0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63, +0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46, +0x6f,0x4e,0x73,0x45,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62, +0x6f,0x6c,0x53,0x20,0x12,0x74,0x72,0x6c,0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74, +0x12,0x72,0x6f,0x6c,0x3f,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74, +0x75,0x61,0x74,0x69,0x6f,0x6e,0x4d,0x63,0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65, +0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65, +0x4a,0x69,0x12,0x67,0x69,0x74,0x33,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75, +0x61,0x74,0x69,0x6f,0x6e,0x47,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62, +0x65,0x72,0x33,0,0x13,0x6e,0xc1,0xf,0x74,0x76,0x74,0x4c,0x76,0x9a,0x77,0xa2, +0x48,0x79,0xa2,0x49,0x7a,1,0x61,0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69, +0x6e,0x85,2,0x61,0x36,0x65,0x3c,0x68,0x14,0x69,0x6e,0x79,0x65,0x68,0xa3,0x66, +1,0x68,0x71,0x77,0x73,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72, +0x62,0x75,0x74,0x61,0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,0x1a,0x65,0x72,0x74,0x69, +0x63,0x61,0x6c,0x74,0x61,0x69,0x6c,0xa3,0x67,0x11,0x61,0x77,0x79,1,0x65,0x32, +0x75,0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10,0x68,0x7a,1,0x62,0x34,0x77, +0x16,0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14,0x61,0x72,0x72,0x65,0x65,0x7d, +0x6e,0xa2,0x4c,0x70,0xa2,0x69,0x71,0xa2,0x69,0x72,0xa2,0x6f,0x73,5,0x74,0x22, +0x74,0x38,0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18,0x72, +0x61,0x69,0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b,0x61, +0x66,0x6d,0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11,0x68, +0x65,0x65,1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67,2, +0x6f,0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,0x28,0x6f,0x10,0x6e,0x55,0x1a, +0x6f,0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,0x70,0x21,0x10,0x6e,0x57,0x10, +0x65,0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,0x5d,1,0x65,0x38,0x6f,0x18, +0x68,0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68,0x93,1,0x68,0x5f,0x76,0x16,0x65, +0x72,0x73,0x65,0x64,0x70,0x65,0x61,0x67,0xc1,0xd4,0x67,0xa4,0x52,0x68,0xa4,0x59, +0x6b,0xa4,0x99,0x6c,0xa4,0xbf,0x6d,2,0x61,0x2e,0x65,0xa4,0x3e,0x69,0x10,0x6d, +0x53,1,0x6c,0xa2,0xe7,0x6e,0x16,0x69,0x63,0x68,0x61,0x65,0x61,0x6e,0,0x12, +0x6e,0x76,0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,0x42,0x7a,0x13,0x61, +0x79,0x69,0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,0x6d,0x12,0x65,0x6b,0x68,0xa3, +0x4c,0x11,0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,0x3c,0x68,0x4a,0x77,0x13,0x65, +0x6e,0x74,0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,0x4e,0x74,0x10,0x68, +0xa3,0x4f,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,0x11,0x61,0x77,0xa3,0x52,0x12, +0x6f,0x64,0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,0x4a,0x72,0x12,0x65, +0x73,0x68,0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,0xa3,0x47,0x10,0x65, +0xa3,0x48,0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,0x67,0x38,0x68,0x40,0x6b,0x5e, +0x6c,0x66,0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,0x6c,0xa1,1,0x65, +0x32,0x75,0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,0x11,0x74,0x68,0xa3,0x41,0x12, +0x61,0x70,0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x44,0x61,0x34,0x62, +0x4a,0x64,0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,0x6c,0x2a,0x79,0x11,0x69,0x6e, +0x97,0x12,0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,0x99,1,0x61,0x30,0x68,0x14, +0x61,0x6d,0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,0x15,0x61,0x79,0x61, +0x6c,0x61,0x6d,6,0x6e,0x2c,0x6e,0x34,0x72,0x5e,0x73,0x62,0x74,0x11,0x74,0x61, +0xa3,0x63,2,0x67,0x2e,0x6e,0x32,0x79,0x10,0x61,0xa3,0x60,0x10,0x61,0xa3,0x5d, +1,0x61,0xa3,0x5e,0x6e,0x10,0x61,0xa3,0x5f,0x10,0x61,0xa3,0x61,0x11,0x73,0x61, +0xa3,0x62,0x62,0x3c,0x6a,0x42,0x6c,0x10,0x6c,1,0x61,0xa3,0x5b,0x6c,0x10,0x61, +0xa3,0x5c,0x11,0x68,0x61,0xa3,0x59,0x10,0x61,0xa3,0x5a,0x11,0x65,0x6d,0x51,0x10, +0x61,1,0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61,0x40,0x65,0x3e,1,0x68, +0x28,0x74,0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c,0x43,2,0x68,0x3b,0x6d, +0x5c,0x6e,0x1a,0x69,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,1,0x6b, +0x2a,0x70,0x10,0x61,0xa3,0x65,0x15,0x69,0x6e,0x6e,0x61,0x79,0x61,0xa3,0x64,0x1a, +0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,0x6c,0x3d,2,0x61,0x3a,0x68, +0x5e,0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,0x68,0x4b,2,0x66,0x47,0x70, +0x38,0x73,0x17,0x68,0x6d,0x69,0x72,0x69,0x79,0x65,0x68,0xa3,0x68,0x10,0x68,0x49, +0x12,0x61,0x70,0x68,0x89,0x11,0x61,0x6d,0x4c,0x12,0x61,0x64,0x68,0x4f,0x61,0x6e, +0x62,0xa2,0x54,0x64,0xa2,0x70,0x65,0x31,0x66,2,0x61,0x3e,0x65,0x4a,0x69,0x19, +0x6e,0x61,0x6c,0x73,0x65,0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,0x79, +0x65,0x68,0x8f,0x86,0x10,0x68,0x33,2,0x66,0x3c,0x69,0x70,0x6c,1,0x61,0x28, +0x65,0x10,0x66,0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,0x6e,2,0x66, +0x30,0x6e,0x36,0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,0x56,0x12,0x6f, +0x6f,0x6e,0xa3,0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73, +0x68,0x61,0x73,0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1, +0x68,0x29,0x74,0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69, +0x73,0x68,0x2f,7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f, +0x6e,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a, +0x6f,0x69,0x6e,0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72, +0x65,0x6e,0x74,0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74, +0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69, +0x6e,0x69,0x6e,0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67, +0x23,0,0x14,0x6e,0xc0,0xe5,0x73,0x5e,0x77,0x23,0x77,0x40,0x78,0x58,0x7a,0x10, +0x77,0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,0x59,1,0x6a,0x5d,0x6f, +0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x73,0x4a,0x75, +0x7a,0x76,1,0x66,0x7d,0x69,0x7e,0x13,0x72,0x61,0x6d,0x61,0x7e,0x14,0x66,0x69, +0x6e,0x61,0x6c,0x7d,4,0x61,0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79,0x57,0x54, +0x12,0x61,0x63,0x65,0x55,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53,0x15,0x6e, +0x6b,0x6e,0x6f,0x77,0x6e,0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2, +0x6e,0x72,1,0x65,0x24,0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e, +0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73, +0x45,0x75,0x46,0x14,0x6d,0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e, +0x65,0x5b,0x17,0x6e,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c, +0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f, +0x3e,0x72,0x4c,0x1a,0x65,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d, +0x4a,0x1b,0x73,0x74,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10, +0x75,0x4e,0x16,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69, +0x86,0x6a,0xa2,0x61,0x6c,0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72, +0x79,0x62,0x72,0x65,0x61,0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d, +0x79,0x3a,0x13,0x70,0x68,0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74, +0x74,0x65,0x72,0x6d,2,0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67, +0x72,0x61,0x70,0x68,0x69,0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11,0x65,0x70,1, +0x61,0x22,0x65,0x14,0x72,0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d, +0x65,0x72,0x69,0x63,0x41,2,0x6c,0x63,0x74,0x65,0x76,0x67,1,0x66,0x43,0x69, +0x15,0x6e,0x65,0x66,0x65,0x65,0x64,0x43,0x61,0x42,0x62,0xa2,0x49,0x63,0xa2,0x76, +0x65,0xa2,0xfc,0x67,0x10,0x6c,0x38,0x11,0x75,0x65,0x39,5,0x6d,0xf,0x6d,0x28, +0x70,0x79,0x73,0x7b,0x16,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x69,0x23,0x6b, +0x38,0x6c,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x25,0x76,0x13,0x73, +0x61,0x72,0x61,0x76,1,0x70,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x7b,0x15,0x72, +0x65,0x62,0x61,0x73,0x65,0x79,4,0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,0x2d,0x72, +0x12,0x65,0x61,0x6b,2,0x61,0x36,0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c, +0x73,0x57,0x13,0x66,0x74,0x65,0x72,0x29,1,0x65,0x2a,0x6f,0x11,0x74,0x68,0x27, +0x13,0x66,0x6f,0x72,0x65,0x2b,7,0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,0x69,0x72, +0x35,1,0x6d,0x76,0x6e,1,0x64,0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,0x6e,0x74, +0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,0x6c,0x6a, +0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x6b,1, +0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x51,0x18, +0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,0x6a,0x6b, +0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,1,0x61,0x38,0x75,0x18,0x6e,0x63,0x74,0x75, +0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73, +0x69,0x1b,0x72,0x72,0x69,0x61,0x67,0x65,0x72,0x65,0x74,0x75,0x72,0x6e,0x35,2, +0x62,0x3e,0x6d,0x46,0x78,0x36,0x18,0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,0x6f,0x6e, +0x37,0x70,0x12,0x61,0x73,0x65,0x71,0x72,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72, +0x73,1,0x64,0x42,0x6e,1,0x6f,0x32,0x75,0x26,0x14,0x6d,0x65,0x72,0x69,0x63, +0x27,0x11,0x6e,0x65,0x21,1,0x65,0x2e,0x69,0x24,0x12,0x67,0x69,0x74,0x25,0x22, +0x14,0x63,0x69,0x6d,0x61,0x6c,0x23,0,0x18,0x6e,0xc4,0xad,0x74,0xc1,0xb7,0x77, +0x96,0x77,0xa2,0x4c,0x78,0xa2,0x70,0x79,0xa2,0x7a,0x7a,6,0x73,0x1e,0x73,0x34, +0x78,0x42,0x79,0x48,0x7a,0x11,0x7a,0x7a,0xa3,0x67,0x10,0x79,1,0x65,0xa3,0xae, +0x6d,0xa3,0x81,0x11,0x78,0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x61,0x30,0x69,0x58, +0x6d,0x11,0x74,0x68,0xa3,0x80,0x10,0x6e,1,0x61,0x26,0x62,0xa3,0xb1,0x1a,0x62, +0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa3,0xb1,0x11,0x6e,0x68,0x23, +2,0x61,0x30,0x63,0x5a,0x6f,0x11,0x6c,0x65,0xa3,0x9b,1,0x6e,0x3c,0x72,0x10, +0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,0x12,0x63,0x68,0x6f, +0xa3,0xbc,0x11,0x68,0x6f,0xa3,0xbc,1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3,0x65, +0x11,0x65,0x6f,0x9b,1,0x65,0x2c,0x69,0x72,0x11,0x69,0x69,0x73,0x11,0x7a,0x69, +0xa2,0xc0,0x11,0x64,0x69,0xa3,0xc0,0x74,0x66,0x75,0xa4,4,0x76,1,0x61,0x48, +0x69,1,0x73,0x38,0x74,0x10,0x68,0xa2,0xc5,0x13,0x6b,0x75,0x71,0x69,0xa3,0xc5, +0x10,0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,8,0x68,0x64,0x68, +0x5a,0x69,0x6e,0x6e,0xa2,0x45,0x6f,0xa2,0x47,0x75,1,0x6c,0x2a,0x74,0x10,0x67, +0xa3,0xcf,0x18,0x75,0x74,0x69,0x67,0x61,0x6c,0x61,0x72,0x69,0xa3,0xcf,0x10,0x61, +1,0x61,0x24,0x69,0x6d,0x6a,0x11,0x6e,0x61,0x6b,2,0x62,0x3a,0x66,0x4a,0x72, +0x10,0x68,0xa2,0x9e,0x12,0x75,0x74,0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12, +0x74,0x61,0x6e,0x6f,0x14,0x69,0x6e,0x61,0x67,0x68,0x99,0x11,0x73,0x61,0xa3,0xc3, +1,0x64,0x2a,0x74,0x10,0x6f,0xa3,0xc4,1,0x68,0x26,0x72,0xa3,0xce,0x11,0x72, +0x69,0xa3,0xce,0x61,0x36,0x65,0xa2,0x65,0x66,0xa2,0x71,0x67,0x11,0x6c,0x67,0x75, +6,0x6c,0x28,0x6c,0x32,0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65, +0x89,0x75,0x97,1,0x69,0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,1, +0x73,0x2a,0x75,0x10,0x74,0xa3,0x9a,0x10,0x61,0xa3,0xc3,0x67,0x36,0x69,0x52,0x6b, +0x10,0x72,0xa2,0x99,0x10,0x69,0xa3,0x99,1,0x61,0x30,0x62,0x7a,0x13,0x61,0x6e, +0x77,0x61,0x7b,0x12,0x6c,0x6f,0x67,0x75,2,0x6c,0x32,0x74,0x34,0x76,0x12,0x69, +0x65,0x74,0xa3,0x7f,0x10,0x65,0x89,0x12,0x68,0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a, +0x6e,0x10,0x67,0xa3,0x62,0x10,0x75,0x68,0x11,0x67,0x75,0x69,0x11,0x6e,0x67,0x99, +1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67,0x11,0x61,0x72,0x8a, +0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc1,0x1e,0x71,0xa2,0xe9,0x72,0xa2,0xee,0x73, +6,0x69,0x95,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,0x75,0x79,1,0x6c,0x46,0x72, +4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e,0xa3,0x61,0x11,0x61, +0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0x95,2,0x64, +0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,0x12,0x61,0x6c,0x61,0x63,0x10, +0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77,0x72,0x69,0x74,0x69, +0x6e,0x67,0xa3,0x70,2,0x67,0x3a,0x72,0x52,0x79,0x10,0x6f,0xa2,0xb0,0x12,0x6d, +0x62,0x6f,0xa3,0xb0,1,0x64,0x26,0x6f,0xa3,0xb8,0xa2,0xb7,0x12,0x69,0x61,0x6e, +0xa3,0xb7,0x10,0x61,0xa2,0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98, +0x10,0x6e,1,0x64,0x32,0x75,0xa2,0xcd,0x12,0x77,0x61,0x72,0xa3,0xcd,0xa2,0x71, +0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61, +0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72,0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64, +0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87,2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72, +0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3, +0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3,0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85, +0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61,1,0x63,0x2f,0x69,0x23,3,0x65,0x3e, +0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1,0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13, +0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,1,0x68,0x2a,0x72,0x10, +0x6f,0xa3,0x5d,0x10,0x67,0xa3,0xb6,0x6e,0xa2,0x83,0x6f,0xa4,1,0x70,5,0x6c, +0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c, +0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,0x61, +0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,0x6e, +0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,0xa3, +0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,2, +0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,0xa3, +0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,0x90, +0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d,0xa3,0x59,6,0x6b,0x36, +0x6b,0x56,0x73,0x6e,0x75,0x74,0x79,0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70, +0x75,0x61,0x63,0x68,0x75,0x65,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xba,1,0x67,0x2e, +0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,0x11,0x68,0x75,0xa3,0x96, +0x12,0x73,0x68,0x75,0xa3,0x96,0x61,0x42,0x62,0x9e,0x65,0x10,0x77,1,0x61,0xa3, +0xaa,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0x97,3,0x62,0x32,0x67,0x40,0x6e,0x56, +0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x10,0x6d, +0xa2,0xc7,0x15,0x75,0x6e,0x64,0x61,0x72,0x69,0xa3,0xc7,0x10,0x64,0xa2,0xbb,0x16, +0x69,0x6e,0x61,0x67,0x61,0x72,0x69,0xa3,0xbb,0x11,0x61,0x74,0xa3,0x8f,5,0x72, +0x32,0x72,0x30,0x73,0x4e,0x75,0x11,0x67,0x72,0xa3,0xc2,2,0x69,0x2c,0x6b,0x30, +0x79,0x10,0x61,0x5f,0x11,0x79,0x61,0x5f,0x10,0x68,0xa3,0x58,2,0x61,0x36,0x67, +0x3c,0x6d,0x10,0x61,0x84,0x12,0x6e,0x79,0x61,0x85,0x11,0x67,0x65,0xa3,0xab,0x10, +0x65,0xa3,0xab,0x67,0x30,0x6c,0x42,0x6e,0x11,0x61,0x6f,0xa3,0xcc,1,0x61,0x2a, +0x68,0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,2,0x63,0x32,0x64,0x46,0x6f,0x12,0x6e, +0x61,0x6c,0xa3,0xcc,1,0x68,0x26,0x6b,0xa3,0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d, +6,0x70,0x41,0x70,0x3a,0x73,0x58,0x74,0x86,0x75,0x14,0x79,0x67,0x68,0x75,0x72, +0xa3,0xc2,0x11,0x65,0x72,1,0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69, +0x63,0xa3,0x59,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62, +0x69,0x61,0x6e,0xa3,0x85,0x13,0x64,0x69,0x61,0x6e,0xa3,0xb8,0x14,0x75,0x72,0x6b, +0x69,0x63,0xa3,0x58,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72, +0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e, +0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,0x5d,0x68,0xc3,0x28,0x6b,0xc2,0x3f,0x6b, +0xa4,0x17,0x6c,0xa4,0xcd,0x6d,8,0x6f,0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75, 0x86,0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,0x6d,0x61,0x72,0x59,2, 0x64,0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,0xa3,0xa3,0x10,0x67,0x56, 0x14,0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,0x10,0x6f,0xa3,0x95,0x11, @@ -864,238 +882,244 @@ const uint8_t PropNameData::bytesTries[15733]={ 0x56,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,1,0x65,0x26,0x66,0xa3,0xb5, 0x16,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa3,0xb5,0x17,0x74,0x65,0x69,0x6d,0x61, 0x79,0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b,0x69,0x6b,0x61,0x6b, -0x75,0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,6,0x6e,0x1a,0x6e,0x34,0x6f,0x38, -0x70,0x3e,0x74,0x11,0x68,0x69,0xa3,0x78,0x11,0x64,0x61,0x4b,0x11,0x72,0x65,0xa3, -0x77,0x11,0x65,0x6c,0xa3,0x8a,0x61,0x32,0x68,0xa2,0x44,0x69,0x11,0x74,0x73,0xa3, -0xbf,5,0x74,0x23,0x74,0x34,0x77,0x56,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f, -0x14,0x61,0x6b,0x61,0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,0x67,0x61, -0x6e,0x61,0x8d,0x10,0x69,0xa3,0xc6,0x69,0x38,0x6c,0x40,0x6e,1,0x61,0x4d,0x6e, -0x12,0x61,0x64,0x61,0x4b,0x12,0x74,0x68,0x69,0xa3,0x78,0x10,0x69,0xa3,0x4f,4, -0x61,0x40,0x69,0x52,0x6d,0x70,0x6f,0x7c,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69, -0xa3,0x91,0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,0x1d,0x74,0x61, -0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x63,0x72,0x69,0x70,0x74,0xa3,0xbf,1,0x65, -0x24,0x72,0x4f,0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,0xa3,0x9d,4, -0x61,0x5c,0x65,0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,0x64,0x10,0x69, -0xa2,0x6c,0x11,0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,0x6e,0xa3,0x6b, -2,0x6e,0x42,0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,0x69,0x24,0x6e, -0x53,0x10,0x6e,0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,0x70,0x63,0xa2, -0x52,0x11,0x68,0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,0x75,0xa3,0x83, -0x10,0x62,0x80,0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,0x11,0x61,0x72, -1,0x61,0xa3,0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,0x69,0xa2,0x95, -0x6a,2,0x61,0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,0x6d,0x38,0x76, -0x10,0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,0xa3,0xad,0x11, -0x61,0x6e,0xa3,0x69,6,0x6c,0x1e,0x6c,0x34,0x6d,0x3a,0x72,0x48,0x75,0x11,0x6e, -0x67,0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x10,0x6e,1,0x67,0xa3,0x4b,0x70,0xa3, -0xba,0x11,0x6b,0x74,0x8d,0x61,0x3c,0x65,0xa2,0x43,0x69,0x11,0x72,0x61,0x48,0x13, -0x67,0x61,0x6e,0x61,0x49,1,0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e, -0xa3,0xa2,0x42,6,0x6f,0xe,0x6f,0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12, -0x6e,0x6f,0x6f,0x77,0x62,0xa3,0xac,0x67,0x3e,0x69,0x42,0x19,0x66,0x69,0x72,0x6f, -0x68,0x69,0x6e,0x67,0x79,0x61,0xa3,0xb6,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72, -0x46,0x11,0x65,0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c, -0x70,0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2, -0x64,0x66,0x68,0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c, -0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c, -0x61,0x76,0x69,0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64, -0x23,0x64,0xc1,0xd,0x64,0xa2,0x7a,0x65,0xa2,0xc1,0x67,4,0x65,0x82,0x6c,0x9a, -0x6f,0xa2,0x46,0x72,0xa2,0x55,0x75,2,0x6a,0x3c,0x6e,0x4e,0x72,1,0x6d,0x24, -0x75,0x41,0x13,0x75,0x6b,0x68,0x69,0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61, -0x74,0x69,0x3f,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xb3,0x10, -0x6f,1,0x6b,0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67, -0x90,0x15,0x6f,0x6c,0x69,0x74,0x69,0x63,0x91,1,0x6e,0x30,0x74,0x10,0x68,0x3a, -0x11,0x69,0x63,0x3b,1,0x67,0xa3,0xb3,0x6d,0xa3,0xaf,1,0x61,0x32,0x65,1, -0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,0x10,0x6e,0xa2,0x89,0x12,0x74,0x68,0x61,0xa3, -0x89,4,0x65,0x46,0x69,0x6c,0x6f,0x8c,0x73,0x9a,0x75,0x11,0x70,0x6c,0xa2,0x87, -0x13,0x6f,0x79,0x61,0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,0x61,0x34,0x15,0x6e, -0x61,0x67,0x61,0x72,0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,1,0x61,0x36,0x76, -0x16,0x65,0x73,0x61,0x6b,0x75,0x72,0x75,0xa3,0xbe,0x10,0x6b,0xa3,0xbe,0x11,0x67, -0x72,0xa2,0xb2,0x10,0x61,0xa3,0xb2,0x11,0x72,0x74,0x33,2,0x67,0x3a,0x6c,0x72, -0x74,0x11,0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63,0x37,0x10,0x79,2,0x64,0xa3, -0x45,0x68,0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72, -0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,1,0x62,0x36,0x79,0x10,0x6d,0xa2, -0xb9,0x12,0x61,0x69,0x63,0xa3,0xb9,0x10,0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3, -0x88,0x61,0xa2,0xc9,0x62,0xa4,0x32,0x63,6,0x6f,0x52,0x6f,0x76,0x70,0x92,0x75, -0xa2,0x41,0x79,1,0x70,0x3e,0x72,2,0x69,0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13, -0x6c,0x6c,0x69,0x63,0x31,0x10,0x72,1,0x69,0x34,0x6f,0x15,0x6d,0x69,0x6e,0x6f, -0x61,0x6e,0xa3,0xc1,0x11,0x6f,0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11, -0x69,0x63,0x2f,0x12,0x6d,0x6f,0x6e,0x21,1,0x6d,0x28,0x72,0x10,0x74,0x7f,0x10, -0x6e,0xa3,0xc1,0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,0x61,0x32,0x68, -0xa2,0x41,0x69,0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,0x72,0x76,0x75, -0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3, -0x9f,0x10,0x6d,0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,0x69,0x61,0x6e,0x61, -0x62,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,0x68,0x11,0x61, -0x6e,0xa3,0x68,3,0x61,0x32,0x65,0x44,0x6f,0x52,0x72,0x10,0x73,0xa3,0xbd,1, -0x6b,0x26,0x6d,0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,0x10,0x72,0x2c,0x13,0x6f,0x6b, -0x65,0x65,0x2d,0x16,0x72,0x61,0x73,0x6d,0x69,0x61,0x6e,0xa3,0xbd,6,0x68,0x4e, -0x68,0x48,0x6e,0x4e,0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,0x13, -0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,0x6f, -0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3, -0x9c,1,0x61,0x3e,0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69, -0x61,0x6e,0x27,1,0x62,0x26,0x6e,0xa3,0xc8,0x24,0x11,0x69,0x63,0x25,0x64,0x30, -0x66,0x44,0x67,0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7, -0x10,0x6d,0xa3,0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56, -0x72,0x66,0x75,1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69, -0x8e,0x13,0x6e,0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13, -0x6d,0x6f,0x66,0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65, -0x7d,0xa2,0x41,0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a, -0x6b,0x10,0x73,0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c, -0x3a,0x6d,0x48,0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69, -0x9c,0x13,0x6e,0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10, -0x73,0xa2,0x86,0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61, -0x6c,0x69,0x29,3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77, -0x65,0x6c,0x6a,0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38, -0x74,0x2a,0x17,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c, -0x61,0x62,0x6c,0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23, -1,0x61,0x21,0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65, -0x21,0x26,0x1a,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1, -0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79, -0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22, -0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2, -0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65, -0x25,0x20,0x10,0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11, -0x77,0x6a,0x43,0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,0x65,0x24,0x69, -0x39,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f, -0x72,0x39,1,0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b, -0x35,0x6c,0x1f,0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,0x65,0x70,0x65, -0x6e,0x64,0x37,0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65, -0x72,0x21,0x63,0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66, -0x74,0x65,0x72,0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72, -0x25,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13, -0x74,0x65,0x6e,0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12, -0x67,0x61,0x7a,0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e, -0x4a,0x6e,0x34,0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a, -0x14,0x6d,0x65,0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21, -0x14,0x65,0x74,0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32, -0x12,0x65,0x72,0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e, -0x10,0x70,0x2f,0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65, -0x64,0x66,0x72,0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29, -0x10,0x74,0x22,0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f, -0x73,0x65,0x25,0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13, -0x72,0x6d,0x61,0x74,0x27,0,0x10,0x6c,0x88,0x72,0x40,0x72,0x36,0x73,0x5e,0x77, -0x7a,0x78,0x8a,0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69, -0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69, -0x24,0x71,0x3f,0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x17,0x73, -0x65,0x67,0x73,0x70,0x61,0x63,0x65,0x4d,0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e, -0x76,0x6f,0x13,0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,3,0x62,0x37, -0x69,0x28,0x6c,0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a, -0x12,0x6c,0x65,0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c, -0x39,0x75,0x2c,0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65, -0x39,0x66,0x3f,0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61, -0x6b,0x61,0x6e,0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61, -0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a, -0x49,1,0x65,0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65, -0x72,0x3d,0x61,0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e, -0x13,0x74,0x65,0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1, -0x61,0x24,0x67,0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f, -0x64,0x69,0x66,0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10, -0x72,0x31,1,0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74, -0x65,0x41,2,0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13, -0x6c,0x6f,0x73,0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,6,0x6f,0x65,0x6f,0x4a, -0x72,0x5c,0x74,0x64,0x76,0x1d,0x69,0x73,0x75,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72, -0x6c,0x65,0x66,0x74,0x3d,0x18,0x76,0x65,0x72,0x73,0x74,0x72,0x75,0x63,0x6b,0x2d, -0x13,0x69,0x67,0x68,0x74,0x2f,0x11,0x6f,0x70,0x30,0x12,0x61,0x6e,0x64,2,0x62, -0x32,0x6c,0x62,0x72,0x13,0x69,0x67,0x68,0x74,0x3b,0x14,0x6f,0x74,0x74,0x6f,0x6d, -0x32,0x12,0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x35,0x12, -0x65,0x66,0x74,0x3f,0x12,0x65,0x66,0x74,0x36,0x17,0x61,0x6e,0x64,0x72,0x69,0x67, -0x68,0x74,0x39,0x62,0x2c,0x6c,0x5c,0x6e,0x10,0x61,0x21,0x14,0x6f,0x74,0x74,0x6f, -0x6d,0x22,0x12,0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x27, -0x12,0x65,0x66,0x74,0x25,0x12,0x65,0x66,0x74,0x28,0x17,0x61,0x6e,0x64,0x72,0x69, -0x67,0x68,0x74,0x2b,0xd,0x6e,0xaa,0x72,0x70,0x72,0x92,0x73,0xa2,0x46,0x74,0xa2, -0x54,0x76,1,0x69,0x60,0x6f,0x12,0x77,0x65,0x6c,0x62,1,0x64,0x3a,0x69,0x19, -0x6e,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x67,0x17,0x65,0x70,0x65,0x6e, -0x64,0x65,0x6e,0x74,0x65,1,0x72,0x2e,0x73,0x13,0x61,0x72,0x67,0x61,0x61,0x12, -0x61,0x6d,0x61,0x5f,0x1d,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x73,0x68,0x69,0x66, -0x74,0x65,0x72,0x57,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x6d,0x6f,0x64,0x69, -0x66,0x69,0x65,0x72,0x59,0x12,0x6f,0x6e,0x65,1,0x6c,0x2c,0x6d,0x12,0x61,0x72, -0x6b,0x5d,0x14,0x65,0x74,0x74,0x65,0x72,0x5b,0x6e,0x3c,0x6f,0x7c,0x70,0x18,0x75, -0x72,0x65,0x6b,0x69,0x6c,0x6c,0x65,0x72,0x55,1,0x6f,0x4c,0x75,1,0x6b,0x3c, -0x6d,0x12,0x62,0x65,0x72,0x50,0x15,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x53,0x11,0x74, -0x61,0x4f,0x16,0x6e,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x4d,0x13,0x74,0x68,0x65,0x72, -0x21,0x67,0x3e,0x67,0x4a,0x69,0x64,0x6a,0x82,0x6d,0x1d,0x6f,0x64,0x69,0x66,0x79, -0x69,0x6e,0x67,0x6c,0x65,0x74,0x74,0x65,0x72,0x4b,0x1c,0x65,0x6d,0x69,0x6e,0x61, -0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x45,0x1e,0x6e,0x76,0x69,0x73,0x69,0x62, -0x6c,0x65,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x47,0x14,0x6f,0x69,0x6e,0x65,0x72, -0x49,0x61,0xa2,0xba,0x62,0xa2,0xc0,0x63,1,0x61,0xa2,0xa2,0x6f,0x16,0x6e,0x73, -0x6f,0x6e,0x61,0x6e,0x74,0x2a,8,0x6b,0x67,0x6b,0x48,0x6d,0x52,0x70,0x5c,0x73, -0xa2,0x42,0x77,0x19,0x69,0x74,0x68,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x43,0x14, -0x69,0x6c,0x6c,0x65,0x72,0x35,0x14,0x65,0x64,0x69,0x61,0x6c,0x37,1,0x6c,0x52, -0x72,0x10,0x65,1,0x63,0x2e,0x66,0x13,0x69,0x78,0x65,0x64,0x3d,0x19,0x65,0x64, -0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x3b,0x18,0x61,0x63,0x65,0x68,0x6f,0x6c, -0x64,0x65,0x72,0x39,0x10,0x75,1,0x62,0x3e,0x63,0x1b,0x63,0x65,0x65,0x64,0x69, -0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x41,0x15,0x6a,0x6f,0x69,0x6e,0x65,0x64,0x3f, -0x64,0x4c,0x66,0x52,0x68,0x5a,0x69,0x1e,0x6e,0x69,0x74,0x69,0x61,0x6c,0x70,0x6f, -0x73,0x74,0x66,0x69,0x78,0x65,0x64,0x33,0x12,0x65,0x61,0x64,0x2d,0x13,0x69,0x6e, -0x61,0x6c,0x2f,0x18,0x65,0x61,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,0x1d,0x6e, -0x74,0x69,0x6c,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x29,0x16,0x76, -0x61,0x67,0x72,0x61,0x68,0x61,0x23,1,0x69,0x4a,0x72,0x10,0x61,0x1f,0x68,0x6d, -0x69,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x6e,0x75,0x6d,0x62,0x65,0x72,0x27,0x12, -0x6e,0x64,0x75,0x25,2,0x72,0x38,0x74,0x46,0x75,0x26,0x15,0x70,0x72,0x69,0x67, -0x68,0x74,0x27,0x20,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x21,1,0x72,0x24,0x75, -0x25,0x22,0x18,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x64,1,0x72,0x32,0x75, -0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x25,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x23, -1,0x61,0x38,0x72,0x18,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x65,0x64,0x21,0x15, -0x6c,0x6c,0x6f,0x77,0x65,0x64,0x23,0xd,0x6e,0xc1,0x86,0x73,0xa8,0x73,0x4c,0x74, -0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,0x70,0,2,0x6c,0xd9,0x20,0,0x70,0xd9, -0x40,0,0x73,0xc3,0,0xfe,0xf,0,0,0,7,0x6f,0x3c,0x6f,0xff,8, -0,0,0,0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d,0x62,0x6f,0x6c,0xff,0xf,0, -0,0,0x11,0x61,0x63,1,0x65,0x34,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b, -0xa5,0,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xc3,0,0x16,0x72, -0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,0,0,0x63,0xff,2,0,0,0,0x65, -0x38,0x6b,0xff,4,0,0,0,0x6d,0xff,1,0,0,0,0x16,0x70,0x61, -0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,0,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73, -0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72, -0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x17,0x61,0x73,0x73,0x69, -0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2,0x89,0x70,0xfe,0x30,0xf8,0, -0,9,0x69,0x33,0x69,0xff,0x10,0,0,0,0x6f,0xfd,0x80,0,0,0x72, -0x54,0x73,0xf9,0,0,0x75,0x12,0x6e,0x63,0x74,0xfe,0x30,0xf8,0,0,0x15, -0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x30,0xf8,0,0,0x17,0x69,0x76,0x61,0x74, -0x65,0x75,0x73,0x65,0xdd,0,0,0x61,0x48,0x63,0xfd,0x40,0,0,0x64,0xe9, -0,0,0x65,0xfd,0x20,0,0,0x66,0xff,0x20,0,0,0,0x1f,0x72,0x61, -0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x40, -0,0xbe,0,3,0x64,0xa7,0,0x6c,0xab,0,0x6f,0x30,0x75,0x13,0x6d,0x62, -0x65,0x72,0xbf,0,0xb2,0,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d, -0x61,0x72,0x6b,0xa1,1,0x70,0x92,0x74,0x12,0x68,0x65,0x72,0xe6,0x80,1,3, -0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,8,0, -0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x61,0x14,0x75,0x6d,0x62,0x65,0x72,0xb3, -0,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x80,0,0, -0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xf9,0, -0,0x66,0xc0,0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64,0x6c,0xa2,0x79,0x6d,0xa4,0xc0, -4,0x61,0x6c,0x63,0xa5,0,0x65,0xa3,0x80,0x6e,0xa1,0x6f,0x15,0x64,0x69,0x66, -0x69,0x65,0x72,1,0x6c,0x38,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,4,0, -0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x41,1,0x72,0x3c,0x74,0x16,0x68,0x73, -0x79,0x6d,0x62,0x6f,0x6c,0xff,1,0,0,0,0x10,0x6b,0xa5,0xc0,1,0x69, -0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,0xdb,0,0,0x1d,0x6e,0x61,0x6c,0x70,0x75, -0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x20,0,0,0,0x10,0x6e, -0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, -0x6e,0xff,0x10,0,0,0,0x9c,7,0x6d,0x18,0x6d,0x41,0x6f,0x28,0x74,0x31, -0x75,0x25,0x60,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65, -0x72,0x29,0x63,0x3d,0x65,0x28,0x69,0x42,0x6c,0x29,0x13,0x74,0x74,0x65,0x72,0x9c, -0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0xab,0,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61, -0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,0,0x63,0x46,0x64,0xa2,0x96,0x65,0x1b,0x6e, -0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x80,0xe6,0x80,1, -7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,0x73,0xe1,0,0,0x75,0x1b,0x72,0x72,0x65, -0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,2,0,0,0,0x22,0x12, -0x74,0x72,0x6c,0xd9,0x80,0,0xdc,0,0,1,0x6d,0x62,0x6e,1,0x6e,0x30, -0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,0,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75, -0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x40,0,0,0x19,0x62,0x69, -0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0,0x61,0x58,0x63,0xd9,0x80,0, -0x66,0xdb,0,0,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61, -0x74,0x69,0x6f,0x6e,0xfd,0x20,0,0,0x18,0x73,0x65,0x64,0x6c,0x65,0x74,0x74, -0x65,0x72,0x3d,2,0x61,0x32,0x65,0x50,0x69,0x12,0x67,0x69,0x74,0xa7,0,0x1c, -0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xe9,0,0, -0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0xa7,0,8,0x6e, -0x50,0x6e,0x46,0x6f,0x7a,0x72,0x88,0x74,0x9c,0x75,0x19,0x6e,0x63,0x6f,0x6d,0x6d, -0x6f,0x6e,0x75,0x73,0x65,0x31,0x11,0x6f,0x74,2,0x63,0x2e,0x6e,0x3e,0x78,0x11, -0x69,0x64,0x29,0x17,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x21,0x12,0x66,0x6b, -0x63,0x27,0x16,0x62,0x73,0x6f,0x6c,0x65,0x74,0x65,0x2d,0x19,0x65,0x63,0x6f,0x6d, -0x6d,0x65,0x6e,0x64,0x65,0x64,0x37,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c, -0x2f,0x64,0x40,0x65,0x78,0x69,0x88,0x6c,0x18,0x69,0x6d,0x69,0x74,0x65,0x64,0x75, -0x73,0x65,0x33,0x10,0x65,1,0x66,0x34,0x70,0x16,0x72,0x65,0x63,0x61,0x74,0x65, -0x64,0x23,0x1c,0x61,0x75,0x6c,0x74,0x69,0x67,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65, -0x25,0x17,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x2b,0x17,0x6e,0x63,0x6c,0x75, -0x73,0x69,0x6f,0x6e,0x35 +0x75,0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,7,0x6f,0x1b,0x6f,0x34,0x70,0x3a, +0x72,0x40,0x74,0x11,0x68,0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c, +0xa3,0x8a,0x11,0x61,0x69,0xa3,0xcb,0x61,0x36,0x68,0xa2,0x46,0x69,0xa2,0x83,0x6e, +0x11,0x64,0x61,0x4b,5,0x74,0x23,0x74,0x34,0x77,0x56,0x79,0x13,0x61,0x68,0x6c, +0x69,0xa3,0x4f,0x14,0x61,0x6b,0x61,0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72, +0x61,0x67,0x61,0x6e,0x61,0x8d,0x10,0x69,0xa3,0xc6,0x69,0x38,0x6c,0x40,0x6e,1, +0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x12,0x74,0x68,0x69,0xa3,0x78,0x10,0x69, +0xa3,0x4f,4,0x61,0x40,0x69,0x52,0x6d,0x70,0x6f,0x7c,0x75,0x15,0x64,0x61,0x77, +0x61,0x64,0x69,0xa3,0x91,0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93, +0x1d,0x74,0x61,0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x63,0x72,0x69,0x70,0x74,0xa3, +0xbf,1,0x65,0x24,0x72,0x4f,0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69, +0xa3,0x9d,1,0x72,0x2a,0x74,0x10,0x73,0xa3,0xbf,0x14,0x61,0x74,0x72,0x61,0x69, +0xa3,0xcb,4,0x61,0x5c,0x65,0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34, +0x64,0x10,0x69,0xa2,0x6c,0x11,0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61, +0x6e,0xa3,0x6b,2,0x6e,0x42,0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51, +0x69,0x24,0x6e,0x53,0x10,0x6e,0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11, +0x70,0x63,0xa2,0x52,0x11,0x68,0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10, +0x75,0xa3,0x83,0x10,0x62,0x80,0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65, +0x11,0x61,0x72,1,0x61,0xa3,0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e, +0x69,0xa2,0x95,0x6a,2,0x61,0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1, +0x6d,0x38,0x76,0x10,0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f, +0xa3,0xad,0x11,0x61,0x6e,0xa3,0x69,6,0x6c,0x1e,0x6c,0x34,0x6d,0x3a,0x72,0x48, +0x75,0x11,0x6e,0x67,0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x10,0x6e,1,0x67,0xa3, +0x4b,0x70,0xa3,0xba,0x11,0x6b,0x74,0x8d,0x61,0x3c,0x65,0xa2,0x43,0x69,0x11,0x72, +0x61,0x48,0x13,0x67,0x61,0x6e,0x61,0x49,1,0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2, +0x11,0x61,0x6e,0xa3,0xa2,0x42,6,0x6f,0xe,0x6f,0x77,0x73,0xa3,0x49,0x74,0xa3, +0x4a,0x75,0x12,0x6e,0x6f,0x6f,0x77,0x62,0xa3,0xac,0x67,0x3e,0x69,0x42,0x19,0x66, +0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa3,0xb6,0x44,0x11,0x75,0x6c,0x45, +0x11,0x62,0x72,0x46,0x11,0x65,0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61, +0x6c,0x5d,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63, +0xa3,0x74,2,0x64,0x66,0x68,0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f, +0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3, +0x7d,0x13,0x6c,0x61,0x76,0x69,0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69, +0x74,0x65,0x64,0x23,0x64,0xc1,0x28,0x64,0xa2,0x95,0x65,0xa2,0xdc,0x67,5,0x6f, +0x66,0x6f,0x98,0x72,0xa2,0x4b,0x75,3,0x6a,0x54,0x6b,0x66,0x6e,0x6a,0x72,1, +0x6d,0x38,0x75,0x40,0x16,0x6e,0x67,0x6b,0x68,0x65,0x6d,0x61,0xa3,0xca,0x13,0x75, +0x6b,0x68,0x69,0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x10, +0x68,0xa3,0xca,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xb3,1, +0x6e,0x30,0x74,0x10,0x68,0x3a,0x11,0x69,0x63,0x3b,1,0x67,0xa3,0xb3,0x6d,0xa3, +0xaf,1,0x61,0x32,0x65,1,0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,0x10,0x6e,0xa2, +0x89,0x12,0x74,0x68,0x61,0xa3,0x89,0x61,0x3e,0x65,0x4c,0x6c,0x11,0x61,0x67,0x90, +0x15,0x6f,0x6c,0x69,0x74,0x69,0x63,0x91,0x11,0x72,0x61,0xa2,0xc9,0x10,0x79,0xa3, +0xc9,0x10,0x6f,1,0x6b,0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,4, +0x65,0x46,0x69,0x6c,0x6f,0x8c,0x73,0x9a,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13,0x6f, +0x79,0x61,0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,0x61,0x34,0x15,0x6e,0x61,0x67, +0x61,0x72,0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,1,0x61,0x36,0x76,0x16,0x65, +0x73,0x61,0x6b,0x75,0x72,0x75,0xa3,0xbe,0x10,0x6b,0xa3,0xbe,0x11,0x67,0x72,0xa2, +0xb2,0x10,0x61,0xa3,0xb2,0x11,0x72,0x74,0x33,2,0x67,0x3a,0x6c,0x72,0x74,0x11, +0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63,0x37,0x10,0x79,2,0x64,0xa3,0x45,0x68, +0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67, +0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,1,0x62,0x36,0x79,0x10,0x6d,0xa2,0xb9,0x12, +0x61,0x69,0x63,0xa3,0xb9,0x10,0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61, +0xa2,0xc9,0x62,0xa4,0x32,0x63,6,0x6f,0x52,0x6f,0x76,0x70,0x92,0x75,0xa2,0x41, +0x79,1,0x70,0x3e,0x72,2,0x69,0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c, +0x69,0x63,0x31,0x10,0x72,1,0x69,0x34,0x6f,0x15,0x6d,0x69,0x6e,0x6f,0x61,0x6e, +0xa3,0xc1,0x11,0x6f,0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,0x69,0x63, +0x2f,0x12,0x6d,0x6f,0x6e,0x21,1,0x6d,0x28,0x72,0x10,0x74,0x7f,0x10,0x6e,0xa3, +0xc1,0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,0x61,0x32,0x68,0xa2,0x41, +0x69,0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,0x72,0x76,0x75,0x1d,0x63, +0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0x9f,0x10, +0x6d,0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f, +0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,0x68,0x11,0x61,0x6e,0xa3, +0x68,3,0x61,0x32,0x65,0x44,0x6f,0x52,0x72,0x10,0x73,0xa3,0xbd,1,0x6b,0x26, +0x6d,0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,0x10,0x72,0x2c,0x13,0x6f,0x6b,0x65,0x65, +0x2d,0x16,0x72,0x61,0x73,0x6d,0x69,0x61,0x6e,0xa3,0xbd,6,0x68,0x4e,0x68,0x48, +0x6e,0x4e,0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,0x13,0x73,0x74, +0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,0x6f,0x6c,0x69, +0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x9c,1, +0x61,0x3e,0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69,0x61,0x6e, +0x27,1,0x62,0x26,0x6e,0xa3,0xc8,0x24,0x11,0x69,0x63,0x25,0x64,0x30,0x66,0x44, +0x67,0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7,0x10,0x6d, +0xa3,0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56,0x72,0x66, +0x75,1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,0x8e,0x13, +0x6e,0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13,0x6d,0x6f, +0x66,0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,0x7d,0xa2, +0x41,0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a,0x6b,0x10, +0x73,0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c,0x3a,0x6d, +0x48,0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,0x9c,0x13, +0x6e,0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,0x73,0xa2, +0x86,0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,0x6c,0x69, +0x29,3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,0x65,0x6c, +0x6a,0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38,0x74,0x2a, +0x17,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,0x61,0x62, +0x6c,0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,1,0x61, +0x21,0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x21,0x26, +0x1a,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,0x6e,0x2c, +0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,0x22,0x11, +0x65,0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65, +0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,0x6d,0x30, +0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20, +0x10,0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11,0x77,0x6a, +0x43,0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,0x65,0x24,0x69,0x39,0x1e, +0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x39, +1,0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x35,0x6c, +0x1f,0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,0x65,0x70,0x65,0x6e,0x64, +0x37,0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,0x72,0x21, +0x63,0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65, +0x72,0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72,0x25,0x14, +0x6e,0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13,0x74,0x65, +0x6e,0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12,0x67,0x61, +0x7a,0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e,0x4a,0x6e, +0x34,0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a,0x14,0x6d, +0x65,0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21,0x14,0x65, +0x74,0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32,0x12,0x65, +0x72,0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e,0x10,0x70, +0x2f,0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65,0x64,0x66, +0x72,0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29,0x10,0x74, +0x22,0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f,0x73,0x65, +0x25,0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13,0x72,0x6d, +0x61,0x74,0x27,0,0x10,0x6c,0x88,0x72,0x40,0x72,0x36,0x73,0x5e,0x77,0x7a,0x78, +0x8a,0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69,0x6f,0x6e, +0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69,0x24,0x71, +0x3f,0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x17,0x73,0x65,0x67, +0x73,0x70,0x61,0x63,0x65,0x4d,0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,0x76,0x6f, +0x13,0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,3,0x62,0x37,0x69,0x28, +0x6c,0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,0x12,0x6c, +0x65,0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c,0x39,0x75, +0x2c,0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39,0x66, +0x3f,0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b,0x61, +0x6e,0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61,0x3a,0x6c, +0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,0x49,1, +0x65,0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d, +0x61,0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e,0x13,0x74, +0x65,0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1,0x61,0x24, +0x67,0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,0x64,0x69, +0x66,0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72,0x31, +1,0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x41, +2,0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c,0x6f, +0x73,0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,6,0x6f,0x65,0x6f,0x4a,0x72,0x5c, +0x74,0x64,0x76,0x1d,0x69,0x73,0x75,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x6c,0x65, +0x66,0x74,0x3d,0x18,0x76,0x65,0x72,0x73,0x74,0x72,0x75,0x63,0x6b,0x2d,0x13,0x69, +0x67,0x68,0x74,0x2f,0x11,0x6f,0x70,0x30,0x12,0x61,0x6e,0x64,2,0x62,0x32,0x6c, +0x62,0x72,0x13,0x69,0x67,0x68,0x74,0x3b,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x32,0x12, +0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x35,0x12,0x65,0x66, +0x74,0x3f,0x12,0x65,0x66,0x74,0x36,0x17,0x61,0x6e,0x64,0x72,0x69,0x67,0x68,0x74, +0x39,0x62,0x2c,0x6c,0x5c,0x6e,0x10,0x61,0x21,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x22, +0x12,0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x27,0x12,0x65, +0x66,0x74,0x25,0x12,0x65,0x66,0x74,0x28,0x17,0x61,0x6e,0x64,0x72,0x69,0x67,0x68, +0x74,0x2b,0xd,0x6e,0xbd,0x72,0x83,0x72,0x92,0x73,0xa2,0x59,0x74,0xa2,0x67,0x76, +1,0x69,0x60,0x6f,0x12,0x77,0x65,0x6c,0x62,1,0x64,0x3a,0x69,0x19,0x6e,0x64, +0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x67,0x17,0x65,0x70,0x65,0x6e,0x64,0x65, +0x6e,0x74,0x65,1,0x72,0x2e,0x73,0x13,0x61,0x72,0x67,0x61,0x61,0x12,0x61,0x6d, +0x61,0x5f,0x10,0x65,1,0x67,0x40,0x6f,0x1c,0x72,0x64,0x65,0x72,0x69,0x6e,0x67, +0x6b,0x69,0x6c,0x6c,0x65,0x72,0x69,0x1b,0x69,0x73,0x74,0x65,0x72,0x73,0x68,0x69, +0x66,0x74,0x65,0x72,0x57,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x6d,0x6f,0x64, +0x69,0x66,0x69,0x65,0x72,0x59,0x12,0x6f,0x6e,0x65,1,0x6c,0x2c,0x6d,0x12,0x61, +0x72,0x6b,0x5d,0x14,0x65,0x74,0x74,0x65,0x72,0x5b,0x6e,0x3c,0x6f,0x7c,0x70,0x18, +0x75,0x72,0x65,0x6b,0x69,0x6c,0x6c,0x65,0x72,0x55,1,0x6f,0x4c,0x75,1,0x6b, +0x3c,0x6d,0x12,0x62,0x65,0x72,0x50,0x15,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x53,0x11, +0x74,0x61,0x4f,0x16,0x6e,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x4d,0x13,0x74,0x68,0x65, +0x72,0x21,0x67,0x3e,0x67,0x4a,0x69,0x64,0x6a,0x82,0x6d,0x1d,0x6f,0x64,0x69,0x66, +0x79,0x69,0x6e,0x67,0x6c,0x65,0x74,0x74,0x65,0x72,0x4b,0x1c,0x65,0x6d,0x69,0x6e, +0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x45,0x1e,0x6e,0x76,0x69,0x73,0x69, +0x62,0x6c,0x65,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x47,0x14,0x6f,0x69,0x6e,0x65, +0x72,0x49,0x61,0xa2,0xba,0x62,0xa2,0xc0,0x63,1,0x61,0xa2,0xa2,0x6f,0x16,0x6e, +0x73,0x6f,0x6e,0x61,0x6e,0x74,0x2a,8,0x6b,0x67,0x6b,0x48,0x6d,0x52,0x70,0x5c, +0x73,0xa2,0x42,0x77,0x19,0x69,0x74,0x68,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x43, +0x14,0x69,0x6c,0x6c,0x65,0x72,0x35,0x14,0x65,0x64,0x69,0x61,0x6c,0x37,1,0x6c, +0x52,0x72,0x10,0x65,1,0x63,0x2e,0x66,0x13,0x69,0x78,0x65,0x64,0x3d,0x19,0x65, +0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x3b,0x18,0x61,0x63,0x65,0x68,0x6f, +0x6c,0x64,0x65,0x72,0x39,0x10,0x75,1,0x62,0x3e,0x63,0x1b,0x63,0x65,0x65,0x64, +0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x41,0x15,0x6a,0x6f,0x69,0x6e,0x65,0x64, +0x3f,0x64,0x4c,0x66,0x52,0x68,0x5a,0x69,0x1e,0x6e,0x69,0x74,0x69,0x61,0x6c,0x70, +0x6f,0x73,0x74,0x66,0x69,0x78,0x65,0x64,0x33,0x12,0x65,0x61,0x64,0x2d,0x13,0x69, +0x6e,0x61,0x6c,0x2f,0x18,0x65,0x61,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,0x1d, +0x6e,0x74,0x69,0x6c,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x29,0x16, +0x76,0x61,0x67,0x72,0x61,0x68,0x61,0x23,1,0x69,0x4a,0x72,0x10,0x61,0x1f,0x68, +0x6d,0x69,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x6e,0x75,0x6d,0x62,0x65,0x72,0x27, +0x12,0x6e,0x64,0x75,0x25,2,0x72,0x38,0x74,0x46,0x75,0x26,0x15,0x70,0x72,0x69, +0x67,0x68,0x74,0x27,0x20,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x21,1,0x72,0x24, +0x75,0x25,0x22,0x18,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x64,1,0x72,0x32, +0x75,0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x25,0x15,0x6f,0x74,0x61,0x74,0x65,0x64, +0x23,1,0x61,0x38,0x72,0x18,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x65,0x64,0x21, +0x15,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x23,3,0x63,0x34,0x65,0x44,0x6c,0x4e,0x6e, +0x12,0x6f,0x6e,0x65,0x21,0x17,0x6f,0x6e,0x73,0x6f,0x6e,0x61,0x6e,0x74,0x23,0x14, +0x78,0x74,0x65,0x6e,0x64,0x25,0x14,0x69,0x6e,0x6b,0x65,0x72,0x27,0xd,0x6e,0xc1, +0x86,0x73,0xa8,0x73,0x4c,0x74,0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,0x70,0,2, +0x6c,0xd9,0x20,0,0x70,0xd9,0x40,0,0x73,0xc3,0,0xfe,0xf,0,0,0, +7,0x6f,0x3c,0x6f,0xff,8,0,0,0,0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d, +0x62,0x6f,0x6c,0xff,0xf,0,0,0,0x11,0x61,0x63,1,0x65,0x34,0x69,0x15, +0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74, +0x6f,0x72,0xc3,0,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,0,0,0x63, +0xff,2,0,0,0,0x65,0x38,0x6b,0xff,4,0,0,0,0x6d,0xff,1, +0,0,0,0x16,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,0,0x1d,0x69, +0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,1,0x6e, +0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72, +0x25,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2, +0x89,0x70,0xfe,0x30,0xf8,0,0,9,0x69,0x33,0x69,0xff,0x10,0,0,0, +0x6f,0xfd,0x80,0,0,0x72,0x54,0x73,0xf9,0,0,0x75,0x12,0x6e,0x63,0x74, +0xfe,0x30,0xf8,0,0,0x15,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x30,0xf8,0, +0,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xdd,0,0,0x61,0x48,0x63, +0xfd,0x40,0,0,0x64,0xe9,0,0,0x65,0xfd,0x20,0,0,0x66,0xff,0x20, +0,0,0,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72, +0x61,0x74,0x6f,0x72,0xd9,0x40,0,0xbe,0,3,0x64,0xa7,0,0x6c,0xab,0, +0x6f,0x30,0x75,0x13,0x6d,0x62,0x65,0x72,0xbf,0,0xb2,0,0x1b,0x6e,0x73,0x70, +0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa1,1,0x70,0x92,0x74,0x12,0x68, +0x65,0x72,0xe6,0x80,1,3,0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,0x14,0x79,0x6d, +0x62,0x6f,0x6c,0xff,8,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x61,0x14, +0x75,0x6d,0x62,0x65,0x72,0xb3,0,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69, +0x6f,0x6e,0xfd,0x80,0,0,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61, +0x74,0x69,0x6f,0x6e,0xf9,0,0,0x66,0xc0,0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64, +0x6c,0xa2,0x79,0x6d,0xa4,0xc0,4,0x61,0x6c,0x63,0xa5,0,0x65,0xa3,0x80,0x6e, +0xa1,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x38,0x73,0x14,0x79,0x6d, +0x62,0x6f,0x6c,0xff,4,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x41,1, +0x72,0x3c,0x74,0x16,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,1,0,0,0, +0x10,0x6b,0xa5,0xc0,1,0x69,0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,0xdb,0,0, +0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff, +0x20,0,0,0,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63, +0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x10,0,0,0,0x9c,7,0x6d,0x18, +0x6d,0x41,0x6f,0x28,0x74,0x31,0x75,0x25,0x60,0x1c,0x77,0x65,0x72,0x63,0x61,0x73, +0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x29,0x63,0x3d,0x65,0x28,0x69,0x42,0x6c,0x29, +0x13,0x74,0x74,0x65,0x72,0x9c,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0xab,0,0x1a, +0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,0,0x63,0x46, +0x64,0xa2,0x96,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72, +0x6b,0xa3,0x80,0xe6,0x80,1,7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,0x73,0xe1,0, +0,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff, +2,0,0,0,0x22,0x12,0x74,0x72,0x6c,0xd9,0x80,0,0xdc,0,0,1, +0x6d,0x62,0x6e,1,0x6e,0x30,0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,0,0x1f,0x65, +0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd, +0x40,0,0,0x19,0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0, +0x61,0x58,0x63,0xd9,0x80,0,0x66,0xdb,0,0,0x6c,0x1d,0x6f,0x73,0x65,0x70, +0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x20,0,0,0x18,0x73, +0x65,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,2,0x61,0x32,0x65,0x50,0x69,0x12, +0x67,0x69,0x74,0xa7,0,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74, +0x69,0x6f,0x6e,0xe9,0,0,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62, +0x65,0x72,0xa7,0,8,0x6e,0x50,0x6e,0x46,0x6f,0x7a,0x72,0x88,0x74,0x9c,0x75, +0x19,0x6e,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x75,0x73,0x65,0x31,0x11,0x6f,0x74,2, +0x63,0x2e,0x6e,0x3e,0x78,0x11,0x69,0x64,0x29,0x17,0x68,0x61,0x72,0x61,0x63,0x74, +0x65,0x72,0x21,0x12,0x66,0x6b,0x63,0x27,0x16,0x62,0x73,0x6f,0x6c,0x65,0x74,0x65, +0x2d,0x19,0x65,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x64,0x65,0x64,0x37,0x17,0x65,0x63, +0x68,0x6e,0x69,0x63,0x61,0x6c,0x2f,0x64,0x40,0x65,0x78,0x69,0x88,0x6c,0x18,0x69, +0x6d,0x69,0x74,0x65,0x64,0x75,0x73,0x65,0x33,0x10,0x65,1,0x66,0x34,0x70,0x16, +0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x23,0x1c,0x61,0x75,0x6c,0x74,0x69,0x67,0x6e, +0x6f,0x72,0x61,0x62,0x6c,0x65,0x25,0x17,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e, +0x2b,0x17,0x6e,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x35 }; -const char PropNameData::nameGroups[23743]={ +const char PropNameData::nameGroups[24294]={ 2,'A','l','p','h','a',0,'A','l','p','h','a','b','e','t','i','c',0, 4,'N',0,'N','o',0,'F',0,'F','a','l','s','e',0,4,'Y',0,'Y','e','s',0,'T',0,'T','r','u','e',0, 2,'N','R',0,'N','o','t','_','R','e','o','r','d','e','r','e','d',0, @@ -1203,6 +1227,7 @@ const char PropNameData::nameGroups[23743]={ 2,'I','D','_','C','o','m','p','a','t','_','M','a','t','h','_','S','t','a','r','t',0,'I','D','_','C','o','m','p','a','t','_', 'M','a','t','h','_','S','t','a','r','t',0,2,'I','D','_','C','o','m','p','a','t','_','M','a','t','h','_','C','o','n','t','i', 'n','u','e',0,'I','D','_','C','o','m','p','a','t','_','M','a','t','h','_','C','o','n','t','i','n','u','e',0, +2,'M','C','M',0,'M','o','d','i','f','i','e','r','_','C','o','m','b','i','n','i','n','g','_','M','a','r','k',0, 2,'b','c',0,'B','i','d','i','_','C','l','a','s','s',0,2,'L',0,'L','e','f','t','_','T','o','_','R','i','g','h','t',0, 2,'R',0,'R','i','g','h','t','_','T','o','_','L','e','f','t',0, 2,'E','N',0,'E','u','r','o','p','e','a','n','_','N','u','m','b','e','r',0, @@ -1597,6 +1622,18 @@ const char PropNameData::nameGroups[23743]={ 2,'K','a','w','i',0,'K','a','w','i',0,2,'N','a','g','_','M','u','n','d','a','r','i',0, 'N','a','g','_','M','u','n','d','a','r','i',0,2,'C','J','K','_','E','x','t','_','I',0,'C','J','K','_','U','n','i','f','i', 'e','d','_','I','d','e','o','g','r','a','p','h','s','_','E','x','t','e','n','s','i','o','n','_','I',0, +2,'E','g','y','p','t','i','a','n','_','H','i','e','r','o','g','l','y','p','h','s','_','E','x','t','_','A',0, +'E','g','y','p','t','i','a','n','_','H','i','e','r','o','g','l','y','p','h','s','_','E','x','t','e','n','d','e','d','_','A',0, +2,'G','a','r','a','y',0,'G','a','r','a','y',0,2,'G','u','r','u','n','g','_','K','h','e','m','a',0, +'G','u','r','u','n','g','_','K','h','e','m','a',0,2,'K','i','r','a','t','_','R','a','i',0, +'K','i','r','a','t','_','R','a','i',0,2,'M','y','a','n','m','a','r','_','E','x','t','_','C',0, +'M','y','a','n','m','a','r','_','E','x','t','e','n','d','e','d','_','C',0, +2,'O','l','_','O','n','a','l',0,'O','l','_','O','n','a','l',0, +2,'S','u','n','u','w','a','r',0,'S','u','n','u','w','a','r',0, +2,'S','y','m','b','o','l','s','_','F','o','r','_','L','e','g','a','c','y','_','C','o','m','p','u','t','i','n','g','_','S','u', +'p',0,'S','y','m','b','o','l','s','_','F','o','r','_','L','e','g','a','c','y','_','C','o','m','p','u','t','i','n','g','_','S', +'u','p','p','l','e','m','e','n','t',0,2,'T','o','d','h','r','i',0,'T','o','d','h','r','i',0, +2,'T','u','l','u','_','T','i','g','a','l','a','r','i',0,'T','u','l','u','_','T','i','g','a','l','a','r','i',0, 2,'c','c','c',0,'C','a','n','o','n','i','c','a','l','_','C','o','m','b','i','n','i','n','g','_','C','l','a','s','s',0, 2,'d','t',0,'D','e','c','o','m','p','o','s','i','t','i','o','n','_','T','y','p','e',0, 3,'N','o','n','e',0,'N','o','n','e',0,'n','o','n','e',0, @@ -1655,8 +1692,9 @@ const char PropNameData::nameGroups[23743]={ 2,'E',0,'E',0,2,'F','e','h',0,'F','e','h',0,2,'F','i','n','a','l','_','S','e','m','k','a','t','h',0, 'F','i','n','a','l','_','S','e','m','k','a','t','h',0,2,'G','a','f',0,'G','a','f',0, 2,'G','a','m','a','l',0,'G','a','m','a','l',0,2,'H','a','h',0,'H','a','h',0, -2,'T','e','h','_','M','a','r','b','u','t','a','_','G','o','a','l',0,'H','a','m','z','a','_','O','n','_','H','e','h','_','G', -'o','a','l',0,2,'H','e',0,'H','e',0,2,'H','e','h',0,'H','e','h',0, +3,'T','e','h','_','M','a','r','b','u','t','a','_','G','o','a','l',0,'T','e','h','_','M','a','r','b','u','t','a','_','G','o', +'a','l',0,'H','a','m','z','a','_','O','n','_','H','e','h','_','G','o','a','l',0, +2,'H','e',0,'H','e',0,2,'H','e','h',0,'H','e','h',0, 2,'H','e','h','_','G','o','a','l',0,'H','e','h','_','G','o','a','l',0, 2,'H','e','t','h',0,'H','e','t','h',0,2,'K','a','f',0,'K','a','f',0, 2,'K','a','p','h',0,'K','a','p','h',0,2,'K','n','o','t','t','e','d','_','H','e','h',0, @@ -1734,6 +1772,7 @@ const char PropNameData::nameGroups[23743]={ 2,'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a','_','P','a',0,'H','a','n','i','f','i','_','R','o','h','i','n', 'g','y','a','_','P','a',0,2,'T','h','i','n','_','Y','e','h',0,'T','h','i','n','_','Y','e','h',0, 2,'V','e','r','t','i','c','a','l','_','T','a','i','l',0,'V','e','r','t','i','c','a','l','_','T','a','i','l',0, +2,'K','a','s','h','m','i','r','i','_','Y','e','h',0,'K','a','s','h','m','i','r','i','_','Y','e','h',0, 2,'j','t',0,'J','o','i','n','i','n','g','_','T','y','p','e',0, 2,'U',0,'N','o','n','_','J','o','i','n','i','n','g',0,2,'C',0,'J','o','i','n','_','C','a','u','s','i','n','g',0, 2,'D',0,'D','u','a','l','_','J','o','i','n','i','n','g',0, @@ -1893,8 +1932,13 @@ const char PropNameData::nameGroups[23743]={ 2,'O','u','g','r',0,'O','l','d','_','U','y','g','h','u','r',0, 2,'T','n','s','a',0,'T','a','n','g','s','a',0,2,'V','i','t','h',0,'V','i','t','h','k','u','q','i',0, 2,'N','a','g','m',0,'N','a','g','_','M','u','n','d','a','r','i',0, -2,'A','r','a','n',0,'A','r','a','n',0,2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b','l','e','_', -'T','y','p','e',0,2,'N','A',0,'N','o','t','_','A','p','p','l','i','c','a','b','l','e',0, +2,'A','r','a','n',0,'A','r','a','n',0,2,'G','a','r','a',0,'G','a','r','a','y',0, +2,'G','u','k','h',0,'G','u','r','u','n','g','_','K','h','e','m','a',0, +2,'K','r','a','i',0,'K','i','r','a','t','_','R','a','i',0, +2,'O','n','a','o',0,'O','l','_','O','n','a','l',0,2,'S','u','n','u',0,'S','u','n','u','w','a','r',0, +2,'T','o','d','r',0,'T','o','d','h','r','i',0,2,'T','u','t','g',0,'T','u','l','u','_','T','i','g','a','l','a','r','i', +0,2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b','l','e','_','T','y','p','e',0, +2,'N','A',0,'N','o','t','_','A','p','p','l','i','c','a','b','l','e',0, 2,'L',0,'L','e','a','d','i','n','g','_','J','a','m','o',0, 2,'V',0,'V','o','w','e','l','_','J','a','m','o',0,2,'T',0,'T','r','a','i','l','i','n','g','_','J','a','m','o',0, 2,'L','V',0,'L','V','_','S','y','l','l','a','b','l','e',0, @@ -1987,16 +2031,18 @@ const char PropNameData::nameGroups[23743]={ 'V','i','s','a','r','g','a',0,2,'V','o','w','e','l',0,'V','o','w','e','l',0, 2,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t', 0,2,'V','o','w','e','l','_','I','n','d','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','I','n','d','e','p','e', -'n','d','e','n','t',0,2,'v','o',0,'V','e','r','t','i','c','a','l','_','O','r','i','e','n','t','a','t','i','o','n',0, +'n','d','e','n','t',0,2,'R','e','o','r','d','e','r','i','n','g','_','K','i','l','l','e','r',0, +'R','e','o','r','d','e','r','i','n','g','_','K','i','l','l','e','r',0, +2,'v','o',0,'V','e','r','t','i','c','a','l','_','O','r','i','e','n','t','a','t','i','o','n',0, 2,'R',0,'R','o','t','a','t','e','d',0,2,'T','r',0,'T','r','a','n','s','f','o','r','m','e','d','_','R','o','t','a','t', 'e','d',0,2,'T','u',0,'T','r','a','n','s','f','o','r','m','e','d','_','U','p','r','i','g','h','t',0, -2,'U',0,'U','p','r','i','g','h','t',0,2,'I','d','e','n','t','i','f','i','e','r','_','S','t','a','t','u','s',0, -'I','d','e','n','t','i','f','i','e','r','_','S','t','a','t','u','s',0, -2,'R','e','s','t','r','i','c','t','e','d',0,'R','e','s','t','r','i','c','t','e','d',0, +2,'U',0,'U','p','r','i','g','h','t',0,2,'I','D','_','S','t','a','t','u','s',0,'I','d','e','n','t','i','f','i','e','r', +'_','S','t','a','t','u','s',0,2,'R','e','s','t','r','i','c','t','e','d',0,'R','e','s','t','r','i','c','t','e','d',0, 2,'A','l','l','o','w','e','d',0,'A','l','l','o','w','e','d',0, -2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e','g','o','r','y','_','M','a','s','k',0, -2,'C',0,'O','t','h','e','r',0,2,'L',0,'L','e','t','t','e','r',0, -2,'L','C',0,'C','a','s','e','d','_','L','e','t','t','e','r',0, +2,'I','n','C','B',0,'I','n','d','i','c','_','C','o','n','j','u','n','c','t','_','B','r','e','a','k',0, +2,'L','i','n','k','e','r',0,'L','i','n','k','e','r',0,2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e', +'g','o','r','y','_','M','a','s','k',0,2,'C',0,'O','t','h','e','r',0, +2,'L',0,'L','e','t','t','e','r',0,2,'L','C',0,'C','a','s','e','d','_','L','e','t','t','e','r',0, 3,'M',0,'M','a','r','k',0,'C','o','m','b','i','n','i','n','g','_','M','a','r','k',0, 2,'N',0,'N','u','m','b','e','r',0,3,'P',0,'P','u','n','c','t','u','a','t','i','o','n',0, 'p','u','n','c','t',0,2,'S',0,'S','y','m','b','o','l',0, @@ -2014,8 +2060,8 @@ const char PropNameData::nameGroups[23743]={ 2,'u','c',0,'U','p','p','e','r','c','a','s','e','_','M','a','p','p','i','n','g',0, 2,'b','p','b',0,'B','i','d','i','_','P','a','i','r','e','d','_','B','r','a','c','k','e','t',0, 2,'s','c','x',0,'S','c','r','i','p','t','_','E','x','t','e','n','s','i','o','n','s',0, -2,'I','d','e','n','t','i','f','i','e','r','_','T','y','p','e',0,'I','d','e','n','t','i','f','i','e','r','_','T','y','p','e', -0,2,'N','o','t','_','C','h','a','r','a','c','t','e','r',0,'N','o','t','_','C','h','a','r','a','c','t','e','r',0, +2,'I','D','_','T','y','p','e',0,'I','d','e','n','t','i','f','i','e','r','_','T','y','p','e',0, +2,'N','o','t','_','C','h','a','r','a','c','t','e','r',0,'N','o','t','_','C','h','a','r','a','c','t','e','r',0, 2,'D','e','p','r','e','c','a','t','e','d',0,'D','e','p','r','e','c','a','t','e','d',0, 2,'D','e','f','a','u','l','t','_','I','g','n','o','r','a','b','l','e',0,'D','e','f','a','u','l','t','_','I','g','n','o','r', 'a','b','l','e',0,2,'N','o','t','_','N','F','K','C',0,'N','o','t','_','N','F','K','C',0, diff --git a/thirdparty/icu4c/common/propsvec.cpp b/thirdparty/icu4c/common/propsvec.cpp index 18cc3e8cd8e8..64997313f9e3 100644 --- a/thirdparty/icu4c/common/propsvec.cpp +++ b/thirdparty/icu4c/common/propsvec.cpp @@ -102,29 +102,29 @@ _findRow(UPropsVectors *pv, UChar32 rangeStart) { /* check the vicinity of the last-seen row (start searching with an unrolled loop) */ row=pv->v+prevRow*columns; - if(rangeStart>=(UChar32)row[0]) { - if(rangeStart<(UChar32)row[1]) { + if (rangeStart >= static_cast(row[0])) { + if (rangeStart < static_cast(row[1])) { /* same row as last seen */ return row; - } else if(rangeStart<(UChar32)(row+=columns)[1]) { + } else if (rangeStart < static_cast((row += columns)[1])) { /* next row after the last one */ pv->prevRow=prevRow+1; return row; - } else if(rangeStart<(UChar32)(row+=columns)[1]) { + } else if (rangeStart < static_cast((row += columns)[1])) { /* second row after the last one */ pv->prevRow=prevRow+2; return row; - } else if((rangeStart-(UChar32)row[1])<10) { + } else if ((rangeStart - static_cast(row[1])) < 10) { /* we are close, continue looping */ prevRow+=2; do { ++prevRow; row+=columns; - } while(rangeStart>=(UChar32)row[1]); + } while (rangeStart >= static_cast(row[1])); pv->prevRow=prevRow; return row; } - } else if(rangeStart<(UChar32)pv->v[1]) { + } else if (rangeStart < static_cast(pv->v[1])) { /* the very first row */ pv->prevRow=0; return pv->v; @@ -135,9 +135,9 @@ _findRow(UPropsVectors *pv, UChar32 rangeStart) { while(startv+i*columns; - if(rangeStart<(UChar32)row[0]) { + if (rangeStart < static_cast(row[0])) { limit=i; - } else if(rangeStart<(UChar32)row[1]) { + } else if (rangeStart < static_cast(row[1])) { pv->prevRow=i; return row; } else { @@ -194,8 +194,8 @@ upvec_setValue(UPropsVectors *pv, * input range (only possible for the first and last rows) * and if their value differs from the input value. */ - splitFirstRow= (UBool)(start!=(UChar32)firstRow[0] && value!=(firstRow[column]&mask)); - splitLastRow= (UBool)(limit!=(UChar32)lastRow[1] && value!=(lastRow[column]&mask)); + splitFirstRow = start != static_cast(firstRow[0]) && value != (firstRow[column] & mask); + splitLastRow = limit != static_cast(lastRow[1]) && value != (lastRow[column] & mask); /* split first/last rows if necessary */ if(splitFirstRow || splitLastRow) { @@ -312,8 +312,8 @@ upvec_getRow(const UPropsVectors *pv, int32_t rowIndex, static int32_t U_CALLCONV upvec_compareRows(const void *context, const void *l, const void *r) { - const uint32_t *left=(const uint32_t *)l, *right=(const uint32_t *)r; - const UPropsVectors *pv=(const UPropsVectors *)context; + const uint32_t* left = static_cast(l), *right = static_cast(r); + const UPropsVectors* pv = static_cast(context); int32_t i, count, columns; count=columns=pv->columns; /* includes start/limit columns */ diff --git a/thirdparty/icu4c/common/punycode.cpp b/thirdparty/icu4c/common/punycode.cpp index 7ebdebc1888a..aa02298c5e6d 100644 --- a/thirdparty/icu4c/common/punycode.cpp +++ b/thirdparty/icu4c/common/punycode.cpp @@ -97,12 +97,12 @@ digitToBasic(int32_t digit, UBool uppercase) { /* 26..35 map to ASCII 0..9 */ if(digit<26) { if(uppercase) { - return (char)(_CAPITAL_A+digit); + return static_cast(_CAPITAL_A + digit); } else { - return (char)(_SMALL_A+digit); + return static_cast(_SMALL_A + digit); } } else { - return (char)((_ZERO_-26)+digit); + return static_cast((_ZERO_ - 26) + digit); } } @@ -353,10 +353,10 @@ u_strToPunycode(const char16_t *src, int32_t srcLength, } if(destLength(INT64_C(0x7FF8000000000000))}; +static const BitPatternConversion gInf = {static_cast(INT64_C(0x7FF0000000000000))}; /*--------------------------------------------------------------------------- Platform utilities @@ -230,7 +225,7 @@ u_signBit(double d) { #if U_IS_BIG_ENDIAN hiByte = *(uint8_t *)&d; #else - hiByte = *(((uint8_t *)&d) + sizeof(double) - 1); + hiByte = *(reinterpret_cast(&d) + sizeof(double) - 1); #endif return (hiByte & 0x80) != 0; } @@ -347,7 +342,7 @@ uprv_isNaN(double number) BitPatternConversion convertedNumber; convertedNumber.d64 = number; /* Infinity is 0x7FF0000000000000U. Anything greater than that is a NaN */ - return (UBool)((convertedNumber.i64 & U_INT64_MAX) > gInf.i64); + return (convertedNumber.i64 & U_INT64_MAX) > gInf.i64; #elif U_PLATFORM == U_PF_OS390 uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number, @@ -373,7 +368,7 @@ uprv_isInfinite(double number) BitPatternConversion convertedNumber; convertedNumber.d64 = number; /* Infinity is exactly 0x7FF0000000000000U. */ - return (UBool)((convertedNumber.i64 & U_INT64_MAX) == gInf.i64); + return (convertedNumber.i64 & U_INT64_MAX) == gInf.i64; #elif U_PLATFORM == U_PF_OS390 uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number, sizeof(uint32_t)); @@ -394,7 +389,7 @@ U_CAPI UBool U_EXPORT2 uprv_isPositiveInfinity(double number) { #if IEEE_754 || U_PLATFORM == U_PF_OS390 - return (UBool)(number > 0 && uprv_isInfinite(number)); + return number > 0 && uprv_isInfinite(number); #else return uprv_isInfinite(number); #endif @@ -404,7 +399,7 @@ U_CAPI UBool U_EXPORT2 uprv_isNegativeInfinity(double number) { #if IEEE_754 || U_PLATFORM == U_PF_OS390 - return (UBool)(number < 0 && uprv_isInfinite(number)); + return number < 0 && uprv_isInfinite(number); #else uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number, @@ -749,11 +744,11 @@ static UBool isValidOlsonID(const char *id) { The timezone is sometimes set to "CST-7CDT", "CST6CDT5,J129,J131/19:30", "GRNLNDST3GRNLNDDT" or similar, so we cannot use it. The rest of the time it could be an Olson ID. George */ - return (UBool)(id[idx] == 0 + return id[idx] == 0 || uprv_strcmp(id, "PST8PDT") == 0 || uprv_strcmp(id, "MST7MDT") == 0 || uprv_strcmp(id, "CST6CDT") == 0 - || uprv_strcmp(id, "EST5EDT") == 0); + || uprv_strcmp(id, "EST5EDT") == 0; } /* On some Unix-like OS, 'posix' subdirectory in @@ -932,7 +927,7 @@ static UBool compareBinaryFiles(const char* defaultTZFileName, const char* TZFil */ if (tzInfo->defaultTZBuffer == nullptr) { rewind(tzInfo->defaultTZFilePtr); - tzInfo->defaultTZBuffer = (char*)uprv_malloc(sizeof(char) * tzInfo->defaultTZFileSize); + tzInfo->defaultTZBuffer = static_cast(uprv_malloc(sizeof(char) * tzInfo->defaultTZFileSize)); sizeFileRead = fread(tzInfo->defaultTZBuffer, 1, tzInfo->defaultTZFileSize, tzInfo->defaultTZFilePtr); } rewind(file); diff --git a/thirdparty/icu4c/common/putilimp.h b/thirdparty/icu4c/common/putilimp.h index 5b95a68418c4..8a8ff5008118 100644 --- a/thirdparty/icu4c/common/putilimp.h +++ b/thirdparty/icu4c/common/putilimp.h @@ -90,6 +90,8 @@ typedef size_t uintptr_t; # define U_NL_LANGINFO_CODESET -1 #elif U_PLATFORM == U_PF_OS400 /* not defined */ +#elif U_PLATFORM == U_PF_HAIKU + /* not defined */ #else # define U_NL_LANGINFO_CODESET CODESET #endif @@ -103,6 +105,8 @@ typedef size_t uintptr_t; #endif #elif U_PLATFORM == U_PF_OS400 /* not defined */ +#elif U_PLATFORM == U_PF_HAIKU + /* not defined */ #else # define U_TZSET tzset #endif @@ -141,6 +145,8 @@ typedef size_t uintptr_t; #endif #elif U_PLATFORM == U_PF_OS400 /* not defined */ +#elif U_PLATFORM == U_PF_HAIKU + /* not defined, (well it is but a loop back to icu) */ #else # define U_TZNAME tzname #endif @@ -553,7 +559,7 @@ inline int32_t pinCapacity(T *dest, int32_t capacity) { if (maxInt < destInt) { // Less than 2GB to the end of the address space. // Pin to that to prevent address overflow. - maxInt = (uintptr_t)-1; + maxInt = static_cast(-1); } # endif diff --git a/thirdparty/icu4c/common/rbbi.cpp b/thirdparty/icu4c/common/rbbi.cpp index 9c4141022c35..069af2153711 100644 --- a/thirdparty/icu4c/common/rbbi.cpp +++ b/thirdparty/icu4c/common/rbbi.cpp @@ -110,7 +110,7 @@ RuleBasedBreakIterator::RuleBasedBreakIterator(const uint8_t *compiledRules, status = U_ILLEGAL_ARGUMENT_ERROR; return; } - const RBBIDataHeader *data = (const RBBIDataHeader *)compiledRules; + const RBBIDataHeader* data = reinterpret_cast(compiledRules); if (data->fLength > ruleLength) { status = U_ILLEGAL_ARGUMENT_ERROR; return; @@ -553,7 +553,7 @@ int32_t RuleBasedBreakIterator::first() { * @return The text's past-the-end offset. */ int32_t RuleBasedBreakIterator::last() { - int32_t endPos = (int32_t)utext_nativeLength(&fText); + int32_t endPos = static_cast(utext_nativeLength(&fText)); UBool endShouldBeBoundary = isBoundary(endPos); // Has side effect of setting iterator position. (void)endShouldBeBoundary; U_ASSERT(endShouldBeBoundary); @@ -625,7 +625,7 @@ int32_t RuleBasedBreakIterator::following(int32_t startPos) { // Move requested offset to a code point start. It might be on a trail surrogate, // or on a trail byte if the input is UTF-8. Or it may be beyond the end of the text. utext_setNativeIndex(&fText, startPos); - startPos = (int32_t)utext_getNativeIndex(&fText); + startPos = static_cast(utext_getNativeIndex(&fText)); UErrorCode status = U_ZERO_ERROR; fBreakCache->following(startPos, status); @@ -881,7 +881,7 @@ int32_t RuleBasedBreakIterator::handleNext() { if (accepting == ACCEPTING_UNCONDITIONAL) { // Match found, common case. if (mode != RBBI_START) { - result = (int32_t)UTEXT_GETNATIVEINDEX(&fText); + result = static_cast(UTEXT_GETNATIVEINDEX(&fText)); } fRuleStatusIndex = row->fTagsIdx; // Remember the break status (tag) values. } else if (accepting > ACCEPTING_UNCONDITIONAL) { @@ -905,7 +905,7 @@ int32_t RuleBasedBreakIterator::handleNext() { U_ASSERT(rule == 0 || rule > ACCEPTING_UNCONDITIONAL); U_ASSERT(rule == 0 || rule < fData->fForwardTable->fLookAheadResultsSize); if (rule > ACCEPTING_UNCONDITIONAL) { - int32_t pos = (int32_t)UTEXT_GETNATIVEINDEX(&fText); + int32_t pos = static_cast(UTEXT_GETNATIVEINDEX(&fText)); fLookAheadMatches[rule] = pos; } @@ -937,7 +937,7 @@ int32_t RuleBasedBreakIterator::handleNext() { if (result == initialPosition) { utext_setNativeIndex(&fText, initialPosition); utext_next32(&fText); - result = (int32_t)utext_getNativeIndex(&fText); + result = static_cast(utext_getNativeIndex(&fText)); fRuleStatusIndex = 0; } @@ -1027,7 +1027,7 @@ int32_t RuleBasedBreakIterator::handleSafePrevious(int32_t fromPosition) { } // The state machine is done. Check whether it found a match... - result = (int32_t)UTEXT_GETNATIVEINDEX(&fText); + result = static_cast(UTEXT_GETNATIVEINDEX(&fText)); #ifdef RBBI_DEBUG if (gTrace) { RBBIDebugPrintf("result = %d\n\n", result); @@ -1091,7 +1091,7 @@ const uint8_t *RuleBasedBreakIterator::getBinaryRules(uint32_t &length) { length = 0; if (fData != nullptr) { - retPtr = (const uint8_t *)fData->fHeader; + retPtr = reinterpret_cast(fData->fHeader); length = fData->fHeader->fLength; } return retPtr; @@ -1187,7 +1187,7 @@ getLanguageBreakEngineFromFactory(UChar32 c, const char* locale) int32_t i = gLanguageBreakFactories->size(); const LanguageBreakEngine *lbe = nullptr; while (--i >= 0) { - LanguageBreakFactory *factory = (LanguageBreakFactory *)(gLanguageBreakFactories->elementAt(i)); + LanguageBreakFactory* factory = static_cast(gLanguageBreakFactories->elementAt(i)); lbe = factory->getEngineFor(c, locale); if (lbe != nullptr) { break; @@ -1219,7 +1219,7 @@ RuleBasedBreakIterator::getLanguageBreakEngine(UChar32 c, const char* locale) { int32_t i = fLanguageBreakEngines->size(); while (--i >= 0) { - lbe = (const LanguageBreakEngine *)(fLanguageBreakEngines->elementAt(i)); + lbe = static_cast(fLanguageBreakEngines->elementAt(i)); if (lbe->handles(c, locale)) { return lbe; } diff --git a/thirdparty/icu4c/common/rbbi_cache.cpp b/thirdparty/icu4c/common/rbbi_cache.cpp index 239345998bc4..3ef030cb9195 100644 --- a/thirdparty/icu4c/common/rbbi_cache.cpp +++ b/thirdparty/icu4c/common/rbbi_cache.cpp @@ -146,7 +146,7 @@ void RuleBasedBreakIterator::DictionaryCache::populateDictionary(int32_t startPo uint32_t dictStart = fBI->fData->fForwardTable->fDictCategoriesStart; while(U_SUCCESS(status)) { - while((current = (int32_t)UTEXT_GETNATIVEINDEX(text)) < rangeEnd + while ((current = static_cast(UTEXT_GETNATIVEINDEX(text))) < rangeEnd && (category < dictStart)) { utext_next32(text); // TODO: cleaner loop structure. c = utext_current32(text); @@ -221,7 +221,7 @@ void RuleBasedBreakIterator::BreakCache::reset(int32_t pos, int32_t ruleStatus) fTextIdx = pos; fBufIdx = 0; fBoundaries[0] = pos; - fStatuses[0] = (uint16_t)ruleStatus; + fStatuses[0] = static_cast(ruleStatus); } diff --git a/thirdparty/icu4c/common/rbbidata.cpp b/thirdparty/icu4c/common/rbbidata.cpp index 49603b619345..edfa1bf0d85e 100644 --- a/thirdparty/icu4c/common/rbbidata.cpp +++ b/thirdparty/icu4c/common/rbbidata.cpp @@ -104,10 +104,10 @@ void RBBIDataWrapper::init(const RBBIDataHeader *data, UErrorCode &status) { fDontFreeData = false; if (data->fFTableLen != 0) { - fForwardTable = (RBBIStateTable *)((char *)data + fHeader->fFTable); + fForwardTable = reinterpret_cast(reinterpret_cast(data) + fHeader->fFTable); } if (data->fRTableLen != 0) { - fReverseTable = (RBBIStateTable *)((char *)data + fHeader->fRTable); + fReverseTable = reinterpret_cast(reinterpret_cast(data) + fHeader->fRTable); } fTrie = ucptrie_openFromBinary(UCPTRIE_TYPE_FAST, @@ -130,7 +130,7 @@ void RBBIDataWrapper::init(const RBBIDataHeader *data, UErrorCode &status) { fRuleString = UnicodeString::fromUTF8(StringPiece(fRuleSource, fHeader->fRuleSourceLen)); U_ASSERT(data->fRuleSourceLen > 0); - fRuleStatusTable = (int32_t *)((char *)data + fHeader->fStatusTable); + fRuleStatusTable = reinterpret_cast(reinterpret_cast(data) + fHeader->fStatusTable); fStatusMaxIdx = data->fStatusTableLen / sizeof(int32_t); fRefCount = 1; diff --git a/thirdparty/icu4c/common/rbbirb.cpp b/thirdparty/icu4c/common/rbbirb.cpp index 1b2ee67187b5..4fd789970cc0 100644 --- a/thirdparty/icu4c/common/rbbirb.cpp +++ b/thirdparty/icu4c/common/rbbirb.cpp @@ -103,7 +103,7 @@ RBBIRuleBuilder::~RBBIRuleBuilder() { int i; for (i=0; ; i++) { - RBBINode *n = (RBBINode *)fUSetNodes->elementAt(i); + RBBINode* n = static_cast(fUSetNodes->elementAt(i)); if (n==nullptr) { break; } @@ -182,12 +182,12 @@ RBBIDataHeader *RBBIRuleBuilder::flattenData() { } #endif - RBBIDataHeader *data = (RBBIDataHeader *)uprv_malloc(totalSize); - if (data == nullptr) { + LocalMemory data(static_cast(uprv_malloc(totalSize))); + if (data.isNull()) { *fStatus = U_MEMORY_ALLOCATION_ERROR; return nullptr; } - uprv_memset(data, 0, totalSize); + uprv_memset(data.getAlias(), 0, totalSize); data->fMagic = 0xb1a0; @@ -213,23 +213,23 @@ RBBIDataHeader *RBBIRuleBuilder::flattenData() { uprv_memset(data->fReserved, 0, sizeof(data->fReserved)); - fForwardTable->exportTable((uint8_t *)data + data->fFTable); - fForwardTable->exportSafeTable((uint8_t *)data + data->fRTable); - fSetBuilder->serializeTrie ((uint8_t *)data + data->fTrie); + fForwardTable->exportTable(reinterpret_cast(data.getAlias()) + data->fFTable); + fForwardTable->exportSafeTable(reinterpret_cast(data.getAlias()) + data->fRTable); + fSetBuilder->serializeTrie(reinterpret_cast(data.getAlias()) + data->fTrie); - int32_t *ruleStatusTable = (int32_t *)((uint8_t *)data + data->fStatusTable); + int32_t* ruleStatusTable = reinterpret_cast(reinterpret_cast(data.getAlias()) + data->fStatusTable); for (i=0; isize(); i++) { ruleStatusTable[i] = fRuleStatusVals->elementAti(i); } - u_strToUTF8WithSub((char *)data+data->fRuleSource, rulesSize, &rulesLengthInUTF8, + u_strToUTF8WithSub(reinterpret_cast(data.getAlias()) + data->fRuleSource, rulesSize, &rulesLengthInUTF8, fStrippedRules.getBuffer(), fStrippedRules.length(), 0xfffd, nullptr, fStatus); if (U_FAILURE(*fStatus)) { return nullptr; } - return data; + return data.orphan(); } diff --git a/thirdparty/icu4c/common/rbbiscan.cpp b/thirdparty/icu4c/common/rbbiscan.cpp index f5fdba076f02..cf2d63cd807b 100644 --- a/thirdparty/icu4c/common/rbbiscan.cpp +++ b/thirdparty/icu4c/common/rbbiscan.cpp @@ -748,7 +748,7 @@ void RBBIRuleScanner::findSetFor(const UnicodeString &s, RBBINode *node, Unicode // First check whether we've already cached a set for this string. // If so, just use the cached set in the new node. // delete any set provided by the caller, since we own it. - el = (RBBISetTableEl *)uhash_get(fSetTable, &s); + el = static_cast(uhash_get(fSetTable, &s)); if (el != nullptr) { delete setToAdopt; node->fLeftChild = el->val; @@ -794,7 +794,7 @@ void RBBIRuleScanner::findSetFor(const UnicodeString &s, RBBINode *node, Unicode // // Add the new set to the set hash table. // - el = (RBBISetTableEl *)uprv_malloc(sizeof(RBBISetTableEl)); + el = static_cast(uprv_malloc(sizeof(RBBISetTableEl))); UnicodeString *tkey = new UnicodeString(s); if (tkey == nullptr || el == nullptr || setToAdopt == nullptr) { // Delete to avoid memory leak @@ -864,7 +864,7 @@ UChar32 RBBIRuleScanner::nextCharLL() { UChar32 ch; if (fNextIndex >= fRB->fRules.length()) { - return (UChar32)-1; + return static_cast(-1); } ch = fRB->fRules.char32At(fNextIndex); if (U_IS_SURROGATE(ch)) { @@ -939,7 +939,7 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) { } } - if (c.fChar == (UChar32)-1) { + if (c.fChar == static_cast(-1)) { return; } if (fQuoteMode) { @@ -958,7 +958,7 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) { int32_t commentStart = fScanIndex; for (;;) { c.fChar = nextCharLL(); - if (c.fChar == (UChar32)-1 || // EOF + if (c.fChar == static_cast(-1) || // EOF c.fChar == chCR || c.fChar == chLF || c.fChar == chNEL || @@ -968,7 +968,7 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) { fRB->fStrippedRules.setCharAt(i, u' '); } } - if (c.fChar == (UChar32)-1) { + if (c.fChar == static_cast(-1)) { return; } @@ -1065,14 +1065,14 @@ void RBBIRuleScanner::parse() { // Table row specified "escaped P" and the char is either 'p' or 'P'. break; } - if (tableEl->fCharClass == 252 && fC.fChar == (UChar32)-1) { + if (tableEl->fCharClass == 252 && fC.fChar == static_cast(-1)) { // Table row specified eof and we hit eof on the input. break; } if (tableEl->fCharClass >= 128 && tableEl->fCharClass < 240 && // Table specs a char class && fC.fEscaped == false && // char is not escaped && - fC.fChar != (UChar32)-1) { // char is not EOF + fC.fChar != static_cast(-1)) { // char is not EOF U_ASSERT((tableEl->fCharClass-128) < UPRV_LENGTHOF(fRuleSets)); if (fRuleSets[tableEl->fCharClass-128].contains(fC.fChar)) { // Table row specified a character class, or set of characters, @@ -1090,7 +1090,7 @@ void RBBIRuleScanner::parse() { // We've found the row of the state table that matches the current input // character from the rules string. // Perform any action specified by this row in the state table. - if (doParseActions((int32_t)tableEl->fAction) == false) { + if (doParseActions(static_cast(tableEl->fAction)) == false) { // Break out of the state machine loop if the // the action signalled some kind of error, or // the action was to exit, occurs on normal end-of-rules-input. diff --git a/thirdparty/icu4c/common/rbbisetb.cpp b/thirdparty/icu4c/common/rbbisetb.cpp index e6c72954bc3b..6c22cf470f8b 100644 --- a/thirdparty/icu4c/common/rbbisetb.cpp +++ b/thirdparty/icu4c/common/rbbisetb.cpp @@ -120,7 +120,7 @@ void RBBISetBuilder::buildRanges() { // int ni; for (ni=0; ; ni++) { // Loop over each of the UnicodeSets encountered in the input rules - usetNode = (RBBINode *)this->fRB->fUSetNodes->elementAt(ni); + usetNode = static_cast(this->fRB->fUSetNodes->elementAt(ni)); if (usetNode==nullptr) { break; } @@ -251,7 +251,7 @@ void RBBISetBuilder::buildRanges() { UnicodeString eofString(u"eof"); UnicodeString bofString(u"bof"); for (ni=0; ; ni++) { // Loop over each of the UnicodeSets encountered in the input rules - usetNode = (RBBINode *)this->fRB->fUSetNodes->elementAt(ni); + usetNode = static_cast(this->fRB->fUSetNodes->elementAt(ni)); if (usetNode==nullptr) { break; } @@ -369,7 +369,7 @@ void RBBISetBuilder::addValToSets(UVector *sets, uint32_t val) { int32_t ix; for (ix=0; ixsize(); ix++) { - RBBINode *usetNode = (RBBINode *)sets->elementAt(ix); + RBBINode* usetNode = static_cast(sets->elementAt(ix)); addValToSet(usetNode, val); } } @@ -380,7 +380,7 @@ void RBBISetBuilder::addValToSet(RBBINode *usetNode, uint32_t val) { *fStatus = U_MEMORY_ALLOCATION_ERROR; return; } - leafNode->fVal = (unsigned short)val; + leafNode->fVal = static_cast(val); if (usetNode->fLeftChild == nullptr) { usetNode->fLeftChild = leafNode; leafNode->fParent = usetNode; @@ -441,7 +441,7 @@ UBool RBBISetBuilder::sawBOF() const { //------------------------------------------------------------------------ UChar32 RBBISetBuilder::getFirstChar(int32_t category) const { RangeDescriptor *rlRange; - UChar32 retVal = (UChar32)-1; + UChar32 retVal = static_cast(-1); for (rlRange = fRangeList; rlRange!=nullptr; rlRange=rlRange->fNext) { if (rlRange->fNum == category) { retVal = rlRange->fStartChar; @@ -674,7 +674,7 @@ void RangeDescriptor::split(UChar32 where, UErrorCode &status) { bool RangeDescriptor::isDictionaryRange() { static const char16_t *dictionary = u"dictionary"; for (int32_t i=0; isize(); i++) { - RBBINode *usetNode = (RBBINode *)fIncludesSets->elementAt(i); + RBBINode* usetNode = static_cast(fIncludesSets->elementAt(i)); RBBINode *setRef = usetNode->fParent; if (setRef != nullptr) { RBBINode *varRef = setRef->fParent; diff --git a/thirdparty/icu4c/common/rbbistbl.cpp b/thirdparty/icu4c/common/rbbistbl.cpp index bfaacf64254f..27f31a9d552c 100644 --- a/thirdparty/icu4c/common/rbbistbl.cpp +++ b/thirdparty/icu4c/common/rbbistbl.cpp @@ -41,7 +41,7 @@ U_CDECL_END U_NAMESPACE_BEGIN RBBISymbolTable::RBBISymbolTable(RBBIRuleScanner *rs, const UnicodeString &rules, UErrorCode &status) - :fRules(rules), fRuleScanner(rs), ffffString(char16_t(0xffff)) + : fRules(rules), fRuleScanner(rs), ffffString(static_cast(0xffff)) { fHashTable = nullptr; fCachedSetLookup = nullptr; @@ -76,9 +76,9 @@ const UnicodeString *RBBISymbolTable::lookup(const UnicodeString& s) const RBBINode *exprNode; RBBINode *usetNode; const UnicodeString *retString; - RBBISymbolTable *This = (RBBISymbolTable *)this; // cast off const + RBBISymbolTable *This = const_cast(this); // cast off const - el = (RBBISymbolTableEntry *)uhash_get(fHashTable, &s); + el = static_cast(uhash_get(fHashTable, &s)); if (el == nullptr) { return nullptr; } @@ -119,7 +119,7 @@ const UnicodeString *RBBISymbolTable::lookup(const UnicodeString& s) const const UnicodeFunctor *RBBISymbolTable::lookupMatcher(UChar32 ch) const { UnicodeSet *retVal = nullptr; - RBBISymbolTable *This = (RBBISymbolTable *)this; // cast off const + RBBISymbolTable *This = const_cast(this); // cast off const if (ch == 0xffff) { retVal = fCachedSetLookup; This->fCachedSetLookup = nullptr; @@ -170,7 +170,7 @@ RBBINode *RBBISymbolTable::lookupNode(const UnicodeString &key) const{ RBBINode *retNode = nullptr; RBBISymbolTableEntry *el; - el = (RBBISymbolTableEntry *)uhash_get(fHashTable, &key); + el = static_cast(uhash_get(fHashTable, &key)); if (el != nullptr) { retNode = el->val; } @@ -190,7 +190,7 @@ void RBBISymbolTable::addEntry (const UnicodeString &key, RBBINode * if (U_FAILURE(err)) { return; } - e = (RBBISymbolTableEntry *)uhash_get(fHashTable, &key); + e = static_cast(uhash_get(fHashTable, &key)); if (e != nullptr) { err = U_BRK_VARIABLE_REDFINITION; return; diff --git a/thirdparty/icu4c/common/rbbitblb.cpp b/thirdparty/icu4c/common/rbbitblb.cpp index 96a0b0338ded..4d95137601ef 100644 --- a/thirdparty/icu4c/common/rbbitblb.cpp +++ b/thirdparty/icu4c/common/rbbitblb.cpp @@ -51,7 +51,7 @@ RBBITableBuilder::RBBITableBuilder(RBBIRuleBuilder *rb, RBBINode **rootNode, UEr RBBITableBuilder::~RBBITableBuilder() { int i; for (i=0; isize(); i++) { - delete (RBBIStateDescriptor *)fDStates->elementAt(i); + delete static_cast(fDStates->elementAt(i)); } delete fDStates; delete fSafeTable; @@ -361,8 +361,8 @@ void RBBITableBuilder::calcFollowPos(RBBINode *n) { UVector *LastPosOfLeftChild = n->fLeftChild->fLastPosSet; - for (ix=0; ix<(uint32_t)LastPosOfLeftChild->size(); ix++) { - i = (RBBINode *)LastPosOfLeftChild->elementAt(ix); + for (ix = 0; ix < static_cast(LastPosOfLeftChild->size()); ix++) { + i = static_cast(LastPosOfLeftChild->elementAt(ix)); setAdd(i->fFollowPos, n->fRightChild->fFirstPosSet); } } @@ -373,8 +373,8 @@ void RBBITableBuilder::calcFollowPos(RBBINode *n) { RBBINode *i; // again, n and i are the names from Aho's description. uint32_t ix; - for (ix=0; ix<(uint32_t)n->fLastPosSet->size(); ix++) { - i = (RBBINode *)n->fLastPosSet->elementAt(ix); + for (ix = 0; ix < static_cast(n->fLastPosSet->size()); ix++) { + i = static_cast(n->fLastPosSet->elementAt(ix)); setAdd(i->fFollowPos, n->fFirstPosSet); } } @@ -445,7 +445,7 @@ void RBBITableBuilder::calcChainedFollowPos(RBBINode *tree, RBBINode *endMarkNod int32_t startNodeIx; for (endNodeIx=0; endNodeIx(leafNodes.elementAt(endNodeIx)); // Identify leaf nodes that correspond to overall rule match positions. // These include the endMarkNode in their followPos sets. @@ -465,7 +465,7 @@ void RBBITableBuilder::calcChainedFollowPos(RBBINode *tree, RBBINode *endMarkNod // with the same char class as our ending node. RBBINode *startNode; for (startNodeIx = 0; startNodeIx(matchStartNodes.elementAt(startNodeIx)); if (startNode->fType != RBBINode::leafChar) { continue; } @@ -525,7 +525,7 @@ void RBBITableBuilder::bofFixup() { RBBINode *startNode; int startNodeIx; for (startNodeIx = 0; startNodeIxsize(); startNodeIx++) { - startNode = (RBBINode *)matchStartNodes->elementAt(startNodeIx); + startNode = static_cast(matchStartNodes->elementAt(startNodeIx)); if (startNode->fType != RBBINode::leafChar) { continue; } @@ -605,7 +605,7 @@ void RBBITableBuilder::buildStateTable() { int32_t tx; for (tx=1; txsize(); tx++) { RBBIStateDescriptor *temp; - temp = (RBBIStateDescriptor *)fDStates->elementAt(tx); + temp = static_cast(fDStates->elementAt(tx)); if (temp->fMarked == false) { T = temp; break; @@ -628,7 +628,7 @@ void RBBITableBuilder::buildStateTable() { RBBINode *p; int32_t px; for (px=0; pxfPositions->size(); px++) { - p = (RBBINode *)T->fPositions->elementAt(px); + p = static_cast(T->fPositions->elementAt(px)); if ((p->fType == RBBINode::leafChar) && (p->fVal == a)) { if (U == nullptr) { U = new UVector(*fStatus); @@ -649,7 +649,7 @@ void RBBITableBuilder::buildStateTable() { int ix; for (ix=0; ixsize(); ix++) { RBBIStateDescriptor *temp2; - temp2 = (RBBIStateDescriptor *)fDStates->elementAt(ix); + temp2 = static_cast(fDStates->elementAt(ix)); if (setEquals(U, temp2->fPositions)) { delete U; U = temp2->fPositions; @@ -705,7 +705,7 @@ void RBBITableBuilder::mapLookAheadRules() { fLookAheadRuleMap->setSize(fRB->fScanner->numRules() + 1); for (int32_t n=0; nsize(); n++) { - RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n); + RBBIStateDescriptor* sd = static_cast(fDStates->elementAt(n)); int32_t laSlotForState = 0; // Establish the look-ahead slot for this state, if the state covers @@ -789,9 +789,9 @@ void RBBITableBuilder::flagAcceptingStates() { } for (i=0; i(endMarkerNodes.elementAt(i)); for (n=0; nsize(); n++) { - RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n); + RBBIStateDescriptor* sd = static_cast(fDStates->elementAt(n)); if (sd->fPositions->indexOf(endMarker) >= 0) { // Any non-zero value for fAccepting means this is an accepting node. // The value is what will be returned to the user as the break status. @@ -837,11 +837,11 @@ void RBBITableBuilder::flagLookAheadStates() { return; } for (i=0; i(lookAheadNodes.elementAt(i)); U_ASSERT(lookAheadNode->fType == RBBINode::NodeType::lookAhead); for (n=0; nsize(); n++) { - RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n); + RBBIStateDescriptor* sd = static_cast(fDStates->elementAt(n)); int32_t positionsIdx = sd->fPositions->indexOf(lookAheadNode); if (positionsIdx >= 0) { U_ASSERT(lookAheadNode == sd->fPositions->elementAt(positionsIdx)); @@ -882,10 +882,10 @@ void RBBITableBuilder::flagTaggedStates() { return; } for (i=0; i(tagNodes.elementAt(i)); for (n=0; nsize(); n++) { // For each state s (row in the state table) - RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n); + RBBIStateDescriptor* sd = static_cast(fDStates->elementAt(n)); if (sd->fPositions->indexOf(tagNode) >= 0) { // if s include the tag node t sortedAdd(&sd->fTagVals, tagNode->fVal); } @@ -923,12 +923,12 @@ void RBBITableBuilder::mergeRuleStatusVals() { // We will need this as a default, for rule sets with no explicit tagging. if (fRB->fRuleStatusVals->size() == 0) { fRB->fRuleStatusVals->addElement(1, *fStatus); // Num of statuses in group - fRB->fRuleStatusVals->addElement((int32_t)0, *fStatus); // and our single status of zero + fRB->fRuleStatusVals->addElement(static_cast(0), *fStatus); // and our single status of zero } // For each state for (n=0; nsize(); n++) { - RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n); + RBBIStateDescriptor* sd = static_cast(fDStates->elementAt(n)); UVector *thisStatesTagValues = sd->fTagVals; if (thisStatesTagValues == nullptr) { // No tag values are explicitly associated with this state. @@ -1154,9 +1154,9 @@ bool RBBITableBuilder::findDuplCharClassFrom(IntPair *categories) { uint16_t table_base = 0; uint16_t table_dupl = 1; for (int32_t state=0; stateelementAt(state); - table_base = (uint16_t)sd->fDtran->elementAti(categories->first); - table_dupl = (uint16_t)sd->fDtran->elementAti(categories->second); + RBBIStateDescriptor* sd = static_cast(fDStates->elementAt(state)); + table_base = static_cast(sd->fDtran->elementAti(categories->first)); + table_dupl = static_cast(sd->fDtran->elementAti(categories->second)); if (table_base != table_dupl) { break; } @@ -1176,7 +1176,7 @@ bool RBBITableBuilder::findDuplCharClassFrom(IntPair *categories) { void RBBITableBuilder::removeColumn(int32_t column) { int32_t numStates = fDStates->size(); for (int32_t state=0; stateelementAt(state); + RBBIStateDescriptor* sd = static_cast(fDStates->elementAt(state)); U_ASSERT(column < sd->fDtran->size()); sd->fDtran->removeElementAt(column); } @@ -1190,9 +1190,9 @@ bool RBBITableBuilder::findDuplicateState(IntPair *states) { int32_t numCols = fRB->fSetBuilder->getNumCharCategories(); for (; states->firstfirst++) { - RBBIStateDescriptor *firstSD = (RBBIStateDescriptor *)fDStates->elementAt(states->first); + RBBIStateDescriptor* firstSD = static_cast(fDStates->elementAt(states->first)); for (states->second=states->first+1; states->secondsecond++) { - RBBIStateDescriptor *duplSD = (RBBIStateDescriptor *)fDStates->elementAt(states->second); + RBBIStateDescriptor* duplSD = static_cast(fDStates->elementAt(states->second)); if (firstSD->fAccepting != duplSD->fAccepting || firstSD->fLookAhead != duplSD->fLookAhead || firstSD->fTagsIdx != duplSD->fTagsIdx) { @@ -1252,14 +1252,14 @@ void RBBITableBuilder::removeState(IntPair duplStates) { U_ASSERT(keepState < duplState); U_ASSERT(duplState < fDStates->size()); - RBBIStateDescriptor *duplSD = (RBBIStateDescriptor *)fDStates->elementAt(duplState); + RBBIStateDescriptor* duplSD = static_cast(fDStates->elementAt(duplState)); fDStates->removeElementAt(duplState); delete duplSD; int32_t numStates = fDStates->size(); int32_t numCols = fRB->fSetBuilder->getNumCharCategories(); for (int32_t state=0; stateelementAt(state); + RBBIStateDescriptor* sd = static_cast(fDStates->elementAt(state)); for (int32_t col=0; colfDtran->elementAti(col); int32_t newVal = existingVal; @@ -1283,7 +1283,7 @@ void RBBITableBuilder::removeSafeState(IntPair duplStates) { // and will auto-delete the removed element. int32_t numStates = fSafeTable->size(); for (int32_t state=0; stateelementAt(state); + UnicodeString* sd = static_cast(fSafeTable->elementAt(state)); int32_t numCols = sd->length(); for (int32_t col=0; colcharAt(col); @@ -1357,7 +1357,7 @@ bool RBBITableBuilder::use8BitsForTable() const { // //----------------------------------------------------------------------------- void RBBITableBuilder::exportTable(void *where) { - RBBIStateTable *table = (RBBIStateTable *)where; + RBBIStateTable* table = static_cast(where); uint32_t state; int col; @@ -1390,13 +1390,13 @@ void RBBITableBuilder::exportTable(void *where) { } for (state=0; statefNumStates; state++) { - RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state); - RBBIStateTableRow *row = (RBBIStateTableRow *)(table->fTableData + state*table->fRowLen); + RBBIStateDescriptor* sd = static_cast(fDStates->elementAt(state)); + RBBIStateTableRow* row = reinterpret_cast(table->fTableData + state * table->fRowLen); if (use8BitsForTable()) { U_ASSERT (sd->fAccepting <= 255); U_ASSERT (sd->fLookAhead <= 255); U_ASSERT (0 <= sd->fTagsIdx && sd->fTagsIdx <= 255); - RBBIStateTableRow8 *r8 = (RBBIStateTableRow8*)row; + RBBIStateTableRow8* r8 = reinterpret_cast(row); r8->fAccepting = sd->fAccepting; r8->fLookAhead = sd->fLookAhead; r8->fTagsIdx = sd->fTagsIdx; @@ -1472,8 +1472,8 @@ void RBBITableBuilder::buildSafeReverseTable(UErrorCode &status) { } } if (wantedEndState == endState) { - safePairs.append((char16_t)c1); - safePairs.append((char16_t)c2); + safePairs.append(static_cast(c1)); + safePairs.append(static_cast(c2)); // printf("(%d, %d) ", c1, c2); } } @@ -1579,7 +1579,7 @@ bool RBBITableBuilder::use8BitsForSafeTable() const { // //----------------------------------------------------------------------------- void RBBITableBuilder::exportSafeTable(void *where) { - RBBIStateTable *table = (RBBIStateTable *)where; + RBBIStateTable* table = static_cast(where); uint32_t state; int col; @@ -1604,10 +1604,10 @@ void RBBITableBuilder::exportSafeTable(void *where) { } for (state=0; statefNumStates; state++) { - UnicodeString *rowString = (UnicodeString *)fSafeTable->elementAt(state); - RBBIStateTableRow *row = (RBBIStateTableRow *)(table->fTableData + state*table->fRowLen); + UnicodeString* rowString = static_cast(fSafeTable->elementAt(state)); + RBBIStateTableRow* row = reinterpret_cast(table->fTableData + state * table->fRowLen); if (use8BitsForSafeTable()) { - RBBIStateTableRow8 *r8 = (RBBIStateTableRow8*)row; + RBBIStateTableRow8* r8 = reinterpret_cast(row); r8->fAccepting = 0; r8->fLookAhead = 0; r8->fTagsIdx = 0; diff --git a/thirdparty/icu4c/common/resbund_cnv.cpp b/thirdparty/icu4c/common/resbund_cnv.cpp index 7f83f06f0e0c..a10960918941 100644 --- a/thirdparty/icu4c/common/resbund_cnv.cpp +++ b/thirdparty/icu4c/common/resbund_cnv.cpp @@ -49,7 +49,7 @@ ResourceBundle::constructForLocale(const UnicodeString& path, } else { UnicodeString nullTerminatedPath(path); - nullTerminatedPath.append((char16_t)0); + nullTerminatedPath.append(static_cast(0)); fResource = ures_openU(nullTerminatedPath.getBuffer(), locale.getName(), &error); } } diff --git a/thirdparty/icu4c/common/ruleiter.cpp b/thirdparty/icu4c/common/ruleiter.cpp index 0e665435a785..39bea52e78b7 100644 --- a/thirdparty/icu4c/common/ruleiter.cpp +++ b/thirdparty/icu4c/common/ruleiter.cpp @@ -139,7 +139,7 @@ UChar32 RuleCharacterIterator::_current() const { return buf->char32At(bufPos); } else { int i = pos.getIndex(); - return (i < text.length()) ? text.char32At(i) : (UChar32)DONE; + return (i < text.length()) ? text.char32At(i) : static_cast(DONE); } } diff --git a/thirdparty/icu4c/common/serv.cpp b/thirdparty/icu4c/common/serv.cpp index 5248f7c192b8..3a4aee5797f2 100644 --- a/thirdparty/icu4c/common/serv.cpp +++ b/thirdparty/icu4c/common/serv.cpp @@ -424,7 +424,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer return handleDefault(key, actualReturn, status); } - ICUService* ncthis = (ICUService*)this; // cast away semantic const + ICUService* ncthis = const_cast(this); // cast away semantic const CacheEntry* result = nullptr; { @@ -462,7 +462,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer if (factory != nullptr) { for (int32_t i = 0; i < limit; ++i) { - if (factory == (const ICUServiceFactory*)factories->elementAt(i)) { + if (factory == static_cast(factories->elementAt(i))) { startIndex = i + 1; break; } @@ -478,7 +478,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer do { currentDescriptor.remove(); key.currentDescriptor(currentDescriptor); - result = (CacheEntry*)serviceCache->get(currentDescriptor); + result = static_cast(serviceCache->get(currentDescriptor)); if (result != nullptr) { break; } @@ -490,7 +490,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer int32_t index = startIndex; while (index < limit) { - ICUServiceFactory* f = (ICUServiceFactory*)factories->elementAt(index++); + ICUServiceFactory* f = static_cast(factories->elementAt(index++)); LocalPointer service(f->create(key, this, status)); if (U_FAILURE(status)) { return nullptr; @@ -543,7 +543,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer if (cacheDescriptorList.isValid()) { for (int32_t i = cacheDescriptorList->size(); --i >= 0;) { - UnicodeString* desc = (UnicodeString*)cacheDescriptorList->elementAt(i); + UnicodeString* desc = static_cast(cacheDescriptorList->elementAt(i)); serviceCache->put(*desc, result, status); if (U_FAILURE(status)) { @@ -558,7 +558,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer if (actualReturn != nullptr) { // strip null prefix - if (result->actualDescriptor.indexOf((char16_t)0x2f) == 0) { // U+002f=slash (/) + if (result->actualDescriptor.indexOf(static_cast(0x2f)) == 0) { // U+002f=slash (/) actualReturn->remove(); actualReturn->append(result->actualDescriptor, 1, @@ -618,7 +618,7 @@ ICUService::getVisibleIDs(UVector& result, const UnicodeString* matchID, UErrorC break; } - const UnicodeString* id = (const UnicodeString*)e->key.pointer; + const UnicodeString* id = static_cast(e->key.pointer); if (fallbackKey != nullptr) { if (!fallbackKey->isFallbackOf(*id)) { continue; @@ -644,14 +644,14 @@ ICUService::getVisibleIDMap(UErrorCode& status) const { // must only be called when lock is already held - ICUService* ncthis = (ICUService*)this; // cast away semantic const + ICUService* ncthis = const_cast(this); // cast away semantic const if (idCache == nullptr) { ncthis->idCache = new Hashtable(status); if (idCache == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; } else if (factories != nullptr) { for (int32_t pos = factories->size(); --pos >= 0;) { - ICUServiceFactory* f = (ICUServiceFactory*)factories->elementAt(pos); + ICUServiceFactory* f = static_cast(factories->elementAt(pos)); f->updateVisibleIDs(*idCache, status); } if (U_FAILURE(status)) { @@ -679,7 +679,7 @@ ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result, const Mutex mutex(&lock); const Hashtable* map = getVisibleIDMap(status); if (map != nullptr) { - ICUServiceFactory* f = (ICUServiceFactory*)map->get(id); + ICUServiceFactory* f = static_cast(map->get(id)); if (f != nullptr) { f->getDisplayName(id, locale, result); return result; @@ -691,7 +691,7 @@ ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result, const while (fallbackKey != nullptr && fallbackKey->fallback()) { UnicodeString us; fallbackKey->currentID(us); - f = (ICUServiceFactory*)map->get(us); + f = static_cast(map->get(us)); if (f != nullptr) { f->getDisplayName(id, locale, result); delete fallbackKey; @@ -727,7 +727,7 @@ ICUService::getDisplayNames(UVector& result, result.removeAllElements(); result.setDeleter(userv_deleteStringPair); if (U_SUCCESS(status)) { - ICUService* ncthis = (ICUService*)this; // cast away semantic const + ICUService* ncthis = const_cast(this); // cast away semantic const Mutex mutex(&lock); if (dnCache != nullptr && dnCache->locale != locale) { @@ -749,8 +749,8 @@ ICUService::getDisplayNames(UVector& result, int32_t pos = UHASH_FIRST; const UHashElement* entry = nullptr; while ((entry = m->nextElement(pos)) != nullptr) { - const UnicodeString* id = (const UnicodeString*)entry->key.pointer; - ICUServiceFactory* f = (ICUServiceFactory*)entry->value.pointer; + const UnicodeString* id = static_cast(entry->key.pointer); + ICUServiceFactory* f = static_cast(entry->value.pointer); UnicodeString dname; f->getDisplayName(*id, locale, dname); if (dname.isBogus()) { @@ -776,11 +776,11 @@ ICUService::getDisplayNames(UVector& result, int32_t pos = UHASH_FIRST; const UHashElement *entry = nullptr; while ((entry = dnCache->cache.nextElement(pos)) != nullptr) { - const UnicodeString* id = (const UnicodeString*)entry->value.pointer; + const UnicodeString* id = static_cast(entry->value.pointer); if (matchKey != nullptr && !matchKey->isFallbackOf(*id)) { continue; } - const UnicodeString* dn = (const UnicodeString*)entry->key.pointer; + const UnicodeString* dn = static_cast(entry->key.pointer); StringPair* sp = StringPair::create(*id, *dn, status); result.adoptElement(sp, status); if (U_FAILURE(status)) { diff --git a/thirdparty/icu4c/common/servlkf.cpp b/thirdparty/icu4c/common/servlkf.cpp index f5bb0418c4e9..7ca5e7adc94b 100644 --- a/thirdparty/icu4c/common/servlkf.cpp +++ b/thirdparty/icu4c/common/servlkf.cpp @@ -76,7 +76,7 @@ LocaleKeyFactory::updateVisibleIDs(Hashtable& result, UErrorCode& status) const const UHashElement* elem = nullptr; int32_t pos = UHASH_FIRST; while ((elem = supported->nextElement(pos)) != nullptr) { - const UnicodeString& id = *((const UnicodeString*)elem->key.pointer); + const UnicodeString& id = *static_cast(elem->key.pointer); if (!visible) { result.remove(id); } else { diff --git a/thirdparty/icu4c/common/servls.cpp b/thirdparty/icu4c/common/servls.cpp index 978a956df7c3..33a113896233 100644 --- a/thirdparty/icu4c/common/servls.cpp +++ b/thirdparty/icu4c/common/servls.cpp @@ -179,7 +179,7 @@ class ServiceEnumeration : public StringEnumeration { length = other._ids.size(); for(i = 0; i < length; ++i) { - LocalPointer clonedId(((UnicodeString *)other._ids.elementAt(i))->clone(), status); + LocalPointer clonedId(static_cast(other._ids.elementAt(i))->clone(), status); _ids.adoptElement(clonedId.orphan(), status); } @@ -228,7 +228,7 @@ class ServiceEnumeration : public StringEnumeration { virtual const UnicodeString* snext(UErrorCode& status) override { if (upToDate(status) && (_pos < _ids.size())) { - return (const UnicodeString*)_ids[_pos++]; + return static_cast(_ids[_pos++]); } return nullptr; } @@ -263,7 +263,7 @@ const UnicodeString& ICULocaleService::validateFallbackLocale() const { const Locale& loc = Locale::getDefault(); - ICULocaleService* ncThis = (ICULocaleService*)this; + ICULocaleService* ncThis = const_cast(this); static UMutex llock; { Mutex mutex(&llock); diff --git a/thirdparty/icu4c/common/servnotf.cpp b/thirdparty/icu4c/common/servnotf.cpp index b2ad663a488a..3106152467ff 100644 --- a/thirdparty/icu4c/common/servnotf.cpp +++ b/thirdparty/icu4c/common/servnotf.cpp @@ -56,7 +56,7 @@ ICUNotifier::addListener(const EventListener* l, UErrorCode& status) listeners = lpListeners.orphan(); } else { for (int i = 0, e = listeners->size(); i < e; ++i) { - const EventListener* el = (const EventListener*)(listeners->elementAt(i)); + const EventListener* el = static_cast(listeners->elementAt(i)); if (l == el) { return; } @@ -88,7 +88,7 @@ ICUNotifier::removeListener(const EventListener *l, UErrorCode& status) if (listeners != nullptr) { // identity equality check for (int i = 0, e = listeners->size(); i < e; ++i) { - const EventListener* el = (const EventListener*)listeners->elementAt(i); + const EventListener* el = static_cast(listeners->elementAt(i)); if (l == el) { listeners->removeElementAt(i); if (listeners->size() == 0) { @@ -109,7 +109,7 @@ ICUNotifier::notifyChanged() Mutex lmx(¬ifyLock); if (listeners != nullptr) { for (int i = 0, e = listeners->size(); i < e; ++i) { - EventListener* el = (EventListener*)listeners->elementAt(i); + EventListener* el = static_cast(listeners->elementAt(i)); notifyListener(*el); } } diff --git a/thirdparty/icu4c/common/servrbf.cpp b/thirdparty/icu4c/common/servrbf.cpp index a4feca2c3b00..7f130d55aa50 100644 --- a/thirdparty/icu4c/common/servrbf.cpp +++ b/thirdparty/icu4c/common/servrbf.cpp @@ -61,8 +61,8 @@ ICUResourceBundleFactory::handleCreate(const Locale& loc, int32_t /* kind */, co // who made this change? -- dlf char pkg[20]; int32_t length; - length=_bundleName.extract(0, INT32_MAX, pkg, (int32_t)sizeof(pkg), US_INV); - if(length>=(int32_t)sizeof(pkg)) { + length = _bundleName.extract(0, INT32_MAX, pkg, static_cast(sizeof(pkg)), US_INV); + if (length >= static_cast(sizeof(pkg))) { return nullptr; } return new ResourceBundle(pkg, loc, status); diff --git a/thirdparty/icu4c/common/simpleformatter.cpp b/thirdparty/icu4c/common/simpleformatter.cpp index 16256270727e..66074938943e 100644 --- a/thirdparty/icu4c/common/simpleformatter.cpp +++ b/thirdparty/icu4c/common/simpleformatter.cpp @@ -73,7 +73,7 @@ UBool SimpleFormatter::applyPatternMinMaxArguments( const char16_t *patternBuffer = pattern.getBuffer(); int32_t patternLength = pattern.length(); // Reserve the first char for the number of arguments. - compiledPattern.setTo((char16_t)0); + compiledPattern.setTo(static_cast(0)); int32_t textLength = 0; int32_t maxArg = -1; UBool inQuote = false; @@ -98,7 +98,7 @@ UBool SimpleFormatter::applyPatternMinMaxArguments( } else if (!inQuote && c == OPEN_BRACE) { if (textLength > 0) { compiledPattern.setCharAt(compiledPattern.length() - textLength - 1, - (char16_t)(ARG_NUM_LIMIT + textLength)); + static_cast(ARG_NUM_LIMIT + textLength)); textLength = 0; } int32_t argNumber; @@ -129,7 +129,7 @@ UBool SimpleFormatter::applyPatternMinMaxArguments( if (argNumber > maxArg) { maxArg = argNumber; } - compiledPattern.append((char16_t)argNumber); + compiledPattern.append(static_cast(argNumber)); continue; } // else: c is part of literal text // Append c and track the literal-text segment length. @@ -144,14 +144,14 @@ UBool SimpleFormatter::applyPatternMinMaxArguments( } if (textLength > 0) { compiledPattern.setCharAt(compiledPattern.length() - textLength - 1, - (char16_t)(ARG_NUM_LIMIT + textLength)); + static_cast(ARG_NUM_LIMIT + textLength)); } int32_t argCount = maxArg + 1; if (argCount < min || max < argCount) { errorCode = U_ILLEGAL_ARGUMENT_ERROR; return false; } - compiledPattern.setCharAt(0, (char16_t)argCount); + compiledPattern.setCharAt(0, static_cast(argCount)); return true; } diff --git a/thirdparty/icu4c/common/stringtriebuilder.cpp b/thirdparty/icu4c/common/stringtriebuilder.cpp index 2a40dc88fd87..686703906289 100644 --- a/thirdparty/icu4c/common/stringtriebuilder.cpp +++ b/thirdparty/icu4c/common/stringtriebuilder.cpp @@ -328,7 +328,7 @@ StringTrieBuilder::registerNode(Node *newNode, UErrorCode &errorCode) { const UHashElement *old=uhash_find(nodes, newNode); if(old!=nullptr) { delete newNode; - return (Node *)old->key.pointer; + return static_cast(old->key.pointer); } // If uhash_puti() returns a non-zero value from an equivalent, previously // registered node, then uhash_find() failed to find that and we will leak newNode. @@ -352,7 +352,7 @@ StringTrieBuilder::registerFinalValue(int32_t value, UErrorCode &errorCode) { FinalValueNode key(value); const UHashElement *old=uhash_find(nodes, &key); if(old!=nullptr) { - return (Node *)old->key.pointer; + return static_cast(old->key.pointer); } Node *newNode=new FinalValueNode(value); if(newNode==nullptr) { @@ -375,12 +375,12 @@ StringTrieBuilder::registerFinalValue(int32_t value, UErrorCode &errorCode) { int32_t StringTrieBuilder::hashNode(const void *node) { - return ((const Node *)node)->hashCode(); + return static_cast(node)->hashCode(); } UBool StringTrieBuilder::equalNodes(const void *left, const void *right) { - return *(const Node *)left==*(const Node *)right; + return *static_cast(left) == *static_cast(right); } bool diff --git a/thirdparty/icu4c/common/ubidi.cpp b/thirdparty/icu4c/common/ubidi.cpp index fcf82fa97a8c..400e049d781a 100644 --- a/thirdparty/icu4c/common/ubidi.cpp +++ b/thirdparty/icu4c/common/ubidi.cpp @@ -304,7 +304,7 @@ ubidi_setReorderingMode(UBiDi *pBiDi, UBiDiReorderingMode reorderingMode) UPRV_N if ((pBiDi!=nullptr) && (reorderingMode >= UBIDI_REORDER_DEFAULT) && (reorderingMode < UBIDI_REORDER_COUNT)) { pBiDi->reorderingMode = reorderingMode; - pBiDi->isInverse = (UBool)(reorderingMode == UBIDI_REORDER_INVERSE_NUMBERS_AS_L); + pBiDi->isInverse = reorderingMode == UBIDI_REORDER_INVERSE_NUMBERS_AS_L; } } @@ -381,7 +381,7 @@ firstL_R_AL(UBiDi *pBiDi) { for(i=0; i(ubidi_getCustomizedClass(pBiDi, uchar)); if(result==ON) { if(dirProp==L || dirProp==R || dirProp==AL) { result=dirProp; @@ -436,13 +436,13 @@ getDirProps(UBiDi *pBiDi) { UBool isDefaultLevel=IS_DEFAULT_LEVEL(pBiDi->paraLevel); /* for inverse BiDi, the default para level is set to RTL if there is a strong R or AL character at either end of the text */ - UBool isDefaultLevelInverse=isDefaultLevel && (UBool) - (pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_LIKE_DIRECT || - pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL); + UBool isDefaultLevelInverse = isDefaultLevel && static_cast( + pBiDi->reorderingMode == UBIDI_REORDER_INVERSE_LIKE_DIRECT || + pBiDi->reorderingMode == UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL); int32_t lastArabicPos=-1; int32_t controlCount=0; - UBool removeBiDiControls = (UBool)(pBiDi->reorderingOptions & - UBIDI_OPTION_REMOVE_CONTROLS); + UBool removeBiDiControls = + static_cast(pBiDi->reorderingOptions & UBIDI_OPTION_REMOVE_CONTROLS); enum State { NOT_SEEKING_STRONG, /* 0: not contextual paraLevel, not after FSI */ @@ -676,7 +676,7 @@ bracketInit(UBiDi *pBiDi, BracketData *bd) { bd->isoRuns[0].level=GET_PARALEVEL(pBiDi, 0); UBiDiLevel t = GET_PARALEVEL(pBiDi, 0) & 1; bd->isoRuns[0].lastStrong = bd->isoRuns[0].lastBase = t; - bd->isoRuns[0].contextDir = (UBiDiDirection)t; + bd->isoRuns[0].contextDir = static_cast(t); bd->isoRuns[0].contextPos=0; if(pBiDi->openingsMemory) { bd->openings=pBiDi->openingsMemory; @@ -696,7 +696,7 @@ bracketProcessB(BracketData *bd, UBiDiLevel level) { bd->isoRuns[0].limit=0; bd->isoRuns[0].level=level; bd->isoRuns[0].lastStrong=bd->isoRuns[0].lastBase=level&1; - bd->isoRuns[0].contextDir=(UBiDiDirection)(level&1); + bd->isoRuns[0].contextDir = static_cast(level & 1); bd->isoRuns[0].contextPos=0; } @@ -713,8 +713,8 @@ bracketProcessBoundary(BracketData *bd, int32_t lastCcPos, pLastIsoRun->limit=pLastIsoRun->start; pLastIsoRun->level=embeddingLevel; pLastIsoRun->lastStrong=pLastIsoRun->lastBase=contextLevel&1; - pLastIsoRun->contextDir=(UBiDiDirection)(contextLevel&1); - pLastIsoRun->contextPos=(UBiDiDirection)lastCcPos; + pLastIsoRun->contextDir = static_cast(contextLevel & 1); + pLastIsoRun->contextPos = static_cast(lastCcPos); } /* LRI or RLI */ @@ -729,7 +729,7 @@ bracketProcessLRI_RLI(BracketData *bd, UBiDiLevel level) { pLastIsoRun->start=pLastIsoRun->limit=lastLimit; pLastIsoRun->level=level; pLastIsoRun->lastStrong=pLastIsoRun->lastBase=level&1; - pLastIsoRun->contextDir=(UBiDiDirection)(level&1); + pLastIsoRun->contextDir = static_cast(level & 1); pLastIsoRun->contextPos=0; } @@ -803,7 +803,7 @@ bracketProcessClosing(BracketData *bd, int32_t openIdx, int32_t position) { UBool stable; DirProp newProp; pOpening=&bd->openings[openIdx]; - direction=(UBiDiDirection)(pLastIsoRun->level&1); + direction = static_cast(pLastIsoRun->level & 1); stable=true; /* assume stable until proved otherwise */ /* The stable flag is set when brackets are paired and their @@ -896,7 +896,7 @@ bracketProcessChar(BracketData *bd, int32_t position) { break; } pLastIsoRun->lastBase=ON; - pLastIsoRun->contextDir=(UBiDiDirection)newProp; + pLastIsoRun->contextDir = static_cast(newProp); pLastIsoRun->contextPos=position; level=bd->pBiDi->levels[position]; if(level&UBIDI_LEVEL_OVERRIDE) { /* X4, X5 */ @@ -944,14 +944,14 @@ bracketProcessChar(BracketData *bd, int32_t position) { dirProps[position]=newProp; pLastIsoRun->lastBase=newProp; pLastIsoRun->lastStrong=newProp; - pLastIsoRun->contextDir=(UBiDiDirection)newProp; + pLastIsoRun->contextDir = static_cast(newProp); pLastIsoRun->contextPos=position; } else if(dirProp<=R || dirProp==AL) { newProp= static_cast(DIR_FROM_STRONG(dirProp)); pLastIsoRun->lastBase=dirProp; pLastIsoRun->lastStrong=dirProp; - pLastIsoRun->contextDir=(UBiDiDirection)newProp; + pLastIsoRun->contextDir = static_cast(newProp); pLastIsoRun->contextPos=position; } else if(dirProp==EN) { @@ -960,7 +960,7 @@ bracketProcessChar(BracketData *bd, int32_t position) { newProp=L; /* W7 */ if(!bd->isNumbersSpecial) dirProps[position]=ENL; - pLastIsoRun->contextDir=(UBiDiDirection)L; + pLastIsoRun->contextDir = static_cast(L); pLastIsoRun->contextPos=position; } else { @@ -969,14 +969,14 @@ bracketProcessChar(BracketData *bd, int32_t position) { dirProps[position]=AN; /* W2 */ else dirProps[position]=ENR; - pLastIsoRun->contextDir=(UBiDiDirection)R; + pLastIsoRun->contextDir = static_cast(R); pLastIsoRun->contextPos=position; } } else if(dirProp==AN) { newProp=R; /* N0 */ pLastIsoRun->lastBase=AN; - pLastIsoRun->contextDir=(UBiDiDirection)R; + pLastIsoRun->contextDir = static_cast(R); pLastIsoRun->contextPos=position; } else if(dirProp==NSM) { @@ -1177,10 +1177,10 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) { levels[i]=previousLevel; if (dirProp==LRE || dirProp==LRO) /* least greater even level */ - newLevel=(UBiDiLevel)((embeddingLevel+2)&~(UBIDI_LEVEL_OVERRIDE|1)); + newLevel = static_cast((embeddingLevel + 2) & ~(UBIDI_LEVEL_OVERRIDE | 1)); else /* least greater odd level */ - newLevel=(UBiDiLevel)((NO_OVERRIDE(embeddingLevel)+1)|1); + newLevel = static_cast((NO_OVERRIDE(embeddingLevel) + 1) | 1); if(newLevel<=UBIDI_MAX_EXPLICIT_LEVEL && overflowIsolateCount==0 && overflowEmbeddingCount==0) { lastCcPos=i; @@ -1213,7 +1213,7 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) { if(stackLast>0 && stack[stackLast](stack[stackLast]); } break; case LRI: @@ -1229,10 +1229,10 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) { /* (X5a, X5b) */ if(dirProp==LRI) /* least greater even level */ - newLevel=(UBiDiLevel)((embeddingLevel+2)&~(UBIDI_LEVEL_OVERRIDE|1)); + newLevel = static_cast((embeddingLevel + 2) & ~(UBIDI_LEVEL_OVERRIDE | 1)); else /* least greater odd level */ - newLevel=(UBiDiLevel)((NO_OVERRIDE(embeddingLevel)+1)|1); + newLevel = static_cast((NO_OVERRIDE(embeddingLevel) + 1) | 1); if(newLevel<=UBIDI_MAX_EXPLICIT_LEVEL && overflowIsolateCount==0 && overflowEmbeddingCount==0) { flags|=DIRPROP_FLAG(dirProp); @@ -1276,7 +1276,7 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) { } else /* make it WS so that it is handled by adjustWSLevels() */ dirProps[i]=WS; - embeddingLevel=(UBiDiLevel)stack[stackLast]&~ISOLATE; + embeddingLevel = static_cast(stack[stackLast]) & ~ISOLATE; flags|=(DIRPROP_FLAG(ON)|DIRPROP_FLAG_LR(embeddingLevel)); previousLevel=embeddingLevel; levels[i]=NO_OVERRIDE(embeddingLevel); @@ -1315,7 +1315,7 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) { previousLevel=embeddingLevel; levels[i]=embeddingLevel; if(!bracketProcessChar(&bracketData, i)) - return (UBiDiDirection)-1; + return static_cast(-1); /* the dirProp may have been changed in bracketProcessChar() */ flags|=DIRPROP_FLAG(dirProps[i]); break; @@ -1386,7 +1386,7 @@ checkExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) { } else { // Treat explicit level 0 as a wildcard for the paragraph level. // Avoid making the caller guess what the paragraph level would be. - level = (UBiDiLevel)currentParaLevel; + level = static_cast(currentParaLevel); levels[i] = level | overrideFlag; } } else { @@ -1868,7 +1868,7 @@ processPropertySeq(UBiDi *pBiDi, LevState *pLevState, uint8_t _prop, int32_t start0, k; start0=start; /* save original start position */ - oldStateSeq=(uint8_t)pLevState->state; + oldStateSeq = static_cast(pLevState->state); cell=(*pImpTab)[oldStateSeq][_prop]; pLevState->state=GET_STATE(cell); /* isolate the new state */ actionSeq=(*pImpAct)[GET_ACTION(cell)]; /* isolate the action */ @@ -2076,7 +2076,7 @@ lastL_R_AL(UBiDi *pBiDi) { for(i=length; i>0; ) { /* i is decremented by U16_PREV */ U16_PREV(text, 0, i, uchar); - dirProp=(DirProp)ubidi_getCustomizedClass(pBiDi, uchar); + dirProp = static_cast(ubidi_getCustomizedClass(pBiDi, uchar)); if(dirProp==L) { return DirProp_L; } @@ -2104,7 +2104,7 @@ firstL_R_AL_EN_AN(UBiDi *pBiDi) { for(i=0; i(ubidi_getCustomizedClass(pBiDi, uchar)); if(dirProp==L) { return DirProp_L; } @@ -2142,18 +2142,18 @@ resolveImplicitLevels(UBiDi *pBiDi, * actions) and different levels state tables (maybe very similar to the * LTR corresponding ones. */ - inverseRTL=(UBool) - ((startlastArabicPos) && (GET_PARALEVEL(pBiDi, start) & 1) && - (pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_LIKE_DIRECT || - pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL)); + inverseRTL = + static_cast((start < pBiDi->lastArabicPos) && (GET_PARALEVEL(pBiDi, start) & 1) && + (pBiDi->reorderingMode == UBIDI_REORDER_INVERSE_LIKE_DIRECT || + pBiDi->reorderingMode == UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL)); /* initialize for property and levels state tables */ levState.startL2EN=-1; /* used for INVERSE_LIKE_DIRECT_WITH_MARKS */ levState.lastStrongRTL=-1; /* used for INVERSE_LIKE_DIRECT_WITH_MARKS */ levState.runStart=start; levState.runLevel=pBiDi->levels[start]; - levState.pImpTab=(const ImpTab*)((pBiDi->pImpTabPair)->pImpTab)[levState.runLevel&1]; - levState.pImpAct=(const ImpAct*)((pBiDi->pImpTabPair)->pImpAct)[levState.runLevel&1]; + levState.pImpTab = static_cast(((pBiDi->pImpTabPair)->pImpTab)[levState.runLevel & 1]); + levState.pImpAct = static_cast(((pBiDi->pImpTabPair)->pImpAct)[levState.runLevel & 1]); if(start==0 && pBiDi->proLength>0) { DirProp lastStrong=lastL_R_AL(pBiDi); if(lastStrong!=DirProp_ON) { @@ -2391,8 +2391,8 @@ setParaRunsOnly(UBiDi *pBiDi, const char16_t *text, int32_t length, goto cleanup3; } visualMap=runsOnlyMemory; - visualText=(char16_t *)&visualMap[length]; - saveLevels=(UBiDiLevel *)&visualText[length]; + visualText = reinterpret_cast(&visualMap[length]); + saveLevels = reinterpret_cast(&visualText[length]); saveOptions=pBiDi->reorderingOptions; if(saveOptions & UBIDI_OPTION_INSERT_MARKS) { pBiDi->reorderingOptions&=~UBIDI_OPTION_INSERT_MARKS; diff --git a/thirdparty/icu4c/common/ubidi_props.cpp b/thirdparty/icu4c/common/ubidi_props.cpp index 8f3f6a65c4b3..1ac4ab12a2c3 100644 --- a/thirdparty/icu4c/common/ubidi_props.cpp +++ b/thirdparty/icu4c/common/ubidi_props.cpp @@ -51,7 +51,7 @@ _enumPropertyStartsRange(const void *context, UChar32 start, UChar32 end, uint32 (void)end; (void)value; /* add the start code point to the USet */ - const USetAdder *sa=(const USetAdder *)context; + const USetAdder* sa = static_cast(context); sa->add(sa->set, start); return true; } @@ -139,7 +139,7 @@ ubidi_getClass(UChar32 c) { U_CFUNC UBool ubidi_isMirrored(UChar32 c) { uint16_t props=UTRIE2_GET16(&ubidi_props_singleton.trie, c); - return (UBool)UBIDI_GET_FLAG(props, UBIDI_IS_MIRRORED_SHIFT); + return UBIDI_GET_FLAG(props, UBIDI_IS_MIRRORED_SHIFT); } static UChar32 @@ -183,13 +183,13 @@ ubidi_getMirror(UChar32 c) { U_CFUNC UBool ubidi_isBidiControl(UChar32 c) { uint16_t props=UTRIE2_GET16(&ubidi_props_singleton.trie, c); - return (UBool)UBIDI_GET_FLAG(props, UBIDI_BIDI_CONTROL_SHIFT); + return UBIDI_GET_FLAG(props, UBIDI_BIDI_CONTROL_SHIFT); } U_CFUNC UBool ubidi_isJoinControl(UChar32 c) { uint16_t props=UTRIE2_GET16(&ubidi_props_singleton.trie, c); - return (UBool)UBIDI_GET_FLAG(props, UBIDI_JOIN_CONTROL_SHIFT); + return UBIDI_GET_FLAG(props, UBIDI_JOIN_CONTROL_SHIFT); } U_CFUNC UJoiningType diff --git a/thirdparty/icu4c/common/ubidi_props_data.h b/thirdparty/icu4c/common/ubidi_props_data.h index f85dc0967565..bfd664a1b9f8 100644 --- a/thirdparty/icu4c/common/ubidi_props_data.h +++ b/thirdparty/icu4c/common/ubidi_props_data.h @@ -9,681 +9,694 @@ #ifdef INCLUDED_FROM_UBIDI_PROPS_C -static const UVersionInfo ubidi_props_dataVersion={0xf,1,0,0}; +static const UVersionInfo ubidi_props_dataVersion={0x10,0,0,0}; -static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x6ba0,0x65b0,0x28,0x620,0x8cc,0x10ac0,0x10d24,0,0,0,0,0,0,0,0x6702b6}; +static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x6f08,0x6778,0x28,0x620,0x8cb,0x10ac0,0x10ec5,0,0,0,0,0,0,0,0x6802b6}; -static const uint16_t ubidi_props_trieIndex[13008]={ -0x387,0x38f,0x397,0x39f,0x3b7,0x3bf,0x3c7,0x3cf,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af, -0x3a7,0x3af,0x3a7,0x3af,0x3d5,0x3dd,0x3e5,0x3ed,0x3f5,0x3fd,0x3f9,0x401,0x409,0x411,0x40c,0x414, -0x3a7,0x3af,0x3a7,0x3af,0x41c,0x424,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af,0x42a,0x432,0x43a,0x442, -0x44a,0x452,0x45a,0x462,0x468,0x470,0x478,0x480,0x488,0x490,0x496,0x49e,0x4a6,0x4ae,0x4b6,0x4be, -0x4ca,0x4c6,0x4d2,0x4da,0x4e2,0x4f2,0x4f9,0x4ea,0x501,0x503,0x50b,0x513,0x51b,0x51c,0x524,0x52c, -0x534,0x51c,0x53c,0x541,0x534,0x51c,0x549,0x551,0x51b,0x559,0x561,0x513,0x569,0x3a7,0x571,0x575, -0x57d,0x57f,0x587,0x58f,0x51b,0x597,0x59f,0x513,0x41e,0x5a3,0x524,0x513,0x51b,0x3a7,0x5ab,0x3a7, -0x3a7,0x5b1,0x5b9,0x3a7,0x3a7,0x5bd,0x5c5,0x3a7,0x5c9,0x5d0,0x3a7,0x5d8,0x5e0,0x5e7,0x568,0x3a7, -0x3a7,0x5ef,0x5f7,0x5ff,0x607,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x60f,0x3a7,0x617,0x3a7,0x3a7,0x3a7, -0x61f,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x627,0x3a7,0x3a7,0x3a7,0x62f,0x528,0x528,0x528,0x3a7,0x635,0x63d,0x617, -0x653,0x645,0x645,0x65b,0x662,0x64b,0x3a7,0x3a7,0x3a7,0x66a,0x672,0x3a7,0x3a7,0x3a7,0x674,0x67c, -0x684,0x3a7,0x68b,0x693,0x3a7,0x69b,0x4fe,0x3a7,0x558,0x6a3,0x569,0x6ab,0x41e,0x6b3,0x3a7,0x6ba, -0x3a7,0x6bf,0x3a7,0x3a7,0x3a7,0x3a7,0x6c5,0x6cd,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0x3f5, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x6d4,0x6dc,0x6e0, -0x6f8,0x6fe,0x6e8,0x6f0,0x706,0x70e,0x712,0x5ea,0x71a,0x722,0x72a,0x3a7,0x732,0x67c,0x67c,0x67c, -0x742,0x74a,0x752,0x75a,0x75f,0x767,0x76f,0x73a,0x777,0x77f,0x3a7,0x785,0x78c,0x67c,0x67c,0x67c, -0x67c,0x595,0x792,0x67c,0x79a,0x3a7,0x3a7,0x679,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c, -0x67c,0x67c,0x67c,0x67c,0x67c,0x7a2,0x67c,0x67c,0x67c,0x67c,0x67c,0x7a8,0x67c,0x67c,0x7b0,0x7b8, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x67c,0x67c,0x67c,0x67c,0x7c8,0x7d0,0x7d8,0x7c0, -0x7e8,0x7f0,0x7f8,0x7ff,0x806,0x80e,0x812,0x7e0,0x67c,0x67c,0x67c,0x81a,0x820,0x67c,0x67c,0x826, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x82e,0x3a7,0x3a7,0x3a7,0x836,0x3a7,0x3a7,0x3a7,0x3f5, -0x83e,0x846,0x849,0x3a7,0x851,0x67c,0x67c,0x67f,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x858,0x85e, -0x86e,0x866,0x3a7,0x3a7,0x876,0x61f,0x3a7,0x3ce,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x67c,0x87e, -0x3dc,0x3a7,0x85e,0x882,0x3a7,0x88a,0x892,0x3a7,0x3a7,0x3a7,0x3a7,0x896,0x3a7,0x3a7,0x674,0x3cd, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x67c,0x67c, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x85e,0x67c,0x595,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x89d,0x3a7,0x3a7,0x8a2,0x8aa,0x3a7,0x3a7,0x5cb,0x67c,0x673,0x3a7,0x3a7,0x8b2,0x3a7,0x3a7,0x3a7, -0x8ba,0x8c1,0x645,0x8c9,0x3a7,0x3a7,0x5a1,0x8d1,0x3a7,0x8d9,0x8e0,0x3a7,0x501,0x8e5,0x3a7,0x51a, -0x3a7,0x8ed,0x8f5,0x51c,0x3a7,0x8f9,0x51b,0x901,0x3a7,0x3a7,0x3a7,0x907,0x3a7,0x3a7,0x3a7,0x90e, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x922,0x916,0x91a,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6, -0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x92a,0x932,0x4a6,0x4a6,0x4a6,0x937,0x93b, -0x943,0x94b,0x94f,0x957,0x4a6,0x4a6,0x4a6,0x95b,0x963,0x397,0x96b,0x973,0x3a7,0x3a7,0x3a7,0x97b, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0xe9c,0xe9c,0xedc,0xf1c,0xe9c,0xe9c,0xe9c,0xe9c,0xe9c,0xe9c,0xf54,0xf94,0xfd4,0xfe4,0x1024,0x1030, -0xe9c,0xe9c,0x1070,0xe9c,0xe9c,0xe9c,0x10a8,0x10e8,0x1128,0x1168,0x11a0,0x11e0,0x1220,0x1258,0x1298,0x12d8, -0xa40,0xa80,0xac0,0xaff,0x1a0,0x1a0,0xb3f,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb68,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xba8,0x1a0,0xbce,0xc09,0xc49,0xc89,0xcc9,0xd09,0xd49, +static const uint16_t ubidi_props_trieIndex[13236]={ +0x395,0x39d,0x3a5,0x3ad,0x3c5,0x3cd,0x3d5,0x3dd,0x3b5,0x3bd,0x3b5,0x3bd,0x3b5,0x3bd,0x3b5,0x3bd, +0x3b5,0x3bd,0x3b5,0x3bd,0x3e3,0x3eb,0x3f3,0x3fb,0x403,0x40b,0x407,0x40f,0x417,0x41f,0x41a,0x422, +0x3b5,0x3bd,0x3b5,0x3bd,0x42a,0x432,0x3b5,0x3bd,0x3b5,0x3bd,0x3b5,0x3bd,0x438,0x440,0x448,0x450, +0x458,0x460,0x468,0x470,0x476,0x47e,0x486,0x48e,0x496,0x49e,0x4a4,0x4ac,0x4b4,0x4bc,0x4c4,0x4cc, +0x4d8,0x4d4,0x4e0,0x4e8,0x4f0,0x500,0x507,0x4f8,0x50f,0x511,0x519,0x521,0x529,0x52a,0x532,0x53a, +0x542,0x52a,0x54a,0x54f,0x542,0x52a,0x557,0x55f,0x529,0x567,0x56f,0x521,0x577,0x3b5,0x57f,0x583, +0x58b,0x58d,0x595,0x59d,0x529,0x5a5,0x5ad,0x521,0x42c,0x5b1,0x532,0x521,0x529,0x3b5,0x5b9,0x3b5, +0x3b5,0x5bf,0x5c7,0x3b5,0x3b5,0x5cb,0x5d3,0x3b5,0x5d7,0x5de,0x3b5,0x5e6,0x5ee,0x5f5,0x576,0x3b5, +0x3b5,0x5fd,0x605,0x60d,0x615,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x61d,0x3b5,0x625,0x3b5,0x3b5,0x3b5, +0x62d,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x635,0x3b5,0x3b5,0x3b5,0x63d,0x536,0x536,0x536,0x3b5,0x643,0x64b,0x625, +0x661,0x653,0x653,0x669,0x670,0x659,0x3b5,0x3b5,0x3b5,0x678,0x680,0x3b5,0x3b5,0x3b5,0x682,0x68a, +0x692,0x3b5,0x699,0x6a1,0x3b5,0x6a9,0x50c,0x3b5,0x566,0x6b1,0x577,0x6b9,0x42c,0x6c1,0x3b5,0x6c8, +0x3b5,0x6cd,0x3b5,0x3b5,0x3b5,0x3b5,0x6d3,0x6db,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x403,0x403, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x6e2,0x6ea,0x6ee, +0x706,0x70c,0x6f6,0x6fe,0x714,0x71c,0x720,0x5f8,0x728,0x730,0x738,0x3b5,0x740,0x68a,0x68a,0x68a, +0x750,0x758,0x760,0x768,0x76d,0x775,0x77d,0x748,0x785,0x78d,0x3b5,0x793,0x79a,0x68a,0x68a,0x68a, +0x68a,0x790,0x7a0,0x68a,0x7a8,0x3b5,0x3b5,0x687,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a, +0x68a,0x68a,0x68a,0x68a,0x68a,0x7b0,0x68a,0x68a,0x68a,0x68a,0x68a,0x7b6,0x68a,0x68a,0x7be,0x7c6, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a,0x68a,0x68a,0x7d6,0x7de,0x7e6,0x7ce, +0x7f6,0x7fe,0x806,0x80d,0x814,0x81c,0x820,0x7ee,0x68a,0x68a,0x68a,0x828,0x82e,0x68a,0x68a,0x834, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x83c,0x3b5,0x3b5,0x3b5,0x844,0x3b5,0x3b5,0x3b5,0x403, +0x84c,0x854,0x857,0x3b5,0x85f,0x68a,0x68a,0x68d,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x866,0x86c, +0x87c,0x874,0x3b5,0x3b5,0x884,0x62d,0x3b5,0x3dc,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x88c, +0x3ea,0x3b5,0x86c,0x890,0x3b5,0x898,0x8a0,0x3b5,0x3b5,0x3b5,0x3b5,0x8a4,0x3b5,0x3b5,0x682,0x3db, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x86c,0x68a,0x5a3,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x8ab,0x3b5,0x3b5,0x8b0,0x8b8,0x3b5,0x3b5,0x5d9,0x68a,0x681,0x3b5,0x3b5,0x8c0,0x3b5,0x3b5,0x3b5, +0x8c8,0x8cf,0x653,0x8d7,0x3b5,0x3b5,0x5af,0x8df,0x3b5,0x8e7,0x8ee,0x3b5,0x50f,0x8f3,0x3b5,0x528, +0x3b5,0x8fb,0x903,0x52a,0x3b5,0x907,0x529,0x90f,0x3b5,0x3b5,0x3b5,0x915,0x3b5,0x3b5,0x3b5,0x91c, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x930,0x924,0x928,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4, +0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x938,0x940,0x4b4,0x4b4,0x4b4,0x945,0x949, +0x951,0x959,0x95d,0x965,0x4b4,0x4b4,0x4b4,0x969,0x971,0x3a5,0x979,0x981,0x3b5,0x3b5,0x3b5,0x989, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0xed4,0xed4,0xf14,0xf54,0xed4,0xed4,0xed4,0xed4,0xed4,0xed4,0xf8c,0xfcc,0x100c,0x101c,0x105c,0x1068, +0xed4,0xed4,0x10a8,0xed4,0xed4,0xed4,0x10e0,0x1120,0x1160,0x11a0,0x11d8,0x1218,0x1258,0x1290,0x12d0,0x1310, +0xa40,0xa80,0xac0,0xaff,0x1a0,0x1a0,0xb3f,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb77,0xba0,0x1a0,0x1a0, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xbe0,0x1a0,0xc06,0xc41,0xc81,0xcc1,0xd01,0xd41,0xd81, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, -0xdc9,0xdd9,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, +0xe01,0xe11,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x983,0x3a7,0x67c,0x67c,0x98b,0x61f,0x3a7,0x514, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x993,0x3a7,0x3a7,0x3a7,0x99a,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x9a2,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, -0x9aa,0x9ae,0x43c,0x43c,0x43c,0x43c,0x9be,0x9b6,0x43c,0x9c6,0x43c,0x43c,0x9ce,0x9d4,0x43c,0x43c, -0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x9e4,0x9dc,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, -0x43c,0x43c,0x43c,0x9ec,0x43c,0x9f4,0x4a6,0x9fc,0x43c,0xa04,0xa0b,0xa11,0xa19,0xa1d,0xa25,0x43c, -0x51b,0xa2d,0xa34,0xa3b,0x41e,0xa43,0x569,0x3a7,0x501,0xa4a,0x3a7,0xa50,0x41e,0xa55,0xa5d,0x3a7, -0x3a7,0xa62,0x51b,0x3a7,0x3a7,0x3a7,0x836,0xa6a,0x41e,0x5a3,0x57e,0xa71,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0xa2d,0xa79,0x3a7,0x3a7,0xa81,0xa89,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa8d,0xa95,0x3a7, -0x3a7,0xa9d,0x57e,0xaa5,0x3a7,0xaab,0x3a7,0x3a7,0x60f,0xab3,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0xab8,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xabf,0xac7,0x3a7,0x3a7,0x3a7,0xaca,0x57e,0xad2, -0xad6,0xade,0x3a7,0xae5,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0xaec,0x3a7,0x3a7,0xafa,0xaf4,0x3a7,0x3a7,0x3a7,0xb02,0xb0a,0x3a7,0xb0e,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x5a5,0x41e,0x99a,0xb16,0x3a7,0x3a7,0x3a7,0xb23,0xb1e,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0xb2b,0xb33,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb39, -0x3a7,0xb3f,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0xa51,0x3a7,0xb45,0x3a7,0x3a7,0xb4d,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x535,0xb55,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xb5d,0x500,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0xb65,0xb6d,0xb73,0x3a7,0xb79,0x67c,0x67c,0xb81,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x67c,0x67c,0xb89,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb8f, -0x3a7,0xb96,0x3a7,0xb92,0x3a7,0xb99,0x3a7,0xba1,0xba5,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xbad,0x3f5,0xbb4,0xbbb,0xbc3,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xbcb,0xbd3,0x3a7,0x3a7,0xa51,0x3a7,0x3a7, -0x3a7,0x3a7,0xb3f,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa7d,0x3a7, -0xbd8,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0xbe0,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0xbe8, -0x43c,0xbf0,0xbf0,0xbf7,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, -0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x91a,0x4a6,0x4a6,0x43c, -0x43c,0x4a6,0x4a6,0xbff,0x43c,0x43c,0x43c,0x43c,0x43c,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6, -0xc07,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x67c,0xc0f,0x67c,0x67c,0x67f,0xc14,0xc18, -0x858,0xc20,0x3c9,0x3a7,0xc26,0x3a7,0xc2b,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x783,0x3a7,0x3a7,0x3a7, -0x3a7,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c, -0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0xc33, -0x98b,0x67c,0x67c,0x67c,0xc3a,0x67c,0x67c,0xc41,0xc49,0xc0f,0x67c,0xc51,0x67c,0xc59,0xc5e,0x3a7, -0x3a7,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67f,0xc66,0xc6f,0xc73,0xc7b, -0xc6b,0x67c,0x67c,0x67c,0x67c,0xc83,0x67c,0x792,0xc8b,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc92,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc92,0xca2,0xc9a,0xc9a,0xc9a,0xca3,0xca3,0xca3, -0xca3,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0xcab,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3, -0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3, -0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3, -0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3, -0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0x386,0x386,0x386,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,8,7,8,9,7,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,7,7,7,8,9,0xa,0xa,4, -4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2, -2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0xa,0xa,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x12,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x12,0x12,0x12,0x12, -0x12,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,6,0xa,4,4, -4,4,0xa,0xa,0xa,0xa,0,0x900a,0xa,0xb2,0xa,0xa,4,4,2,2, -0xa,0,0xa,0xa,0xa,2,0,0x900a,0xa,0xa,0xa,0xa,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x991,0x3b5,0x68a,0x68a,0x999,0x62d,0x3b5,0x522, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x9a1,0x3b5,0x3b5,0x3b5,0x9a8,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x9b0,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a, +0x9b8,0x9bc,0x44a,0x44a,0x44a,0x44a,0x9cc,0x9c4,0x44a,0x9d4,0x44a,0x44a,0x9dc,0x9e2,0x44a,0x44a, +0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x9f2,0x9ea,0xa02,0x9fa,0x44a,0x44a,0x44a,0x44a, +0x44a,0x44a,0x44a,0xa0a,0x44a,0xa12,0xa22,0xa1a,0x44a,0xa2a,0xa31,0xa37,0xa3f,0xa43,0xa4b,0x44a, +0x529,0xa53,0xa5a,0xa61,0x42c,0xa69,0x577,0x3b5,0x50f,0xa70,0x3b5,0xa76,0x42c,0xa7b,0xa83,0x3b5, +0x3b5,0xa88,0x529,0x3b5,0x3b5,0x3b5,0x844,0xa90,0x42c,0x5b1,0x58c,0xa97,0x3b5,0xa9d,0xaa5,0x542, +0x3b5,0xa53,0xaad,0x3b5,0x3b5,0xab5,0xabd,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xac1,0xac9,0x3b5, +0x3b5,0xad1,0x58c,0xad9,0x3b5,0xadf,0x3b5,0x3b5,0xae5,0xaed,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0xaf2,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xaf9,0xb01,0x3b5,0x3b5,0x3b5,0xb04,0x58c,0xb0c, +0xb10,0xb18,0x3b5,0xb1f,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0xb26,0x3b5,0x3b5,0xb34,0xb2e,0x3b5,0x3b5,0x3b5,0xb3c,0xae3,0x3b5,0xb44,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x5b3,0x42c,0x9a8,0xaae,0x3b5,0x3b5,0x3b5,0xb51,0xb4c,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0xb59,0xb61,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x8b8, +0xb69,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xb6d,0x3b5,0xb73,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xa77,0x3b5,0xb79,0x3b5,0x3b5,0xb81, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x543,0xb89,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x866,0xb8d,0x68a,0x68a, +0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68d,0x3b5,0x3b5,0x403,0xb95, +0x50e,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xb9d,0xba5,0xbab,0x3b5, +0xbb1,0x68a,0x68a,0xbb9,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a,0xbc1,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xbc9,0x3dc,0xbd0,0xbd6,0xbcc,0x3d7,0xbd3,0xbc7,0xbde, +0xbe2,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x403,0xbea,0x403,0xbf1,0xbf8,0xc00,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0xc08,0xc10,0x3b5,0x3b5,0xa77,0x3b5,0x3b5,0x3b5,0x3b5,0xb73,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xab1,0x3b5,0xc15,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xc1d,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0xc22,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0xc2a,0x44a,0xc32,0xc32,0xc39,0x44a,0x44a,0x44a,0x44a, +0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a, +0x44a,0x44a,0x44a,0x44a,0x928,0x4b4,0x4b4,0x44a,0x44a,0x4b4,0x4b4,0xa26,0x44a,0x44a,0x44a,0x44a, +0x44a,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0xc41,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a, +0x44a,0x68a,0xc49,0x68a,0x68a,0x68d,0xc4e,0xc52,0x866,0xc5a,0x3d7,0x3b5,0xc60,0x3b5,0xc65,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x791,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a, +0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a, +0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0xc6d,0x999,0x68a,0x68a,0x68a,0xc74,0x68a,0x68a,0xc7b, +0xc83,0xc49,0x68a,0xc8b,0x68a,0xc93,0xc98,0x681,0x3b5,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a, +0x68a,0x68a,0x68a,0x68d,0xca0,0xca8,0x68a,0xcaf,0xcb7,0x68a,0x68a,0x68a,0x68a,0xcbf,0x68a,0x68a, +0xcc4,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0xccb,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5, +0xccb,0xcdb,0xcd3,0xcd3,0xcd3,0xcdc,0xcdc,0xcdc,0xcdc,0x403,0x403,0x403,0x403,0x403,0x403,0x403, +0xce4,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc, +0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc, +0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc, +0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc, +0xcdc,0x394,0x394,0x394,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,8,7,8, +9,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +7,7,7,8,9,0xa,0xa,4,4,4,0xa,0xa,0x310a,0xf20a,0xa,3, +6,3,6,6,2,2,2,2,2,2,2,2,2,2,6,0xa, +0x500a,0xa,0xd00a,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x510a, +0xa,0xd20a,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x510a, +0xa,0xd20a,0xa,0x12,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x12,0x12,0x12,0x12,0x12,7,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,6,0xa,4,4,4,4,0xa,0xa,0xa,0xa,0,0x900a, +0xa,0xb2,0xa,0xa,4,4,2,2,0xa,0,0xa,0xa,0xa,2,0,0x900a, +0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xa,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xa,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0, -0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, +0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xa,0xa,0,0,0,0,0,0, -0,0,0xa,0,0,0,0,0,0xa,0xa,0,0xa,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, +0xa,0xa,0,0,0,0,0,0,0,0,0xa,0,0,0,0,0, +0xa,0xa,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xa,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xa,0,0,0xa,0xa,4,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0,0,0,0,0,0,0,0,0xa,0,0,0xa,0xa,4, +1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1,1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1, +1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1,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,5,5,5,5,5,5,0xa,0xa, -0xd,4,4,0xd,6,0xd,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xd,0x8ad,0xd,0xd,0xd,0x4d,0xd,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d, -0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x2d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x8d,0x4d,0x4d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,5,5,5,5,5,5,5, -5,5,4,5,5,0xd,0x4d,0x4d,0xb1,0x8d,0x8d,0x8d,0xd,0x8d,0x8d,0x8d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, -0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x8d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d, -0x4d,0x4d,0x8d,0x8d,0xd,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xa,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0x8d,0x8d, -2,2,2,2,2,2,2,2,2,2,0x4d,0x4d,0x4d,0xd,0xd,0x4d, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xad, -0x8d,0xb1,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d, +5,5,5,5,5,5,0xa,0xa,0xd,4,4,0xd,6,0xd,0xa,0xa, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0x8ad,0xd,0xd,0xd, +0x4d,0xd,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d, +0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x2d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d, -0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +5,5,5,5,5,5,5,5,5,5,4,5,5,0xd,0x4d,0x4d, +0xb1,0x8d,0x8d,0x8d,0xd,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, +0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d, +0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,0x8d,0xd,0x8d,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,5,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xb1, +0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0x8d,0x8d,2,2,2,2,2,2,2,2, +2,2,0x4d,0x4d,0x4d,0xd,0xd,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xad,0x8d,0xb1,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d, +0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d, +0x4d,0x8d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1, -1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +1,1,1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41, 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, -0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa, -0xa,0xa,0x21,1,1,0xb1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1, -1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1, -0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81, -0x41,0x81,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x81,0x81, -0x81,0xb1,0xb1,0xb1,1,1,1,1,0x4d,0xd,0x4d,0x4d,0x4d,0x4d,0xd,0x8d, -0x4d,0x8d,0x8d,0xd,0xd,0xd,0xd,0xd,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, -0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x2d,0x2d,0x2d,0x4d,0xd, -0xd,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0xd,5,5,0xd,0xd,0xd,0xd,0xd,0xd, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x8d,0x8d,0x8d,0xd,0x8d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xb1,0xb1, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa,0xa,0xa,0x21,1,1,0xb1,1,1, +0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1, +0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81,0x41,0x81,0x41,0x41,0x41,0x41,0x41,0x41, +0x41,0x41,0x41,0x41,0x81,0x41,0x81,0x81,0x81,0xb1,0xb1,0xb1,1,1,1,1, +0x4d,0xd,0x4d,0x4d,0x4d,0x4d,0xd,0x8d,0x4d,0x8d,0x8d,0xd,0xd,0xd,0xd,0xd, +0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, +0x8d,0x8d,0x8d,0x2d,0x2d,0x2d,0x4d,0xd,0xd,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0xd, +5,5,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,5,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0xd,0x8d,0x4d, +0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0, -0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,4,4,0,0,0,0,0,0,0,4,0,0,0xb1,0, -0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0, -0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0, -0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0, +0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, +0,0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, 0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, -0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0, -0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,4,0xa,0, -0,0,0,0,0xb1,0,0,0,0xb1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0, -0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, -0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0, +0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0,0,0xa0,0,0,0,0, -0,0,0xa0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0, +0,0,0,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0, +0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0, +0,0,0,4,0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0,0,0,4,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1, +0xb1,0,0,0xb1,0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0, +0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0,0xb1,0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1, +0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, +0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0, -0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0, 0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa, +0xa,0xa,0xa,0xa,0xa,4,0xa,0,0,0,0,0,0xb1,0,0,0, +0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0, +0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0, +0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x310a,0xf20a,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0,0,0xa0,0,0,0,0,0,0,0xa0,0,0,0,0,0, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,4,0,0,0,0, +0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1, +0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1, +0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,4, -0,0xb1,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1,0xb1,0xb1,0x12,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x40,0x40,0x40,0x40, +0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0, +0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0, +0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0, +0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, +0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x310a, +0xf20a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0,0,0,0,0,4,0,0xb1,0,0,0x40,0x40,0x40,0x40, 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0,0,0,0,0,0,0,0,0xb1,0xb1,0x40, +0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1, +0xb1,0xb1,0x12,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, +0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0,0,0, +0,0,0,0,0,0xb1,0xb1,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0xb1,0xb1,0,0,0,0,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0, -0,0xb1,0xb1,0xb1,0,0,0,0,0xa,0,0,0,0xa,0xa,0,0, +0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0, +0xa,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa, +0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0, +0xb1,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0, +0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xa,0xa,0,0xa,0xa,0xa,0xa,6,0x310a,0xf20a,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x814,0x815, +0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,2,0,0,0,2,2,2,2, +2,2,3,3,0xa,0x310a,0xf20a,0,9,9,9,9,9,9,9,9, +9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6, +4,4,4,4,4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa, +2,2,2,2,2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0,0,0xb1,0,0,0,0, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xa,0xa,0,0xa,0xa,0xa,0xa,0,0xa,0xa,0,0,0,0,0,0, +0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa, +0xa,0xa,0xa,0xa,0,0xa,0,0xa,0,0xa,0,0,0,0,4,0, +0,0,0,0,0,0,0,0,0,0,0xa,0xa,0,0,0,0, +0x100a,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa, +0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a,0x100a,0x100a,0x900a,0x900a,0x900a,0x900a,0x900a,0x100a, +0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0x700a,0x700a,0x700a,0xb00a,0xb00a,0xb00a,0xa,0xa, +0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x900a, +0x900a,0x900a,0x900a,0xa,0x900a,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x300a,0xf00a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0xa,0xa, +0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a, +0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x100a,0x300a,0xf00a, +0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, +0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x900a,0x100a,0x900a,0x900a,0x100a,0x900a, +0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0xa, +0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a, +0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, +0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0, -0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, -0,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,0xa, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0, -0xa,0xa,0xa,0xa,6,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9, -0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x814,0x815,0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, -2,0,0,0,2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0, -9,9,9,9,9,9,9,9,9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6,4,4,4,4,4,0xa,0xa,0xa, -0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2, -2,2,3,3,0xa,0x310a,0xf20a,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0xa,0xa,0xa,0xa,0, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0xa,0,0xa,0xa, -0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0,0xa, -0,0xa,0,0,0,0,4,0,0,0,0,0,0,0,0,0, -0,0,0xa,0xa,0,0,0,0,0x100a,0xa,0xa,0xa,0xa,0,0,0, -0,0,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a, -0x100a,0x100a,0x900a,0x900a,0x900a,0x900a,0x900a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa, -0x700a,0x700a,0x700a,0xb00a,0xb00a,0xb00a,0xa,0xa,0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa, -0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x900a,0x900a,0x900a,0x900a,0xa,0x900a,0xa,0x100a,0xa, -0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa, -0xa,0x100a,0xa,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0x100a,0x900a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa, -0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a, -0xa,0xa,0x900a,0x100a,0x900a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa, -0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa, +0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0xa, +0x300a,0xf00a,0xa,0x500a,0x100a,0xd00a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa, +0xa,0xa,0xa,0xa,0x900a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x310a,0xf20a, +0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa, +0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a, +0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a, +0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x710a,0x320a,0xf10a,0xb20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a, +0xf20a,0xa,0xa,0x900a,0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0x100a,0x900a,0x300a,0xf00a,0x100a,0x100a, +0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa, +0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa, +0x310a,0xf20a,0x310a,0xf20a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa, +0xa,0xa,0xa,0xa,0x300a,0xf00a,0x900a,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a, +0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0x100a,0xa,0x100a,0xa, +0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa, +0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a, +0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x100a,0x100a, +0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a, +0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, +0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, +0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a, +0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, +0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x900a,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a, -0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0x100a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0xa,0x300a,0xf00a,0xa,0x500a,0x100a,0xd00a,0xa,0xa, -0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x900a,0x300a,0xf00a,0xa, -0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a, +0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0xa,0xa, -0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x710a,0x320a,0xf10a, -0xb20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x900a,0x100a,0x100a,0x100a,0x100a, -0x900a,0xa,0x100a,0x900a,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a, -0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x100a,0xa,0xa,0xa, -0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x900a,0xa, -0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a, -0x100a,0x100a,0xa,0xa,0x100a,0xa,0x100a,0xa,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa, -0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa, +0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa, +0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0x300a,0xf00a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a, -0x100a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, -0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, -0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, -0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa, -0xa,0xa,0xa,0xa,0x100a,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa, +0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0,0,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0,0,0,0,0,0xa,0xa,0xa, -0xa,0xa,0xa,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0, -0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa, -0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a, -0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a, -0xf20a,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xa,0,0,0,0,0,0xa,0xa, -0,0,0,0,0,0xa,0xa,0xa,9,0xa,0xa,0xa,0xa,0,0,0, -0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a, -0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xb1,0xb1,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0, -0,0,0,0,0,0,0,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa, -0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0,0,0,0,0,0,0, +0xa,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0, +0xa,0,0,0,0,0,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa, +9,0xa,0xa,0xa,0xa,0,0,0,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a, +0x310a,0xf20a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, -0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0xb1,0, -0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xa,0xa,0xa,0xa, -0xb1,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, -0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0x40,0x60,0,0xa,0xa,0xa,0xa,0,0,0,0, -0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0, -0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0, -0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0, -0,0,0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, -0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, -1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xa,0xa,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0,0,0,0,0,0,0,0,0xa,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xb1,0,0,0,0xb1,0,0,0,0,0xb1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,1,0xb1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0,0xb1,0xb1,0,0xa,0xa,0xa,0xa,0xb1,0,0,0,0,0,0,0, +0,0,0,0,4,4,0,0,0,0,0,0,0x40,0x40,0x40,0x40, +0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x60,0, +0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0, +0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0, +0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1, +0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0, +0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xb1,0,0,0xb1,0,0,0,0,0xb1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0xb1,1, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,6,0xa,6,0, -0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3, -0x300a,0xf00a,0xa,0,0xa,4,4,0xa,0,0,0,0,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xa,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, +0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,6,0xa,6,0,0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a, +0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3,0x300a,0xf00a,0xa,0,0xa,4,4,0xa, +0,0,0,0,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb2,0,0xa,0xa,4, -4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2, -2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0, +0xd,0xd,0xd,0xb2,0,0xa,0xa,4,4,4,0xa,0xa,0x310a,0xf20a,0xa,3, +6,3,6,6,2,2,2,2,2,2,2,2,2,2,6,0xa, +0x500a,0xa,0xd00a,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x510a, +0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a,0xa,0xa,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,0xa,0xa, -0xa,4,4,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa,0xa,0xa,0x12,0x12,0,0xa,0,0, +0,0,0,0,4,4,0xa,0xa,0xa,4,4,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa, +0xa,0xa,0x12,0x12,0,0xa,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xb1,2,2,2, +0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0,0,0,0xb1,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0,0,0,1,1,1,1,1,1,1,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0xa,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1, -1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xa, +1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -0xb1,0xb1,0xb1,1,1,1,1,0xb1,0x41,0x81,1,1,0x81,0xb1,0xb1,1, -1,1,1,0x41,0x41,0x41,0x41,0x81,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x81,1,0x81, -1,0x81,0x81,1,1,0x61,0x81,0x81,0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61, -0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,1,1,1,1,0xb1, +0x41,0x81,1,1,0x81,0xb1,0xb1,1,1,1,1,0x41,0x41,0x41,0x41,0x81, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41, -0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81,0x41,0x81,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0x81,0x81,0x81,0x81,0x41,0x41,1, +0x41,0x41,0x41,0x41,0x41,0x81,1,0x81,1,0x81,0x81,1,1,0x61,0x81,0x81, +0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61,0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -0x4d,0x4d,0x8d,0x4d,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -5,5,5,5,5,5,5,5,5,5,0xd,0xd,0xd,0xd,0xd,0xd, -0x6d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +1,1,1,1,1,1,1,1,1,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41,0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81, +0x41,0x81,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,0x81,0x81,0x81,0x81,0x41,0x41,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0x4d,0x4d,0x8d,0x4d,0xb1,0xb1,0xb1,0xb1, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,5,5,5,5,5,5,5,5, +5,5,0xd,0xd,0xd,0xd,0xd,0xd,0x6d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, 0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,1,1,1,1,1,1,1,1, +1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5, +5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1, -1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1, +1,1,1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d, -0x8d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0x41,0x41,0x41,0x41,0x81,0x81,0x41,0x41,0x41,0x41,0x41,0x41, -0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,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,0x41,1,0x41,0x41,0x81,0x81,0x81,1,0x41,0x81,0x81,0x41, -0x41,0x81,0x41,0x41,1,0x41,0x81,0x81,0x41,1,1,1,1,0x81,0x41,0x61, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0, +0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x8d,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0x41,0x41,0x41,0x41, +0x81,0x81,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1, +0xb1,0xb1,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,0x41,1,0x41,0x41, +0x81,0x81,0x81,1,0x41,0x81,0x81,0x41,0x41,0x81,0x41,0x41,1,0x41,0x81,0x81, +0x41,1,1,1,1,0x81,0x41,0x61,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, +0,0,0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, +0xb1,0xb1,0,0,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0, +0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,0xb1, -0,0,0,0,0,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xb1,0,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -698,41 +711,41 @@ static const uint16_t ubidi_props_trieIndex[13008]={ 0,0xb1,0,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, +0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0, +0xb1,0,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,0,0,0,0,0xb1, +0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0, +0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa0,0xa0,0xb1,0xb1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa0, -0xa0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0,0,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1, +0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0, +0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0, +0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1, -0,0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0,0,0, +0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, +0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0,0xb1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,4,4,4,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xa0,0xa0,0xa0,0xa0, -0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xb1,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0,0,0,0xb1,0,0xb1,0,0,0,0,0,0,0,0, +4,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0, +0xa0,0xa0,0xa0,0xa0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0, +0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -741,6 +754,7 @@ static const uint16_t ubidi_props_trieIndex[13008]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0xb2,0xb2,0xb2,0xb2,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,2,2,2,2,2,2,2,2,2,2,0,0, 0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0, @@ -754,79 +768,80 @@ static const uint16_t ubidi_props_trieIndex[13008]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0, +0,0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0, -0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0,0,0, +0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, -0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1, -0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, +2,2,2,2,2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, +0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1, -0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1, +1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, -0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -2,2,2,2,2,2,2,2,2,2,2,0xa,0xa,0xa,0xa,0xa, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2, +2,2,2,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xa,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, -0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, -2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x12,0x12,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, +0,0,0,0,0,0,0,0,0,0,0x12,0x12,0xb2,0xb2,0xb2,0xb2, 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, -0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,0x12,0x12,0x12,0x12, +0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0,0,0,0 +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0,0,0,0 }; static const uint32_t ubidi_props_mirrors[40]={ @@ -835,8 +850,8 @@ static const uint32_t ubidi_props_mirrors[40]={ 0x16029b8,0x4029f5,0x1802ade,0x1c02ae3,0x1a02ae4,0x1e02ae5,0xe02aee,0x602bfe }; -static const uint8_t ubidi_props_jgArray[684]={ -0x2d,0,3,3,0x2c,3,0x2d,3,4,0x2a,4,4,0xd,0xd,0xd,6, +static const uint8_t ubidi_props_jgArray[683]={ +0x68,0,3,3,0x2c,3,0x2d,3,4,0x2a,4,4,0xd,0xd,0xd,6, 6,0x1f,0x1f,0x23,0x23,0x21,0x21,0x28,0x28,1,1,0xb,0xb,0x37,0x37,0x37, 0,9,0x1d,0x13,0x16,0x18,0x1a,0x10,0x2c,0x2d,0x2d,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -878,10 +893,10 @@ static const uint8_t ubidi_props_jgArray[684]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 4,4,0xd,0x28,9,0x1d,0x16,0x18,0x2d,0x2d,0x1f,0x2c,0x39,0,6,0x21, 0xb,0x55,0x1f,1,0x13,0x1d,4,4,4,0x1f,0x2d,0x56,0x58,0x57,4,4, -4,0xd,0xb,1,0x58,0xd,0xd,0x16,0xb,0,0,0 +4,0xd,0xb,1,0x58,0xd,0xd,0x16,0xb,0,0 }; -static const uint8_t ubidi_props_jgArray2[612]={ +static const uint8_t ubidi_props_jgArray2[1029]={ 0x3a,0x3c,0x3c,0x40,0x40,0x3d,0,0x52,0,0x54,0x54,0,0,0x41,0x4f,0x53, 0x43,0x43,0x43,0x44,0x3e,0x50,0x45,0x46,0x4c,0x3b,0x3b,0x48,0x48,0x4b,0x49,0x49, 0x49,0x4a,0,0,0x4d,0,0,0,0,0,0,0x47,0x3f,0x4e,0x51,0x42, @@ -920,7 +935,33 @@ static const uint8_t ubidi_props_jgArray2[612]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0x65,0,0,0,0,0,0,0x65,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0x64,0,0,0x65,0,0x64,0, -0x64,0,0,0x64 +0x64,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,6,0x28,0x13 }; static const UBiDiProps ubidi_props_singleton={ @@ -931,16 +972,16 @@ static const UBiDiProps ubidi_props_singleton={ ubidi_props_jgArray2, { ubidi_props_trieIndex, - ubidi_props_trieIndex+3612, + ubidi_props_trieIndex+3668, nullptr, - 3612, - 9396, + 3668, + 9568, 0x1a0, - 0xe9c, + 0xed4, 0x0, 0x0, 0x110000, - 0x32cc, + 0x33b0, nullptr, 0, false, false, 0, nullptr }, { 2,2,0,0 } diff --git a/thirdparty/icu4c/common/ubiditransform.cpp b/thirdparty/icu4c/common/ubiditransform.cpp index 01f5901a2c2f..a39cc3100d2b 100644 --- a/thirdparty/icu4c/common/ubiditransform.cpp +++ b/thirdparty/icu4c/common/ubiditransform.cpp @@ -233,7 +233,7 @@ updateSrc(UBiDiTransform *pTransform, const char16_t *newSrc, uint32_t newLength uprv_free(pTransform->src); pTransform->src = nullptr; } - pTransform->src = (char16_t *)uprv_malloc(newSize * sizeof(char16_t)); + pTransform->src = static_cast(uprv_malloc(newSize * sizeof(char16_t))); if (pTransform->src == nullptr) { *pErrorCode = U_MEMORY_ALLOCATION_ERROR; //pTransform->srcLength = pTransform->srcSize = 0; @@ -499,7 +499,7 @@ ubiditransform_transform(UBiDiTransform *pBiDiTransform, /* Checking for U_SUCCESS() within the loop to bail out on first failure. */ for (action = pBiDiTransform->pActiveScheme->actions; *action && U_SUCCESS(*pErrorCode); action++) { if ((*action)(pBiDiTransform, pErrorCode)) { - if (action + 1) { + if (action[1] != nullptr) { updateSrc(pBiDiTransform, pBiDiTransform->dest, *pBiDiTransform->pDestLength, *pBiDiTransform->pDestLength, pErrorCode); } diff --git a/thirdparty/icu4c/common/ubidiwrt.cpp b/thirdparty/icu4c/common/ubidiwrt.cpp index 969807c24376..209b140722cb 100644 --- a/thirdparty/icu4c/common/ubidiwrt.cpp +++ b/thirdparty/icu4c/common/ubidiwrt.cpp @@ -501,7 +501,10 @@ ubidi_writeReordered(UBiDi *pBiDi, destSize-=runLength; if((pBiDi->isInverse) && - (/*run 0 && // doWriteForward may return 0 if src + // only include bidi control chars + dirProps[logicalStart+runLength-1]!=L)) { markFlag |= LRM_AFTER; } if (markFlag & LRM_AFTER) { @@ -632,7 +635,10 @@ ubidi_writeReordered(UBiDi *pBiDi, } destSize-=runLength; - if(/*run>0 &&*/ !(MASK_R_AL&DIRPROP_FLAG(dirProps[logicalStart+runLength-1]))) { + if(/*run>0 &&*/ + runLength > 0 && // doWriteForward may return 0 if src + // only include bidi control chars + !(MASK_R_AL&DIRPROP_FLAG(dirProps[logicalStart+runLength-1]))) { if(destSize>0) { *dest++=RLM_CHAR; } diff --git a/thirdparty/icu4c/common/ucase.cpp b/thirdparty/icu4c/common/ucase.cpp index 4fd23fc935c5..5a2feaee840b 100644 --- a/thirdparty/icu4c/common/ucase.cpp +++ b/thirdparty/icu4c/common/ucase.cpp @@ -38,7 +38,7 @@ static UBool U_CALLCONV _enumPropertyStartsRange(const void *context, UChar32 start, UChar32 /*end*/, uint32_t /*value*/) { /* add the start code point to the USet */ - const USetAdder *sa=(const USetAdder *)context; + const USetAdder* sa = static_cast(context); sa->add(sa->set, start); return true; } @@ -696,17 +696,17 @@ getDotType(UChar32 c) { U_CAPI UBool U_EXPORT2 ucase_isSoftDotted(UChar32 c) { - return (UBool)(getDotType(c)==UCASE_SOFT_DOTTED); + return getDotType(c)==UCASE_SOFT_DOTTED; } U_CAPI UBool U_EXPORT2 ucase_isCaseSensitive(UChar32 c) { uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c); if(!UCASE_HAS_EXCEPTION(props)) { - return (UBool)((props&UCASE_SENSITIVE)!=0); + return (props&UCASE_SENSITIVE)!=0; } else { const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props); - return (UBool)((*pe&UCASE_EXC_SENSITIVE)!=0); + return (*pe&UCASE_EXC_SENSITIVE)!=0; } } @@ -1623,12 +1623,12 @@ ucase_toFullFolding(UChar32 c, U_CAPI UBool U_EXPORT2 u_isULowercase(UChar32 c) { - return (UBool)(UCASE_LOWER==ucase_getType(c)); + return UCASE_LOWER==ucase_getType(c); } U_CAPI UBool U_EXPORT2 u_isUUppercase(UChar32 c) { - return (UBool)(UCASE_UPPER==ucase_getType(c)); + return UCASE_UPPER==ucase_getType(c); } /* Transforms the Unicode character to its lower case equivalent.*/ diff --git a/thirdparty/icu4c/common/ucase_props_data.h b/thirdparty/icu4c/common/ucase_props_data.h index 92b59520cc50..ce61f5c06467 100644 --- a/thirdparty/icu4c/common/ucase_props_data.h +++ b/thirdparty/icu4c/common/ucase_props_data.h @@ -9,145 +9,145 @@ #ifdef INCLUDED_FROM_UCASE_CPP -static const UVersionInfo ucase_props_dataVersion={0xf,1,0,0}; +static const UVersionInfo ucase_props_dataVersion={0x10,0,0,0}; -static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x76ec,0x66c8,0x680,0x172,0,0,0,0,0,0,0,0,0,0,3}; +static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x78bc,0x6888,0x688,0x172,0,0,0,0,0,0,0,0,0,0,3}; -static const uint16_t ucase_props_trieIndex[13148]={ -0x355,0x35d,0x365,0x36d,0x37b,0x383,0x38b,0x393,0x39b,0x3a3,0x3aa,0x3b2,0x3ba,0x3c2,0x3ca,0x3d2, -0x3d8,0x3e0,0x3e8,0x3f0,0x3f8,0x400,0x408,0x410,0x418,0x420,0x428,0x430,0x438,0x440,0x448,0x450, -0x458,0x460,0x468,0x470,0x478,0x480,0x488,0x490,0x48c,0x494,0x499,0x4a1,0x4a8,0x4b0,0x4b8,0x4c0, -0x4c8,0x4d0,0x4d8,0x4e0,0x374,0x37c,0x4e5,0x4ed,0x4f2,0x4fa,0x502,0x50a,0x509,0x511,0x516,0x51e, -0x526,0x52d,0x531,0x374,0x538,0x355,0x548,0x540,0x550,0x552,0x55a,0x562,0x566,0x567,0x56f,0x577, -0x57f,0x567,0x587,0x58c,0x57f,0x567,0x594,0x59c,0x566,0x5a4,0x5ac,0x5b4,0x5bc,0x374,0x5c4,0x374, -0x5cc,0x5ce,0x5d6,0x5b4,0x566,0x5a4,0x5dd,0x5b4,0x5e5,0x5e7,0x56f,0x5b4,0x566,0x374,0x5ef,0x374, -0x374,0x5f5,0x5fc,0x374,0x374,0x600,0x608,0x374,0x60c,0x613,0x374,0x61a,0x622,0x629,0x631,0x374, -0x374,0x636,0x63e,0x646,0x64e,0x656,0x65d,0x665,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x66d,0x374,0x374,0x67d,0x67d,0x675, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x685,0x68b,0x573,0x573,0x374,0x691,0x699,0x374, -0x6a1,0x374,0x6a9,0x374,0x6b0,0x6b6,0x374,0x374,0x374,0x6be,0x374,0x374,0x374,0x374,0x374,0x374, -0x6c5,0x374,0x6cc,0x6d4,0x374,0x6dc,0x6e4,0x374,0x5a3,0x6e8,0x6f0,0x6f6,0x5e5,0x6fe,0x374,0x705, -0x374,0x70a,0x374,0x710,0x718,0x71c,0x724,0x72c,0x734,0x739,0x73c,0x744,0x754,0x74c,0x764,0x75c, -0x39b,0x76c,0x39b,0x774,0x777,0x39b,0x77f,0x39b,0x787,0x78f,0x797,0x79f,0x7a7,0x7af,0x7b7,0x7bf, -0x7c7,0x7ce,0x374,0x7d6,0x7de,0x374,0x7e6,0x7ee,0x7f6,0x7fe,0x806,0x80e,0x816,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x819,0x81f,0x825,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x82d,0x831,0x835,0x83d,0x39b,0x39b,0x39b,0x845,0x84d,0x854,0x374,0x859,0x374,0x374,0x374,0x861, -0x374,0x6a6,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x565,0x869,0x374,0x374,0x870,0x374,0x374,0x878,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x880,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x710,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x886,0x374,0x88e,0x893,0x89b,0x374,0x374,0x8a3,0x8ab,0x8b3,0x39b,0x8b8,0x8c0,0x8c6,0x8cd,0x8d4, -0x8dc,0x8e3,0x374,0x374,0x374,0x374,0x8ea,0x8f2,0x374,0x8fa,0x901,0x374,0x550,0x906,0x90e,0x6b0, -0x374,0x914,0x91c,0x920,0x374,0x928,0x930,0x938,0x374,0x93e,0x942,0x94a,0x95a,0x952,0x374,0x962, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x96a,0x374,0x374,0x374,0x374,0x972,0x550,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x977,0x97f,0x983,0x374,0x374,0x374,0x374,0x357,0x35d,0x98b,0x993,0x99a,0x50b,0x374,0x374,0x9a2, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0xdd4,0xdd4,0xdec,0xe2c,0xe6c,0xea8,0xee8,0xf28,0xf60,0xfa0,0xfe0,0x1020,0x1060,0x10a0,0x10e0,0x1120, -0x1160,0x11a0,0x11e0,0x1220,0x1230,0x1264,0x12a0,0x12e0,0x1320,0x1360,0xdd0,0x1394,0x13c8,0x1408,0x1424,0x1458, -0x9e1,0xa1f,0xa5f,0xa9e,0x188,0x188,0xad9,0x188,0x188,0x188,0x188,0x188,0x188,0xb02,0x188,0x188, -0x188,0x188,0x188,0x188,0x188,0xb42,0x188,0xb82,0x188,0xba8,0xbe3,0xc22,0xc62,0xc9c,0xcd3,0x188, +static const uint16_t ucase_props_trieIndex[13372]={ +0x363,0x36b,0x373,0x37b,0x389,0x391,0x399,0x3a1,0x3a9,0x3b1,0x3b8,0x3c0,0x3c8,0x3d0,0x3d8,0x3e0, +0x3e6,0x3ee,0x3f6,0x3fe,0x406,0x40e,0x416,0x41e,0x426,0x42e,0x436,0x43e,0x446,0x44e,0x456,0x45e, +0x466,0x46e,0x476,0x47e,0x486,0x48e,0x496,0x49e,0x49a,0x4a2,0x4a7,0x4af,0x4b6,0x4be,0x4c6,0x4ce, +0x4d6,0x4de,0x4e6,0x4ee,0x382,0x38a,0x4f3,0x4fb,0x500,0x508,0x510,0x518,0x517,0x51f,0x524,0x52c, +0x534,0x53b,0x53f,0x382,0x546,0x363,0x556,0x54e,0x55e,0x560,0x568,0x570,0x574,0x575,0x57d,0x585, +0x58d,0x575,0x595,0x59a,0x58d,0x575,0x5a2,0x5aa,0x574,0x5b2,0x5ba,0x5c2,0x5ca,0x382,0x5d2,0x382, +0x5da,0x5dc,0x5e4,0x5c2,0x574,0x5b2,0x5eb,0x5c2,0x5f3,0x5f5,0x57d,0x5c2,0x574,0x382,0x5fd,0x382, +0x382,0x603,0x60a,0x382,0x382,0x60e,0x616,0x382,0x61a,0x621,0x382,0x628,0x630,0x637,0x63f,0x382, +0x382,0x644,0x64c,0x654,0x65c,0x664,0x66b,0x673,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x67b,0x382,0x382,0x68b,0x68b,0x683, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x693,0x699,0x581,0x581,0x382,0x69f,0x6a7,0x382, +0x6af,0x382,0x6b7,0x382,0x6be,0x6c4,0x382,0x382,0x382,0x6cc,0x382,0x382,0x382,0x382,0x382,0x382, +0x6d3,0x382,0x6da,0x6e2,0x382,0x6ea,0x6f2,0x382,0x5b1,0x6f6,0x6fe,0x704,0x5f3,0x70c,0x382,0x713, +0x382,0x718,0x382,0x71e,0x726,0x72a,0x732,0x73a,0x742,0x747,0x74a,0x752,0x762,0x75a,0x772,0x76a, +0x3a9,0x77a,0x3a9,0x782,0x785,0x3a9,0x78d,0x3a9,0x795,0x79d,0x7a5,0x7ad,0x7b5,0x7bd,0x7c5,0x7cd, +0x7d5,0x7dc,0x382,0x7e4,0x7ec,0x382,0x7f4,0x7fc,0x804,0x80c,0x814,0x81c,0x824,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x827,0x82d,0x833,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x83b,0x83f,0x843,0x84b,0x3a9,0x3a9,0x3a9,0x853,0x85b,0x862,0x382,0x867,0x382,0x382,0x382,0x86f, +0x382,0x6b4,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x573,0x877,0x382,0x382,0x87e,0x382,0x382,0x886,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x88e,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x71e,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x894,0x382,0x89c,0x8a1,0x8a9,0x382,0x382,0x8b1,0x8b9,0x8c1,0x3a9,0x8c6,0x8ce,0x8d4,0x8db,0x8e3, +0x8eb,0x8f2,0x382,0x382,0x382,0x382,0x8f9,0x901,0x382,0x909,0x910,0x382,0x55e,0x915,0x91d,0x6be, +0x382,0x923,0x92b,0x92f,0x382,0x937,0x93f,0x947,0x382,0x94d,0x951,0x959,0x969,0x961,0x382,0x971, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x979,0x382,0x382,0x382,0x382,0x981,0x55e,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x986,0x98e,0x992,0x382,0x382,0x382,0x382,0x365,0x36b,0x99a,0x9a2,0x9a9,0x519,0x382,0x382,0x9b1, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0xe0c,0xe0c,0xe24,0xe64,0xea4,0xee0,0xf20,0xf60,0xf98,0xfd8,0x1018,0x1058,0x1098,0x10d8,0x1118,0x1158, +0x1198,0x11d8,0x1218,0x1258,0x1268,0x129c,0x12d8,0x1318,0x1358,0x1398,0xe08,0x13cc,0x1400,0x1440,0x145c,0x1490, +0x9e1,0xa1f,0xa5f,0xa9e,0x188,0x188,0xad9,0x188,0x188,0x188,0x188,0x188,0xb11,0xb3a,0x188,0x188, +0x188,0x188,0x188,0x188,0x188,0xb7a,0x188,0xbba,0x188,0xbe0,0xc1b,0xc5a,0xc9a,0xcd4,0xd0b,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, @@ -172,657 +172,671 @@ static const uint16_t ucase_props_trieIndex[13148]={ 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, -0xd13,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x9a9,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x9b1,0x374,0x374,0x374,0x9b4,0x374,0x374,0x374, -0x374,0x9bc,0x9c2,0x9c6,0x374,0x374,0x9ca,0x9ce,0x9d4,0x374,0x374,0x374,0x9db,0x9df,0x9e7,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x9f7,0x9ef,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x9ff, -0xa03,0x374,0x374,0x374,0x374,0x374,0xa0b,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0xa13,0xa17,0xa1f,0xa23,0x374,0xa2a,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0xa30,0x374,0xa34,0x374,0x374,0xa3c,0x374,0xa44,0x374,0x374,0x374,0x566, -0xa46,0xa4d,0xa51,0x5e5,0xa59,0xa61,0x374,0xa69,0xa70,0x374,0xa76,0x5e5,0xa7b,0xa83,0x374,0x374, -0xa88,0x566,0x374,0x374,0x374,0x357,0xa90,0x5e5,0x5e7,0xa98,0xa9f,0x374,0x374,0x374,0x374,0x374, -0xa46,0xaa7,0x374,0x374,0xaaf,0xab7,0x374,0x374,0x374,0x374,0x374,0x374,0xabb,0xac3,0x374,0x374, -0xacb,0x4cf,0x374,0x374,0xad3,0x374,0x374,0xad9,0xae1,0x374,0x374,0x374,0x374,0x374,0x374,0xae6, -0x374,0x374,0x374,0xaee,0xaf6,0x374,0x374,0xafe,0xb06,0x374,0x374,0x374,0xb09,0x9b1,0xb11,0xb15, -0xb1d,0x374,0xb24,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xb2b, -0x374,0x374,0x972,0xb33,0x374,0x374,0x374,0xb39,0xb41,0x374,0xb45,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0xb4b,0x5e5,0xb51,0xb59,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xb5d,0xb65,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xb6b,0x374,0xb71,0x5a3,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0xaee,0xaf6,0x374,0x374,0x374,0x374,0x374,0x374,0x6a6,0x374,0xb77,0x374, -0x374,0xb7f,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0xb84,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0xb8c,0x5a3,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x8ab,0xb94,0xb9b,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xba2,0xbaa, -0xbb0,0x374,0x374,0x374,0x374,0xbb8,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0xbc0,0xbc8,0xbcd,0xbd3,0xbdb,0xbe3,0xbeb,0xbc4,0xbf3,0xbfb,0xc03,0xc0a,0xbc5, -0xbc0,0xbc8,0xbc3,0xbd3,0xbc6,0xbc1,0xc12,0xbc4,0xc1a,0xc22,0xc2a,0xc31,0xc1d,0xc25,0xc2d,0xc34, -0xc20,0xc3c,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x8ab,0xc44,0x8ab,0xc4b,0xc52,0xc5a,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xc6a,0xc72,0x374,0x374,0x374,0x374, -0x374,0x374,0xc62,0xc7a,0xc8d,0xc80,0xc85,0x374,0x374,0x374,0x374,0xc95,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xaab,0x374,0xa28,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xc9d,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0xca1,0x374,0xca9,0xcb1,0xcb8,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xbbc,0xcc0,0xcc0,0xcc6, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0xa6b,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x566,0x8ab,0x8ab,0x8ab,0x374,0x374,0x374,0x374,0x8ab,0x8ab,0x8ab,0x8ab,0x8ab, -0x8ab,0x8ab,0xcce,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -0x374,0x374,0x374,0x354,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, -0,0,4,0,0,0,0,0,0,0,0,0,0,0,4,0, -0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xa,0x5a,0x7a, -0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0, -0,0,4,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf9,0xf031,0x149, -0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x189,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xd4b,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x9b8,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x9c0,0x382,0x382,0x382,0x9c3,0x382,0x382,0x382, +0x382,0x9cb,0x9d1,0x9d5,0x382,0x382,0x9d9,0x9dd,0x9e3,0x382,0x382,0x382,0x9ea,0x9ee,0x9f6,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xa06,0x9fe,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xa0e, +0xa12,0x382,0x382,0x382,0x382,0x382,0xa1a,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0xa22,0xa26,0xa2e,0xa32,0x382,0xa39,0xa3e,0xa45,0xa4c,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0xa52,0x382,0xa56,0x382,0x382,0xa5e,0x382,0xa66,0x382,0x382,0x382,0x574, +0xa68,0xa6f,0xa73,0x5f3,0xa7b,0xa83,0x382,0xa8b,0xa92,0x382,0xa98,0x5f3,0xa9d,0xaa5,0x382,0x382, +0xaaa,0x574,0x382,0x382,0x382,0x365,0xab2,0x5f3,0x5f5,0xaba,0xac1,0x382,0xa8d,0xac9,0x58d,0x382, +0xa68,0xad1,0x382,0x382,0xad9,0xae1,0x382,0x382,0x382,0x382,0x382,0x382,0xae5,0xaed,0x382,0x382, +0xaf5,0x4dd,0x382,0x382,0xafd,0x382,0x382,0xb03,0xb0b,0x382,0x382,0x382,0x382,0x382,0x382,0xb10, +0x382,0x382,0x382,0xb18,0xb20,0x382,0x382,0xb28,0xb30,0x382,0x382,0x382,0xb33,0x9c0,0xb3b,0xb3f, +0xb47,0x382,0xb4e,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xb55, +0x382,0x382,0x981,0xb5d,0x382,0x382,0x382,0xb63,0xb6b,0x382,0xb6f,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0xb75,0x5f3,0xb7b,0xb83,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xb8a,0xb92,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x519,0xb9a,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0xb9e,0x382,0xba4,0x5b1,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x55e,0xb77,0x382,0x382,0x382,0x382,0x382,0x382,0xb18,0xb20,0x382,0x382, +0x382,0x382,0x382,0x382,0x6b4,0x382,0xbaa,0x382,0x382,0xbb2,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xbb7,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xbbf,0x5b1, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x8b9,0xbc7,0xbce,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0xbd5,0xbdd,0xbe3,0x382,0x382,0x382,0x382,0xbeb,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xbf3,0xbfb,0xc00,0xc06,0xc0e, +0xc16,0xc1e,0xbf7,0xc26,0xc2e,0xc36,0xc3d,0xbf8,0xbf3,0xbfb,0xbf6,0xc06,0xbf9,0xbf4,0xc45,0xbf7, +0xc4d,0xc55,0xc5d,0xc64,0xc50,0xc58,0xc60,0xc67,0xc53,0xc6f,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x8b9,0xc77,0x8b9,0xc7e,0xc85,0xc8d, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0xc9d,0xca5,0x382,0x382,0x382,0x382,0x382,0x382,0xc95,0xcad,0xcc0,0xcb3,0xcb8,0x382, +0x382,0x382,0x382,0xcc8,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xad5, +0x382,0xa37,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0xcd0,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xcd5,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xcd9,0x382,0xce1,0xce9,0xcf0,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0xbef,0xcf8,0xcf8,0xcfe,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xa8d,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x574,0x8b9,0x8b9,0x8b9,0x382, +0x382,0x382,0x382,0x8b9,0x8b9,0x8b9,0x8b9,0x8b9,0x8b9,0x8b9,0xd06,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382, +0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x362,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,4,0,0,0,0,0,0,4,0,0,0,0,0, +0,0,0,0,0,0,4,0,0,0,0,0,0,0x1012,0x1012,0x1012, +0x1012,0x1012,0x1012,0x1012,0x1012,0xa,0x5a,0x7a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xba, +0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0,0,4,0,4,0xf011,0xf011,0xf011, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf9,0xf031,0x149,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x189, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,0,1,0,0,4,0,4,0,0,0,0, -4,0x1c9,0,4,4,0,1,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012, -0x1012,0x1fa,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x5a,0x5a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -0x1012,0x1012,0x1012,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x239,0xf011,0xf011,0xf011,0xf011, -0xf011,0x2d9,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -0xf011,0xf011,0xf011,0,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x3c91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,1,0, +0,4,0,4,0,0,0,0,4,0x1c9,0,4,4,0,1,0, +0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1fa,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, +0x5a,0x5a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0x1012,0x1012,0x1012,0x1012, +0x1012,0x1012,0x1012,0x239,0xf011,0xf011,0xf011,0xf011,0xf011,0x2d9,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0xf011,0xf011,0xf011,0xf011, +0xf011,0xf011,0xf011,0x3c91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x31a,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xffb1,0x33a,0x389,0x92,0xff91, -0x92,0xff91,0x92,0xff91,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, -0xff91,0x3d9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xff91,0x92,0xff91, +0x92,0xff91,0x31a,0xffb1,0x33a,0x389,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,0x92,0xff91,0x92, +0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x3d9,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0xc392,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x459,0x6191,0x6912,0x92,0xff91,0x92,0xff91,0x6712,0x92, -0xff91,0x6692,0x6692,0x92,0xff91,1,0x2792,0x6512,0x6592,0x92,0xff91,0x6692,0x6792,0x3091,0x6992,0x6892, -0x92,0xff91,0x5191,1,0x6992,0x6a92,0x4111,0x6b12,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x6d12,0x92, -0xff91,0x6d12,1,1,0x92,0xff91,0x6d12,0x92,0xff91,0x6c92,0x6c92,0x92,0xff91,0x92,0xff91,0x6d92, -0x92,0xff91,1,0,0x92,0xff91,1,0x1c11,0,0,0,0,0x48a,0x4bb,0x4f9,0x52a, -0x55b,0x599,0x5ca,0x5fb,0x639,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, -0xff91,0x92,0xff91,0x92,0xff91,0xd891,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x669,0x6ea,0x71b,0x759,0x92,0xff91,0xcf92,0xe412, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xc392,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x459, +0x6191,0x6912,0x92,0xff91,0x92,0xff91,0x6712,0x92,0xff91,0x6692,0x6692,0x92,0xff91,1,0x2792,0x6512, +0x6592,0x92,0xff91,0x6692,0x6792,0x3091,0x6992,0x6892,0x92,0xff91,0x5191,0x489,0x6992,0x6a92,0x4111,0x6b12, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x6d12,0x92,0xff91,0x6d12,1,1,0x92,0xff91,0x6d12,0x92, +0xff91,0x6c92,0x6c92,0x92,0xff91,0x92,0xff91,0x6d92,0x92,0xff91,1,0,0x92,0xff91,1,0x1c11, +0,0,0,0,0x4aa,0x4db,0x519,0x54a,0x57b,0x5b9,0x5ea,0x61b,0x659,0x92,0xff91,0x92, +0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xd891,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x689,0x70a,0x73b,0x779,0x92,0xff91,0xcf92,0xe412,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0xbf12,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,1,1,1,1,1,1,0x78a,0x92,0xff91,0xae92,0x7aa,0x7c9, -0x7c9,0x92,0xff91,0x9e92,0x2292,0x2392,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x7e9,0x809,0x829,0x9711,0x9911,1,0x9991,0x9991,1,0x9b11,1,0x9a91,0x849,1,1,1, -0x9991,0x869,1,0x9891,1,0x889,0x8a9,1,0x97b1,0x9691,0x8a9,0x8c9,0x8e9,1,1,0x9691, -1,0x909,0x9591,1,1,0x9511,1,1,1,1,1,1,1,0x929,1,1, -0x9311,1,0x949,0x9311,1,1,1,0x969,0x9311,0xdd91,0x9391,0x9391,0xdc91,1,1,1, -1,1,0x9291,1,0,1,1,1,1,1,1,1,1,0x989,0x9a9,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -5,5,0x25,5,5,5,5,5,5,4,4,4,0x14,4,0x14,4, -5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xbf12,1,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,1,1,1, +1,1,0x7aa,0x92,0xff91,0xae92,0x7ca,0x7e9,0x7e9,0x92,0xff91,0x9e92,0x2292,0x2392,0x92,0xff91, +0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x809,0x829,0x849,0x9711,0x9911,1,0x9991,0x9991, +1,0x9b11,1,0x9a91,0x869,1,1,1,0x9991,0x889,1,0x9891,0x8a9,0x8c9,0x8e9,1, +0x97b1,0x9691,0x8e9,0x909,0x929,1,1,0x9691,1,0x949,0x9591,1,1,0x9511,1,1, +1,1,1,1,1,0x969,1,1,0x9311,1,0x989,0x9311,1,1,1,0x9a9, +0x9311,0xdd91,0x9391,0x9391,0xdc91,1,1,1,1,1,0x9291,1,0,1,1,1, +1,1,1,1,1,0x9c9,0x9e9,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,5,5,0x25,5,5,5,5,5, +5,4,4,4,0x14,4,0x14,4,5,5,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,5,5,5,5,5,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -0x54,0x54,0x44,0x44,0x44,0x44,0x44,0x9cc,0x54,0x44,0x54,0x44,0x54,0x44,0x44,0x44, -0x44,0x44,0x44,0x54,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +4,4,4,4,4,4,4,4,0x54,0x54,0x44,0x44,0x44,0x44,0x44,0xa0c, +0x54,0x44,0x54,0x44,0x54,0x44,0x44,0x44,0x44,0x44,0x44,0x54,0x44,0x64,0x64,0x64, 0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -0x64,0x74,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44, -0x44,0x44,0x54,0x44,0x44,0x9dd,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x64,4, -0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64, -0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x92,0xff91,0x92,0xff91,4,4,0x92,0xff91,0,0,5,0x4111,0x4111,0x4111,0,0x3a12, -0,0,0,0,4,4,0x1312,4,0x1292,0x1292,0x1292,0,0x2012,0,0x1f92,0x1f92, -0xa29,0x1012,0xafa,0x1012,0x1012,0xb3a,0x1012,0x1012,0xb7a,0xbca,0xc1a,0x1012,0xc5a,0x1012,0x1012,0x1012, -0xc9a,0xcda,0,0xd1a,0x1012,0x1012,0xd5a,0x1012,0x1012,0xd9a,0x1012,0x1012,0xed11,0xed91,0xed91,0xed91, -0xdd9,0xf011,0xea9,0xf011,0xf011,0xee9,0xf011,0xf011,0xf29,0xf79,0xfc9,0xf011,0x1009,0xf011,0xf011,0xf011, -0x1049,0x1089,0x10c9,0x10f9,0xf011,0xf011,0x1139,0xf011,0xf011,0x1179,0xf011,0xf011,0xe011,0xe091,0xe091,0x412, -0x11b9,0x11e9,2,2,2,0x1239,0x1269,0xfc11,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x1299,0x12c9,0x391,0xc631,0x12fa,0x1349,0,0x92,0xff91,0xfc92,0x92,0xff91,1,0xbf12,0xbf12,0xbf12, -0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812, -0x1012,0x1012,0x137a,0x1012,0x13ba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x13fa,0x1012, -0x1012,0x143a,0x147a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x14ca,0x1012,0x1012,0x1012,0x1012,0x1012, -0xf011,0xf011,0x1509,0xf011,0x1549,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1589,0xf011, -0xf011,0x15c9,0x1609,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1659,0xf011,0xf011,0xf011,0xf011,0xf011, -0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd831,0xd811,0xd831,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811, -0x92,0xff91,0x169a,0x16d9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0,0x44,0x44,0x44,0x44,0x44,4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x74,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x54,0x44,0x44,0xa1d,0x44,0x64, +0x64,0x64,0x44,0x44,0x44,0x64,0x64,4,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x44, +0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91,4,4,0x92,0xff91, +0,0,5,0x4111,0x4111,0x4111,0,0x3a12,0,0,0,0,4,4,0x1312,4, +0x1292,0x1292,0x1292,0,0x2012,0,0x1f92,0x1f92,0xa69,0x1012,0xb3a,0x1012,0x1012,0xb7a,0x1012,0x1012, +0xbba,0xc0a,0xc5a,0x1012,0xc9a,0x1012,0x1012,0x1012,0xcda,0xd1a,0,0xd5a,0x1012,0x1012,0xd9a,0x1012, +0x1012,0xdda,0x1012,0x1012,0xed11,0xed91,0xed91,0xed91,0xe19,0xf011,0xee9,0xf011,0xf011,0xf29,0xf011,0xf011, +0xf69,0xfb9,0x1009,0xf011,0x1049,0xf011,0xf011,0xf011,0x1089,0x10c9,0x1109,0x1139,0xf011,0xf011,0x1179,0xf011, +0xf011,0x11b9,0xf011,0xf011,0xe011,0xe091,0xe091,0x412,0x11f9,0x1229,2,2,2,0x1279,0x12a9,0xfc11, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x12d9,0x1309,0x391,0xc631,0x133a,0x1389,0,0x92, +0xff91,0xfc92,0x92,0xff91,1,0xbf12,0xbf12,0xbf12,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812, +0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x1012,0x1012,0x13ba,0x1012,0x13fa,0x1012,0x1012,0x1012, +0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x143a,0x1012,0x1012,0x147a,0x14ba,0x1012,0x1012,0x1012,0x1012,0x1012, +0x1012,0x1012,0x150a,0x1012,0x1012,0x1012,0x1012,0x1012,0xf011,0xf011,0x1549,0xf011,0x1589,0xf011,0xf011,0xf011, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x15c9,0xf011,0xf011,0x1609,0x1649,0xf011,0xf011,0xf011,0xf011,0xf011, +0xf011,0xf011,0x1699,0xf011,0xf011,0xf011,0xf011,0xf011,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd831,0xd811, +0xd831,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0x92,0xff91,0x16da,0x1719,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,0x44,0x44,0x44,0x44, +4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x792,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xf891, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x792,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, +0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xf891,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, -0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0,0,4,0,0, -0,0,0,4,1,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, +0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, +0x1812,0x1812,0x1812,0,0,4,0,0,0,0,0,4,1,0xe811,0xe811,0xe811, 0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, -0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0x1719,1,0,0,0,0,0,0,0, -0,0x64,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44, -0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44, -0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0x64, -0,0x64,0x64,0,0x44,0x64,0,0x64,0,0,0,0,0,0,0,0, +0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0x1759, +1,0,0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x64,0x44, +0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64, +0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0,0x64,0,0x64,0x64,0,0x44,0x64,0,0x64, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0,4,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x64,0x64,0x64,0,4,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x44, +0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64, -0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64, +0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,0,0x44,0x44,0x44,0x44,0x64, +0x44,4,4,0x44,0x44,0,0x64,0x44,0x44,0x64,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,4,0,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0x44,0x44,0,0x64,0x44, -0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,0,0x64,0,0,0,0,0,0, +0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44, +0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x44,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64, -0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44, -0x64,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, -4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0, +0,0,4,4,4,4,4,4,4,4,4,4,4,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0,0, -0,0,4,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, -0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,4,0x44,0x44,0x44, -0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64, -0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -4,4,0,0,0,0,0,0,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x44, -0x44,0x44,4,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64, -0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44, -0,0,0,0,0,0,0,0,0,4,0x44,0x44,0x44,0x44,0x44,0x64, -0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,4,0,0x64,0,0,0,0,4,4,4,4,4,4,4, -4,0,0,0,0,0x64,0,0,0,0x44,0x64,0x44,0x44,4,4,4, -0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x64,0,0,0,0,4,4,4, -4,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, +0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x64,0x44,4,4,0,0,0,0,4,0,0,0x64,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x44,0,0,4,4,0, +0,0,0,0,0,0,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44, +4,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0, -0,0,0,4,4,0,0,4,4,0x64,0,0,0,4,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0, -0,4,4,4,4,4,0,4,4,0,0,0,0,0x64,0,0, +0,0,0,0,0,0x64,0x64,0x64,0,0,0,0,0,0,0,0, +4,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0x44, +0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,4,0x64,0x44,0x44,0x64,0x44, +0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44, +0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0, +0,4,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,0,0x64,0,0,0, +0,4,4,4,4,4,4,4,4,0,0,0,0,0x64,0,0, +0,0x44,0x64,0x44,0x44,4,4,4,0,0,0,0,0,0,0,0, 0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, +0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,4, -0,4,4,4,4,0,0,0,0,0,0,0,0,0x64,0,0, -0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0, -0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0, +0x64,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0, +0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x44,0,0,4,4,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0, +0,0,0,0,0,4,4,0,0,0,0,4,4,0,0,4, +4,0x64,0,0,0,4,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,0,0,0,4,0,0, +0,0,0,0,0,0,0,0,0,4,4,4,4,4,0,4, +4,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, +0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x64,0,4,4,4,0,0,0,0,0,4,4, -4,0,4,4,4,0x64,0,0,0,0,0,0,0,0x64,0x64,0, -0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, -4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x64,0,0,4,0,4,4,4,4,0,0,0, +0,0,0,0,0,0x64,0,0,0,0,0,0,0,4,4,0, +0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x64,0x64,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,4,4, -4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,0,0,4,4,4,4,0x64,0x64,0x64,0, -0,0,0,0,0,0,4,4,0x64,0x64,0x64,0x64,4,4,4,0, +0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,0,0,4,4,4,4,0x64,0x64,0x64,4,4,0,0,0, -0,0,0,0,0,0,4,0,0x64,0x64,0x64,0x64,4,4,4,0, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x64,0x64,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,4,4, +4,0,0,0,0,0,4,4,4,0,4,4,4,0x64,0,0, +0,0,0,0,0,0x64,0x64,0,0,0,0,0,0,0,0,0, +0,0,4,0,0,0,0,0,4,0x64,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x64,0,0x64,0,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x64,0x64,4,0x64,4,4,4, -4,4,0x64,0x64,0x64,0x64,4,0,0x64,4,0x44,0x44,0x64,0,0x44,0x44, -0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4, -0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64, +0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0, +0,0,0,0,0,0,4,4,4,0,4,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, +4,4,4,4,0x64,0x64,0x64,0,0,0,0,0,0,0,4,4, +0x64,0x64,0x64,0x64,4,4,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,0,0,4,4,4,4, +0x64,0x64,0x64,4,4,0,0,0,0,0,0,0,0,0,4,0, +0x64,0x64,0x64,0x64,4,4,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x64,0,0x64,0,0x64,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x64,0x64,4,0x64,4,4,4,4,4,0x64,0x64,0x64,0x64,4,0, +0x64,4,0x44,0x44,0x64,0,0x44,0x44,0,0,0,0,0,4,4,4, +4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,4,4,4,0,4,4,4,4,4,0x64, -0,0x64,0x64,0,0,4,4,0,0,0,0,0,0,0,0,0, +4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0, +0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4, +4,0,4,4,4,4,4,0x64,0,0x64,0x64,0,0,4,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,0,0,0,0,4,4,4,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,0,0,4,4,0, -0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,0,0,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a, -0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a, -0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0,0x175a,0,0,0,0, -0,0x175a,0,0,0x1779,0x17a9,0x17d9,0x1809,0x1839,0x1869,0x1899,0x18c9,0x18f9,0x1929,0x1959,0x1989, -0x19b9,0x19e9,0x1a19,0x1a49,0x1a79,0x1aa9,0x1ad9,0x1b09,0x1b39,0x1b69,0x1b99,0x1bc9,0x1bf9,0x1c29,0x1c59,0x1c89, -0x1cb9,0x1ce9,0x1d19,0x1d49,0x1d79,0x1da9,0x1dd9,0x1e09,0x1e39,0x1e69,0x1e99,0x1ec9,0x1ef9,0x1f29,0x1f59,0, -5,0x1f89,0x1fb9,0x1fe9,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x44,0x44,0x44,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, -0x201a,0x201a,0x201a,0x201a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0,0,0x2059,0x2089,0x20b9,0x20e9, -0x2119,0x2149,0,0,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, -0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, -0x201a,0x201a,0x201a,0x201a,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,4,0x64,0x60,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,0,0,0,0,4,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0, +0,0,4,0,0,4,4,0,0,0,0,0,0,0x64,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, +0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a, +0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a, +0x179a,0x179a,0,0x179a,0,0,0,0,0,0x179a,0,0,0x17b9,0x17e9,0x1819,0x1849, +0x1879,0x18a9,0x18d9,0x1909,0x1939,0x1969,0x1999,0x19c9,0x19f9,0x1a29,0x1a59,0x1a89,0x1ab9,0x1ae9,0x1b19,0x1b49, +0x1b79,0x1ba9,0x1bd9,0x1c09,0x1c39,0x1c69,0x1c99,0x1cc9,0x1cf9,0x1d29,0x1d59,0x1d89,0x1db9,0x1de9,0x1e19,0x1e49, +0x1e79,0x1ea9,0x1ed9,0x1f09,0x1f39,0x1f69,0x1f99,0,5,0x1fc9,0x1ff9,0x2029,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x205a,0x205a,0x205a,0x205a, +0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x207a,0x207a,0x207a,0x207a, +0x207a,0x207a,0,0,0x2099,0x20c9,0x20f9,0x2129,0x2159,0x2189,0,0,0x205a,0x205a,0x205a,0x205a, +0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a, +0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, -0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,0,4,4,4,4,4, -4,4,0,0,0,0,0,0,0,0,4,0,0,4,4,4, -4,4,4,4,4,4,0x64,4,0,0,0,4,0,0,0,0, -0,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, +0x64,0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,4,0x60,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, -0,0x64,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x44,0x64,0,0,4, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,0,4,4,4,4,4,4,4,0, -0x64,0,4,0,0,4,4,4,4,4,4,4,4,0,0,0, -0,0,0,4,4,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x64, -0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, -0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,4,0x64, -0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x44,0, +4,4,0,4,4,4,4,4,4,4,0,0,0,0,0,0, +0,0,4,0,0,4,4,4,4,4,4,4,4,4,0x64,4, +0,0,0,4,0,0,0,0,0,0x44,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,4,4,4,4,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x64,0,4,4,4,4,4,0,4,0,0,0, -0,0,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0, -4,4,0x60,0x64,4,4,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x64,0,4,4,0,0, -0,4,0,4,4,4,0x60,0x60,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,4,4,4,4,4,4,0,0,4,0x64, +0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0, -0x2179,0x21a9,0x21d9,0x2209,0x2239,0x2289,0x22d9,0x2309,0x2339,0,0,0,0,0,0,0, -0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a, -0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0,0,0x236a,0x236a,0x236a, +4,4,4,0,0,0,0,4,4,0,0,0,0,0,0,0, +0,0,4,0,0,0,0,0,0,0x64,0x44,0x64,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x44,0x44,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64, -0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0x64,0,0, -0,0,0,0,0x44,0,0,0,0x44,0x44,0,0,0,0,0,0, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0,0,0,0x44,0x64,0,0,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, +4,4,4,4,4,4,4,0,0x64,0,4,0,0,4,4,4, +4,4,4,4,4,0,0,0,0,0,0,4,4,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0,0,0x64,0,0,0,0,0,0,0,4, +0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64, +0x64,0x64,0x64,0x44,0x44,0x64,4,0x64,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44, +0x44,0x44,0x64,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,4,4, +4,4,4,0,4,0,0,0,0,0,4,0,0x60,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x44,0x64,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,4,4,4,4,0,0,4,4,0x60,0x64,4,4,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x64,0,4,4,0,0,0,4,0,4,4,4,0x60,0x60, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, +4,4,4,4,0,0,4,0x64,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +4,4,4,4,4,4,0,0,0x21b9,0x21e9,0x2219,0x2249,0x2279,0x22c9,0x2319,0x2349, +0x2379,0x92,0xff91,0,0,0,0,0,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa, +0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa, +0x23aa,0x23aa,0x23aa,0,0,0x23aa,0x23aa,0x23aa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0x44,0,0x64,0x64,0x64,0x64, +0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0,0,0,0,0x64,0,0,0,0,0,0,0x44,0,0,0, +0x44,0x44,0,0,0,0,0,0,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x25,5,5,5,5,5,5,5,5,1,1,1,1,1, -1,1,1,1,1,1,1,1,5,0x2389,1,1,1,0x23a9,1,1, -5,5,5,5,0x25,5,5,5,0x25,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x23c9,1, -1,1,1,1,1,1,0x21,1,1,1,1,5,5,5,5,5, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64, -0x44,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64, -0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91, +5,5,5,5,5,5,5,5,5,5,0x25,5,5,5,5,5, +5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1, +5,0x23c9,1,1,1,0x23e9,1,1,5,5,5,5,0x25,5,5,5, +0x25,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0x2409,1,1,1,1,1,1,1,0x21,1, +1,1,1,5,5,5,5,5,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64, +0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x242a,0x2469,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x23ea,0x2429,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x24a9,0x2529,0x25a9,0x2629,0x26a9,0x2729, +1,1,0x275a,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x2469,0x24e9,0x2569,0x25e9,0x2669,0x26e9,1,1,0x271a,1,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x411,0x411,0x411,0x411, -0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411, -0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x411,0x411,0x411,0x411, -0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411, -0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411, -0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x2769,0x411,0x27e9,0x411, -0x2899,0x411,0x2949,0x411,0,0xfc12,0,0xfc12,0,0xfc12,0,0xfc12,0x411,0x411,0x411,0x411, -0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x2511,0x2511,0x2b11,0x2b11, -0x2b11,0x2b11,0x3211,0x3211,0x4011,0x4011,0x3811,0x3811,0x3f11,0x3f11,0,0,0x29f9,0x2a69,0x2ad9,0x2b49, -0x2bb9,0x2c29,0x2c99,0x2d09,0x2d7b,0x2deb,0x2e5b,0x2ecb,0x2f3b,0x2fab,0x301b,0x308b,0x30f9,0x3169,0x31d9,0x3249, -0x32b9,0x3329,0x3399,0x3409,0x347b,0x34eb,0x355b,0x35cb,0x363b,0x36ab,0x371b,0x378b,0x37f9,0x3869,0x38d9,0x3949, -0x39b9,0x3a29,0x3a99,0x3b09,0x3b7b,0x3beb,0x3c5b,0x3ccb,0x3d3b,0x3dab,0x3e1b,0x3e8b,0x411,0x411,0x3ef9,0x3f79, -0x3fe9,0,0x4069,0x40e9,0xfc12,0xfc12,0xdb12,0xdb12,0x419b,4,0x4209,4,4,4,0x4259,0x42d9, -0x4349,0,0x43c9,0x4449,0xd512,0xd512,0xd512,0xd512,0x44fb,4,4,4,0x411,0x411,0x4569,0x4619, -0,0,0x46d9,0x4759,0xfc12,0xfc12,0xce12,0xce12,0,4,4,4,0x411,0x411,0x4809,0x48b9, -0x4979,0x391,0x49f9,0x4a79,0xfc12,0xfc12,0xc812,0xc812,0xfc92,4,4,4,0,0,0x4b29,0x4ba9, -0x4c19,0,0x4c99,0x4d19,0xc012,0xc012,0xc112,0xc112,0x4dcb,4,4,0,0,0,0,0, -0,0,0,0,0,0,0,4,4,4,4,4,0,0,0,0, -0,0,0,0,4,4,0,0,0,0,0,0,4,0,0,4, -0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,4,4,4,0,4,4, -4,4,4,4,4,4,4,4,0,0x25,0,0,0,0,0,0, -0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44, -0x64,0x64,0x64,0x44,0x44,4,4,4,4,0x44,4,4,4,0x64,0x64,0x44, -0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2, -0,0,1,2,2,2,1,1,2,2,2,1,0,2,0,0, -0,2,2,2,2,2,0,0,0,0,0,0,2,0,0x4e3a,0, -2,0,0x4e7a,0x4eba,2,2,0,1,2,2,0xe12,2,1,0,0,0, -0,1,0,0,1,1,2,2,0,0,0,0,0,2,1,1, -0x21,0x21,0,0,0,0,0xf211,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812, -0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811, -0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0,0,0,0x92,0xff91,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12, -0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xf311,0xf311,0xf311,0xf311, -0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, +0x92,0xff91,0x92,0xff91,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12, +0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12, +0xfc12,0xfc12,0,0,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12, +0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12, +0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12, +0xfc12,0xfc12,0,0,0x27a9,0x411,0x2829,0x411,0x28d9,0x411,0x2989,0x411,0,0xfc12,0,0xfc12, +0,0xfc12,0,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12, +0xfc12,0xfc12,0xfc12,0xfc12,0x2511,0x2511,0x2b11,0x2b11,0x2b11,0x2b11,0x3211,0x3211,0x4011,0x4011,0x3811,0x3811, +0x3f11,0x3f11,0,0,0x2a39,0x2aa9,0x2b19,0x2b89,0x2bf9,0x2c69,0x2cd9,0x2d49,0x2dbb,0x2e2b,0x2e9b,0x2f0b, +0x2f7b,0x2feb,0x305b,0x30cb,0x3139,0x31a9,0x3219,0x3289,0x32f9,0x3369,0x33d9,0x3449,0x34bb,0x352b,0x359b,0x360b, +0x367b,0x36eb,0x375b,0x37cb,0x3839,0x38a9,0x3919,0x3989,0x39f9,0x3a69,0x3ad9,0x3b49,0x3bbb,0x3c2b,0x3c9b,0x3d0b, +0x3d7b,0x3deb,0x3e5b,0x3ecb,0x411,0x411,0x3f39,0x3fb9,0x4029,0,0x40a9,0x4129,0xfc12,0xfc12,0xdb12,0xdb12, +0x41db,4,0x4249,4,4,4,0x4299,0x4319,0x4389,0,0x4409,0x4489,0xd512,0xd512,0xd512,0xd512, +0x453b,4,4,4,0x411,0x411,0x45a9,0x4659,0,0,0x4719,0x4799,0xfc12,0xfc12,0xce12,0xce12, +0,4,4,4,0x411,0x411,0x4849,0x48f9,0x49b9,0x391,0x4a39,0x4ab9,0xfc12,0xfc12,0xc812,0xc812, +0xfc92,4,4,4,0,0,0x4b69,0x4be9,0x4c59,0,0x4cd9,0x4d59,0xc012,0xc012,0xc112,0xc112, +0x4e0b,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,4,4,4,0,0,0,0,0,0,0,0,4,4,0,0, +0,0,0,0,4,0,0,4,0,0,4,4,4,4,4,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4, +0,0x25,0,0,0,0,0,0,0,0,0,0,0,0,0,5, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x44,0x44,4,4,4, +4,0x44,4,4,4,0x64,0x64,0x44,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64, +0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,2,0,0,0,0,2,0,0,1,2,2,2,1,1, +2,2,2,1,0,2,0,0,0,2,2,2,2,2,0,0, +0,0,0,0,2,0,0x4e7a,0,2,0,0x4eba,0x4efa,2,2,0,1, +2,2,0xe12,2,1,0,0,0,0,1,0,0,1,1,2,2, +0,0,0,0,0,2,1,1,0x21,0x21,0,0,0,0,0xf211,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812, +0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811, +0,0,0,0x92,0xff91,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12, +0xd12,0xd12,0xd12,0xd12,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311, +0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1812,0x1812,0x1812,0x1812, 0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, -0x1812,0x1812,0x1812,0x1812,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, +0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0xe811,0xe811,0xe811,0xe811, 0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, -0xe811,0xe811,0xe811,0xe811,0x92,0xff91,0x4efa,0x4f1a,0x4f3a,0x4f59,0x4f79,0x92,0xff91,0x92,0xff91,0x92, -0xff91,0x4f9a,0x4fba,0x4fda,0x4ffa,1,0x92,0xff91,1,0x92,0xff91,1,1,1,1,1, -0x25,5,0x501a,0x501a,0x92,0xff91,0x92,0xff91,1,0,0,0,0,0,0,0x92, -0xff91,0x92,0xff91,0x44,0x44,0x44,0x92,0xff91,0,0,0,0,0,0,0,0, -0,0,0,0,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039, -0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039, -0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0,0x5039,0,0,0,0,0,0x5039,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0x92,0xff91,0x4f3a,0x4f5a, +0x4f7a,0x4f99,0x4fb9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x4fda,0x4ffa,0x501a,0x503a,1,0x92,0xff91, +1,0x92,0xff91,1,1,1,1,1,0x25,5,0x505a,0x505a,0x92,0xff91,0x92,0xff91, +1,0,0,0,0,0,0,0x92,0xff91,0x92,0xff91,0x44,0x44,0x44,0x92,0xff91, +0,0,0,0,0,0,0,0,0,0,0,0,0x5079,0x5079,0x5079,0x5079, +0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079, +0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0,0x5079, +0,0,0,0,0,0x5079,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44, 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0x64,0x64, -0x64,0x64,0x60,0x60,0,4,4,4,4,4,0,0,0,0,0,4, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0, +0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x60,0x60,0,4,4,4, +4,4,0,0,0,0,0,4,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x64,0x64,4,4,4,4,0, +0,0x64,0x64,4,4,4,4,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0, +0,0,0,0,4,4,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x505a,0x5099,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,4,4,4,0, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,4,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x509a,0x50d9,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,5,5,0x44,0x44,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,1,0x92,0xff91, +0x92,0xff91,0,0x44,4,4,4,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -5,1,1,1,1,1,1,1,1,0x92,0xff91,0x92,0xff91,0x50da,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,4,4,4,0x92,0xff91,0x50fa,1,0, -0x92,0xff91,0x92,0xff91,0x1811,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x511a,0x513a,0x515a,0x517a,0x511a,1,0x519a,0x51ba,0x51da,0x51fa,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xe812,0x521a,0x523a,0x92,0xff91,0x92,0xff91,0, -0,0,0,0,0x92,0xff91,0,1,0,1,0x92,0xff91,0x92,0xff91,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,5,5,5,0x92,0xff91,0,5,5,1,0,0,0,0,0, -0,0,4,0,0,0,0x64,0,0,0,0,4,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,4,0,0,0,0,0,0x64,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x64,4,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,0,0,0,0,0,0,4,4, -4,4,4,0x64,0x64,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, -4,4,4,4,4,4,0,0x60,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,4,4, -4,4,0,0,4,4,0,0,0x60,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0, -0,4,4,0,0,4,4,0,0,0,0,0,0,0,0,0, -0,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0, +5,5,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x44,0x44,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,1,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,5,1,1,1,1,1,1,1, +1,0x92,0xff91,0x92,0xff91,0x511a,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +4,4,4,0x92,0xff91,0x513a,1,0,0x92,0xff91,0x92,0xff91,0x1811,1,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x515a,0x517a,0x519a,0x51ba,0x515a,1, +0x51da,0x51fa,0x521a,0x523a,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0xe812,0x525a,0x527a,0x92,0xff91,0x92,0xff91,0x529a,0x92,0xff91,0,0,0x92,0xff91,0,1, +0,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x52ba,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5, +5,0x92,0xff91,0,5,5,1,0,0,0,0,0,0,0,4,0, +0,0,0x64,0,0,0,0,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0, +0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x64,4,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0, +0,0,0,4,0,0,0,0,0,0,4,4,4,4,4,0x64, +0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4, +4,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x64,0,0,4,4,4,4,0,0, +4,4,0,0,0x60,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,4,4,4,4,4,4,0,0,4,4,0, +0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x44,0,0x44,0x44, +0x64,0,0,0x44,0x44,0,0,0,0,0,0x44,0x44,0,0x44,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x44,0,0x44,0x44,0x64,0,0,0x44,0x44,0,0,0,0,0,0x44,0x44, -0,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, -0,0,0,4,4,0,0x64,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0x5259,1,1,1,1, -1,1,1,4,5,5,5,5,1,1,1,1,1,1,1,1, -1,5,4,4,0,0,0,0,0x5279,0x52a9,0x52d9,0x5309,0x5339,0x5369,0x5399,0x53c9, -0x53f9,0x5429,0x5459,0x5489,0x54b9,0x54e9,0x5519,0x5549,0x5b79,0x5ba9,0x5bd9,0x5c09,0x5c39,0x5c69,0x5c99,0x5cc9, -0x5cf9,0x5d29,0x5d59,0x5d89,0x5db9,0x5de9,0x5e19,0x5e49,0x5e79,0x5ea9,0x5ed9,0x5f09,0x5f39,0x5f69,0x5f99,0x5fc9, -0x5ff9,0x6029,0x6059,0x6089,0x60b9,0x60e9,0x6119,0x6149,0x5579,0x55a9,0x55d9,0x5609,0x5639,0x5669,0x5699,0x56c9, -0x56f9,0x5729,0x5759,0x5789,0x57b9,0x57e9,0x5819,0x5849,0x5879,0x58a9,0x58d9,0x5909,0x5939,0x5969,0x5999,0x59c9, -0x59f9,0x5a29,0x5a59,0x5a89,0x5ab9,0x5ae9,0x5b19,0x5b49,0,0,0,0,0,4,0,0, -4,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x6179,0x61f9,0x6279,0x62f9,0x63a9,0x6459,0x64e9,0, -0,0,0,0,0,0,0,0,0,0,0,0x6589,0x6609,0x6689,0x6709,0x6789, -0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,4, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, -0,4,0,0,0,0,0,0,0,0,0,0,0,0x1012,0x1012,0x1012, +0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,4, +4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0x52d9,1,1,1,1,1,1,1,4, +5,5,5,5,1,1,1,1,1,1,1,1,1,5,4,4, +0,0,0,0,0x52f9,0x5329,0x5359,0x5389,0x53b9,0x53e9,0x5419,0x5449,0x5479,0x54a9,0x54d9,0x5509, +0x5539,0x5569,0x5599,0x55c9,0x5bf9,0x5c29,0x5c59,0x5c89,0x5cb9,0x5ce9,0x5d19,0x5d49,0x5d79,0x5da9,0x5dd9,0x5e09, +0x5e39,0x5e69,0x5e99,0x5ec9,0x5ef9,0x5f29,0x5f59,0x5f89,0x5fb9,0x5fe9,0x6019,0x6049,0x6079,0x60a9,0x60d9,0x6109, +0x6139,0x6169,0x6199,0x61c9,0x55f9,0x5629,0x5659,0x5689,0x56b9,0x56e9,0x5719,0x5749,0x5779,0x57a9,0x57d9,0x5809, +0x5839,0x5869,0x5899,0x58c9,0x58f9,0x5929,0x5959,0x5989,0x59b9,0x59e9,0x5a19,0x5a49,0x5a79,0x5aa9,0x5ad9,0x5b09, +0x5b39,0x5b69,0x5b99,0x5bc9,0,0,0,0,0,4,0,0,4,0,0,0, +0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x61f9,0x6279,0x62f9,0x6379,0x6429,0x64d9,0x6569,0,0,0,0,0, +0,0,0,0,0,0,0,0x6609,0x6689,0x6709,0x6789,0x6809,0,0,0,0, +0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,0,0,0,4,0,0,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,0,0,4,0,0, +0,0,0,0,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, 0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0,0,4,0,4,0xf011,0xf011,0xf011, +0x1012,0x1012,0x1012,0,0,0,4,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, 0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, +0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x64,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0, +0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0, -0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, +0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0x1412,0x1412,0x1412,0x1412, 0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, +0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0xec11,0xec11,0xec11,0xec11, 0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11, -0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, -0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0,0,0,0, +0xec11,0xec11,0xec11,0xec11,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, +0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0,0,0,0,0xec11,0xec11,0xec11,0xec11, 0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11, -0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1392,0x1392,0x1392,0x1392, -0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0, -0x1392,0x1392,0,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91, -0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91, -0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91,0xec91,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -5,5,5,5,5,5,5,0,0,0,0,0,5,4,4,5, -5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0,4,4,4, -0,4,4,0,0,0,0,0,4,0x64,4,0x44,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x44,0x64,0x64,0,0,0,0,0x64,0,0,0,0, -0,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x2012,0x2012,0x2012,0x2012, -0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012, -0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xe011,0xe011,0xe011,0xe011, -0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011, -0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, +0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392, +0x1392,0x1392,0x1392,0,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0,0x1392,0x1392,0,0xec91, +0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91,0xec91,0xec91,0xec91,0xec91, +0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91,0xec91,0xec91,0xec91,0xec91, +0xec91,0xec91,0,0xec91,0xec91,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, +5,5,5,0,0,0,0,0,5,4,4,5,5,5,0,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,4,4,4,0,4,4,0, +0,0,0,0,4,0x64,4,0x44,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0,0,0, +0x44,0x64,0x64,0,0,0,0,0x64,0,0,0,0,0,0x44,0x64,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64, -0,0,0,0,0,0,0x64,0x64,0x44,0x44,0x44,0x64,0x44,0x64,0x64,0x64, -0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x44,0x64,0x44,0x64,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012, +0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012, +0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011, +0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011, +0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,4,4,4,4,4,4,4,0x64,0,0,0,0,0, +0,0,0,0,0,0,4,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, +0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0,0,0x44,0x44,0x44, +0x44,0x44,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x64,0,0,4,4,0,0,0,0,0,0,0, -0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,4,4,4,0,0,0x64,0x64,0, -0,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0, -0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0, +0,0,0,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,4,4,4,4,0,4,4,4, -4,4,4,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0, +0,0,0,0,4,0x64,0x64,0x64,0,0,0,0,0,0,0x64,0x64, +0x44,0x44,0x44,0x64,0x44,0x64,0x64,0x64,0x64,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x44,0x64,0x44,0x64,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,4,4,4,4,4,4,4,4,4,0,0x60,0,0,0, -0,0,0,0,0,4,0x64,4,4,0,0,4,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, +4,4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,4,0,0,4,0x60,0x64,4,0,0,0,0,0,0,4,0, -0,0,0,4,4,4,4,4,4,0x64,0x64,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0,0, +4,4,4,0,0,0x64,0x64,0,0,4,0,0,0,0,4,0, +0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0x44,0x44,0x44,0x44, -0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,4, -4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x44,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,4,4,4,4,0,4,0,0,0,0,4,4,0,0x64,0x64, +4,4,4,4,0,4,4,4,4,4,4,0x64,0x64,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, -4,4,0,0,0,0,0,0,4,4,0,0x64,0x64,0,0,0, +0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, +4,4,4,0,0x60,0,0,0,0,0,0,0,0,4,0x64,4, +4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,4,4,0,0,4,0x60,0x64,4, +0,0,0,0,0,0,4,0,0,0,0,4,4,4,4,4, +4,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,0,0x60,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0,0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0, +0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x64,0x60,0x64,0,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x64,4,4,0,0x64,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,4,4,4,4,4,4,0,0,4,0,0x64,0,0,0,0, -0,0,0,0,0,0,0,4,0,4,0,0,4,4,4,4, -4,4,0x60,0x64,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,4,4,4,4,4,0,4,0, +0,0,0,4,4,0,0x64,0x64,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,4,4,0,0,4,4,4,4,0,4,4,4,4,0x64, +0,0,0,0,0,0,4,4,4,4,0,0,0,0,0,0, +4,4,0,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4, -0,0x64,0x64,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, +4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,0, +0,4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,4, +0,4,0,0,4,4,4,4,4,4,0x60,0x64,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,0,4,0,0,4,4, +4,4,0,4,4,4,4,0x64,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,4,4,4,4,4,4,4,0,0x64,0x64,0,0,0,0,0, +0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, 0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, 0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,4,4,0x60,0x64,0,0,0,0,0x64,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,4,4,0,0,4,4, -0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,0, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,0x64,4,4,4,4,0,0,4, -4,4,4,0,0,0,0,0,0,0,0,0x64,0,0,0,0, -0,0,0,0,0,4,4,4,4,4,4,0,0,4,4,4, -0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, -4,4,4,4,4,4,4,0,4,0x64,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, -4,4,4,0,4,4,4,4,4,4,0,0x64,4,4,4,4, -4,4,4,4,0,0,4,4,4,4,4,4,4,0,4,4, -0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,4,4,4,4,4,0,0,0,4,0, -4,4,0,4,4,4,0x64,4,0x64,0x64,0,4,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,4,4,0x60,0x64,0, +0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,0,0,0,4,0,0x64,0,0,0,0, +4,4,4,4,0,0,4,4,0,0,0,0,0,4,4,4, +4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,0, -0,0,0,0,4,0x60,0x64,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64, -0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0x60,0x60,0,0, +0x64,4,4,4,4,0,0,4,4,4,4,0,0,0,0,0, +0,0,0,0x64,0,0,0,0,0,0,0,0,0,4,4,4, +4,4,4,0,0,4,4,4,0,0,0,0,0,0,0,0, +0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,0, +4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,4,4,4,4,0,4,4,4,4, +4,4,0,0x64,4,4,4,4,4,4,4,4,0,0,4,4, +4,4,4,4,4,0,4,4,0,4,4,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4, +4,4,4,0,0,0,4,0,4,4,0,4,4,4,0x64,4, +0x64,0x64,0,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, +0,4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,4,0,4,4,4,4,4,4,4,0,4,4,0, +0,0,4,4,4,4,4,0,0,0,0,0,4,0x60,0x64,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,4,0x64,0, +0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0x60,0x64, -0x64,0x64,0,0,0,0x60,0x60,0x60,0x60,0x60,0x60,4,4,4,4,4, -4,4,4,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0x44,0x44,0x44, -0x44,0x44,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, +4,4,0,0,0,4,4,0x64,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,0,4,4,0,0,0, +0,0,0,0,0,0,0,0,0x60,0x60,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, +0,4,4,4,4,4,4,4,0,4,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,0x64,0,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,0,0,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x60,0x60,0x64,0x64,0x64,0,0, +0,0x60,0x60,0x60,0x60,0x60,0x60,4,4,4,4,4,4,4,4,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0x44,0x44,0x44,0x44,0x44,0x64,0x64, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x44,0x44,0x44,0x44,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, +0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1, -1,1,0x21,0x21,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,1,1,1,1,1,1,1,0,0x21,0x21,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,1,1,1,1,1,1,1,1,0x21,0x21, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1, -1,1,1,1,1,1,0x21,0x21,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,2,0,2,2,0,0,2,0, -0,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2, -2,2,1,1,1,1,0,1,0,1,0x21,0x21,1,1,1,1, -0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -2,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2, -2,0,2,2,2,2,2,2,2,0,1,1,1,1,1,1, +1,1,1,1,1,0,0x21,0x21,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1, 1,1,0x21,0x21,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,2,2,0,2,2,2,2,0,2,2,2,2, -2,0,2,0,0,0,2,2,2,2,2,2,2,0,1,1, -1,1,1,1,1,1,0x21,0x21,1,1,1,1,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, +1,1,1,1,2,0,2,2,0,0,2,0,0,2,2,0, +0,2,2,2,2,0,2,2,2,2,2,2,2,2,1,1, +1,1,0,1,0,1,0x21,0x21,1,1,1,1,0,1,1,1, 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1, +2,2,2,2,2,2,2,2,1,1,1,1,2,2,0,2, +2,2,2,0,0,2,2,2,2,2,2,2,2,0,2,2, +2,2,2,2,2,0,1,1,1,1,1,1,1,1,0x21,0x21, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0,1,1,1,1,1,1,2,2,2,2,2,2, +2,2,0,2,2,2,2,0,2,2,2,2,2,0,2,0, +0,0,2,2,2,2,2,2,2,0,1,1,1,1,1,1, +1,1,0x21,0x21,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1, +2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,1,1,1,1,1,1,0,0,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -1,1,1,0,1,1,1,1,1,1,2,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, +1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0,1,1,1,1,1,1,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,0, +1,1,1,1,1,1,2,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,0,0,0,0,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0, -0,4,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +4,4,4,0,0,0,0,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,0,0,0,0,0,0,0,0,4,0,0, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x44, +0x44,0x44,0x44,0x44,1,1,1,1,1,1,1,1,1,1,0,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x21,1, +1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,4,4,4,4,4,0,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0,0,0x44,0x44,0x44,0x44,0x44,1,1,1,1,1,1,1,1, -1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0x21,1,1,1,1,0,0,0,0,0,0,1,1,1, -1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x44,0x44,0,0x44,0x44,0,0x44,0x44, -0x44,0x44,0x44,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0x25,5,5,5,5,5,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x44,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x44,0x44,0,0x44,0x44,0,0x44,0x44,0x44,0x44,0x44,0, 0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -0x25,0x25,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,4,4, -4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -0x64,0x64,0x64,0x44,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,0x25,5,5,5,5,5,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,0x25,0x25,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,4,4,4,4,0,0, +0,0,0,0,0,0,0,0,0,0,0,4,0x64,0x64,0x64,0x44, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0, 0,0,0,0,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112, 0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112, @@ -838,111 +852,112 @@ static const uint16_t ucase_props_trieIndex[13148]={ 0,0,0,0,0,0,0,0,0,0,0,0 }; -static const uint16_t ucase_props_exceptions[1664]={ +static const uint16_t ucase_props_exceptions[1672]={ 0xc850,0x20,2,0x130,0x131,0x4810,0x20,0x841,0x6b,1,0x212a,0x841,0x73,1,0x17f,0x5c50, 0x20,2,0x130,0x131,0x844,0x4b,1,0x212a,0x844,0x53,1,0x17f,0x806,0x3bc,0x39c,0x841, 0xe5,1,0x212b,0x8c0,1,0x2220,0x73,0x73,0x53,0x53,0x53,0x73,0x1e9e,0x844,0xc5,1, 0x212b,0x4810,1,0xce50,0xc7,2,0x49,0x131,0x844,0x49,2,0x69,0x130,0x880,0x2220,0x2bc, -0x6e,0x2bc,0x4e,0x2bc,0x4e,0x806,0x73,0x53,0x809,0x1c6,0x1c5,0x80d,0x1c6,0x1c4,0x1c5,0x80c, -0x1c4,0x1c5,0x809,0x1c9,0x1c8,0x80d,0x1c9,0x1c7,0x1c8,0x80c,0x1c7,0x1c8,0x809,0x1cc,0x1cb,0x80d, -0x1cc,0x1ca,0x1cb,0x80c,0x1ca,0x1cb,0x880,0x2220,0x6a,0x30c,0x4a,0x30c,0x4a,0x30c,0x809,0x1f3, -0x1f2,0x80d,0x1f3,0x1f1,0x1f2,0x80c,0x1f1,0x1f2,0x810,0x2a2b,0x810,0x2a28,0x810,0x2a3f,0x810,0x2a1f, -0x810,0x2a1c,0x810,0x2a1e,0x810,0xa54f,0x810,0xa54b,0x810,0xa528,0x810,0xa544,0x810,0x29f7,0x810,0xa541, -0x810,0x29fd,0x810,0x29e7,0x810,0xa543,0x810,0xa52a,0x1810,0xa515,0x810,0xa512,0x6800,0x3846,0x3b9,0x399, -1,0x1fbe,0x8c0,1,0x3330,0x3b9,0x308,0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x1fd3,0x841, -0x3b2,1,0x3d0,0x841,0x3b5,1,0x3f5,0x841,0x3b8,2,0x3d1,0x3f4,0x841,0x3b9,2,0x345, -0x1fbe,0x841,0x3ba,1,0x3f0,0x841,0x3bc,1,0xb5,0x841,0x3c0,1,0x3d6,0x841,0x3c1,1, -0x3f1,0x4850,0x20,1,0x3c2,0x841,0x3c6,1,0x3d5,0x841,0x3c9,1,0x2126,0x8c0,1,0x3330, -0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,0x1fe3,0x844,0x392,1,0x3d0,0x844,0x395, -1,0x3f5,0x844,0x398,2,0x3d1,0x3f4,0x844,0x399,2,0x345,0x1fbe,0x844,0x39a,1,0x3f0, -0x844,0x39c,1,0xb5,0x844,0x3a0,1,0x3d6,0x844,0x3a1,1,0x3f1,0x806,0x3c3,0x3a3,0x844, -0x3a3,1,0x3c2,0x844,0x3a6,1,0x3d5,0x844,0x3a9,1,0x2126,0x806,0x3b2,0x392,0x846,0x3b8, -0x398,1,0x3f4,0x806,0x3c6,0x3a6,0x806,0x3c0,0x3a0,0x806,0x3ba,0x39a,0x806,0x3c1,0x3a1,0x841, -0x3b8,2,0x398,0x3d1,0x806,0x3b5,0x395,0x841,0x432,1,0x1c80,0x841,0x434,1,0x1c81,0x841, -0x43e,1,0x1c82,0x841,0x441,1,0x1c83,0x841,0x442,2,0x1c84,0x1c85,0x841,0x44a,1,0x1c86, -0x844,0x412,1,0x1c80,0x844,0x414,1,0x1c81,0x844,0x41e,1,0x1c82,0x844,0x421,1,0x1c83, -0x844,0x422,2,0x1c84,0x1c85,0x844,0x42a,1,0x1c86,0x841,0x463,1,0x1c87,0x844,0x462,1, -0x1c87,0x4880,0x20,0x565,0x582,0x810,0x1c60,0x80c,0x1c90,0x10d0,0x80c,0x1c91,0x10d1,0x80c,0x1c92,0x10d2, -0x80c,0x1c93,0x10d3,0x80c,0x1c94,0x10d4,0x80c,0x1c95,0x10d5,0x80c,0x1c96,0x10d6,0x80c,0x1c97,0x10d7,0x80c, -0x1c98,0x10d8,0x80c,0x1c99,0x10d9,0x80c,0x1c9a,0x10da,0x80c,0x1c9b,0x10db,0x80c,0x1c9c,0x10dc,0x80c,0x1c9d, -0x10dd,0x80c,0x1c9e,0x10de,0x80c,0x1c9f,0x10df,0x80c,0x1ca0,0x10e0,0x80c,0x1ca1,0x10e1,0x80c,0x1ca2,0x10e2, -0x80c,0x1ca3,0x10e3,0x80c,0x1ca4,0x10e4,0x80c,0x1ca5,0x10e5,0x80c,0x1ca6,0x10e6,0x80c,0x1ca7,0x10e7,0x80c, -0x1ca8,0x10e8,0x80c,0x1ca9,0x10e9,0x80c,0x1caa,0x10ea,0x80c,0x1cab,0x10eb,0x80c,0x1cac,0x10ec,0x80c,0x1cad, -0x10ed,0x80c,0x1cae,0x10ee,0x80c,0x1caf,0x10ef,0x80c,0x1cb0,0x10f0,0x80c,0x1cb1,0x10f1,0x80c,0x1cb2,0x10f2, -0x80c,0x1cb3,0x10f3,0x80c,0x1cb4,0x10f4,0x80c,0x1cb5,0x10f5,0x80c,0x1cb6,0x10f6,0x80c,0x1cb7,0x10f7,0x80c, -0x1cb8,0x10f8,0x80c,0x1cb9,0x10f9,0x80c,0x1cba,0x10fa,0x80c,0x1cbd,0x10fd,0x80c,0x1cbe,0x10fe,0x80c,0x1cbf, -0x10ff,0xa10,0x97d0,0xa10,8,0x806,0x13f0,0x13f0,0x806,0x13f1,0x13f1,0x806,0x13f2,0x13f2,0x806,0x13f3, -0x13f3,0x806,0x13f4,0x13f4,0x806,0x13f5,0x13f5,0x806,0x432,0x412,0x806,0x434,0x414,0x806,0x43e,0x41e, -0x806,0x441,0x421,0x846,0x442,0x422,1,0x1c85,0x846,0x442,0x422,1,0x1c84,0x806,0x44a,0x42a, -0x806,0x463,0x462,0x806,0xa64b,0xa64a,0xc10,0xbc0,0x810,0x8a04,0x810,0xee6,0x810,0x8a38,0x841,0x1e61, -1,0x1e9b,0x844,0x1e60,1,0x1e9b,0x880,0x2220,0x68,0x331,0x48,0x331,0x48,0x331,0x880,0x2220, -0x74,0x308,0x54,0x308,0x54,0x308,0x880,0x2220,0x77,0x30a,0x57,0x30a,0x57,0x30a,0x880,0x2220, -0x79,0x30a,0x59,0x30a,0x59,0x30a,0x880,0x2220,0x61,0x2be,0x41,0x2be,0x41,0x2be,0x806,0x1e61, -0x1e60,0xc90,0x1dbf,0x20,0x73,0x73,0x880,0x2220,0x3c5,0x313,0x3a5,0x313,0x3a5,0x313,0x880,0x3330, -0x3c5,0x313,0x300,0x3a5,0x313,0x300,0x3a5,0x313,0x300,0x880,0x3330,0x3c5,0x313,0x301,0x3a5,0x313, -0x301,0x3a5,0x313,0x301,0x880,0x3330,0x3c5,0x313,0x342,0x3a5,0x313,0x342,0x3a5,0x313,0x342,0x890, -8,0x220,0x1f00,0x3b9,0x1f08,0x399,0x890,8,0x220,0x1f01,0x3b9,0x1f09,0x399,0x890,8,0x220, -0x1f02,0x3b9,0x1f0a,0x399,0x890,8,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x890,8,0x220,0x1f04,0x3b9, -0x1f0c,0x399,0x890,8,0x220,0x1f05,0x3b9,0x1f0d,0x399,0x890,8,0x220,0x1f06,0x3b9,0x1f0e,0x399, -0x890,8,0x220,0x1f07,0x3b9,0x1f0f,0x399,0xc90,8,0x220,0x1f00,0x3b9,0x1f08,0x399,0xc90,8, -0x220,0x1f01,0x3b9,0x1f09,0x399,0xc90,8,0x220,0x1f02,0x3b9,0x1f0a,0x399,0xc90,8,0x220,0x1f03, -0x3b9,0x1f0b,0x399,0xc90,8,0x220,0x1f04,0x3b9,0x1f0c,0x399,0xc90,8,0x220,0x1f05,0x3b9,0x1f0d, -0x399,0xc90,8,0x220,0x1f06,0x3b9,0x1f0e,0x399,0xc90,8,0x220,0x1f07,0x3b9,0x1f0f,0x399,0x890, -8,0x220,0x1f20,0x3b9,0x1f28,0x399,0x890,8,0x220,0x1f21,0x3b9,0x1f29,0x399,0x890,8,0x220, -0x1f22,0x3b9,0x1f2a,0x399,0x890,8,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x890,8,0x220,0x1f24,0x3b9, -0x1f2c,0x399,0x890,8,0x220,0x1f25,0x3b9,0x1f2d,0x399,0x890,8,0x220,0x1f26,0x3b9,0x1f2e,0x399, -0x890,8,0x220,0x1f27,0x3b9,0x1f2f,0x399,0xc90,8,0x220,0x1f20,0x3b9,0x1f28,0x399,0xc90,8, -0x220,0x1f21,0x3b9,0x1f29,0x399,0xc90,8,0x220,0x1f22,0x3b9,0x1f2a,0x399,0xc90,8,0x220,0x1f23, -0x3b9,0x1f2b,0x399,0xc90,8,0x220,0x1f24,0x3b9,0x1f2c,0x399,0xc90,8,0x220,0x1f25,0x3b9,0x1f2d, -0x399,0xc90,8,0x220,0x1f26,0x3b9,0x1f2e,0x399,0xc90,8,0x220,0x1f27,0x3b9,0x1f2f,0x399,0x890, -8,0x220,0x1f60,0x3b9,0x1f68,0x399,0x890,8,0x220,0x1f61,0x3b9,0x1f69,0x399,0x890,8,0x220, -0x1f62,0x3b9,0x1f6a,0x399,0x890,8,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x890,8,0x220,0x1f64,0x3b9, -0x1f6c,0x399,0x890,8,0x220,0x1f65,0x3b9,0x1f6d,0x399,0x890,8,0x220,0x1f66,0x3b9,0x1f6e,0x399, -0x890,8,0x220,0x1f67,0x3b9,0x1f6f,0x399,0xc90,8,0x220,0x1f60,0x3b9,0x1f68,0x399,0xc90,8, -0x220,0x1f61,0x3b9,0x1f69,0x399,0xc90,8,0x220,0x1f62,0x3b9,0x1f6a,0x399,0xc90,8,0x220,0x1f63, -0x3b9,0x1f6b,0x399,0xc90,8,0x220,0x1f64,0x3b9,0x1f6c,0x399,0xc90,8,0x220,0x1f65,0x3b9,0x1f6d, -0x399,0xc90,8,0x220,0x1f66,0x3b9,0x1f6e,0x399,0xc90,8,0x220,0x1f67,0x3b9,0x1f6f,0x399,0x880, -0x2220,0x1f70,0x3b9,0x1fba,0x399,0x1fba,0x345,0x890,9,0x220,0x3b1,0x3b9,0x391,0x399,0x880,0x2220, -0x3ac,0x3b9,0x386,0x399,0x386,0x345,0x880,0x2220,0x3b1,0x342,0x391,0x342,0x391,0x342,0x880,0x3330, -0x3b1,0x342,0x3b9,0x391,0x342,0x399,0x391,0x342,0x345,0xc90,9,0x220,0x3b1,0x3b9,0x391,0x399, -0x846,0x3b9,0x399,1,0x345,0x880,0x2220,0x1f74,0x3b9,0x1fca,0x399,0x1fca,0x345,0x890,9,0x220, -0x3b7,0x3b9,0x397,0x399,0x880,0x2220,0x3ae,0x3b9,0x389,0x399,0x389,0x345,0x880,0x2220,0x3b7,0x342, -0x397,0x342,0x397,0x342,0x880,0x3330,0x3b7,0x342,0x3b9,0x397,0x342,0x399,0x397,0x342,0x345,0xc90, -9,0x220,0x3b7,0x3b9,0x397,0x399,0x880,0x3330,0x3b9,0x308,0x300,0x399,0x308,0x300,0x399,0x308, -0x300,0x882,0x390,0x3330,0x3b9,0x308,0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x880,0x2220,0x3b9, -0x342,0x399,0x342,0x399,0x342,0x880,0x3330,0x3b9,0x308,0x342,0x399,0x308,0x342,0x399,0x308,0x342, -0x880,0x3330,0x3c5,0x308,0x300,0x3a5,0x308,0x300,0x3a5,0x308,0x300,0x882,0x3b0,0x3330,0x3c5,0x308, -0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,0x880,0x2220,0x3c1,0x313,0x3a1,0x313,0x3a1,0x313,0x880, -0x2220,0x3c5,0x342,0x3a5,0x342,0x3a5,0x342,0x880,0x3330,0x3c5,0x308,0x342,0x3a5,0x308,0x342,0x3a5, -0x308,0x342,0x880,0x2220,0x1f7c,0x3b9,0x1ffa,0x399,0x1ffa,0x345,0x890,9,0x220,0x3c9,0x3b9,0x3a9, -0x399,0x880,0x2220,0x3ce,0x3b9,0x38f,0x399,0x38f,0x345,0x880,0x2220,0x3c9,0x342,0x3a9,0x342,0x3a9, -0x342,0x880,0x3330,0x3c9,0x342,0x3b9,0x3a9,0x342,0x399,0x3a9,0x342,0x345,0xc90,9,0x220,0x3c9, -0x3b9,0x3a9,0x399,0xc50,0x1d5d,1,0x3a9,0xc50,0x20bf,1,0x4b,0xc50,0x2046,1,0xc5,0xc10, -0x29f7,0xc10,0xee6,0xc10,0x29e7,0xc10,0x2a2b,0xc10,0x2a28,0xc10,0x2a1c,0xc10,0x29fd,0xc10,0x2a1f,0xc10, -0x2a1e,0xc10,0x2a3f,0xc10,0x1c60,0x841,0xa64b,1,0x1c88,0x844,0xa64a,1,0x1c88,0xc10,0x8a04,0xc10, -0xa528,0xc10,0xa544,0xc10,0xa54f,0xc10,0xa54b,0xc10,0xa541,0xc10,0xa512,0xc10,0xa52a,0xc10,0xa515,0x810, -0x3a0,0xc10,0xa543,0xc10,0x8a38,0xc10,0x3a0,0x806,0x13a0,0x13a0,0x806,0x13a1,0x13a1,0x806,0x13a2,0x13a2, -0x806,0x13a3,0x13a3,0x806,0x13a4,0x13a4,0x806,0x13a5,0x13a5,0x806,0x13a6,0x13a6,0x806,0x13a7,0x13a7,0x806, -0x13a8,0x13a8,0x806,0x13a9,0x13a9,0x806,0x13aa,0x13aa,0x806,0x13ab,0x13ab,0x806,0x13ac,0x13ac,0x806,0x13ad, -0x13ad,0x806,0x13ae,0x13ae,0x806,0x13af,0x13af,0x806,0x13b0,0x13b0,0x806,0x13b1,0x13b1,0x806,0x13b2,0x13b2, -0x806,0x13b3,0x13b3,0x806,0x13b4,0x13b4,0x806,0x13b5,0x13b5,0x806,0x13b6,0x13b6,0x806,0x13b7,0x13b7,0x806, -0x13b8,0x13b8,0x806,0x13b9,0x13b9,0x806,0x13ba,0x13ba,0x806,0x13bb,0x13bb,0x806,0x13bc,0x13bc,0x806,0x13bd, -0x13bd,0x806,0x13be,0x13be,0x806,0x13bf,0x13bf,0x806,0x13c0,0x13c0,0x806,0x13c1,0x13c1,0x806,0x13c2,0x13c2, -0x806,0x13c3,0x13c3,0x806,0x13c4,0x13c4,0x806,0x13c5,0x13c5,0x806,0x13c6,0x13c6,0x806,0x13c7,0x13c7,0x806, -0x13c8,0x13c8,0x806,0x13c9,0x13c9,0x806,0x13ca,0x13ca,0x806,0x13cb,0x13cb,0x806,0x13cc,0x13cc,0x806,0x13cd, -0x13cd,0x806,0x13ce,0x13ce,0x806,0x13cf,0x13cf,0x806,0x13d0,0x13d0,0x806,0x13d1,0x13d1,0x806,0x13d2,0x13d2, -0x806,0x13d3,0x13d3,0x806,0x13d4,0x13d4,0x806,0x13d5,0x13d5,0x806,0x13d6,0x13d6,0x806,0x13d7,0x13d7,0x806, -0x13d8,0x13d8,0x806,0x13d9,0x13d9,0x806,0x13da,0x13da,0x806,0x13db,0x13db,0x806,0x13dc,0x13dc,0x806,0x13dd, -0x13dd,0x806,0x13de,0x13de,0x806,0x13df,0x13df,0x806,0x13e0,0x13e0,0x806,0x13e1,0x13e1,0x806,0x13e2,0x13e2, -0x806,0x13e3,0x13e3,0x806,0x13e4,0x13e4,0x806,0x13e5,0x13e5,0x806,0x13e6,0x13e6,0x806,0x13e7,0x13e7,0x806, -0x13e8,0x13e8,0x806,0x13e9,0x13e9,0x806,0x13ea,0x13ea,0x806,0x13eb,0x13eb,0x806,0x13ec,0x13ec,0x806,0x13ed, -0x13ed,0x806,0x13ee,0x13ee,0x806,0x13ef,0x13ef,0x880,0x2220,0x66,0x66,0x46,0x46,0x46,0x66,0x880, -0x2220,0x66,0x69,0x46,0x49,0x46,0x69,0x880,0x2220,0x66,0x6c,0x46,0x4c,0x46,0x6c,0x880, -0x3330,0x66,0x66,0x69,0x46,0x46,0x49,0x46,0x66,0x69,0x880,0x3330,0x66,0x66,0x6c,0x46, -0x46,0x4c,0x46,0x66,0x6c,0x882,0xfb06,0x2220,0x73,0x74,0x53,0x54,0x53,0x74,0x8c0,1, -0x2220,0x73,0x74,0x53,0x54,0x53,0x74,0xfb05,0x880,0x2220,0x574,0x576,0x544,0x546,0x544,0x576, -0x880,0x2220,0x574,0x565,0x544,0x535,0x544,0x565,0x880,0x2220,0x574,0x56b,0x544,0x53b,0x544,0x56b, -0x880,0x2220,0x57e,0x576,0x54e,0x546,0x54e,0x576,0x880,0x2220,0x574,0x56d,0x544,0x53d,0x544,0x56d +0x6e,0x2bc,0x4e,0x2bc,0x4e,0x806,0x73,0x53,0x810,0xa641,0x809,0x1c6,0x1c5,0x80d,0x1c6,0x1c4, +0x1c5,0x80c,0x1c4,0x1c5,0x809,0x1c9,0x1c8,0x80d,0x1c9,0x1c7,0x1c8,0x80c,0x1c7,0x1c8,0x809,0x1cc, +0x1cb,0x80d,0x1cc,0x1ca,0x1cb,0x80c,0x1ca,0x1cb,0x880,0x2220,0x6a,0x30c,0x4a,0x30c,0x4a,0x30c, +0x809,0x1f3,0x1f2,0x80d,0x1f3,0x1f1,0x1f2,0x80c,0x1f1,0x1f2,0x810,0x2a2b,0x810,0x2a28,0x810,0x2a3f, +0x810,0x2a1f,0x810,0x2a1c,0x810,0x2a1e,0x810,0xa54f,0x810,0xa54b,0x810,0xa567,0x810,0xa528,0x810,0xa544, +0x810,0x29f7,0x810,0xa541,0x810,0x29fd,0x810,0x29e7,0x810,0xa543,0x810,0xa52a,0x1810,0xa515,0x810,0xa512, +0x6800,0x3846,0x3b9,0x399,1,0x1fbe,0x8c0,1,0x3330,0x3b9,0x308,0x301,0x399,0x308,0x301,0x399, +0x308,0x301,0x1fd3,0x841,0x3b2,1,0x3d0,0x841,0x3b5,1,0x3f5,0x841,0x3b8,2,0x3d1,0x3f4, +0x841,0x3b9,2,0x345,0x1fbe,0x841,0x3ba,1,0x3f0,0x841,0x3bc,1,0xb5,0x841,0x3c0,1, +0x3d6,0x841,0x3c1,1,0x3f1,0x4850,0x20,1,0x3c2,0x841,0x3c6,1,0x3d5,0x841,0x3c9,1, +0x2126,0x8c0,1,0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,0x1fe3,0x844,0x392, +1,0x3d0,0x844,0x395,1,0x3f5,0x844,0x398,2,0x3d1,0x3f4,0x844,0x399,2,0x345,0x1fbe, +0x844,0x39a,1,0x3f0,0x844,0x39c,1,0xb5,0x844,0x3a0,1,0x3d6,0x844,0x3a1,1,0x3f1, +0x806,0x3c3,0x3a3,0x844,0x3a3,1,0x3c2,0x844,0x3a6,1,0x3d5,0x844,0x3a9,1,0x2126,0x806, +0x3b2,0x392,0x846,0x3b8,0x398,1,0x3f4,0x806,0x3c6,0x3a6,0x806,0x3c0,0x3a0,0x806,0x3ba,0x39a, +0x806,0x3c1,0x3a1,0x841,0x3b8,2,0x398,0x3d1,0x806,0x3b5,0x395,0x841,0x432,1,0x1c80,0x841, +0x434,1,0x1c81,0x841,0x43e,1,0x1c82,0x841,0x441,1,0x1c83,0x841,0x442,2,0x1c84,0x1c85, +0x841,0x44a,1,0x1c86,0x844,0x412,1,0x1c80,0x844,0x414,1,0x1c81,0x844,0x41e,1,0x1c82, +0x844,0x421,1,0x1c83,0x844,0x422,2,0x1c84,0x1c85,0x844,0x42a,1,0x1c86,0x841,0x463,1, +0x1c87,0x844,0x462,1,0x1c87,0x4880,0x20,0x565,0x582,0x810,0x1c60,0x80c,0x1c90,0x10d0,0x80c,0x1c91, +0x10d1,0x80c,0x1c92,0x10d2,0x80c,0x1c93,0x10d3,0x80c,0x1c94,0x10d4,0x80c,0x1c95,0x10d5,0x80c,0x1c96,0x10d6, +0x80c,0x1c97,0x10d7,0x80c,0x1c98,0x10d8,0x80c,0x1c99,0x10d9,0x80c,0x1c9a,0x10da,0x80c,0x1c9b,0x10db,0x80c, +0x1c9c,0x10dc,0x80c,0x1c9d,0x10dd,0x80c,0x1c9e,0x10de,0x80c,0x1c9f,0x10df,0x80c,0x1ca0,0x10e0,0x80c,0x1ca1, +0x10e1,0x80c,0x1ca2,0x10e2,0x80c,0x1ca3,0x10e3,0x80c,0x1ca4,0x10e4,0x80c,0x1ca5,0x10e5,0x80c,0x1ca6,0x10e6, +0x80c,0x1ca7,0x10e7,0x80c,0x1ca8,0x10e8,0x80c,0x1ca9,0x10e9,0x80c,0x1caa,0x10ea,0x80c,0x1cab,0x10eb,0x80c, +0x1cac,0x10ec,0x80c,0x1cad,0x10ed,0x80c,0x1cae,0x10ee,0x80c,0x1caf,0x10ef,0x80c,0x1cb0,0x10f0,0x80c,0x1cb1, +0x10f1,0x80c,0x1cb2,0x10f2,0x80c,0x1cb3,0x10f3,0x80c,0x1cb4,0x10f4,0x80c,0x1cb5,0x10f5,0x80c,0x1cb6,0x10f6, +0x80c,0x1cb7,0x10f7,0x80c,0x1cb8,0x10f8,0x80c,0x1cb9,0x10f9,0x80c,0x1cba,0x10fa,0x80c,0x1cbd,0x10fd,0x80c, +0x1cbe,0x10fe,0x80c,0x1cbf,0x10ff,0xa10,0x97d0,0xa10,8,0x806,0x13f0,0x13f0,0x806,0x13f1,0x13f1,0x806, +0x13f2,0x13f2,0x806,0x13f3,0x13f3,0x806,0x13f4,0x13f4,0x806,0x13f5,0x13f5,0x806,0x432,0x412,0x806,0x434, +0x414,0x806,0x43e,0x41e,0x806,0x441,0x421,0x846,0x442,0x422,1,0x1c85,0x846,0x442,0x422,1, +0x1c84,0x806,0x44a,0x42a,0x806,0x463,0x462,0x806,0xa64b,0xa64a,0xc10,0xbc0,0x810,0x8a04,0x810,0xee6, +0x810,0x8a38,0x841,0x1e61,1,0x1e9b,0x844,0x1e60,1,0x1e9b,0x880,0x2220,0x68,0x331,0x48,0x331, +0x48,0x331,0x880,0x2220,0x74,0x308,0x54,0x308,0x54,0x308,0x880,0x2220,0x77,0x30a,0x57,0x30a, +0x57,0x30a,0x880,0x2220,0x79,0x30a,0x59,0x30a,0x59,0x30a,0x880,0x2220,0x61,0x2be,0x41,0x2be, +0x41,0x2be,0x806,0x1e61,0x1e60,0xc90,0x1dbf,0x20,0x73,0x73,0x880,0x2220,0x3c5,0x313,0x3a5,0x313, +0x3a5,0x313,0x880,0x3330,0x3c5,0x313,0x300,0x3a5,0x313,0x300,0x3a5,0x313,0x300,0x880,0x3330,0x3c5, +0x313,0x301,0x3a5,0x313,0x301,0x3a5,0x313,0x301,0x880,0x3330,0x3c5,0x313,0x342,0x3a5,0x313,0x342, +0x3a5,0x313,0x342,0x890,8,0x220,0x1f00,0x3b9,0x1f08,0x399,0x890,8,0x220,0x1f01,0x3b9,0x1f09, +0x399,0x890,8,0x220,0x1f02,0x3b9,0x1f0a,0x399,0x890,8,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x890, +8,0x220,0x1f04,0x3b9,0x1f0c,0x399,0x890,8,0x220,0x1f05,0x3b9,0x1f0d,0x399,0x890,8,0x220, +0x1f06,0x3b9,0x1f0e,0x399,0x890,8,0x220,0x1f07,0x3b9,0x1f0f,0x399,0xc90,8,0x220,0x1f00,0x3b9, +0x1f08,0x399,0xc90,8,0x220,0x1f01,0x3b9,0x1f09,0x399,0xc90,8,0x220,0x1f02,0x3b9,0x1f0a,0x399, +0xc90,8,0x220,0x1f03,0x3b9,0x1f0b,0x399,0xc90,8,0x220,0x1f04,0x3b9,0x1f0c,0x399,0xc90,8, +0x220,0x1f05,0x3b9,0x1f0d,0x399,0xc90,8,0x220,0x1f06,0x3b9,0x1f0e,0x399,0xc90,8,0x220,0x1f07, +0x3b9,0x1f0f,0x399,0x890,8,0x220,0x1f20,0x3b9,0x1f28,0x399,0x890,8,0x220,0x1f21,0x3b9,0x1f29, +0x399,0x890,8,0x220,0x1f22,0x3b9,0x1f2a,0x399,0x890,8,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x890, +8,0x220,0x1f24,0x3b9,0x1f2c,0x399,0x890,8,0x220,0x1f25,0x3b9,0x1f2d,0x399,0x890,8,0x220, +0x1f26,0x3b9,0x1f2e,0x399,0x890,8,0x220,0x1f27,0x3b9,0x1f2f,0x399,0xc90,8,0x220,0x1f20,0x3b9, +0x1f28,0x399,0xc90,8,0x220,0x1f21,0x3b9,0x1f29,0x399,0xc90,8,0x220,0x1f22,0x3b9,0x1f2a,0x399, +0xc90,8,0x220,0x1f23,0x3b9,0x1f2b,0x399,0xc90,8,0x220,0x1f24,0x3b9,0x1f2c,0x399,0xc90,8, +0x220,0x1f25,0x3b9,0x1f2d,0x399,0xc90,8,0x220,0x1f26,0x3b9,0x1f2e,0x399,0xc90,8,0x220,0x1f27, +0x3b9,0x1f2f,0x399,0x890,8,0x220,0x1f60,0x3b9,0x1f68,0x399,0x890,8,0x220,0x1f61,0x3b9,0x1f69, +0x399,0x890,8,0x220,0x1f62,0x3b9,0x1f6a,0x399,0x890,8,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x890, +8,0x220,0x1f64,0x3b9,0x1f6c,0x399,0x890,8,0x220,0x1f65,0x3b9,0x1f6d,0x399,0x890,8,0x220, +0x1f66,0x3b9,0x1f6e,0x399,0x890,8,0x220,0x1f67,0x3b9,0x1f6f,0x399,0xc90,8,0x220,0x1f60,0x3b9, +0x1f68,0x399,0xc90,8,0x220,0x1f61,0x3b9,0x1f69,0x399,0xc90,8,0x220,0x1f62,0x3b9,0x1f6a,0x399, +0xc90,8,0x220,0x1f63,0x3b9,0x1f6b,0x399,0xc90,8,0x220,0x1f64,0x3b9,0x1f6c,0x399,0xc90,8, +0x220,0x1f65,0x3b9,0x1f6d,0x399,0xc90,8,0x220,0x1f66,0x3b9,0x1f6e,0x399,0xc90,8,0x220,0x1f67, +0x3b9,0x1f6f,0x399,0x880,0x2220,0x1f70,0x3b9,0x1fba,0x399,0x1fba,0x345,0x890,9,0x220,0x3b1,0x3b9, +0x391,0x399,0x880,0x2220,0x3ac,0x3b9,0x386,0x399,0x386,0x345,0x880,0x2220,0x3b1,0x342,0x391,0x342, +0x391,0x342,0x880,0x3330,0x3b1,0x342,0x3b9,0x391,0x342,0x399,0x391,0x342,0x345,0xc90,9,0x220, +0x3b1,0x3b9,0x391,0x399,0x846,0x3b9,0x399,1,0x345,0x880,0x2220,0x1f74,0x3b9,0x1fca,0x399,0x1fca, +0x345,0x890,9,0x220,0x3b7,0x3b9,0x397,0x399,0x880,0x2220,0x3ae,0x3b9,0x389,0x399,0x389,0x345, +0x880,0x2220,0x3b7,0x342,0x397,0x342,0x397,0x342,0x880,0x3330,0x3b7,0x342,0x3b9,0x397,0x342,0x399, +0x397,0x342,0x345,0xc90,9,0x220,0x3b7,0x3b9,0x397,0x399,0x880,0x3330,0x3b9,0x308,0x300,0x399, +0x308,0x300,0x399,0x308,0x300,0x882,0x390,0x3330,0x3b9,0x308,0x301,0x399,0x308,0x301,0x399,0x308, +0x301,0x880,0x2220,0x3b9,0x342,0x399,0x342,0x399,0x342,0x880,0x3330,0x3b9,0x308,0x342,0x399,0x308, +0x342,0x399,0x308,0x342,0x880,0x3330,0x3c5,0x308,0x300,0x3a5,0x308,0x300,0x3a5,0x308,0x300,0x882, +0x3b0,0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,0x880,0x2220,0x3c1,0x313,0x3a1, +0x313,0x3a1,0x313,0x880,0x2220,0x3c5,0x342,0x3a5,0x342,0x3a5,0x342,0x880,0x3330,0x3c5,0x308,0x342, +0x3a5,0x308,0x342,0x3a5,0x308,0x342,0x880,0x2220,0x1f7c,0x3b9,0x1ffa,0x399,0x1ffa,0x345,0x890,9, +0x220,0x3c9,0x3b9,0x3a9,0x399,0x880,0x2220,0x3ce,0x3b9,0x38f,0x399,0x38f,0x345,0x880,0x2220,0x3c9, +0x342,0x3a9,0x342,0x3a9,0x342,0x880,0x3330,0x3c9,0x342,0x3b9,0x3a9,0x342,0x399,0x3a9,0x342,0x345, +0xc90,9,0x220,0x3c9,0x3b9,0x3a9,0x399,0xc50,0x1d5d,1,0x3a9,0xc50,0x20bf,1,0x4b,0xc50, +0x2046,1,0xc5,0xc10,0x29f7,0xc10,0xee6,0xc10,0x29e7,0xc10,0x2a2b,0xc10,0x2a28,0xc10,0x2a1c,0xc10, +0x29fd,0xc10,0x2a1f,0xc10,0x2a1e,0xc10,0x2a3f,0xc10,0x1c60,0x841,0xa64b,1,0x1c88,0x844,0xa64a,1, +0x1c88,0xc10,0x8a04,0xc10,0xa528,0xc10,0xa544,0xc10,0xa54f,0xc10,0xa54b,0xc10,0xa541,0xc10,0xa512,0xc10, +0xa52a,0xc10,0xa515,0x810,0x3a0,0xc10,0xa543,0xc10,0x8a38,0xc10,0xa567,0xc10,0xa641,0xc10,0x3a0,0x806, +0x13a0,0x13a0,0x806,0x13a1,0x13a1,0x806,0x13a2,0x13a2,0x806,0x13a3,0x13a3,0x806,0x13a4,0x13a4,0x806,0x13a5, +0x13a5,0x806,0x13a6,0x13a6,0x806,0x13a7,0x13a7,0x806,0x13a8,0x13a8,0x806,0x13a9,0x13a9,0x806,0x13aa,0x13aa, +0x806,0x13ab,0x13ab,0x806,0x13ac,0x13ac,0x806,0x13ad,0x13ad,0x806,0x13ae,0x13ae,0x806,0x13af,0x13af,0x806, +0x13b0,0x13b0,0x806,0x13b1,0x13b1,0x806,0x13b2,0x13b2,0x806,0x13b3,0x13b3,0x806,0x13b4,0x13b4,0x806,0x13b5, +0x13b5,0x806,0x13b6,0x13b6,0x806,0x13b7,0x13b7,0x806,0x13b8,0x13b8,0x806,0x13b9,0x13b9,0x806,0x13ba,0x13ba, +0x806,0x13bb,0x13bb,0x806,0x13bc,0x13bc,0x806,0x13bd,0x13bd,0x806,0x13be,0x13be,0x806,0x13bf,0x13bf,0x806, +0x13c0,0x13c0,0x806,0x13c1,0x13c1,0x806,0x13c2,0x13c2,0x806,0x13c3,0x13c3,0x806,0x13c4,0x13c4,0x806,0x13c5, +0x13c5,0x806,0x13c6,0x13c6,0x806,0x13c7,0x13c7,0x806,0x13c8,0x13c8,0x806,0x13c9,0x13c9,0x806,0x13ca,0x13ca, +0x806,0x13cb,0x13cb,0x806,0x13cc,0x13cc,0x806,0x13cd,0x13cd,0x806,0x13ce,0x13ce,0x806,0x13cf,0x13cf,0x806, +0x13d0,0x13d0,0x806,0x13d1,0x13d1,0x806,0x13d2,0x13d2,0x806,0x13d3,0x13d3,0x806,0x13d4,0x13d4,0x806,0x13d5, +0x13d5,0x806,0x13d6,0x13d6,0x806,0x13d7,0x13d7,0x806,0x13d8,0x13d8,0x806,0x13d9,0x13d9,0x806,0x13da,0x13da, +0x806,0x13db,0x13db,0x806,0x13dc,0x13dc,0x806,0x13dd,0x13dd,0x806,0x13de,0x13de,0x806,0x13df,0x13df,0x806, +0x13e0,0x13e0,0x806,0x13e1,0x13e1,0x806,0x13e2,0x13e2,0x806,0x13e3,0x13e3,0x806,0x13e4,0x13e4,0x806,0x13e5, +0x13e5,0x806,0x13e6,0x13e6,0x806,0x13e7,0x13e7,0x806,0x13e8,0x13e8,0x806,0x13e9,0x13e9,0x806,0x13ea,0x13ea, +0x806,0x13eb,0x13eb,0x806,0x13ec,0x13ec,0x806,0x13ed,0x13ed,0x806,0x13ee,0x13ee,0x806,0x13ef,0x13ef,0x880, +0x2220,0x66,0x66,0x46,0x46,0x46,0x66,0x880,0x2220,0x66,0x69,0x46,0x49,0x46,0x69,0x880, +0x2220,0x66,0x6c,0x46,0x4c,0x46,0x6c,0x880,0x3330,0x66,0x66,0x69,0x46,0x46,0x49,0x46, +0x66,0x69,0x880,0x3330,0x66,0x66,0x6c,0x46,0x46,0x4c,0x46,0x66,0x6c,0x882,0xfb06,0x2220, +0x73,0x74,0x53,0x54,0x53,0x74,0x8c0,1,0x2220,0x73,0x74,0x53,0x54,0x53,0x74,0xfb05, +0x880,0x2220,0x574,0x576,0x544,0x546,0x544,0x576,0x880,0x2220,0x574,0x565,0x544,0x535,0x544,0x565, +0x880,0x2220,0x574,0x56b,0x544,0x53b,0x544,0x56b,0x880,0x2220,0x57e,0x576,0x54e,0x546,0x54e,0x576, +0x880,0x2220,0x574,0x56d,0x544,0x53d,0x544,0x56d }; static const uint16_t ucase_props_unfold[370]={ @@ -979,16 +994,16 @@ static const UCaseProps ucase_props_singleton={ ucase_props_unfold, { ucase_props_trieIndex, - ucase_props_trieIndex+3412, + ucase_props_trieIndex+3468, nullptr, - 3412, - 9736, + 3468, + 9904, 0x188, - 0xdd0, + 0xe08, 0x0, 0x0, 0xe0800, - 0x3358, + 0x3438, nullptr, 0, false, false, 0, nullptr }, { 4,0,0,0 } diff --git a/thirdparty/icu4c/common/ucasemap.cpp b/thirdparty/icu4c/common/ucasemap.cpp index f419f65c32a4..928c52421537 100644 --- a/thirdparty/icu4c/common/ucasemap.cpp +++ b/thirdparty/icu4c/common/ucasemap.cpp @@ -160,12 +160,12 @@ appendResult(int32_t cpLength, int32_t result, const char16_t *s, } // See unicode/utf8.h U8_APPEND_UNSAFE(). -inline uint8_t getTwoByteLead(UChar32 c) { return (uint8_t)((c >> 6) | 0xc0); } -inline uint8_t getTwoByteTrail(UChar32 c) { return (uint8_t)((c & 0x3f) | 0x80); } +inline uint8_t getTwoByteLead(UChar32 c) { return static_cast((c >> 6) | 0xc0); } +inline uint8_t getTwoByteTrail(UChar32 c) { return static_cast((c & 0x3f) | 0x80); } UChar32 U_CALLCONV utf8_caseContextIterator(void *context, int8_t dir) { - UCaseContext *csc=(UCaseContext *)context; + UCaseContext* csc = static_cast(context); UChar32 c; if(dir<0) { @@ -234,7 +234,7 @@ void toLower(int32_t caseLocale, uint32_t options, if (d == 0) { continue; } ByteSinkUtil::appendUnchanged(src + prev, srcIndex - 1 - prev, sink, options, edits, errorCode); - char ascii = (char)(lead + d); + char ascii = static_cast(lead + d); sink.Append(&ascii, 1); if (edits != nullptr) { edits->addReplace(1, 1); @@ -342,7 +342,7 @@ void toUpper(int32_t caseLocale, uint32_t options, if (d == 0) { continue; } ByteSinkUtil::appendUnchanged(src + prev, srcIndex - 1 - prev, sink, options, edits, errorCode); - char ascii = (char)(lead + d); + char ascii = static_cast(lead + d); sink.Append(&ascii, 1); if (edits != nullptr) { edits->addReplace(1, 1); @@ -747,14 +747,14 @@ void toUpper(uint32_t options, int32_t i2 = i + 2; if ((data & HAS_EITHER_DIALYTIKA) != 0) { change |= (i2 + 2) > nextIndex || - src[i2] != (uint8_t)u8"\u0308"[0] || - src[i2 + 1] != (uint8_t)u8"\u0308"[1]; + src[i2] != static_cast(u8"\u0308"[0]) || + src[i2 + 1] != static_cast(u8"\u0308"[1]); i2 += 2; } if (addTonos) { change |= (i2 + 2) > nextIndex || - src[i2] != (uint8_t)u8"\u0301"[0] || - src[i2 + 1] != (uint8_t)u8"\u0301"[1]; + src[i2] != static_cast(u8"\u0301"[0]) || + src[i2 + 1] != static_cast(u8"\u0301"[1]); i2 += 2; } int32_t oldLength = nextIndex - i; @@ -867,14 +867,14 @@ ucasemap_mapUTF8(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_P // Get the string length. if (srcLength == -1) { - srcLength = (int32_t)uprv_strlen((const char *)src); + srcLength = static_cast(uprv_strlen(src)); } if (edits != nullptr && (options & U_EDITS_NO_RESET) == 0) { edits->reset(); } stringCaseMapper(caseLocale, options, UCASEMAP_BREAK_ITERATOR - (const uint8_t *)src, srcLength, sink, edits, errorCode); + reinterpret_cast(src), srcLength, sink, edits, errorCode); sink.Flush(); if (U_SUCCESS(errorCode)) { if (edits != nullptr) { @@ -904,7 +904,7 @@ ucasemap_mapUTF8(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_P /* get the string length */ if(srcLength==-1) { - srcLength=(int32_t)uprv_strlen((const char *)src); + srcLength = static_cast(uprv_strlen(src)); } /* check for overlapping source and destination */ @@ -923,7 +923,7 @@ ucasemap_mapUTF8(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_P dest, destCapacity, [&](ByteSink& sink, UErrorCode& status) { stringCaseMapper(caseLocale, options, UCASEMAP_BREAK_ITERATOR - (const uint8_t *)src, srcLength, sink, edits, status); + reinterpret_cast(src), srcLength, sink, edits, status); }, errorCode); if (U_SUCCESS(errorCode) && edits != nullptr) { diff --git a/thirdparty/icu4c/common/ucasemap_titlecase_brkiter.cpp b/thirdparty/icu4c/common/ucasemap_titlecase_brkiter.cpp index c2b44a2c7887..ebc952a97975 100644 --- a/thirdparty/icu4c/common/ucasemap_titlecase_brkiter.cpp +++ b/thirdparty/icu4c/common/ucasemap_titlecase_brkiter.cpp @@ -107,7 +107,7 @@ ucasemap_utf8ToTitle(UCaseMap *csm, return 0; } UText utext=UTEXT_INITIALIZER; - utext_openUTF8(&utext, (const char *)src, srcLength, pErrorCode); + utext_openUTF8(&utext, src, srcLength, pErrorCode); if (U_FAILURE(*pErrorCode)) { return 0; } diff --git a/thirdparty/icu4c/common/uchar.cpp b/thirdparty/icu4c/common/uchar.cpp index ff12962baa5a..3b2ae8c8af5d 100644 --- a/thirdparty/icu4c/common/uchar.cpp +++ b/thirdparty/icu4c/common/uchar.cpp @@ -23,6 +23,7 @@ #include "unicode/utypes.h" #include "unicode/uchar.h" +#include "unicode/ucptrie.h" #include "unicode/uscript.h" #include "unicode/udata.h" #include "uassert.h" @@ -67,9 +68,9 @@ _enumTypeValue(const void *context, uint32_t value) { static UBool U_CALLCONV _enumTypeRange(const void *context, UChar32 start, UChar32 end, uint32_t value) { /* just cast the value to UCharCategory */ - return ((struct _EnumTypeCallback *)context)-> - enumRange(((struct _EnumTypeCallback *)context)->context, - start, end+1, (UCharCategory)value); + return static_cast(context)-> + enumRange(static_cast(context)->context, + start, end + 1, static_cast(value)); } U_CAPI void U_EXPORT2 @@ -90,7 +91,7 @@ U_CAPI UBool U_EXPORT2 u_islower(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)(GET_CATEGORY(props)==U_LOWERCASE_LETTER); + return GET_CATEGORY(props)==U_LOWERCASE_LETTER; } /* Checks if ch is an upper case letter.*/ @@ -98,7 +99,7 @@ U_CAPI UBool U_EXPORT2 u_isupper(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)(GET_CATEGORY(props)==U_UPPERCASE_LETTER); + return GET_CATEGORY(props)==U_UPPERCASE_LETTER; } /* Checks if ch is a title case letter; usually upper case letters.*/ @@ -106,7 +107,7 @@ U_CAPI UBool U_EXPORT2 u_istitle(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)(GET_CATEGORY(props)==U_TITLECASE_LETTER); + return GET_CATEGORY(props)==U_TITLECASE_LETTER; } /* Checks if ch is a decimal digit. */ @@ -114,7 +115,7 @@ U_CAPI UBool U_EXPORT2 u_isdigit(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)(GET_CATEGORY(props)==U_DECIMAL_DIGIT_NUMBER); + return GET_CATEGORY(props)==U_DECIMAL_DIGIT_NUMBER; } U_CAPI UBool U_EXPORT2 @@ -130,7 +131,7 @@ u_isxdigit(UChar32 c) { } GET_PROPS(c, props); - return (UBool)(GET_CATEGORY(props)==U_DECIMAL_DIGIT_NUMBER); + return GET_CATEGORY(props)==U_DECIMAL_DIGIT_NUMBER; } /* Checks if the Unicode character is a letter.*/ @@ -138,7 +139,7 @@ U_CAPI UBool U_EXPORT2 u_isalpha(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)((CAT_MASK(props)&U_GC_L_MASK)!=0); + return (CAT_MASK(props)&U_GC_L_MASK)!=0; } U_CAPI UBool U_EXPORT2 @@ -151,7 +152,7 @@ U_CAPI UBool U_EXPORT2 u_isalnum(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)((CAT_MASK(props)&(U_GC_L_MASK|U_GC_ND_MASK))!=0); + return (CAT_MASK(props)&(U_GC_L_MASK|U_GC_ND_MASK))!=0; } /** @@ -160,7 +161,7 @@ u_isalnum(UChar32 c) { */ U_CFUNC UBool u_isalnumPOSIX(UChar32 c) { - return (UBool)(u_isUAlphabetic(c) || u_isdigit(c)); + return u_isUAlphabetic(c) || u_isdigit(c); } /* Checks if ch is a unicode character with assigned character type.*/ @@ -168,7 +169,7 @@ U_CAPI UBool U_EXPORT2 u_isdefined(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)(GET_CATEGORY(props)!=0); + return GET_CATEGORY(props)!=0; } /* Checks if the Unicode character is a base form character that can take a diacritic.*/ @@ -176,7 +177,7 @@ U_CAPI UBool U_EXPORT2 u_isbase(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)((CAT_MASK(props)&(U_GC_L_MASK|U_GC_N_MASK|U_GC_MC_MASK|U_GC_ME_MASK))!=0); + return (CAT_MASK(props)&(U_GC_L_MASK|U_GC_N_MASK|U_GC_MC_MASK|U_GC_ME_MASK))!=0; } /* Checks if the Unicode character is a control character.*/ @@ -184,7 +185,7 @@ U_CAPI UBool U_EXPORT2 u_iscntrl(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)((CAT_MASK(props)&(U_GC_CC_MASK|U_GC_CF_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK))!=0); + return (CAT_MASK(props)&(U_GC_CC_MASK|U_GC_CF_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK))!=0; } U_CAPI UBool U_EXPORT2 @@ -205,14 +206,14 @@ U_CAPI UBool U_EXPORT2 u_isspace(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)((CAT_MASK(props)&U_GC_Z_MASK)!=0 || IS_THAT_CONTROL_SPACE(c)); + return (CAT_MASK(props)&U_GC_Z_MASK)!=0 || IS_THAT_CONTROL_SPACE(c); } U_CAPI UBool U_EXPORT2 u_isJavaSpaceChar(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)((CAT_MASK(props)&U_GC_Z_MASK)!=0); + return (CAT_MASK(props)&U_GC_Z_MASK)!=0; } /* Checks if the Unicode character is a whitespace character.*/ @@ -220,11 +221,9 @@ U_CAPI UBool U_EXPORT2 u_isWhitespace(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)( - ((CAT_MASK(props)&U_GC_Z_MASK)!=0 && - c!=NBSP && c!=FIGURESP && c!=NNBSP) || /* exclude no-break spaces */ - IS_THAT_ASCII_CONTROL_SPACE(c) - ); + return ((CAT_MASK(props)&U_GC_Z_MASK)!=0 && + c!=NBSP && c!=FIGURESP && c!=NNBSP) || /* exclude no-break spaces */ + IS_THAT_ASCII_CONTROL_SPACE(c); } U_CAPI UBool U_EXPORT2 @@ -235,7 +234,7 @@ u_isblank(UChar32 c) { /* Zs */ uint32_t props; GET_PROPS(c, props); - return (UBool)(GET_CATEGORY(props)==U_SPACE_SEPARATOR); + return GET_CATEGORY(props)==U_SPACE_SEPARATOR; } } @@ -250,7 +249,7 @@ u_isprint(UChar32 c) { uint32_t props; GET_PROPS(c, props); /* comparing ==0 returns false for the categories mentioned */ - return (UBool)((CAT_MASK(props)&U_GC_C_MASK)==0); + return (CAT_MASK(props)&U_GC_C_MASK)==0; } /** @@ -266,7 +265,7 @@ u_isprintPOSIX(UChar32 c) { * The only cntrl character in graph+blank is TAB (in blank). * Here we implement (blank-TAB)=Zs instead of calling u_isblank(). */ - return (UBool)((GET_CATEGORY(props)==U_SPACE_SEPARATOR) || u_isgraphPOSIX(c)); + return (GET_CATEGORY(props)==U_SPACE_SEPARATOR) || u_isgraphPOSIX(c); } U_CAPI UBool U_EXPORT2 @@ -274,9 +273,9 @@ u_isgraph(UChar32 c) { uint32_t props; GET_PROPS(c, props); /* comparing ==0 returns false for the categories mentioned */ - return (UBool)((CAT_MASK(props)& - (U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CS_MASK|U_GC_CN_MASK|U_GC_Z_MASK)) - ==0); + return (CAT_MASK(props)& + (U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CS_MASK|U_GC_CN_MASK|U_GC_Z_MASK)) + ==0; } /** @@ -292,16 +291,16 @@ u_isgraphPOSIX(UChar32 c) { GET_PROPS(c, props); /* \p{space}\p{gc=Control} == \p{gc=Z}\p{Control} */ /* comparing ==0 returns false for the categories mentioned */ - return (UBool)((CAT_MASK(props)& - (U_GC_CC_MASK|U_GC_CS_MASK|U_GC_CN_MASK|U_GC_Z_MASK)) - ==0); + return (CAT_MASK(props)& + (U_GC_CC_MASK|U_GC_CS_MASK|U_GC_CN_MASK|U_GC_Z_MASK)) + ==0; } U_CAPI UBool U_EXPORT2 u_ispunct(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)((CAT_MASK(props)&U_GC_P_MASK)!=0); + return (CAT_MASK(props)&U_GC_P_MASK)!=0; } /*Checks if the Unicode character can be ignorable in a Java or Unicode identifier.*/ @@ -312,7 +311,7 @@ u_isIDIgnorable(UChar32 c) { } else { uint32_t props; GET_PROPS(c, props); - return (UBool)(GET_CATEGORY(props)==U_FORMAT_CHAR); + return GET_CATEGORY(props)==U_FORMAT_CHAR; } } @@ -321,7 +320,7 @@ U_CAPI UBool U_EXPORT2 u_isJavaIDStart(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)((CAT_MASK(props)&(U_GC_L_MASK|U_GC_SC_MASK|U_GC_PC_MASK))!=0); + return (CAT_MASK(props)&(U_GC_L_MASK|U_GC_SC_MASK|U_GC_PC_MASK))!=0; } /*Checks if the Unicode character can be a Java identifier part other than starting the @@ -331,14 +330,13 @@ U_CAPI UBool U_EXPORT2 u_isJavaIDPart(UChar32 c) { uint32_t props; GET_PROPS(c, props); - return (UBool)( - (CAT_MASK(props)& + return (CAT_MASK(props)& (U_GC_ND_MASK|U_GC_NL_MASK| U_GC_L_MASK| U_GC_SC_MASK|U_GC_PC_MASK| U_GC_MC_MASK|U_GC_MN_MASK) )!=0 || - u_isIDIgnorable(c)); + u_isIDIgnorable(c); } U_CAPI int32_t U_EXPORT2 @@ -515,6 +513,8 @@ uprv_getMaxValues(int32_t column) { return indexes[UPROPS_MAX_VALUES_INDEX]; case 2: return indexes[UPROPS_MAX_VALUES_2_INDEX]; + case UPROPS_MAX_VALUES_OTHER_INDEX: + return indexes[column]; default: return 0; } @@ -524,8 +524,8 @@ U_CAPI void U_EXPORT2 u_charAge(UChar32 c, UVersionInfo versionArray) { if(versionArray!=nullptr) { uint32_t version=u_getUnicodeProperties(c, 0)>>UPROPS_AGE_SHIFT; - versionArray[0]=(uint8_t)(version>>4); - versionArray[1]=(uint8_t)(version&0xf); + versionArray[0]=(uint8_t)(version>>2); + versionArray[1]=(uint8_t)(version&3); versionArray[2]=versionArray[3]=0; } } @@ -540,7 +540,7 @@ uscript_getScript(UChar32 c, UErrorCode *pErrorCode) { return USCRIPT_INVALID_CODE; } uint32_t scriptX=u_getUnicodeProperties(c, 0)&UPROPS_SCRIPT_X_MASK; - uint32_t codeOrIndex=uprops_mergeScriptCodeOrIndex(scriptX); + uint32_t codeOrIndex=scriptX&UPROPS_MAX_SCRIPT; if(scriptX>UPROPS_BLOCK_SHIFT); + // We store Block values indexed by the code point shifted right 4 bits + // and use a "small" UCPTrie=CodePointTrie for minimal data size. + // This works because blocks have xxx0..xxxF ranges. + uint32_t c4 = c; // unsigned so that shifting right does not worry the compiler + // Shift unless out of range, in which case we fetch the trie's error value. + if (c4 <= 0x10ffff) { + c4 >>= 4; + } + return (UBlockCode)ucptrie_get(&block_trie, c4); } /* property starts for UnicodeSet ------------------------------------------- */ @@ -626,7 +634,7 @@ ublock_getCode(UChar32 c) { static UBool U_CALLCONV _enumPropertyStartsRange(const void *context, UChar32 start, UChar32 end, uint32_t value) { /* add the start code point to the USet */ - const USetAdder *sa=(const USetAdder *)context; + const USetAdder* sa = static_cast(context); sa->add(sa->set, start); (void)end; (void)value; @@ -706,3 +714,18 @@ upropsvec_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode) { /* add the start code point of each same-value range of the properties vectors trie */ utrie2_enum(&propsVectorsTrie, nullptr, _enumPropertyStartsRange, sa); } + +U_CFUNC void U_EXPORT2 +ublock_addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode*/) { + // Add the start code point of each same-value range of the trie. + // We store Block values indexed by the code point shifted right 4 bits; + // see ublock_getCode(). + UChar32 start = 0, end; + uint32_t value; + while (start < 0x11000 && // limit: (max code point + 1) >> 4 + (end = ucptrie_getRange(&block_trie, start, UCPMAP_RANGE_NORMAL, 0, + nullptr, nullptr, &value)) >= 0) { + sa->add(sa->set, start << 4); + start = end + 1; + } +} diff --git a/thirdparty/icu4c/common/uchar_props_data.h b/thirdparty/icu4c/common/uchar_props_data.h index 0cacf142afa5..215afd1a5250 100644 --- a/thirdparty/icu4c/common/uchar_props_data.h +++ b/thirdparty/icu4c/common/uchar_props_data.h @@ -9,146 +9,146 @@ #ifdef INCLUDED_FROM_UCHAR_C -static const UVersionInfo dataVersion={0xf,1,0,0}; +static const UVersionInfo dataVersion={0x10,0,0,0}; -static const uint16_t propsTrie_index[23156]={ -0x495,0x49d,0x4a5,0x4ad,0x4c5,0x4cd,0x4d5,0x4dd,0x4e5,0x4ed,0x4f3,0x4fb,0x503,0x50b,0x513,0x51b, -0x521,0x529,0x531,0x539,0x53c,0x544,0x54c,0x554,0x55c,0x564,0x560,0x568,0x570,0x578,0x57d,0x585, -0x58d,0x595,0x599,0x5a1,0x5a9,0x5b1,0x5b9,0x5c1,0x5bd,0x5c5,0x5ca,0x5d2,0x5d8,0x5e0,0x5e8,0x5f0, -0x5f8,0x600,0x608,0x610,0x615,0x61d,0x620,0x628,0x630,0x638,0x63e,0x646,0x645,0x64d,0x655,0x65d, -0x66d,0x665,0x675,0x67d,0x683,0x600,0x693,0x68b,0x6a3,0x6a5,0x6ad,0x69b,0x6bd,0x6c3,0x6cb,0x6b5, -0x6db,0x6e1,0x6e9,0x6d3,0x6f9,0x6ff,0x707,0x6f1,0x717,0x71d,0x725,0x70f,0x735,0x73d,0x745,0x72d, -0x755,0x75b,0x763,0x74d,0x773,0x779,0x781,0x76b,0x791,0x796,0x79e,0x789,0x7ae,0x7b5,0x7bd,0x7a6, -0x641,0x7c5,0x7cd,0x4b5,0x7d5,0x7dc,0x7e4,0x4b5,0x7ec,0x7f4,0x7fc,0x801,0x809,0x810,0x818,0x4b5, -0x600,0x820,0x828,0x830,0x838,0x58d,0x848,0x840,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x850,0x600,0x858,0x85c,0x864,0x600,0x86a,0x600,0x870,0x878,0x880,0x58d,0x58d,0x888, -0x890,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x895,0x89d,0x600,0x600,0x8a5,0x8ad,0x8b5,0x8bd,0x8c5,0x600,0x8cd,0x8d5,0x8dd, -0x8ed,0x600,0x8f5,0x8f7,0x8ff,0x8e5,0x600,0x902,0x916,0x90a,0x912,0x91e,0x600,0x926,0x92c,0x934, -0x93c,0x600,0x94c,0x954,0x95c,0x944,0x96c,0x4b5,0x974,0x977,0x97f,0x964,0x98f,0x987,0x600,0x996, -0x600,0x9a5,0x99e,0x9ad,0x9b5,0x9b9,0x9c1,0x9c9,0x535,0x9d1,0x9d4,0x9da,0x9e1,0x9d4,0x55c,0x55c, -0x4e5,0x4e5,0x4e5,0x4e5,0x9e9,0x4e5,0x4e5,0x4e5,0x9f9,0xa01,0xa09,0xa11,0xa19,0xa1d,0xa25,0x9f1, -0xa3d,0xa45,0xa2d,0xa35,0xa4d,0xa55,0xa5d,0xa65,0xa7d,0xa6d,0xa75,0xa85,0xa8d,0xa9c,0xaa1,0xa94, -0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xab1,0xab9,0x934,0xabc,0xac4,0xacb,0xad0,0xad8, -0x934,0xadf,0xade,0xaef,0xaf2,0x934,0x934,0xae7,0x934,0x934,0x934,0x934,0x934,0xb01,0xb09,0xaf9, -0x934,0x934,0x934,0xb0e,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0xb14,0xb1c,0x934,0xb24,0xb2b, -0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0xaa9,0xaa9,0xaa9,0xaa9,0xb33,0xaa9,0xb3a,0xb41, -0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0x934,0xb49,0xb50,0xb54,0xb5a,0x934,0x934,0x934, -0x58d,0x595,0x535,0xb62,0x4e5,0x4e5,0x4e5,0xb6a,0x535,0xb72,0x600,0xb78,0xb88,0xb80,0xb80,0x55c, -0xb90,0xb98,0xba0,0x4b5,0xba8,0x934,0x934,0xbaf,0x934,0x934,0x934,0x934,0x934,0x934,0xbb7,0xbbd, -0xbcd,0xbc5,0x641,0x600,0xbd5,0x890,0x600,0xbdd,0xbe5,0xbe9,0x600,0x600,0xbee,0x600,0x934,0xbf5, -0xad9,0xbfd,0xc03,0x934,0xbfd,0xc0b,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934, -0xc13,0x600,0x600,0x600,0xc1b,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0xc21,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xc26,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x934,0x934, -0xc2e,0xc35,0xc37,0x600,0xc3f,0xc45,0xc4d,0xc55,0xc5a,0x600,0x600,0xc5e,0x600,0x600,0x600,0xc64, -0xc6b,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xc72,0x600,0xc79,0xc7f,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xc87,0x600,0x600,0x600,0xc8f,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0xc91,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xc98,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0xc9f,0x600,0x600,0x600,0xca6,0xcae,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0xcb3,0xcb8,0x600,0x600,0xcc0,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xcc4,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xcc9,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xcc7,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xcd1,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0xcd7,0xcdf,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xce5, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0xcec,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0xcf1,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0xcf6,0x600,0x600,0x600,0xc32,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0xcd3,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0xcfc,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0xd04,0xd0b,0xd0f,0x600,0x600,0x600,0xccb,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0xd1e,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0xd16,0x934,0xd26,0x9ad,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0xd2b,0xd33,0x4e5,0xd43,0xd3b,0x600,0x600,0xd4b,0xd53,0xd63,0x4e5,0xd68,0xd70,0xd76,0xd7d,0xd5b, -0xd85,0xd8d,0x600,0xd95,0xda5,0xda8,0xd9d,0xdb0,0x655,0xdb8,0xdbf,0x8f6,0x6a3,0xdcf,0xdc7,0xdd7, -0x600,0xddf,0xde7,0xdef,0x600,0xdf7,0xdff,0xe07,0xe0f,0xe17,0xe1b,0xe23,0x535,0x535,0x600,0xe2b, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xe33,0xe3f,0xe37, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47, -0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0x600,0x600,0x600,0xe57,0x600,0xccc,0xe5e,0xe63, -0x600,0x600,0x600,0xe6b,0x600,0x600,0x901,0x4b5,0xe81,0xe71,0xe79,0x600,0x600,0xe89,0xe91,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xe96,0x938,0x600,0xe9e,0x600,0xea4,0xea8, -0xeb0,0xeb8,0xebf,0xec7,0x600,0x600,0x600,0xecd,0xee5,0x4a5,0xeed,0xef5,0xefa,0x916,0xed5,0xedd, -0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47, -0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47,0xe47, -0x12d4,0x12d4,0x1314,0x1354,0x1394,0x13cc,0x140c,0x144c,0x1484,0x14c4,0x14f0,0x1530,0x1570,0x1580,0x15c0,0x15f4, -0x1634,0x1664,0x16a4,0x16e4,0x16f4,0x1728,0x1760,0x17a0,0x17e0,0x1820,0x1854,0x1880,0x18c0,0x18f8,0x1914,0x1954, -0xa80,0xac0,0xb00,0xb40,0xb80,0xbab,0xbeb,0xa40,0xc0e,0xa40,0xa40,0xa40,0xa40,0xc4e,0x1db,0x1db, -0xc8e,0xcce,0xa40,0xa40,0xa40,0xcf7,0xd37,0xd57,0xa40,0xd7d,0xdbd,0xdfd,0xe3d,0xe7d,0xebd,0xefd, -0xf3d,0xf74,0x1db,0x1db,0xf98,0xfcc,0x1db,0xff4,0x1db,0x1db,0x1db,0x1db,0x1021,0x1db,0x1db,0x1db, -0x1db,0x1db,0x1db,0x1db,0x1035,0x1db,0x106d,0x10ad,0x1db,0x10b8,0x1db,0x1db,0x1db,0x10ee,0xa40,0x112e, -0x1db,0x1db,0x116e,0x1db,0x1191,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, +static const uint16_t propsTrie_index[23796]={ +0x4a3,0x4ab,0x4b3,0x4bb,0x4d3,0x4db,0x4e3,0x4eb,0x4f3,0x4fb,0x501,0x509,0x511,0x519,0x521,0x529, +0x52f,0x537,0x53f,0x547,0x54a,0x552,0x55a,0x562,0x56a,0x572,0x56e,0x576,0x57e,0x586,0x58b,0x593, +0x59b,0x5a3,0x5a7,0x5af,0x5b7,0x5bf,0x5c7,0x5cf,0x5cb,0x5d3,0x5d8,0x5e0,0x5e6,0x5ee,0x5f6,0x5fe, +0x606,0x60e,0x616,0x61e,0x623,0x62b,0x62e,0x636,0x63e,0x646,0x64c,0x654,0x653,0x65b,0x663,0x66b, +0x67b,0x673,0x683,0x68b,0x691,0x60e,0x6a1,0x699,0x6b1,0x6b3,0x6bb,0x6a9,0x6cb,0x6d1,0x6d9,0x6c3, +0x6e9,0x6ef,0x6f7,0x6e1,0x707,0x70d,0x715,0x6ff,0x725,0x72b,0x733,0x71d,0x743,0x74b,0x753,0x73b, +0x763,0x769,0x771,0x75b,0x781,0x787,0x78f,0x779,0x79f,0x7a4,0x7ac,0x797,0x7bc,0x7c3,0x7cb,0x7b4, +0x64f,0x7d3,0x7db,0x4c3,0x7e3,0x7ea,0x7f2,0x4c3,0x7fa,0x802,0x80a,0x80f,0x817,0x81e,0x826,0x4c3, +0x60e,0x82e,0x836,0x83e,0x846,0x59b,0x856,0x84e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x85e,0x60e,0x866,0x86a,0x872,0x60e,0x878,0x60e,0x87e,0x886,0x88e,0x59b,0x59b,0x896, +0x89e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x8a3,0x8ab,0x60e,0x60e,0x8b3,0x8bb,0x8c3,0x8cb,0x8d3,0x60e,0x8db,0x8e3,0x8eb, +0x8fb,0x60e,0x903,0x905,0x90d,0x8f3,0x60e,0x910,0x924,0x918,0x920,0x92c,0x60e,0x934,0x93a,0x942, +0x94a,0x60e,0x95a,0x962,0x96a,0x952,0x97a,0x4c3,0x982,0x985,0x98d,0x972,0x99d,0x995,0x60e,0x9a4, +0x60e,0x9b3,0x9ac,0x9bb,0x9c3,0x9c7,0x9cf,0x9d7,0x543,0x9df,0x9e2,0x9e8,0x9ef,0x9e2,0x56a,0x56a, +0x4f3,0x4f3,0x4f3,0x4f3,0x9f7,0x4f3,0x4f3,0x4f3,0xa07,0xa0f,0xa17,0xa1f,0xa27,0xa2b,0xa33,0x9ff, +0xa4b,0xa53,0xa3b,0xa43,0xa5b,0xa63,0xa6b,0xa73,0xa8b,0xa7b,0xa83,0xa93,0xa9b,0xaaa,0xaaf,0xaa2, +0xab7,0xab7,0xab7,0xab7,0xab7,0xab7,0xab7,0xab7,0xabf,0xac7,0x942,0xaca,0xad2,0xad9,0xade,0xae6, +0x942,0xaec,0xaf4,0xb04,0xb07,0x942,0x942,0xafc,0x942,0x942,0x942,0x942,0x942,0xb16,0xb1e,0xb0e, +0x942,0x942,0x942,0xb23,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0xb29,0xb31,0x942,0xb39,0xb40, +0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0xab7,0xab7,0xab7,0xab7,0xb48,0xab7,0xb4f,0xb56, +0xab7,0xab7,0xab7,0xab7,0xab7,0xab7,0xab7,0xab7,0x942,0xb5e,0xb65,0xb69,0xb6f,0x942,0x942,0x942, +0x59b,0x5a3,0x543,0xb77,0x4f3,0x4f3,0x4f3,0xb7f,0x543,0xb87,0x60e,0xb8d,0xb9d,0xb95,0xb95,0x56a, +0xba5,0xbad,0xbb5,0x4c3,0xbbd,0x942,0x942,0xbc4,0x942,0x942,0x942,0x942,0x942,0x942,0xae9,0xbc9, +0xbd9,0xbd1,0x64f,0x60e,0xbe1,0x89e,0x60e,0xbe9,0xbf1,0xbf5,0x60e,0x60e,0xbfa,0x60e,0x942,0xc01, +0xc09,0xc11,0xc17,0x942,0xc11,0xc1f,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942, +0xc27,0x60e,0x60e,0x60e,0xc2f,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0xc35,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xc3a,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x942,0x942, +0xc42,0xc49,0xc4b,0x60e,0xc53,0xc59,0xc61,0xc69,0xc6e,0x60e,0x60e,0xc72,0x60e,0x60e,0x60e,0xc78, +0xc7f,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xc86,0x60e,0xc8d,0xc93,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xc9b,0x60e,0x60e,0x60e,0xca3,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xca5,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xcac,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0xcb3,0x60e,0x60e,0x60e,0xcba,0xcc2,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xcc7,0xccc,0x60e,0x60e,0xcd4,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xcd8,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xcdd,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xcdb,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xce5,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0xceb,0xcf3,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xcf9, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0xd00,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0xd05,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0xd0a,0x60e,0x60e,0x60e,0xc46,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0xce7,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0xd10,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0xd18,0xd1f,0xd23,0x60e,0x60e,0x60e,0xcdf,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0xd32,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0xd2a,0x942,0xd3a,0x9bb,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0xd3f,0xd47,0x4f3,0xd57,0xd4f,0x60e,0x60e,0xd5f,0xd67,0xd77,0x4f3,0xd7c,0xd84,0xd8a,0xd91,0xd6f, +0xd99,0xda1,0x60e,0xda9,0xdb9,0xdbc,0xdb1,0xdc4,0x663,0xdcc,0xdd3,0x904,0x6b1,0xde3,0xddb,0xdeb, +0x60e,0xdf3,0xdfb,0xe03,0x60e,0xe0b,0xe13,0xe1b,0xe23,0xe2b,0xe2f,0xe37,0x543,0x543,0x60e,0xe3f, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xe47,0xe53,0xe4b, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b, +0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0x60e,0x60e,0x60e,0xe6b,0x60e,0xce0,0xe72,0xe77, +0x60e,0x60e,0x60e,0xe7f,0x60e,0x60e,0x90f,0x4c3,0xe95,0xe85,0xe8d,0x60e,0x60e,0xe9d,0xea5,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xeaa,0x946,0x60e,0xeb2,0x60e,0xeb8,0xebc, +0xec4,0xecc,0xed3,0xedb,0x60e,0x60e,0x60e,0xee1,0xef9,0x4b3,0xf01,0xf09,0xf0e,0x924,0xee9,0xef1, +0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b, +0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b, +0x130c,0x130c,0x134c,0x138c,0x13cc,0x1404,0x1444,0x1484,0x14bc,0x14fc,0x1528,0x1568,0x15a8,0x15b8,0x15f8,0x162c, +0x166c,0x169c,0x16dc,0x171c,0x172c,0x1760,0x1798,0x17d8,0x1818,0x1858,0x188c,0x18b8,0x18f8,0x1930,0x194c,0x198c, +0xa80,0xac0,0xb00,0xb40,0xb80,0xbab,0xbeb,0x1db,0xc0e,0xa40,0xa40,0xa40,0xc46,0xc86,0x1db,0x1db, +0xcc6,0xd06,0xa40,0xa40,0xa40,0xd2f,0xd6f,0xd8f,0xa40,0xdb5,0xdf5,0xe35,0xe75,0xeb5,0xef5,0xf35, +0xf75,0xfac,0x1db,0x1db,0xfd0,0x1004,0x1db,0x102c,0x1db,0x1db,0x1db,0x1db,0x1059,0x1db,0x1db,0x1db, +0x1db,0x1db,0x1db,0x1db,0x106d,0x1db,0x10a5,0x10e5,0x1db,0x10f0,0x1db,0x1db,0x1db,0x1126,0xa40,0x1166, +0x1db,0x1db,0x11a6,0x1db,0x11c9,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, @@ -170,600 +170,603 @@ static const uint16_t propsTrie_index[23156]={ 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0x11d1,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, +0x1209,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700, -0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1211, +0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1249, 0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700, -0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1211, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0xf02,0xf09,0xf11,0x4b5,0x600,0x600,0x600,0xf19,0xf29,0xf21,0xf40,0xf31,0xf38,0xf48,0xbbd,0xf50, -0x4b5,0x4b5,0x4b5,0x4b5,0x8f6,0x600,0xf58,0xf60,0x600,0xf68,0xf70,0xf74,0xf7c,0x600,0xf84,0x4b5, -0x58d,0x597,0xf8c,0x600,0xf90,0xf98,0xfa8,0xfa0,0x600,0xfb0,0x600,0xfb7,0xfc7,0xfbf,0x4b5,0x4b5, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xb88,0x902,0xfcf,0xfdf,0xfd7,0x4b5,0x4b5, -0xfef,0xfe7,0xff2,0xffa,0x916,0x1002,0x4b5,0x100a,0x1012,0x101a,0x4b5,0x4b5,0x600,0x102a,0x1032,0x1022, -0x1042,0x1049,0x103a,0x1051,0x1059,0x4b5,0x1069,0x1061,0x600,0x106c,0x1074,0x107c,0x1084,0x108c,0x4b5,0x4b5, -0x600,0x600,0x1094,0x4b5,0x58d,0x109c,0x535,0x10a4,0x600,0x10ac,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x10b4,0x600,0x10bc,0x4b5,0x10c1,0x10c9,0x10d1,0x10d8,0x1006,0x10e0,0x1006,0x10e8,0xb88, -0x10f8,0x636,0x1100,0x10f0,0x98f,0x1108,0x1110,0x1116,0x112e,0x111e,0x1126,0x1132,0x98f,0x1142,0x113a,0x114a, -0x1162,0x1152,0x115a,0x4b5,0x1169,0x1171,0x658,0x1179,0x1189,0x118f,0x1197,0x1181,0x4b5,0x4b5,0x4b5,0x4b5, -0x600,0x119f,0x11a7,0x10c0,0x600,0x11af,0x11b7,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x11bf,0x11c7,0x4b5, -0x600,0x11cf,0x11d7,0x11df,0x600,0x11ef,0x11e7,0x4b5,0x870,0x11f7,0x11ff,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x600,0x1207,0x4b5,0x4b5,0x4b5,0x58d,0x535,0x120f,0x121f,0x1225,0x1217,0x4b5,0x4b5,0x1235,0x1239,0x122d, -0x1251,0x1241,0x1249,0x600,0x125f,0x1259,0x600,0x8f7,0x126f,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x127d,0x1282,0x1267,0x1277,0x1292,0x128a,0x4b5,0x4b5,0x12a1,0x12a5,0x1299,0x12b5,0x12ad,0x11e7,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x12b9,0x12c9,0x12ce,0x12c1,0x4b5,0x4b5,0x12d6,0x12e6,0x12de, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x901,0x4b5,0x4b5,0x4b5, -0x12f6,0x12fe,0x1306,0x12ee,0x600,0x600,0x600,0x600,0x600,0x600,0x130e,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x1006,0x600,0x600,0x1316,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x131e,0x1326,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x11ff,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x8f7, -0x916,0xdcb,0x600,0x916,0x132e,0x1333,0x600,0x1343,0x134b,0x1353,0x133b,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x58d,0x535,0x135b,0x4b5,0x4b5,0x4b5,0x600,0x600,0x1363,0x1368,0x136e,0x4b5,0x4b5,0x1376,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x137e,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x902,0x4b5,0x1094,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x1384,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x138c,0x1391,0x1398,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xe37,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600,0x600,0x139e,0x13a3,0x13ab,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x55c,0x13bb,0x13c2,0x934,0x934,0x934,0x13b3,0x4b5,0x934,0x934,0x934, -0x934,0x934,0x934,0x934,0xbb7,0x934,0x13c9,0x934,0x13d0,0x13d8,0x13de,0x934,0xade,0x934,0x934,0x13e6, -0x4b5,0x4b5,0x4b5,0x13ee,0x13ee,0x934,0x934,0xadb,0x13f6,0x4b5,0x4b5,0x4b5,0x4b5,0x1406,0x140d,0x1412, -0x1418,0x1420,0x1428,0x1430,0x140a,0x1438,0x1440,0x1448,0x144d,0x141f,0x1406,0x140d,0x1409,0x1418,0x1455,0x1407, -0x1458,0x140a,0x1460,0x1468,0x1470,0x1477,0x1463,0x146b,0x1473,0x147a,0x1466,0x1482,0x13fe,0x934,0x934,0x934, -0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x55c,0x1492,0x55c, -0x1499,0x14a0,0x148a,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x14af,0x14b7,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x14a7,0x14bf,0x9d4, -0x14cf,0x14c7,0x4b5,0x4b5,0x4b5,0x600,0x14df,0x14d7,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x1006,0x14e7,0x600,0x14ef,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x1006,0x14f7,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x14ff,0x600,0x600,0x600, -0x600,0x600,0x600,0x1507,0x4b5,0x58d,0x1517,0x150f,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x151f,0x152f,0x1527,0x4b5,0x4b5,0x153f,0x1537,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x154f,0x1557,0x155f, -0x1567,0x156f,0x1577,0x4b5,0x1547,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x934,0x157f,0x934, -0x934,0xbaf,0x13c7,0x1587,0xbb7,0x158f,0x934,0x934,0x934,0x934,0xbb9,0x4b5,0x1597,0x159f,0x15a3,0x15ab, -0x15b3,0x4b5,0x4b5,0x4b5,0x4b5,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x15bb,0x934,0x934,0x934, -0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934, -0x934,0x934,0x934,0x15a4,0x15c3,0x934,0x934,0x934,0x15cb,0x934,0x934,0x15d2,0x15da,0x157f,0x934,0x15e2, -0x934,0x15ea,0x15ef,0x4b5,0x4b5,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0xbaf, -0x15f7,0x1600,0x1604,0x160c,0x15fc,0x934,0x934,0x934,0x934,0x1614,0x934,0xade,0x11e3,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x161c,0x600,0x600, -0x1623,0x600,0x600,0x600,0x162b,0x600,0x1633,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xca3,0x600,0x600, -0x163b,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1643,0x164b,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0xc32,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1652,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1659,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x1660,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x4b5,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x901,0x600,0x600,0x600,0x600,0x600,0x600,0xf90,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1668,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1670,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0xf90,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600, -0x600,0x600,0x1674,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xf90,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x67d,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x133b,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x1684,0x167c,0x167c,0x167c,0x4b5,0x4b5,0x4b5,0x4b5,0x55c,0x55c,0x55c,0x55c,0x55c,0x55c,0x55c, -0x168c,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -0x4b5,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f, -0x1694,0x494,0x494,0x494,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1249, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0xf16,0xf1d,0xf25,0x4c3,0x60e,0x60e,0x60e,0xf2d,0xf3d,0xf35,0xf54,0xf45,0xf4c,0xf5c,0xbc9,0xf64, +0x4c3,0x4c3,0x4c3,0x4c3,0x904,0x60e,0xf6c,0xf74,0x60e,0xf7c,0xf84,0xf88,0xf90,0x60e,0xf98,0x4c3, +0x59b,0x5a5,0xfa0,0x60e,0xfa4,0xfac,0xfbc,0xfb4,0x60e,0xfc4,0x60e,0xfcb,0xfdb,0xfd3,0x60e,0xfe3, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xb9d,0x910,0xfe6,0xff6,0xfee,0x4c3,0x4c3, +0x1006,0xffe,0x1009,0x1011,0x924,0x1019,0x4c3,0x1021,0x1029,0x1031,0x4c3,0x4c3,0x60e,0x1041,0x1049,0x1039, +0x1059,0x1060,0x1051,0x1068,0x1070,0x4c3,0x1080,0x1078,0x60e,0x1083,0x108b,0x1093,0x109b,0x10a3,0x4c3,0x4c3, +0x60e,0x60e,0x10ab,0x4c3,0x59b,0x10b3,0x543,0x10bb,0x60e,0x10c3,0x10da,0x10cb,0x10d2,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x10e2,0x60e,0x10ea,0x10f7,0x10ef,0x10ff,0x1107,0x110e,0x101d,0x1116,0x101d,0x111e,0xb9d, +0x112e,0x644,0x1136,0x1126,0x99d,0x113e,0x1146,0x114c,0x1164,0x1154,0x115c,0x1168,0x99d,0x1178,0x1170,0x1180, +0x1198,0x1188,0x1190,0x4c3,0x119f,0x11a7,0x666,0x11af,0x11bf,0x11c5,0x11cd,0x11b7,0x11dd,0x11e1,0x11e9,0x11d5, +0x60e,0x11f1,0x11f9,0x10ee,0x60e,0x1201,0x1209,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x60e,0x1211,0x1219,0x4c3, +0x60e,0x1221,0x1229,0x1231,0x60e,0x1241,0x1239,0x1249,0x1261,0x1251,0x1259,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x60e,0x1269,0x4c3,0x4c3,0x4c3,0x59b,0x543,0x1271,0x1281,0x1287,0x1279,0x4c3,0x4c3,0x1297,0x129b,0x128f, +0x12b3,0x12a3,0x12ab,0x60e,0x12c1,0x12bb,0x60e,0x905,0x12c9,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x60e,0x12d1, +0x12e7,0x12ec,0x12d9,0x12e1,0x12fc,0x12f4,0x4c3,0x4c3,0x130b,0x130f,0x1303,0x1327,0x1317,0x131f,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x132b,0x133b,0x1340,0x1333,0x4c3,0x4c3,0x1348,0x1358,0x1350, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x90f,0x4c3,0x4c3,0x4c3, +0x1368,0x1370,0x1378,0x1360,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x1380,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x101d,0x60e,0x60e,0x1388,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x1390,0x1398,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xf2d,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x1259,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x655,0x13a0, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x905,0x924,0xddf,0x60e,0x924,0x13a4,0x13a9,0x60e,0x13b1, +0x13b9,0x13c1,0xfe4,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x13d1,0x13c9,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x59b,0x543,0x13d9,0x4c3,0x4c3,0x4c3,0x60e,0x60e, +0x13e1,0x13e6,0x13ec,0x4c3,0x4c3,0x13f4,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x13fc,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x910,0x1402,0x10ab,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x140a,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x1412,0x1417,0x141e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xe4b,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x60e, +0x60e,0x60e,0x1424,0x1429,0x1431,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x1439,0x942,0x942,0x942, +0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0xbc4,0x4c3,0x4c3,0x56a,0x1449,0x1450, +0x942,0x942,0x942,0x1441,0x4c3,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0xae9,0x942,0x1457,0x942, +0x145e,0x1466,0x146c,0x942,0xaf4,0x942,0x942,0x1474,0x4c3,0x4c3,0x4c3,0x147c,0x147c,0x942,0x942,0x1484, +0x148c,0x4c3,0x4c3,0x4c3,0x4c3,0x149c,0x14a3,0x14a8,0x14ae,0x14b6,0x14be,0x14c6,0x14a0,0x14ce,0x14d6,0x14de, +0x14e3,0x14b5,0x149c,0x14a3,0x149f,0x14ae,0x14eb,0x149d,0x14ee,0x14a0,0x14f6,0x14fe,0x1506,0x150d,0x14f9,0x1501, +0x1509,0x1510,0x14fc,0x1518,0x1494,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942, +0x942,0x942,0x942,0x942,0x942,0x56a,0x1528,0x56a,0x152f,0x1536,0x1520,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x1545,0x154d,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x153d,0x1555,0x9e2,0x1565,0x155d,0x4c3,0x4c3,0x4c3,0x60e,0x1575,0x156d, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x101d,0x157d,0x60e,0x1585,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x101d,0x158d,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x101d,0x1595,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x159d,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x15a5,0x4c3,0x59b,0x15b5,0x15ad, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x15bd,0x15cd,0x15c5,0x4c3,0x4c3,0x15dd,0x15d5,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x15ed,0x15f5,0x15fd,0x1605,0x160d,0x1615,0x4c3,0x15e5,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x942,0x161d,0x942,0x942,0xbc4,0x1455,0x1625,0xae9,0x162d,0x942,0x942, +0x942,0x942,0xaeb,0x4c3,0x1635,0x163d,0x1641,0x1649,0x1651,0x4c3,0x4c3,0x4c3,0x4c3,0x942,0x942,0x942, +0x942,0x942,0x942,0x942,0x1659,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942, +0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x1642,0x1661,0x942,0x942,0x942, +0x1669,0x942,0x942,0xae8,0x1670,0x161d,0x942,0x1678,0x942,0x1680,0x1685,0x168d,0x4c3,0x942,0x942,0x942, +0x942,0x942,0x942,0x942,0x942,0x942,0x942,0xbc4,0x1695,0x169d,0x942,0x16a4,0x16ac,0x942,0x942,0x942, +0x942,0x16b4,0x942,0x942,0x1439,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x16bc,0x60e,0x60e,0x16c3,0x60e,0x60e,0x60e,0x16cb,0x60e,0x16d3,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0xcb7,0x60e,0x60e,0x16db,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x16e3,0x16eb,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xc46,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x16f2,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x16f9,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x1700,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x4c3,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x90f,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0xfa4,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x1708,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x1710,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xfa4,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x60e,0x60e,0x60e,0x60e,0x1714,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xfa4,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x68b,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0x60e, +0x60e,0x60e,0x60e,0x60e,0x60e,0x60e,0xfe4,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x1724,0x171c,0x171c,0x171c,0x4c3,0x4c3,0x4c3, +0x4c3,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x172c,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3, +0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0x4c3,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63, +0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0xe63,0x1734,0x4a2,0x4a2,0x4a2,0xf,0xf,0xf,0xf, 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, -0xf,0xf,0xf,0xf,0xc,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18, -0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, -0x18,0x18,0x18,0x17,0x17,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,0x14, -0x17,0x15,0x1a,0x16,0x1a,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x14, -0x18,0x15,0x18,0xf,0,0,0,0,0,0,0,0,0,0,0,0, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xc,0x17,0x17,0x17, +0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x18,0x18,0x18,0x17,0x17,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,0x14,0x17,0x15,0x1a,0x16,0x1a,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,0x14,0x18,0x15,0x18,0xf,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0,0,0,0,0,0,0,0,0,0,0,0,0xf,0xf,0xf,0xf, 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, -0xf,0xf,0xf,0xf,0xc,0x17,0x19,0x19,0x19,0x19,0x1b,0x17,0x1a,0x1b,5,0x1c, -0x18,0x10,0x1b,0x1a,0x1b,0x18,0x34b,0x38b,0x1a,2,0x17,0x17,0x1a,0x30b,5,0x1d, -0x34cb,0x344b,0x3ccb,0x17,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0x18,1,1,1,1, -1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,0x18,2,2,2,2, -2,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xc,0x17,0x19,0x19, +0x19,0x19,0x1b,0x17,0x1a,0x1b,5,0x1c,0x18,0x10,0x1b,0x1a,0x1b,0x18,0x34b,0x38b, +0x1a,2,0x17,0x17,0x1a,0x30b,5,0x1d,0x34cb,0x344b,0x3ccb,0x17,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0x18,1,1,1,1,1,1,1,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,0x18,2,2,2,2,2,2,2,2,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1, -2,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,2,1,2,1,2,1,2,1,2,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,1,2,1,2,1,2,2,2,1,1,2, -1,2,1,1,2,1,1,1,2,2,1,1,1,1,2,1, -1,2,1,1,1,2,2,2,1,1,2,1,1,2,1,2, -1,2,1,1,2,1,2,2,1,2,1,1,2,1,1,1, -2,1,2,1,1,2,2,5,1,2,2,2,5,5,5,5, -1,3,2,1,3,2,1,3,2,1,2,1,2,1,2,1, -2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,1,2,1,2,2,1,3,2, -1,2,1,1,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,1,2,1, +2,1,2,2,2,1,1,2,1,2,1,1,2,1,1,1, +2,2,1,1,1,1,2,1,1,2,1,1,1,2,2,2, +1,1,2,1,1,2,1,2,1,2,1,1,2,1,2,2, +1,2,1,1,2,1,1,1,2,1,2,1,1,2,2,5, +1,2,2,2,5,5,5,5,1,3,2,1,3,2,1,3, +2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, +2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,2,1,3,2,1,2,1,1,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1, -2,1,1,2,2,1,2,1,1,1,1,2,1,2,1,2, -1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +2,2,2,2,2,2,1,1,2,1,1,2,2,1,2,1, +1,1,1,2,1,2,1,2,1,2,1,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,4,4,4,4,4, -4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, -4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,0x1a,4,0x1a, -0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, +2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,4,4, +4,4,4,4,4,4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,0x1a,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,4,0x1a,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -1,2,1,2,4,0x1a,1,2,0,0,4,2,2,2,0x17,1, -0,0,0,0,0x1a,0x1a,1,0x17,1,1,1,0,1,0,1,1, -2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0,1,1,1,1,1,1,1,1,1,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,1,2,2,1,1,1,2,2,2,1,2,1,2, -1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,2,2,2,2,1,2,0x18,1,2,1,1,2, -2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +6,6,6,6,6,6,6,6,1,2,1,2,4,0x1a,1,2, +0,0,4,2,2,2,0x17,1,0,0,0,0,0x1a,0x1a,1,0x17, +1,1,1,0,1,0,1,1,2,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1, +1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,1,2,2,1,1, +1,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,2,2,2,2, +1,2,0x18,1,2,1,1,2,2,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,2,2,2,2,2,2,2,2,2,2,2,2, +1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2, +2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,0x1b,6,6,6,6,6,7,7,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,0x1b,6, +6,6,6,6,7,7,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,1,2,1, +2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,1, -2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,0,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, -0,4,0x17,0x17,0x17,0x17,0x17,0x17,2,2,2,2,2,2,2,2, +1,2,1,2,1,2,1,2,1,2,1,2,0,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0,0,4,0x17,0x17,0x17,0x17,0x17,0x17, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,0x17,0x13,0,0,0x1b,0x1b,0x19, -0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,0x17,0x13,0,0,0x1b,0x1b,0x19,0,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,0x13,6, -0x17,6,6,0x17,6,6,0x17,6,0,0,0,0,0,0,0,0, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,0x13,6,0x17,6,6,0x17,6,6,0x17,6, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5, -5,5,5,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0, -0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x18,0x18,0x17,0x17,0x19,0x17,0x17,0x1b,0x1b, -6,6,6,6,6,6,6,6,6,6,6,0x17,0x10,0x17,0x17,0x17, +5,5,5,0,0,0,0,5,5,5,5,0x17,0x17,0,0,0, +0,0,0,0,0,0,0,0,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x18, +0x18,0x17,0x17,0x19,0x17,0x17,0x1b,0x1b,6,6,6,6,6,6,6,6, +6,6,6,0x17,0x10,0x17,0x17,0x17,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5, +5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0x17,0x17,0x17,0x17,5,5,6,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -4,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,5, -6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x17,5,6,6, +6,6,6,6,6,0x10,0x1b,6,6,6,6,6,6,4,4,6, +6,0x1b,6,6,6,6,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,5,5,5,0x1b,0x1b,5,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0,0x10,5,6,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x17,5,6,6,6,6,6,6,6,0x10,0x1b,6, -6,6,6,6,6,4,4,6,6,0x1b,6,6,6,6,5,5, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,0x1b,0x1b,5, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0x10, -5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,0,0,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,0,0,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6, -6,6,6,6,6,5,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5, +5,5,6,6,6,6,6,6,6,6,6,6,6,5,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, -6,6,6,6,6,6,6,6,4,4,0x1b,0x17,0x17,0x17,4,0, -0,6,0x19,0x19,6,6,6,6,4,6,6,6,4,6,6,6, -6,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,6,6,6,6,4,6, -6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6, -0,0,0x17,0,5,5,5,5,5,5,5,5,5,5,5,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x1a,5,5,5,5,5,5,0,0x10,0x10,0,0, -0,0,0,0,6,6,6,6,6,6,6,6,6,6,0x10,6, +5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6, +4,4,0x1b,0x17,0x17,0x17,4,0,0,6,0x19,0x19,6,6,6,6, +4,6,6,6,4,6,6,6,6,6,0,0,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,6,6,6,6,4,6,6,6,6,6,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,6,6,6,0,0,0x17,0,5,5,5,5, +5,5,5,5,5,5,5,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x1a,5,5,5, +5,5,5,0,0x10,0x10,0,0,0,0,0,6,6,6,6,6, +6,6,6,6,6,6,0x10,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5, -5,5,5,5,5,4,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,5,5,6,6, -0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,4,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,8, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8, -6,5,8,8,8,6,6,6,6,6,6,6,6,8,8,8, -8,6,8,8,5,6,6,6,6,6,6,6,5,5,5,5, -5,5,5,5,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,5,5,0x19,0x19,0x37cb,0x35cb,0x3fcb,0x34cb,0x3ccb,0x94b,0x1b,0x19, -5,0x17,6,0,5,6,8,8,0,5,5,5,5,5,5,5, -5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,0, -0,0,5,5,5,5,0,0,6,5,8,8,8,6,6,6, -6,0,0,8,8,0,0,8,8,6,5,0,0,0,0,0, -0,0,0,8,0,0,0,0,5,5,0,5,0,0,0,0, -0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,6,6,5,5, -5,6,0x17,0,0,0,0,0,0,0,0,0,0,6,6,8, -0,5,5,5,5,5,5,0,0,0,0,5,5,0,0,5, +6,6,6,6,5,5,5,5,5,5,5,5,5,4,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,5,5,6,6,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189, +0x1c9,0x209,0x249,0x289,0x17,4,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,6,6,6,8,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,6,8,6,5,8,8,8,6,6,6, +6,6,6,6,6,8,8,8,8,6,8,8,5,6,6,6, +6,6,6,6,5,5,5,5,5,5,5,5,5,5,6,6, +0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,0x19,0x19, +0x37cb,0x35cb,0x3fcb,0x34cb,0x3ccb,0x94b,0x1b,0x19,5,0x17,6,0,5,6,8,8, +0,5,5,5,5,5,5,5,5,0,0,5,5,0,0,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -5,5,5,5,5,0,5,5,0,5,5,0,5,5,0,0, -6,0,8,8,8,6,6,0,0,0,0,6,6,0,0,6, -6,6,0,0,0,6,0,0,0,0,0,0,0,5,5,5, -5,0,5,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0x17,0x19,0,0,0,0,0,0,0,5,6,6, -6,6,6,6,0,6,6,8,0,5,5,5,5,5,5,5, -5,5,0,5,5,5,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,5,0,0,0,5,5,5,5,0,0, +6,5,8,8,8,6,6,6,6,0,0,8,8,0,0,8, +8,6,5,0,0,0,0,0,0,0,0,8,0,0,0,0, +5,5,0,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, +0x1c9,0x209,0x249,0x289,6,6,5,5,5,6,0x17,0,0,0,0,0, +0,0,0,0,0,6,6,8,0,5,5,5,5,5,5,0, +0,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5, -0,5,5,5,5,5,0,0,6,5,8,8,8,6,6,6, -6,6,0,6,6,8,0,8,8,6,0,0,5,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6, -0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x1b,5,0x34cb,0x344b, -0x3ccb,0x37cb,0x35cb,0x3fcb,0,0,0,0,0,0,0,0,0,6,8,8, -0,5,5,5,5,5,5,5,5,0,0,5,5,0,0,5, +0,5,5,0,5,5,0,0,6,0,8,8,8,6,6,0, +0,0,0,6,6,0,0,6,6,6,0,0,0,6,0,0, +0,0,0,0,0,5,5,5,5,0,5,0,5,5,6,6, +0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x19,0,0, +0,0,0,0,0,5,6,6,6,6,6,6,0,6,6,8, +0,5,5,5,5,5,5,5,5,5,0,5,5,5,0,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, 5,5,5,5,5,0,5,5,0,5,5,5,5,5,0,0, -6,5,8,6,8,6,6,6,6,0,0,8,8,0,0,8, -8,6,0,0,0,0,0,0,0,6,6,8,0,0,0,0, -5,5,0,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x1b,0, -0,0,0,0,0,0,6,5,0,5,5,5,5,5,5,0, -0,0,5,5,5,0,5,5,5,5,0,0,0,5,5,0, -5,0,5,5,0,0,0,5,5,0,0,0,5,5,5,0, -0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -0,0,8,8,6,8,8,0,0,0,8,8,8,0,8,8, -8,6,0,0,5,0,0,0,0,0,0,8,0,0,0,0, +6,5,8,8,8,6,6,6,6,6,0,6,6,8,0,8, +8,6,0,0,5,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0,0x17,0x54b,0x58b,0x5cb,0x60b, -0x58b,0x5cb,0x60b,0x1b,6,8,8,8,6,5,5,5,5,5,5,5, -5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,6,5,6,6,6,8,8,8, -8,0,6,6,6,0,6,6,6,6,0,0,0,0,0,0, -0,6,6,0,5,5,5,0,0,5,0,0,5,5,6,6, -0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,5,5,8, -0,0,0,0,0,0,0,0,0,0,0,0,5,6,8,8, -0x17,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5, +0x1c9,0x209,0x249,0x289,0x1b,5,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0,0,0,0, +0,0,0,0,0,6,8,8,0,5,5,5,5,5,5,5, +5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5, +0,5,5,5,5,5,0,0,6,5,8,6,8,6,6,6, +6,0,0,8,8,0,0,8,8,6,0,0,0,0,0,0, +0,6,6,8,0,0,0,0,5,5,0,5,0,0,0,0, +0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x1b,0,0,0,0,0,0,0,6,5, +0,5,5,5,5,5,5,0,0,0,5,5,5,0,5,5, +5,5,0,0,0,5,5,0,5,0,5,5,0,0,0,5, +5,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5, +5,5,5,5,5,5,0,0,0,0,8,8,6,8,8,0, +0,0,8,8,8,0,8,8,8,6,0,0,5,0,0,0, +0,0,0,8,0,0,0,0,0,0,0,0,5,5,6,6, +0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0, +0,0,0,0x17,0x54b,0x58b,0x5cb,0x60b,0x58b,0x5cb,0x60b,0x1b,6,8,8,8, +6,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -5,5,5,5,5,5,5,5,0,5,5,5,5,5,0,0, -6,5,8,6,8,8,8,8,8,0,6,8,8,0,8,8, -6,6,0,0,0,0,0,0,0,8,8,0,0,0,0,0, -0,5,5,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,5,5, -5,5,5,5,6,6,8,8,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, +6,5,6,6,6,8,8,8,8,0,6,6,6,0,6,6, +6,6,0,0,0,0,0,0,0,6,6,0,5,5,5,0, +0,5,0,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, +0x1c9,0x209,0x249,0x289,0,5,5,8,0,0,0,0,0,0,0,0, +0,0,0,0,5,6,8,8,0x17,5,5,5,5,5,5,5, 5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5, +0,5,5,5,5,5,0,0,6,5,8,6,8,8,8,8, +8,0,6,8,8,0,8,8,6,6,0,0,0,0,0,0, +0,8,8,0,0,0,0,0,0,5,5,0,5,5,6,6, +0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x34cb, +0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,5,5,5,5,5,5,6,6,8,8, +5,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,6,6,5,8,8,8,6,6,6,6,0,8,8, -8,0,8,8,8,6,5,0x1b,0,0,0,0,5,5,5,8, -0xcc0b,0xca0b,0xcb4b,0xc90b,0x364b,0xc94b,0x350b,5,0,0,0,0,0,0,0x49,0x89, -0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,8,8,0x17,0,0,0, -0,0,0,0,0,0,0,0,0,6,8,8,0,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -0,5,0,0,5,5,5,5,5,5,5,0,0,0,6,0, -0,0,0,8,8,8,6,6,6,0,6,0,8,8,8,8, -8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,6,5,5,6,6,6,6,6,6,6,0, -0,0,0,0x19,5,5,5,5,5,5,4,6,6,6,6,6, -6,6,6,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, -0,0,0,0,0,5,5,0,5,0,5,5,5,5,5,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,5,0,5,5,5,5,5,5,5,5,5, -5,6,5,5,6,6,6,6,6,6,6,6,6,5,0,0, -5,5,5,5,5,0,4,0,6,6,6,6,6,6,6,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,5,5,5,5, -5,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x1b,0x17,0x1b,0x1b,0x1b,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b, -0x644b,0x6c4b,0x744b,0x2c4b,0x1b,6,0x1b,6,0x1b,6,0x14,0x15,0x14,0x15,8,8, -5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,8,6,6,6,6,6,0x17,6,6,5,5,5,5, -5,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6, +5,5,5,5,5,5,5,5,5,5,5,6,6,5,8,8, +8,6,6,6,6,0,8,8,8,0,8,8,8,6,5,0x1b, +0,0,0,0,5,5,5,8,0xcc0b,0xca0b,0xcb4b,0xc90b,0x364b,0xc94b,0x350b,5, +0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +0,0,8,8,0x17,0,0,0,0,0,0,0,0,0,0,0, +0,6,8,8,0,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5, +5,5,5,5,5,5,5,5,0,5,0,0,5,5,5,5, +5,5,5,0,0,0,6,0,0,0,0,8,8,8,6,6, +6,0,6,0,8,8,8,8,8,8,8,8,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5, +6,6,6,6,6,6,6,0,0,0,0,0x19,5,5,5,5, +5,5,4,6,6,6,6,6,6,6,6,0x17,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0,0,0,0,0,5,5,0, +5,0,5,5,5,5,5,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0,5,0,5, +5,5,5,5,5,5,5,5,5,6,5,5,6,6,6,6, +6,6,6,6,6,5,0,0,5,5,5,5,5,0,4,0, +6,6,6,6,6,6,6,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,5,5,5,5,5,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1b,0x17,0x1b,0x1b,0x1b, +6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b,0x644b,0x6c4b,0x744b,0x2c4b,0x1b,6,0x1b,6, +0x1b,6,0x14,0x15,0x14,0x15,8,8,5,5,5,5,5,5,5,5, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,0,0,0,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,8,6,6,6,6, +6,0x17,6,6,5,5,5,5,5,6,6,6,6,6,6,6, +6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,0,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b, -0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0,0,0,0,0, -5,5,5,5,5,5,5,5,5,5,5,8,8,6,6,6, -6,8,6,6,6,6,6,6,8,6,6,8,8,6,6,5, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17, -5,5,5,5,5,5,8,8,6,6,5,5,5,5,6,6, -6,5,8,8,8,5,5,8,8,8,8,8,8,8,5,5, -5,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5, -5,5,6,8,8,6,6,8,8,8,8,8,8,6,5,8, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,8,8,8,6,0x1b,0x1b, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,0x17,4,2,2,2, -1,1,1,1,1,1,0,1,0,0,0,0,0,1,0,0, +6,6,6,6,6,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b, +0x1b,0x17,0x17,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,8,8,6,6,6,6,8,6,6,6,6,6,6, +8,6,6,8,8,6,6,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,5,5,8,8, +6,6,5,5,5,5,6,6,6,5,8,8,8,5,5,8, +8,8,8,8,8,8,5,5,5,6,6,6,6,5,5,5, +5,5,5,5,5,5,5,5,5,5,6,8,8,6,6,8, +8,8,8,8,8,6,5,8,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,8,8,8,6,0x1b,0x1b,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,0x17,4,2,2,2,1,1,1,1,1,1,0,1, +0,0,0,0,0,1,0,0,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,5,5,5,5,5,5,5,5, +5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,0, +5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,5, +5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, 5,5,5,5,5,5,5,0,5,0,5,5,5,5,0,0, -5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,0, 5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,6, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b, -0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0, +5,5,5,0,0,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b, +0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0,0,0,0,0,0,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, +2,2,2,2,2,2,0,0,0x13,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,0,0,2,2,2,2,2,2,0,0, -0x13,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x1b,0x17,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0xc,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x14, -0x15,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0x17, -0x17,0x17,0x98a,0x9ca,0xa0a,5,5,5,5,5,5,5,5,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,6,6,6,8,0,0,0,0,0,0, -0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,6,6,8,0x17,0x17,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,6,6,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,5,5,5,0,6,6,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,6,6,8,6,6,6,6,6, -6,6,8,8,8,8,8,8,8,8,6,8,8,6,6,6, -6,6,6,6,6,6,6,6,0x17,0x17,0x17,4,0x17,0x17,0x17,0x19, -5,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,0,0,0,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,6,5,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x17,0x17,6, -6,6,0x10,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,0,0,0,5,5,5,4,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0x1b,0x17,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0xc,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0x14,0x15,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,0x17,0x17,0x17,0x98a,0x9ca,0xa0a,5,5,5, 5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5, -5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6, +6,8,0,0,0,0,0,0,0,0,0,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6, +8,0x17,0x17,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,5,5,5,0,6,6, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +6,6,8,6,6,6,6,6,6,6,8,8,8,8,8,8, +8,8,6,8,8,6,6,6,6,6,6,6,6,6,6,6, +0x17,0x17,0x17,4,0x17,0x17,0x17,0x19,5,6,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x54b,0x58b,0x5cb,0x60b, +0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,6,5,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x17, +0x17,0x17,0x13,0x17,0x17,0x17,0x17,6,6,6,0x10,6,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,4, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, +0,0,0,0,5,5,5,5,5,6,6,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0, +6,6,6,8,8,8,8,6,6,8,8,8,0,0,0,0, +8,8,6,8,8,8,8,8,8,6,6,6,0,0,0,0, +0x1b,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -0,0,0,0,0,0,0,0,6,6,6,8,8,8,8,6, -6,8,8,8,0,0,0,0,8,8,6,8,8,8,8,8, -8,6,6,6,0,0,0,0,0x1b,0,0,0,0x17,0x17,0x49,0x89, -0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,5,5,5,5,5,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x30b,0,0,0,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +5,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0x30b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, +6,8,8,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,4, +0x17,0x17,0x17,0x17,0x17,0x17,0,0,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,7,6,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,8,6,8, +6,6,6,6,6,6,6,0,6,8,6,8,8,6,6,6, +6,6,6,6,6,8,8,8,8,8,8,6,6,6,6,6, +6,6,6,6,6,0,0,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,0,0,0,0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,6,6,6,6,8,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,6,6,8,8,6,0,0,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0,0, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6, +5,5,5,5,5,5,5,5,6,8,6,6,6,6,6,8, +6,8,8,8,8,8,6,8,8,5,5,5,5,5,5,5, +5,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, +0x17,0x17,0x17,0x17,5,8,6,6,6,6,8,8,6,6,8,6, +6,6,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5, +5,5,5,5,6,6,8,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,8,6,8,6,6,6,6,6,6,6,0, -6,8,6,8,8,6,6,6,6,6,6,6,6,8,8,8, -8,8,8,6,6,6,6,6,6,6,6,6,6,0,0,6, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6, -6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -6,6,6,6,8,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -6,8,6,6,6,6,6,8,6,8,8,8,8,8,6,8, -8,5,5,5,5,5,5,5,5,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,8,6,6, -6,6,8,8,6,6,8,6,6,6,5,5,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,6,6,8,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8, -6,6,8,8,8,6,8,6,6,6,8,8,0,0,0,0, -0,0,0,0,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,5,5,5,5,5,5,8,8,8,8,8,8,8,8, -6,6,6,6,6,6,6,6,8,8,6,6,0,0,0,0x17, -0x17,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4, -4,4,0x17,0x17,2,2,2,2,2,2,2,2,2,0,0,0, -0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, -0,1,1,1,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0, -0,0,0,0,6,6,6,0x17,6,6,6,6,6,6,6,6, -6,6,6,6,6,8,6,6,6,6,6,6,6,5,5,5, -5,6,5,5,5,5,5,5,6,5,5,8,6,6,5,0, -0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +5,5,5,5,5,5,6,8,6,6,8,8,8,6,8,6, +6,6,8,8,0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,5,5,5, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5, +8,8,8,8,8,8,8,8,6,6,6,6,6,6,6,6, +8,8,6,6,0,0,0,0x17,0x17,0x17,0x17,0x17,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,4,4,4,4,4,4,0x17,0x17,2,2,2,2, +2,2,2,2,2,1,2,0,0,0,0,0,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0,0,1,1,1,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,6,6,6,0x17, +6,6,6,6,6,6,6,6,6,6,6,6,6,8,6,6, +6,6,6,6,6,5,5,5,5,6,5,5,5,5,5,5, +6,5,5,8,6,6,5,0,0,0,0,0,2,2,2,2, +2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2, -4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4, -4,4,4,4,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2, -2,2,1,2,2,2,2,2,2,2,2,2,1,1,1,1, -1,0x1a,0x1a,0x1a,0,0,2,2,2,0,2,2,1,1,1,1, -3,0x1a,0x1a,0,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, -1,1,0,0,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, -1,1,0,0,2,2,2,2,2,2,2,2,0,1,0,1, -0,1,0,1,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,0,0,2,2,2,2,2,2,2,2,3,3,3,3, -3,3,3,3,2,2,2,2,2,2,2,2,3,3,3,3, -3,3,3,3,2,2,2,2,2,0,2,2,1,1,1,1, -3,0x1a,2,0x1a,0x1a,0x1a,2,2,2,0,2,2,1,1,1,1, -3,0x1a,0x1a,0x1a,2,2,2,2,0,0,2,2,1,1,1,1, -0,0x1a,0x1a,0x1a,0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0xc,0x10,0x10,0x10,0x10,0x10,0,0x10,0x10,0x10,0x10,0x10,0x10, -0x10,0x10,0x10,0x10,0x2cb,4,0,0,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18, -0x18,0x14,0x15,4,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10, -0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c, -0x1c,0x1d,0x14,0x1c,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10, -0x10,0x10,0x10,0xc,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17, -0x17,0x17,0x17,0x16,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18, -0x18,0x14,0x15,0,4,4,4,4,4,4,4,4,4,4,4,4, -4,0,0,0,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, +4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2, +2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,4,4,4,4,4,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2, +2,2,2,2,1,1,1,1,1,0x1a,0x1a,0x1a,0,0,2,2, +2,0,2,2,1,1,1,1,3,0x1a,0x1a,0,2,2,2,2, +2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2, +2,2,0,0,1,1,1,1,1,1,0,0,2,2,2,2, +2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2, +2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2, +2,2,0,0,1,1,1,1,1,1,0,0,2,2,2,2, +2,2,2,2,0,1,0,1,0,1,0,1,2,2,2,2, +2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2, +2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2, +2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2, +2,0,2,2,1,1,1,1,3,0x1a,2,0x1a,0x1a,0x1a,2,2, +2,0,2,2,1,1,1,1,3,0x1a,0x1a,0x1a,2,2,2,2, +0,0,2,2,1,1,1,1,0,0x1a,0x1a,0x1a,0x16,0x17,0x17,0x17, +0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x17, +0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xc,0x10,0x10,0x10,0x10, +0x10,0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x2cb,4,0,0, +0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,4,0xc,0xc,0xc,0xc, +0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10,0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13, +0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c,0x1c,0x1d,0x14,0x1c,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10,0x10,0x10,0x10,0xc,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x16,0x2cb,0x30b,0x34b,0x38b, +0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,0,4,4,4,4, +4,4,4,4,4,4,4,4,4,0,0,0,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, -0x19,0x19,0x19,0x19,0x19,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6, -6,7,7,7,7,6,7,7,7,6,6,6,6,6,6,6, -6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,1,0x1b,1,1, -1,1,0x1b,2,1,1,1,1,2,5,5,5,5,2,0x1b,0x1b, -2,2,1,1,0x18,0x18,0x18,0x18,0x18,1,2,2,2,2,0x1b,0x18, -0x1b,0x1b,2,0x1b,0x358b,0x360b,0x364b,0x348b,0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb, -0x3dcb,0x45cb,0x4dcb,0x58b,0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1, -1,1,2,2,1,1,1,2,0x1b,1,0x1b,0x1b,0x18,1,1,1, -1,1,0x1b,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a, -0x11ca,0x1e4a,0x980a,0x784a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a, -0x11ca,0x1e4a,0x980a,0x784a,0x784a,0x984a,0x788a,1,2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b, -0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, +6,6,6,6,6,6,6,6,6,7,7,7,7,6,7,7, +7,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, +1,0x1b,1,0x1b,1,0x1b,1,1,1,1,0x1b,2,1,1,1,1, +2,5,5,5,5,2,0x1b,0x1b,2,2,1,1,0x18,0x18,0x18,0x18, +0x18,1,2,2,2,2,0x1b,0x18,0x1b,0x1b,2,0x1b,0x358b,0x360b,0x364b,0x348b, +0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb,0x3dcb,0x45cb,0x4dcb,0x58b,0x1b,0x1b,1,0x1b, +0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1,1,1,2,2,1,1,1,2, +0x1b,1,0x1b,0x1b,0x18,1,1,1,1,1,0x1b,0x1b,0x58a,0x5ca,0x60a,0x64a, +0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,0x58a,0x5ca,0x60a,0x64a, +0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,0x784a,0x984a,0x788a,1, +2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b,0,0,0,0,0x18,0x18,0x18,0x18, +0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b, +0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, -0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b, -0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb, -0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b, +0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb, 0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b, -0x98b,0x9cb,0xa0b,0xa4b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b, +0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, -0x14,0x15,0x14,0x15,0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb, -0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b, -0x48b,0x4cb,0x50b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15, +0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b, +0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b, +0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14, -0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14, -0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14, +0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x14,0x15,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b, +0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18, +0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,1,2,1,1, +1,2,2,1,2,1,2,1,2,1,1,1,1,2,1,2, +2,1,2,2,2,2,2,2,4,4,1,1,1,2,1,2, +2,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,1,2,1,2,6,6,6,1,2, +0,0,0,0,0,0x17,0x17,0x17,0x17,0x344b,0x17,0x17,2,2,2,2, +2,2,0,2,0,0,0,0,0,2,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, +0,0,0,4,0x17,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,6,5,5,5,5,5,5,5,0,5,5,5,5, +5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5, +5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0, +0,0,0,0,0x17,0x17,0x1c,0x1d,0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17, +0x1c,0x1d,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17, +0x1c,0x1d,0x17,0x17,0x1c,0x1d,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17, +0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13, +0x17,0x17,0x17,0x17,0x13,0x17,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x1b,0x1b,0x17,0x17,0x17,0x14,0x15,0x14,0x15,0x14,0x15,0x14, +0x15,0x13,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,1,2,1,1,1,2,2,1, -2,1,2,1,2,1,1,1,1,2,1,2,2,1,2,2, -2,2,2,2,4,4,1,1,1,2,1,2,2,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,1,2,1,2,6,6,6,1,2,0,0,0,0, -0,0x17,0x17,0x17,0x17,0x344b,0x17,0x17,2,2,2,2,2,2,0,2, -0,0,0,0,0,2,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,4, -0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, -0x17,0x17,0x1c,0x1d,0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17,0x1c,0x1d,0x17,0x17, -0x1c,0x1d,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x17,0x17,4, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13,0x17,0x17,0x17,0x17, -0x13,0x17,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x1b,0x1b,0x17,0x17,0x17,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x13,0,0, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,6,6, 6,6,8,8,0x13,4,4,4,4,4,0x1b,0x1b,0x7ca,0xa4a,0xcca,4, @@ -777,9 +780,11 @@ static const uint16_t propsTrie_index[23156]={ 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,0,0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, 0,0,0,0x1b,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x1b,0x1b, +5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1b,0xa8b,0xacb,0xb0b, 0xb4b,0xb8b,0xbcb,0xc0b,0xc4b,0xc8b,0xccb,0xd0b,0xd4b,0xd8b,0xdcb,0xe0b,0x1b,0x1b,0x1b,0x1b, @@ -875,9 +880,9 @@ static const uint16_t propsTrie_index[23156]={ 1,2,1,2,1,2,1,2,4,0x1a,0x1a,1,2,1,2,5, 1,2,1,2,2,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,2, -1,2,1,2,1,2,1,2,1,1,1,1,2,1,2,0, -0,0,0,0,1,2,0,2,0,2,1,2,1,2,0,0, -0,0,0,0,5,5,6,5,5,5,6,5,5,5,5,6, +1,2,1,2,1,2,1,2,1,1,1,1,2,1,2,1, +1,2,0,0,1,2,0,2,0,2,1,2,1,2,1,2, +1,0,0,0,5,5,6,5,5,5,6,5,5,5,5,6, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,8,8,6,6,8,0x1b,0x1b,0x1b,0x1b, 6,0,0,0,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,0x1b,0x19,0x1b,0,0, @@ -1024,408 +1029,443 @@ static const uint16_t propsTrie_index[23156]={ 2,2,2,2,2,2,0,2,2,0,0,0,1,1,1,1, 1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0, 1,1,0,2,2,2,2,2,2,2,2,2,5,5,5,5, -5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4, -4,4,4,4,4,4,4,0,0,0,0,0,4,4,4,4, -4,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,5,5,0,0,0,5,0,0,5,5,5,5,5, -5,5,0,0,5,0,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0x17, -0x58b,0x5cb,0x60b,0x7cb,0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x1b, -0x1b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0,0,0,0,0,0,0,0x58b, -0x5cb,0x60b,0x64b,0x64b,0x68b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,5,5,0,0, -0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb, -0xa4b,0x1e4b,0x5cb,0x60b,0,0,0,0x17,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,0,0,0,0,0x17,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b, -0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x88cb,0x90cb,0x98cb,0xa0cb,0xa8cb,0xb0cb,0xb8cb,0x36cb,0x354b, -0x34cb,0x348b,0x46cb,0x344b,0x4ecb,0x388b,0x3ccb,0x454b,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0,0,0,0,0x5ecb,0x344b,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b, -0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0,0,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b, -0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b, -0x344b,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0,0,0,0,0,0,0,5,6,6,6,0,6,6,0, -0,0,0,0,6,6,6,6,5,5,5,5,0,5,5,5, -0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,6,6,6,0, -0,0,0,6,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x58b,0x11cb,0x17,5,5,5,5,5,5,5,5,5,5,5,5, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4, +4,4,4,0,0,0,0,0,4,4,4,4,4,4,0,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5, +5,0,0,0,5,0,0,5,5,5,5,5,5,5,0,0, +5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0,0x17,0x58b,0x5cb,0x60b,0x7cb, +0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0x1b,0x1b,0x58b,0x5cb,0x60b, +0x64b,0x68b,0x7cb,0xa4b,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x64b, +0x68b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0,5,5,0,0,0,0,0,0x58b, +0x68b,0x7cb,0xa4b,0x1e4b,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb,0xa4b,0x1e4b,0x5cb,0x60b, +0,0,0,0x17,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, +0,0,0,0x17,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b, +0xb88b,0x78cb,0x80cb,0x88cb,0x90cb,0x98cb,0xa0cb,0xa8cb,0xb0cb,0xb8cb,0x36cb,0x354b,0x34cb,0x348b,0x46cb,0x344b, +0x4ecb,0x388b,0x3ccb,0x454b,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, +0x5ecb,0x344b,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb, +0xf4b,0x11cb,0x144b,0x16cb,0,0,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b, +0x804b,0x884b,0x904b,0x984b,0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b,0x344b,0,0,0, +0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0, +0,0,0,0,5,6,6,6,0,6,6,0,0,0,0,0, +6,6,6,6,5,5,5,5,0,5,5,5,0,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x58b,0x7cb,0xa4b,5,5,5,5,5,6,6,0,0,0,0,0x58b, -0x68b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,0x1b,5,5,5, +5,5,5,5,5,5,0,0,6,6,6,0,0,0,0,6, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x11cb,0x17, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb,0xa4b, +5,5,5,5,5,6,6,0,0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,0x1b,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b, +5,5,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0,0,0, -0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b, +5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, +0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, +0,0,0,0,0,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0, +0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0, +0,0,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0x1e4b,0x784b,5,5,5,5, +6,6,6,6,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,1,1,1,1, +1,1,0,0,0,6,6,6,6,6,0x13,4,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0, +0,0,0,0,0,0,0x18,0x18,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,5,5,5,5,4,5,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb, +0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b, +0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0,5,5,5,5,5,5,5,5, +5,5,0,6,6,0x13,0,0,5,5,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,6,6,6,6,0,0,5,5, +5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b, +0xccb,0x1e4b,0x344b,5,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6, +6,6,6,6,6,6,6,6,6,0x58b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17, +0x17,0x17,0,0,0,0,0,0,5,5,6,6,6,6,0x17,0x17, +0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,0x58b,0x5cb,0x60b, +0x64b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,6,5,5,6,6,5,0,0, +0,0,0,0,0,0,0,6,8,6,8,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b, +0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,8, +8,6,6,0x17,0x17,0x10,0x17,0x17,0x17,0x17,6,0,0,0,0,0, +0,0,0,0,0,0x10,0,0,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,0,0,0,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0x1e4b,0x784b, -5,5,5,5,6,6,6,6,0,0,0,0,0,0,0,0, 0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb, -0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0, -5,5,5,5,5,5,5,5,5,5,0,6,6,0x13,0,0, -5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,6,6,6,6,6,8,6,6,6, +6,6,6,6,6,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +0x17,0x17,0x17,0x17,5,8,8,5,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0xccb,0x1e4b,0x344b,5,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6, -6,0x58b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0, -5,5,6,6,6,6,0x17,0x17,0x17,0x17,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -5,5,5,5,5,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, -6,5,5,6,6,5,0,0,0,0,0,0,0,0,0,6, -8,6,8,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0, -0,0,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb, +6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -8,8,8,6,6,6,6,8,8,6,6,0x17,0x17,0x10,0x17,0x17, -0x17,0x17,6,0,0,0,0,0,0,0,0,0,0,0x10,0,0, +5,5,5,6,0x17,0x17,5,0,0,0,0,0,0,0,0,0, +8,5,5,5,5,0x17,0x17,0x17,0x17,6,6,6,6,0x17,8,6, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,0x17,5,0x17,0x17,0x17, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,6, -6,6,6,6,8,6,6,6,6,6,6,6,6,0,0x49,0x89, -0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,8,8,5, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,6,6,6,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,6,0x17,0x17,5,0, -0,0,0,0,0,0,0,0,8,5,5,5,5,0x17,0x17,0x17, -0x17,6,6,6,6,0x17,8,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,5,0x17,5,0x17,0x17,0x17,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,8,8,8,6,6, -6,6,6,6,6,6,6,8,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b, -0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,8,8,8,6,6,6,8,8,6,8,6,6, -0x17,0x17,0x17,0x17,0x17,0x17,6,5,5,6,0,0,0,0,0,0, +5,5,5,8,8,8,6,6,6,6,6,6,6,6,6,8, +0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b, +0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6, +6,6,8,8,6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,6,5, +5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,5,0,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,5,5,5,5,5,5,5,5,5,5,0x17,0,0, +5,5,5,0,5,0,5,5,5,5,0,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5, +5,5,5,5,5,0x17,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6, +6,6,6,6,6,6,6,0,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,8,8, +0,0,6,6,6,6,6,6,6,0,0,0,6,6,6,6, +6,0,0,0,0,0,0,0,0,0,0,0,6,6,8,8, +0,5,5,5,5,5,5,5,5,0,0,5,5,0,0,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, +5,5,5,5,5,0,5,5,0,5,5,5,5,5,0,6, +6,5,8,8,6,8,8,8,8,0,0,8,8,0,0,8, +8,8,0,0,5,0,0,0,0,0,0,8,0,0,0,0, +0,5,5,5,0,6,6,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,0,5, +0,0,5,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0,5,8,8,8,6, +6,6,6,6,6,0,8,0,0,8,0,8,8,8,8,0, +8,8,6,8,6,5,6,5,0x17,0x17,0,0x17,0x17,0,0,0, 0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,0, +5,5,5,5,5,5,5,5,5,8,8,8,6,6,6,6, +6,6,6,6,8,8,6,6,6,8,6,5,5,5,5,0x17, +0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, +0,0x17,6,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,8,8,8,6,6,6,6,6,6,8,6,8, +8,8,8,6,6,8,6,6,5,5,0x17,5,0,0,0,0, 0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,0,0,0,5,5,8,8,0,0,6,6,6,6,6,6, -6,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0, -0,0,0,0,6,6,8,8,0,5,5,5,5,5,5,5, -5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5, -0,5,5,5,5,5,0,6,6,5,8,8,6,8,8,8, -8,0,0,8,8,0,0,8,8,8,0,0,5,0,0,0, -0,0,0,8,0,0,0,0,0,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,8,8,8,6,6,6,6,6,6,6,6,8,8,6,6, -6,8,6,5,5,5,5,0x17,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0,0x17,6,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6, -6,6,6,6,6,8,6,8,8,8,8,6,6,8,6,6, -5,5,0x17,5,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,8,8,8,6,6, -6,6,0,0,8,8,8,8,6,6,8,6,6,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,5,5,5,5,6,6,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6, -6,6,6,6,6,6,6,8,8,6,8,6,6,0x17,0x17,0x17, -5,0,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,8,8,8,6,6,6,6,0,0,8,8,8,8, +6,6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5, +6,6,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,8, +8,6,8,6,6,0x17,0x17,0x17,5,0,0,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89, +0xc9,0x109,0x149,0x189,5,5,5,5,5,5,5,5,5,5,5,6, +8,6,8,8,6,6,6,6,6,6,8,6,5,0x17,0,0, +0,0,0,0,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,8,8,6,6,6,6,8,6,6,6,6,6, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b, +0x17,0x17,0x17,0x1b,5,5,5,5,5,5,5,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, +0,6,8,6,5,5,5,5,5,5,5,5,5,5,5,5, +8,8,8,6,6,6,6,6,6,6,6,6,8,6,6,0x17, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b, +0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0,0,0,0,0,0,0,0, +0,0,0,5,8,5,8,6,0x17,0x17,0x17,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,5,5,5,5,5,5,5,0,0,5,0,0, +5,5,5,5,5,5,5,5,0,5,5,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,8, +8,8,0,8,8,0,0,6,6,8,6,5,6,5,0x17,5, +8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,6,8,6,8,8,6,6,6,6, -6,6,8,6,5,0x17,0,0,0,0,0,0,8,8,6,6, -6,6,8,6,6,6,6,6,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b,0x17,0x17,0x17,0x1b,5,5,5,5, -5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,0,0,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,8,8,8, +6,6,6,6,0,0,6,6,8,8,8,8,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, +6,6,6,6,6,8,5,6,6,6,6,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,6,0,0,0,0,0,0,0,0,5,6,6,6, +6,6,6,8,8,6,6,6,5,5,5,5,5,6,6,6, +6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0, 0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, -6,6,6,6,8,6,6,0x17,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0, -0,0,0,0,0,0,0,0,0,0,0,5,8,5,8,6, -0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, -5,5,5,0,0,5,0,0,5,5,5,5,5,5,5,5, -0,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,8,8,8,8,8,8,0,8,8,0,0,6, -6,8,6,5,6,5,0x17,5,8,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6, +6,6,6,6,6,6,6,6,6,6,6,8,6,6,0x17,0x17, +0x17,5,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,0,0,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,8,8,8,6,6,6,6,0,0,6,6, -8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,6,6,6,6,6,6,8,5,6, -6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,6,0,0,0,0, -0,0,0,0,5,6,6,6,6,6,6,8,8,6,6,6, -5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,5, +0,0,0,0,5,0x17,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,5,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x58b,0x5cb, +0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb, +0x1e4b,0,0,0,0x17,0x17,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8, +6,6,6,6,6,6,6,0,6,6,6,6,6,6,8,6, +6,6,6,6,6,6,6,6,0,8,6,6,6,6,6,6, +6,8,6,6,8,6,6,0,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6, -6,6,6,8,6,6,0x17,0x17,0x17,5,0x17,0x17,5,0x17,0x17,0x17, -0x17,0x17,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x70b,0x74b,0x78b,0x7cb, -0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0,0,0,0x17,0x17,5,5, +0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,5,6,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, +5,5,5,0,5,5,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6, +6,6,6,0,0,0,6,0,6,6,0,6,5,5,5,5, +5,5,5,5,5,5,8,8,8,8,8,0,6,6,0,8, +8,6,8,6,5,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,0,5,5,0,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, +6,8,8,0x17,0x17,0,0,0,0,0,0,0,6,8,6,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,6,0,0,0,0,0,6,6,5,8, 5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,8,6,6,6,6,6,6,6,0, -6,6,6,6,6,6,8,6,6,6,6,6,6,6,6,6, -0,8,6,6,6,6,6,6,6,8,6,6,8,6,6,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,0,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,5,6,0,0,0,0, -0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,0,0,0,5,5,5,5,5,5,5,0,5,5,0,5, +5,5,5,5,8,8,6,6,6,6,6,0,0,0,8,8, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0x17, +0xcd0b,0xcc0b,0xcb0b,0xd00b,0xca0b,0xcf0b,0xcb4b,0xd04b,0xc90b,0x37cb,0x37cb,0x364b,0x35cb,0xc94b,0x3fcb,0x350b, +0x34cb,0x344b,0x344b,0x3ccb,0xcd0b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x19,0x19, +0x34ca,0x354a,0x34ca,0x34ca,0x344a,0x348a,0x388a,0xf4a,0x11ca,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0, +0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0, +0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x64a, +0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca, +0x60a,0x64a,0x68a,0x5ca,0x60a,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x60a, +0x64a,0x68a,0xc08a,0xc18a,0x58a,0x5ca,0x60a,0x60a,0x64a,0x68a,0x60a,0x60a,0x64a,0x64a,0x64a,0x64a, +0x6ca,0x70a,0x70a,0x70a,0x74a,0x74a,0x78a,0x78a,0x78a,0x78a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x58a, +0x5ca,0x60a,0x64a,0x64a,0x68a,0x68a,0x5ca,0x60a,0x58a,0x5ca,0x348a,0x388a,0x454a,0x348a,0x388a,0x35ca, +5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,6,6,6,6,6,6,0,0,0,6,0, -6,6,0,6,5,5,5,5,5,5,5,5,5,5,8,8, -8,8,8,0,6,6,0,8,8,6,8,6,5,0,0,0, -0,0,0,0,5,5,5,5,5,5,0,5,5,0,5,5, +5,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,6,6,8,8,0x17,0x17,0,0,0, -0,0,0,0,6,8,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,0,0,0,6,6,5,8,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,8,8,6,6, -6,6,6,0,0,0,8,8,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x17,0xcd0b,0xcc0b,0xcb0b,0xd00b,0xca0b,0xcf0b,0xcb4b,0xd04b, -0xc90b,0x37cb,0x37cb,0x364b,0x35cb,0xc94b,0x3fcb,0x350b,0x34cb,0x344b,0x344b,0x3ccb,0xcd0b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x34ca,0x354a,0x34ca,0x34ca,0x344a,0x348a,0x388a,0xf4a, -0x11ca,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0,0x17,0x17,0x17,0x17,0x17,0,0,0, -0,0,0,0,0,0,0,0,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a, -0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a, -0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x5ca,0x60a,0x60a,0x64a,0x68a, -0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x60a,0x64a,0x68a,0xc08a,0xc18a,0x58a,0x5ca,0x60a,0x60a, -0x64a,0x68a,0x60a,0x60a,0x64a,0x64a,0x64a,0x64a,0x6ca,0x70a,0x70a,0x70a,0x74a,0x74a,0x78a,0x78a, -0x78a,0x78a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x58a,0x5ca,0x60a,0x64a,0x64a,0x68a,0x68a,0x5ca,0x60a, -0x58a,0x5ca,0x348a,0x388a,0x454a,0x348a,0x388a,0x35ca,5,5,5,5,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x17,0x17,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,5,5,5,5,5,5,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0, -0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,6,6,6,6, -6,0x17,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +6,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0, +6,6,6,6,6,6,6,6,6,6,8,8,8,6,6,6, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,0,6,6,6,6,6,0x17,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17, +0x1b,0x1b,0x1b,0x1b,4,4,4,4,0x17,0x1b,0,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0x7cb, +0x1e4b,0x788b,0x790b,0x798b,0x7a0b,0x7a8b,0,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6, -6,6,6,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,4,4,4,4, -0x17,0x1b,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0x7cb,0x1e4b,0x788b,0x790b,0x798b,0x7a0b,0x7a8b,0,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,0,0,0,0,5,5,5,0x54b,0x58b,0x5cb,0x60b, -0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b, -0x58b,0x5cb,0x60b,0x17,0x17,0x17,0x17,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,0,0,0,0,6,5,8,8,8, -8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4, +4,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,4,4,4,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x80b, +0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0x58b,0x5cb,0x60b,0x17,0x17,0x17,0x17,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0, +0,0,0,6,5,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, -0,0,0,0,0,0,0,6,6,6,6,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,0x17,4,6,0,0,0, -0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,6, +6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,0x17,4,6,0,0,0,0,0,0,0,0,0,0,0, +8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,4,0,4,4,4,4,4,4,4,0,4,4,0, -5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,0,0,5,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,0,0,0x1b,6,6,0x17,0x10,0x10,0x10,0x10, +0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,0,4,4,4, +4,4,4,4,0,4,4,0,5,5,5,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,0, +0,5,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,0,0, +0x1b,6,6,0x17,0x10,0x10,0x10,0x10,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,0,0,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0, -0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b, +0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,0,0,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,6,6,0x1b,0x1b,0x1b,8,8,8, -8,8,8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,6,6,6,6, -6,6,6,0x1b,0x1b,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6, +6,6,0x1b,0x1b,0x1b,8,8,8,8,8,8,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,6,6,6,6,6,6,6,6,0x1b,0x1b,6,6,6, +6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,0x1b,0,0, +0x1b,0x1b,6,6,6,0x1b,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b, -0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0,0,0,0, -0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b, -0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x58b,0x5cb,0x60b,0x64b,0x68b,0x58b, -0x68b,0,0,0,0,0,0,0,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89, -0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,1,1,1,1,1,1,1,1, +0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b, +0x94b,0x98b,0x9cb,0xa0b,0,0,0,0,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0, +0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb, +0x194b,0x1bcb,0x58b,0x5cb,0x60b,0x64b,0x68b,0x58b,0x68b,0,0,0,0,0,0,0, +0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, +2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2, +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,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,1,0,1,1,0,0,1,0,0,1,1,0, +0,1,1,1,1,0,1,1,1,1,1,1,1,1,2,2, +2,2,0,2,0,2,2,2,2,2,2,2,0,2,2,2, 2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,2,2,2,2,2,2,2,0,2,2, +1,1,1,1,1,1,1,1,2,2,2,2,1,1,0,1, +1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1, +1,1,1,1,1,0,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0, +0,0,1,1,1,1,1,1,1,0,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,1,0,1,1, -0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1, -1,1,1,1,1,1,2,2,2,2,0,2,0,2,2,2, -2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -2,2,2,2,1,1,0,1,1,1,1,0,0,1,1,1, -1,1,1,1,1,0,1,1,1,1,1,1,1,0,2,2, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,1,1,0,1,1,1,1,0, -1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1, -1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,2,2,2,2,2,2,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, +1,1,1,1,1,1,1,1,1,0x18,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,0x18,2,2,2,2,2,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -2,2,2,2,2,2,0,0,1,1,1,1,1,1,1,1, +1,1,1,0x18,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,0x18,2,2,2,2,2,2, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,0x18,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,0x18,2,2,2,2, -2,2,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,0x18,2,2,2,2, +2,2,2,0x18,2,2,2,2,2,2,1,2,0,0,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x17, +0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,6,6,6,6,6,6,6,6,0,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,6, +6,6,6,6,2,2,2,2,2,2,2,2,2,2,5,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,0x18,2,2,2,2,2,2,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,2,2,2,0x18,2,2,2,2, -2,2,1,2,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0x1b, -0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6, -6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,0,0,6,6,6,6,6,2,2,2,2, -2,2,2,2,2,2,5,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0, -0,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,6,6,0,6, -6,0,6,6,6,6,6,0,0,0,0,0,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,5,0x1b,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,0,0,6,6,6,6, -6,6,6,4,4,4,4,4,4,4,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,6,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,6,6,6,6,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0x19,5,5,5,5, -5,5,5,5,5,5,5,4,6,6,6,6,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, -5,5,5,0,5,5,5,5,0,5,5,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, -5,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,6,6,6,6, -6,6,6,0,0,0,0,0,0,0,0,0,2,2,2,2, -6,6,6,6,6,6,6,4,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,1,1,2,2, +2,2,2,0,0,0,0,0,0,2,2,2,2,2,2,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,6,6,0,6,6,0,6,6,6,6,6,0, +0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,5,0x1b,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,0,0,6,6,6,6,6,6,6,4,4,4,4,4, +4,4,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +6,6,6,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0x19,5,5,5,5,5,5,5,5,5,5,5,4, +6,6,6,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,6,6,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0, +0,0,0,0x17,5,5,5,5,5,5,5,0,5,5,5,5, +0,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,0,5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b, +0x6cb,0x70b,0x74b,0x78b,6,6,6,6,6,6,6,0,0,0,0,0, +0,0,0,0,2,2,2,2,6,6,6,6,6,6,6,4, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0x17,0x17,1,1,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b, -0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x78cb,0x794b,0x814b,0x58b, -0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x1b,0x34cb,0x344b,0x3ccb,0x19,0x58b,0x5cb,0x788b, -0x78cb,0,0,0,0,0,0,0,0,0,0,0,0x16cb,0x194b,0x1bcb,0x1e4b, -0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b, -0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x984b,0xa04b,0xa84b,0xb04b, -0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x1b,0x5cb,0x60b,0x64b,0x68b,0x6cb, -0x70b,0x74b,0x78b,0x7cb,0x900b,0xa00b,0x804b,0x788b,0x344b,0x354b,0,0,0,0x58b,0x5cb,0x60b, -0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b, -0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x18,0x18,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,0, -5,0,0,5,0,5,5,5,5,5,5,5,5,5,5,0, -5,5,5,5,0,5,0,5,0,0,0,0,0,0,5,0, -0,0,0,5,0,5,0,5,0,5,5,5,0,5,5,0, -5,0,0,5,0,5,0,5,0,5,0,5,0,5,5,0, -5,0,0,5,5,5,5,0,5,5,5,5,5,5,5,0, -5,5,5,5,0,5,5,5,5,0,5,0,5,5,5,5, -5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5, -0,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b, -0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x54b,0x54b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, -0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0x1b,0x1b,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, +2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b, +0xccb,0xf4b,0x11cb,0x144b,0x78cb,0x794b,0x814b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b, +0x1b,0x34cb,0x344b,0x3ccb,0x19,0x58b,0x5cb,0x788b,0x78cb,0,0,0,0,0,0,0, +0,0,0,0,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b, +0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b, +0xb08b,0xb88b,0x78cb,0x80cb,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b, +0xb08b,0xb88b,0x1b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x900b,0xa00b,0x804b,0x788b, +0x344b,0x354b,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b, +0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b, +0x784b,0x804b,0x884b,0x904b,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x18,0x18,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,0,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,0,5,5,0,5,0,0,5,0,5,5,5, +5,5,5,5,5,5,5,0,5,5,5,5,0,5,0,5, +0,0,0,0,0,0,5,0,0,0,0,5,0,5,0,5, +0,5,5,5,0,5,5,0,5,0,0,5,0,5,0,5, +0,5,0,5,0,5,5,0,5,0,0,5,5,5,5,0, +5,5,5,5,5,5,5,0,5,5,5,5,0,5,5,5, +5,0,5,0,5,5,5,5,5,5,5,5,5,5,0,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,0,0,0,0,5,5,5,0,5,5,5,5,5,0,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x54b, +0x54b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, +0,0,0,0,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, +0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0, +0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0,0,0,0,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, +0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 5,0x705,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, @@ -1464,2580 +1504,2759 @@ static const uint16_t propsTrie_index[23156]={ static const UTrie2 propsTrie={ propsTrie_index, - propsTrie_index+4692, + propsTrie_index+4748, nullptr, - 4692, - 18464, + 4748, + 19048, 0xa40, - 0x12d4, + 0x130c, 0x0, 0x0, 0x110000, - 0x5a70, + 0x5cf0, nullptr, 0, false, false, 0, nullptr }; -static const uint16_t propsVectorsTrie_index[32784]={ -0x53e,0x546,0x54e,0x556,0x56e,0x576,0x57e,0x586,0x58e,0x596,0x59e,0x5a6,0x5ae,0x5b6,0x5be,0x5c6, -0x5cd,0x5d5,0x5dd,0x5e5,0x5ed,0x5f5,0x5fd,0x605,0x60d,0x615,0x61d,0x625,0x62d,0x635,0x63d,0x645, -0x64d,0x655,0x65c,0x664,0x66c,0x674,0x67c,0x684,0x68c,0x694,0x699,0x6a1,0x6a8,0x6b0,0x6b8,0x6c0, -0x6c8,0x6d0,0x6d8,0x6e0,0x6e7,0x6ef,0x6f7,0x6ff,0x707,0x70f,0x717,0x71f,0x727,0x72f,0x737,0x73f, -0x1b48,0xd94,0xe60,0x1197,0x12d6,0x1d10,0x1eaf,0x1d08,0x13f5,0x1405,0x13ed,0x13fd,0x814,0x81a,0x822,0x82a, -0x832,0x838,0x840,0x848,0x850,0x856,0x85e,0x866,0x86e,0x874,0x87c,0x884,0x88c,0x894,0x89c,0x8a3, -0x8ab,0x8b1,0x8b9,0x8c1,0x8c9,0x8cf,0x8d7,0x8df,0x8e7,0x140d,0x8ef,0x8f7,0x8ff,0x906,0x90e,0x916, -0x91e,0x922,0x92a,0x931,0x939,0x941,0x949,0x951,0x1727,0x172f,0x959,0x961,0x969,0x971,0x979,0x980, -0x178d,0x177d,0x1785,0x1a82,0x1a8a,0x141d,0x988,0x1415,0x1670,0x1670,0x1672,0x1431,0x1432,0x1425,0x1427,0x1429, -0x1795,0x1797,0x990,0x1797,0x998,0x99d,0x9a5,0x179c,0x9ab,0x1797,0x9b1,0x9b9,0xc74,0x17a4,0x17a4,0x9c1, -0x17b4,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5, -0x17b5,0x17b5,0x17b5,0x17ac,0x9c9,0x17bd,0x17bd,0x9d1,0xb9c,0xba4,0xbac,0xbb4,0x17cd,0x17c5,0x9d9,0x9e1, -0x9e9,0x17d7,0x17df,0x9f1,0x17d5,0x9f9,0x1b50,0xd9c,0xbbc,0xbc4,0xbcc,0xbd1,0x19e8,0xc9b,0xca2,0x1944, -0xc4c,0x1b58,0xda4,0xdac,0xdb4,0xdbc,0xf6a,0xf6e,0x1a48,0x1a4d,0xcda,0xce2,0x1abe,0x1ac6,0x1c28,0xe68, -0x1ace,0xd28,0xd30,0x1ad6,0x110f,0x11bf,0xf42,0xdc4,0x1964,0x194c,0x195c,0x1954,0x1a00,0x19f8,0x19b4,0x1a40, -0x1442,0x1442,0x1442,0x1442,0x143a,0x1442,0x1442,0x1444,0xa01,0x144c,0xa05,0xa0d,0x144c,0xa15,0xa1d,0xa25, -0x145c,0x1454,0x1464,0xa2d,0xa35,0x146c,0xa3d,0xa45,0x1474,0x147c,0x1484,0x148c,0xa4d,0x1494,0x149b,0x14a3, -0x14ab,0x14b3,0x14bb,0x14c3,0x14cb,0x14d2,0x14da,0x14e2,0x14ea,0x14f2,0x14f5,0x14f7,0x17e7,0x18da,0x18e0,0x1a30, -0x14ff,0xa55,0xa5d,0x1625,0x162a,0x162d,0x1633,0x1507,0x163b,0x163b,0x1517,0x150f,0x151f,0x1527,0x152f,0x1537, -0x153f,0x1547,0x154f,0x1557,0x18e8,0x193c,0x1a92,0x1bf0,0x1567,0x156d,0x1575,0x157d,0x155f,0x1585,0x18f0,0x18f7, -0x17ef,0x17ef,0x17ef,0x17ef,0x17ef,0x17ef,0x17ef,0x17ef,0x18ff,0x18ff,0x18ff,0x18ff,0x1907,0x190e,0x1910,0x1917, -0x191f,0x1923,0x1923,0x1926,0x1923,0x1923,0x192c,0x1923,0x196c,0x1a38,0x1a9a,0xbd9,0xbdf,0x1d54,0x1d5c,0x1e3a, -0x19d8,0x19cc,0x19d0,0x1a55,0x19bc,0x19bc,0x19bc,0xc5c,0x19c4,0xc7c,0x1a18,0xcca,0xc64,0xc6c,0xc6c,0x1ade, -0x1a08,0x1aa2,0xcb2,0xcba,0xa65,0x17f7,0x17f7,0xa6d,0x17ff,0x17ff,0x17ff,0x17ff,0x17ff,0x17ff,0xa75,0x747, -0x1658,0x167a,0xa7d,0x1682,0xa85,0x168a,0x1692,0x169a,0xa8d,0xa92,0x16a2,0x16a9,0xa97,0x1807,0x1a28,0xc54, -0xa9f,0x1704,0x170b,0x16b1,0x1713,0x1717,0x16b9,0x16bd,0x16d6,0x16d6,0x16d8,0x16c5,0x16cd,0x16cd,0x16ce,0x171f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, -0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x1812,0x1974,0x1974, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, -0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e7,0x1b40,0x1f1b, -0x181a,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820, -0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820,0x1820, -0x1820,0x1820,0x1820,0x1820,0xaa7,0x1828,0xaaf,0x1b60,0x1aeb,0x1aeb,0x1aeb,0x1aeb,0x1aeb,0x1aeb,0x1aeb,0x1aeb, -0x1ae6,0xd38,0x1afb,0x1af3,0x1afd,0x1b68,0x1b68,0xdcc,0x19e0,0x1a5d,0x1ab2,0x1ab6,0x1aaa,0x1c20,0xcea,0xcf1, -0x1a10,0xcc2,0x1a65,0xcf9,0x1b05,0x1b08,0xd40,0x1b70,0x1b18,0x1b10,0xd48,0xdd4,0x1b78,0x1b7c,0xddc,0x1019, -0x1b20,0xd50,0xd58,0x1b84,0x1b94,0x1b8c,0xde4,0xf12,0xe70,0xe78,0x1daa,0xfc9,0x1e57,0x1e57,0x1b9c,0xdec, -0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770, -0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772, -0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774, -0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f, -0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771, -0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773, -0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775, -0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770, -0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772, -0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774, -0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f, -0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771, -0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773, -0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775, -0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770, -0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772, -0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774, -0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f, -0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771, -0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773, -0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775, -0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0x1775,0x176f,0x1770,0x1771,0x1772,0x1773,0x1774,0xab7,0xdf4,0xdf7, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747, -0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747,0x1747, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643, -0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x1643,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef, -0x16f4,0x16fc,0x1934,0x13a2,0x1a20,0x1a20,0x13a6,0x13ad,0xabf,0xac7,0xacf,0x15a5,0x15ac,0x15b4,0xad7,0x15bc, -0x15fa,0x15fa,0x158d,0x1595,0x15c4,0x15f1,0x15f2,0x1602,0x15cc,0x15d1,0x15d9,0x15e1,0xadf,0x15e9,0xae7,0x159d, -0xcd2,0x160a,0xaef,0xaf7,0x1612,0x1618,0x161d,0xaff,0xb0f,0x1660,0x1668,0x164b,0x1650,0xb17,0xb1f,0xb07, -0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737, -0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x173f,0x173f,0x173f,0x173f, -0x1578,0x1578,0x15b8,0x15f8,0x1638,0x1678,0x16b8,0x16f8,0x1734,0x1774,0x17b4,0x17f4,0x1834,0x1874,0x18b4,0x18f4, -0x1934,0x1970,0x19b0,0x19f0,0x1a30,0x1a64,0x1aa0,0x1ae0,0x1b20,0x1b60,0x1b9c,0x1bdc,0x1c1c,0x1c5c,0x1c9c,0x1cdc, -0xe59,0xa80,0xac0,0xb00,0xb40,0xb6b,0xf99,0xa40,0xed9,0xa40,0xa40,0xa40,0xa40,0xbab,0x13f5,0x13f5, -0xf19,0xfd9,0xa40,0xa40,0xa40,0xbeb,0xf59,0xc2b,0xa40,0xc51,0xc91,0xcd1,0xd11,0xd51,0xe99,0xdc9, -0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335, -0x1335,0x1335,0x1335,0x1335,0x1019,0x1375,0x116a,0x11aa,0x13b5,0x11b5,0x1435,0x1435,0x1435,0x1059,0x108c,0x10cc, -0x1475,0x1475,0x11f5,0x14b5,0x110c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c, -0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x112a, +static const uint16_t propsVectorsTrie_index[32324]={ +0x51d,0x525,0x52d,0x535,0x54d,0x555,0x55d,0x565,0x56d,0x575,0x57d,0x585,0x58d,0x595,0x59d,0x5a5, +0x5ac,0x5b4,0x5bc,0x5c4,0x5cc,0x5d4,0x5dc,0x5e4,0x5ec,0x5f4,0x5fc,0x604,0x60c,0x614,0x61c,0x624, +0x62c,0x634,0x63b,0x643,0x64b,0x653,0x65b,0x663,0x66b,0x673,0x678,0x680,0x687,0x68f,0x697,0x69f, +0x6a7,0x6af,0x6b7,0x6bf,0x6c6,0x6ce,0x6d6,0x6de,0x6e6,0x6ee,0x6f6,0x6fe,0x706,0x70e,0x716,0x71e, +0x1b20,0x726,0x72e,0x736,0x73c,0x1c5c,0x1e3e,0x1ca0,0x1553,0x1559,0x1561,0x154b,0x744,0x74a,0x752,0x75a, +0x762,0x768,0x770,0x778,0x780,0x786,0x78e,0x796,0x79e,0x7a4,0x7ac,0x7b4,0x7bc,0x7c4,0x7cc,0x7d3, +0x7db,0x7e1,0x7e9,0x7f1,0x7f9,0x7ff,0x807,0x80f,0x817,0x15b0,0x81f,0x827,0x82f,0x836,0x83e,0x846, +0x84e,0x852,0x85a,0x53d,0x862,0x86a,0x872,0x53d,0x16c2,0x16ca,0x87a,0x882,0x88a,0x892,0x89a,0x53d, +0x174e,0x1746,0x173e,0x1a39,0x1a31,0x1571,0x8a2,0x1569,0x1650,0x1650,0x1652,0x158d,0x158e,0x1581,0x1583,0x1585, +0x1708,0x170a,0x8aa,0x170a,0x8b2,0x8b7,0x8bf,0x170f,0x8c5,0x170a,0x8cb,0x8d3,0x8db,0x1700,0x1700,0x8e3, +0x1766,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, +0x1767,0x1767,0x1767,0x175e,0x8eb,0x1756,0x1756,0x8f3,0x8fb,0x903,0x90b,0x913,0x171f,0x1717,0x91b,0x923, +0x92b,0x1727,0x172f,0x933,0x1736,0x93b,0x1ac0,0x93f,0x947,0x94f,0x957,0x95c,0x1967,0x964,0x96b,0x18d3, +0x973,0x1af8,0x97b,0x983,0x98b,0x993,0x99b,0x53d,0x19bf,0x19c4,0x9a3,0x19b7,0x1a90,0x1a88,0x1b8c,0x9ab, +0x1a58,0x9b3,0x9bb,0x1a75,0x9c3,0x9c7,0x9cf,0x9d7,0x18db,0x18bb,0x18cb,0x18c3,0x1943,0x193b,0x198f,0x19e1, +0x15a6,0x15a6,0x15a6,0x15a6,0x1596,0x15a6,0x15a6,0x15a8,0x9df,0x1579,0x9e3,0x9eb,0x1579,0x9f3,0x9fb,0xa03, +0x139e,0x1396,0x13d6,0xa0b,0xa13,0x13be,0x12fc,0xa1b,0x13ae,0x13b6,0x13ce,0x159e,0xa23,0x13e6,0x13ed,0x13f5, +0x147c,0x1484,0x148c,0x1494,0x149c,0x14a3,0x14ab,0x14b3,0x13fd,0x1405,0x1408,0x140a,0x16f8,0x1852,0x1858,0x199f, +0x1408,0x1315,0x131d,0x15c0,0x15c5,0x15c8,0x15ce,0x13c6,0x15d6,0x15d6,0x1412,0x13de,0x1416,0x141e,0x1426,0x142e, +0x1436,0x143e,0x1446,0x144e,0x1860,0x18ab,0x1a0b,0x1b6c,0x1456,0x145c,0x1464,0x146c,0x13a6,0x1474,0x1868,0x186f, +0x176f,0x176f,0x176f,0x176f,0x176f,0x176f,0x176f,0x176f,0x1873,0x1873,0x1873,0x1873,0x187b,0x1873,0x1882,0x1889, +0x1891,0x1873,0x1873,0x1895,0x1873,0x1873,0x189b,0x1873,0x18b3,0x19a7,0x19fb,0x1325,0x132b,0x1cd6,0x1cde,0x1d86, +0x1957,0x194b,0x194f,0x19af,0x1913,0x1913,0x1913,0xa2b,0x191b,0xa33,0x196f,0xa3a,0xa42,0xa4a,0xa4a,0x1aa0, +0x190b,0x1a03,0x1333,0x133b,0xa52,0x177f,0x177f,0xa5a,0x1787,0x1787,0x1787,0x1787,0x1787,0x1787,0xa62,0xa68, +0x1603,0x15b8,0xa70,0x1669,0xa78,0x1687,0x168f,0x1697,0xa80,0xa85,0x165a,0x1661,0xa8a,0x1777,0x1987,0xa92, +0xa9a,0x169f,0x16a6,0x160b,0x16b6,0x16ba,0x1671,0x1675,0x167d,0x167d,0x167f,0x161b,0x1623,0x1623,0x1624,0x16ae, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f, +0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x178f,0x1792,0x18f3,0x18f3, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1648,0x1a98,0x1e76, +0x17a2,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8, +0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8,0x17a8, +0x17a8,0x17a8,0x17a8,0x17a8,0xaa2,0x179a,0xaaa,0x1b3c,0x1a65,0x1a65,0x1a65,0x1a65,0x1a65,0x1a65,0x1a65,0x1a65, +0x1a60,0xab2,0x1a1b,0x1a13,0x1a1d,0x1b34,0x1b34,0xaba,0x1903,0x1997,0x1a25,0x1a29,0x19f3,0x1b84,0xac2,0xaca, +0x195f,0xad2,0x19cc,0xada,0x1a7d,0x1a80,0xae2,0x1ab0,0x1a49,0x1a50,0xaea,0xaf2,0x1ae4,0x1ae8,0xafa,0xb02, +0x1a41,0xb0a,0xb12,0x1ab8,0x1b28,0x1b2c,0xb1a,0xb22,0xb2a,0xb32,0x1cce,0xb3a,0x1d8e,0x1d8e,0x1b00,0xb42, +0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb, +0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed, +0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef, +0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea, +0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec, +0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee, +0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0, +0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb, +0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed, +0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef, +0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea, +0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec, +0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee, +0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0, +0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb, +0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed, +0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef, +0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea, +0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec, +0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee, +0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0, +0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0x16f0,0x16ea,0x16eb,0x16ec,0x16ed,0x16ee,0x16ef,0xb4a,0xb51,0xb54, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de, +0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, +0x1631,0x1639,0x18a3,0x1343,0x197f,0x197f,0x1347,0x134e,0xb5c,0xb64,0xb6c,0x14d3,0x14da,0x14e2,0xb74,0x14ea, +0x153b,0x153b,0x14bb,0x14c3,0x14f2,0x1532,0x1533,0x1543,0x14fa,0x14ff,0x1507,0x150f,0xb7c,0x1517,0xb84,0x14cb, +0xb8c,0x1613,0xb94,0xb9c,0x151f,0x1525,0x152a,0xba4,0xbac,0x15f3,0x15fb,0x15e6,0x15eb,0xbb4,0xbbc,0xbc4, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x14f4,0x14f4,0x1534,0x1574,0x15b4,0x15f4,0x1634,0x1674,0x16b0,0x16f0,0x1730,0x1770,0x17b0,0x17f0,0x1830,0x1870, +0x18b0,0x18ec,0x192c,0x196c,0x19ac,0x19e0,0x1a1c,0x1a5c,0x1a9c,0x1adc,0x1b18,0x1b58,0x1b98,0x1bd8,0x1c18,0x1c58, +0xa80,0xac0,0xb00,0xb40,0xb80,0xbab,0xbeb,0x1432,0xc0e,0xa40,0xa40,0xa40,0xc46,0xc86,0x1332,0x1332, +0xcc6,0xd06,0xa40,0xa40,0xa40,0xd2f,0xd6f,0xd8f,0xa40,0xdb5,0xdf5,0xe35,0xe75,0xeb5,0xf75,0xef5, +0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272, +0x1272,0x1272,0x1272,0x1272,0x1005,0x12b2,0x103d,0x107d,0x12f2,0x1088,0x1372,0x1372,0x1372,0x10be,0x10f1,0x1131, +0x13b2,0x13b2,0x1171,0x13f2,0x1194,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1, +0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x10f1,0x11b2, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, -0xe09,0xe19,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, -0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5, -0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x12b5,0x1235, -0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5, -0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x12f5,0x1275, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0xc31,0xc34,0xdff,0x1dfa,0x1021,0x74f,0x55e,0x10bb,0xd01,0xd80,0x55e,0x55e,0x1d20,0xf1a,0xf22,0x1e42, -0xc84,0xc8b,0xc93,0x1ba4,0x1dda,0x55e,0x1dba,0xff1,0x1bac,0xe07,0xe0f,0xe17,0x1049,0x757,0x55e,0x55e, -0x1bb4,0x1bb4,0x75f,0x55e,0x1e6f,0x10d3,0x1e67,0x10db,0x1f5b,0x11d5,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0xe1f,0x1fb3,0x12ce,0x1350,0x1351,0x1f7b,0x11fd,0x1204,0x120b,0x130d,0x1311,0x1285,0x121b, -0x1c30,0x1c32,0xe80,0xe87,0x1bbc,0x1bc4,0xe27,0xf3a,0x1d18,0xf02,0xf0a,0xfe9,0x1d38,0x1d3c,0x1d44,0x1069, -0xfb9,0x1d9a,0x767,0x55e,0x10c3,0x10cb,0x1da2,0xfc1,0xf9b,0xfa1,0xfa9,0xfb1,0x55e,0x55e,0x55e,0x55e, -0x1edf,0x1ed7,0x1145,0x114d,0x1e22,0x1e1a,0x1091,0x55e,0x55e,0x55e,0x55e,0x55e,0x1e0a,0x1051,0x1059,0x1061, -0x1dd2,0x1dca,0x1001,0x113d,0x1d4c,0xf4a,0x76f,0x55e,0x10a1,0x10a9,0x777,0x55e,0x55e,0x55e,0x55e,0x55e, -0x1f53,0x11b7,0x77f,0x55e,0x55e,0x1e32,0x1e2a,0x1099,0x128d,0x1293,0x129b,0x55e,0x55e,0x1223,0x1227,0x122f, -0x1f13,0x1f0b,0x119f,0x1f03,0x1efb,0x118f,0x1e02,0x1041,0x1361,0x1364,0x1364,0x55e,0x55e,0x55e,0x55e,0x55e, -0x10f3,0x10f8,0x1100,0x1107,0x112f,0x1135,0x55e,0x55e,0x1173,0x1177,0x117f,0x11c7,0x11cd,0x787,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x11e5,0x1374,0x1379,0x1381,0x55e,0x55e,0x78b,0x1f9b,0x1275, -0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d, -0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a72,0xd09,0xd10,0xd10,0xd10, -0x1a7a,0x1a7a,0x1a7a,0xd18,0x1e5f,0x1e5f,0x1e5f,0x1e5f,0x1e5f,0x1e5f,0x793,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x797,0x1fcb,0x1fcb,0x12de,0x1c3a,0x1c3a,0x1c3a,0x1c3a,0x1c3a, -0x1c3a,0x1c3a,0x1c3a,0x1c3a,0x1c3a,0x1c3a,0x1c3a,0x1c3a,0x1c3a,0x1c3a,0x1c3a,0x1c3a,0xe8f,0x1009,0x1011,0x1fd3, -0x1319,0x1321,0xf52,0x1df2,0x1dea,0x1031,0x1039,0x79f,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x1f73,0x1f6b,0x11f5, -0x55e,0x55e,0x55e,0x1d30,0x1d30,0xf2a,0x1d28,0xf32,0x55e,0x55e,0x1127,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x7a3,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x1d82,0x1d82,0x1d82,0xf76,0xf7b, -0x7ab,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x1fe3,0x1341,0x1348,0x1fdb,0x1fdb,0x1fdb,0x7b3, -0x55e,0x184d,0x184d,0x184d,0x184d,0x184d,0x184d,0x184d,0xb35,0x185d,0xb3d,0x185e,0x1855,0x1866,0x186c,0x1874, -0xb45,0x199c,0x199c,0x7bb,0x55e,0x55e,0x55e,0x136c,0x11ed,0x198c,0x198c,0xc3c,0xd20,0x55e,0x55e,0x55e, -0x55e,0x18a5,0x18ac,0xb4d,0x18af,0xb55,0xb5d,0xb65,0x18a9,0xb6d,0xb75,0xb7d,0x18ae,0x18b6,0x18a5,0x18ac, -0x18a8,0x18af,0x18b7,0x18a6,0x18ad,0x18a9,0xb84,0x187c,0x1884,0x188b,0x1892,0x187f,0x1887,0x188e,0x1895,0xb8c, -0x189d,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87,0x1e87, -0x1e87,0x1e77,0x1e7a,0x1e77,0x1e81,0x10e3,0x7c3,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x12fa,0x1302,0x1305,0x1305,0x1305,0x1305,0x1305, -0x1305,0x1117,0x111f,0x1feb,0x1359,0x7cb,0x55e,0x55e,0x55e,0x1f93,0x1237,0x7d3,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x7d7,0x1329,0x1fa3,0x127d,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x7df,0x1389,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x12e6,0x1dc2,0x1dc2,0x1dc2,0x1dc2,0x1dc2,0x1dc2,0xff9,0x55e,0x1ecf,0x1ec7,0x10eb,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x7e7,0x1f63,0x11dd,0x55e,0x55e,0x123f,0x1240,0x7ef,0x55e,0x55e,0x55e,0x55e, -0x55e,0xec7,0xecf,0xed7,0xedf,0xee7,0xeef,0xef6,0xefa,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x7f3,0x1071,0x1e12,0x1077,0x1e12,0x107f,0x1084,0x1089, -0x1089,0x1e97,0x1eb7,0x1ebf,0x1f2b,0x1e9f,0x1f83,0x1ea7,0x1f33,0x1f8b,0x1f8b,0x11a7,0x11af,0x1257,0x125d,0x1265, -0x126d,0x1fab,0x1fab,0x1fab,0x1fab,0x12b1,0x1fab,0x12b7,0x12bb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb, -0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb, -0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fc,0xb94,0x18bf,0x18bf,0x18bf,0x804,0x804,0x804, -0x804,0x1994,0x1994,0x1994,0x1994,0x1994,0x1994,0x1994,0x80c,0x804,0x804,0x804,0x804,0x804,0x804,0x804, -0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804, -0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804, -0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804, -0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0xbe7,0xbee,0xbf6,0xbfe,0x197c,0x197c,0x197c, -0xc06,0xc0e,0xc11,0x19ac,0x19a4,0xc44,0xd60,0xd64,0xd68,0x55e,0x55e,0x55e,0x55e,0xd70,0x1b28,0xd78, -0xf62,0x1830,0xb27,0xb2d,0x1029,0xc19,0x19f0,0xcaa,0x55e,0x1845,0x1838,0x183d,0x1984,0xc21,0xc29,0x1155, -0x115b,0x1d8a,0xf83,0x1d7a,0xf5a,0x1331,0x1339,0x55e,0x55e,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2, -0x1db2,0x1db2,0xfd1,0xfd9,0xfe1,0x12ee,0x12f2,0x55e,0x55e,0x1b30,0xd88,0x1b38,0x1b38,0xd8c,0xe97,0xe9f, -0xea7,0x1c00,0x1be8,0x1c08,0x1c10,0x1bf8,0xe2f,0xe33,0xe3a,0xe42,0xe46,0xe4e,0xe56,0xe58,0xe58,0xe58, -0xe58,0x1c71,0x1c79,0x1c71,0x1c7f,0x1c87,0x1c52,0x1c8f,0x1c97,0x1c71,0x1c9f,0x1ca7,0x1cae,0x1cb6,0x1c5a,0x1c71, -0x1cbb,0x1c62,0x1c69,0x1cc3,0x1cc9,0x1d6b,0x1d72,0x1d64,0x1cd0,0x1cd8,0x1ce0,0x1ce8,0x1de2,0x1cf0,0x1cf8,0xeaf, -0xeb7,0x1c42,0x1c42,0x1c42,0xebf,0x1d92,0x1d92,0xf8b,0xf93,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, -0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4f,0x1e4a,0x1e4a,0x1e4a,0x10b1,0x10b3,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7, -0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7, -0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7, -0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7, -0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1163,0x1c4a,0x1f23,0x1f23,0x1f23,0x1f23,0x1f23,0x1f23, -0x1f23,0x1f43,0x116b,0x1248,0x124f,0x1f4b,0x1f4b,0x1f4b,0x1f4b,0x1f4b,0x1f4b,0x1f4b,0x1f4b,0x1f4b,0x1f4b,0x1f4b, -0x1187,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc, -0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bce,0x1bcc,0x1bd6,0x1bcc,0x1bcc, -0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bd9,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1bcc,0x1be0,0x1213,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef, -0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef,0x1eef, -0x1ef3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x1fc3,0x12a3, -0x12a9,0x12c3,0x12c6,0x12c6,0x12c6,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e, -0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7, -0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7, -0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7, -0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18ca, -0x1391,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b, -0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b, -0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x13d5,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb, -0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x1ffb,0x13e5,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x18d2,0x18d2,0x18d2,0x18d2, -0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x13b5,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1392,0x1ff3,0x1ff3,0x1ff3,0x1ff3, -0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3, -0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x139a,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391, -0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1391,0x1392,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18, -0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18, -0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18, -0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18, -0x1c18,0x1c18,0x1c18,0x13bd,0x1d00,0x1d00,0x1d00,0x1d00,0x1d00,0x1d00,0x13c5,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f, -0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f, -0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f, -0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f, -0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x13cd,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b, -0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb, -0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x13dd, -0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3, -0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3, -0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f, -0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f, -0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f, -0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f, -0x175f,0x175f,0x175f,0x175f,0x174f,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1757,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f, -0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f, -0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f, -0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f,0x175f, -0x175f,0x175f,0x175f,0x175f,0x175f,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7, -0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7, -0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7, -0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x18c7, -0x18c7,0x18c7,0x18c7,0x18c7,0x18c7,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18, -0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18, -0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18, -0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1c18, -0x1c18,0x1c18,0x1c18,0x1c18,0x1c18,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f, -0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f, -0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f, -0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f, -0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7, -0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7, -0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7, -0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7, -0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1ee7,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b, -0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b, -0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b, -0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b, -0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1f3b,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb, -0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb, -0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb, -0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb, -0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1fbb,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3, -0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3, -0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3, -0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3, -0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x1ff3,0x53d,0x53d,0x53d,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2, -0x2e2,0x2e5,0x2ee,0x2e8,0x2e8,0x2eb,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2, -0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x828,0x822,0x804,0x7ec,0x7f8,0x7f5,0x7ec,0x807, -0x7f2,0x7fe,0x7ec,0x819,0x80d,0x801,0x825,0x7fb,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9, -0x7e9,0x7e9,0x810,0x80a,0x813,0x813,0x813,0x822,0x7ec,0x834,0x834,0x834,0x834,0x834,0x834,0x82e, -0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, -0x82e,0x82e,0x82e,0x7f2,0x7f8,0x7fe,0x81f,0x7e6,0x81c,0x831,0x831,0x831,0x831,0x831,0x831,0x82b, -0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b, -0x82b,0x82b,0x82b,0x7f2,0x816,0x7ef,0x813,0x2e2,0,0,0,0,0,0,0,0, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, +0xfb5,0xfc5,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xf35, +0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232, +0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x11f2, +0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232, +0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x1232,0x11f2, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0xbcc,0xbd3,0xbdb,0x53d,0x18e3,0x18e3,0x18e3,0xbe3,0xbeb,0xbee,0x1933,0x1923,0xbf6,0xbfe,0xc02,0xc06, +0x53d,0x53d,0x53d,0x53d,0xc0e,0x1a6d,0xc16,0xc1e,0x182f,0xc26,0xc2c,0xc30,0xc38,0x1977,0xc40,0x53d, +0x1827,0x181a,0x181f,0x18eb,0xc48,0xc50,0xc54,0xc5a,0x1d0e,0xc62,0x1d5e,0xc69,0xc6d,0xc75,0x1f88,0xc7d, +0x1cf6,0x1cf6,0x1cf6,0x1cf6,0x1cf6,0x1cf6,0x1cf6,0x1cf6,0x1cf6,0xc85,0xc8d,0xc95,0xc9d,0xca1,0x53d,0x53d, +0xca9,0xcac,0xcb4,0x1d26,0xcbc,0xcc4,0x53d,0xccc,0xcd4,0xcdc,0x53d,0x53d,0x1c64,0xce4,0xcec,0x1dc5, +0xcf4,0xcfb,0xd03,0x1b44,0x1d1e,0x53d,0x1cfe,0xd0b,0x1b08,0xd13,0xd1b,0xd23,0xd2b,0xd33,0x53d,0x53d, +0x1af0,0x1af0,0xd3b,0x53d,0x1d9e,0xd43,0x1d96,0xd4b,0x1eb7,0xd53,0x1f68,0xd5b,0xd62,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0xd6a,0x1efd,0xd72,0xd7a,0xd7c,0x1ebf,0xd84,0xd8b,0xd92,0xd9a,0xd9e,0xda5,0xdad, +0x1b94,0x1b96,0xdb5,0xdbc,0x1b18,0x1b10,0xdc4,0xdca,0x1c7c,0xdd2,0xdda,0xdde,0x1c8c,0x1c90,0x1c84,0xde6, +0xdee,0x1d46,0xdf6,0x53d,0xdfe,0xe06,0x1d2e,0xe0e,0xe16,0xe1c,0xe24,0xe2c,0xe34,0xe39,0xe41,0xe49, +0x1e2a,0x1e22,0xe51,0xe59,0x1d56,0x1d4e,0xe61,0x53d,0x53d,0x53d,0x53d,0x53d,0x1d7e,0xe69,0xe71,0x53d, +0x1d6e,0x1d66,0xe79,0xe81,0x1c98,0xe89,0xe91,0xe98,0xea0,0xea8,0xeb0,0x53d,0x53d,0x53d,0x53d,0x53d, +0x1e9f,0xeb8,0x53d,0x53d,0x53d,0x1d3e,0x1d36,0xec0,0xec8,0xece,0xed6,0x53d,0x53d,0xede,0xee2,0xeea, +0x1e5e,0x1e56,0xef2,0x1e4e,0x1e46,0xefa,0x1d76,0xf02,0xf0a,0x53d,0x53d,0x53d,0x53d,0x53d,0x1f80,0xf12, +0xf1a,0xf1f,0xf27,0xf2e,0xf33,0xf39,0x53d,0x53d,0xf41,0xf45,0xf4d,0xf55,0xf5b,0xf63,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0xf6b,0xf73,0xf78,0xf80,0x53d,0x53d,0xf87,0x1ed7,0xf8f, +0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4, +0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x19d9,0xf97,0x53d,0x53d,0x53d, +0x19d4,0x19d4,0x19d4,0xf9f,0x1da6,0x1da6,0x1da6,0x1da6,0x1da6,0x1da6,0xfa7,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0xfab,0x1f25,0x1f25,0xfaf,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8, +0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1aca,0x1ac8,0x1ad2, +0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ad5,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1ac8,0x1adc,0xfb7,0x1f60,0x1f60, +0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60, +0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0xfbf,0x1dcd,0x1dcd, +0x1dcd,0x1dcd,0x1dcd,0x1dcd,0x1dcd,0x1dcd,0x1dcd,0x1dcd,0x1dcd,0x1dcd,0x1dcd,0x1dcd,0x1dd2,0x1dcd,0x1dcd,0x1dcd, +0xfc7,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x1f70,0xfcf, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e, +0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0xfd7,0xfdf,0xfe7,0x1f2d,0xfeb,0xff3,0xff8,0x1cee,0x1ce6, +0x1000,0x1008,0x1010,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x1f78,0x1018,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x1eaf,0x1ea7,0x1020,0x53d,0x53d,0x53d,0x1c74,0x1c74, +0x1028,0x1c6c,0x1030,0x53d,0x53d,0x1038,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32, +0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32, +0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32, +0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32, +0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1040,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32, +0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e36,0x1f15,0x1f15, +0x1f15,0x1f15,0x1f15,0x1f15,0x1f15,0x1f15,0x1f15,0x1f15,0x1f15,0x1f15,0x1f15,0x1f15,0x1048,0x104e,0x1056,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x105a,0x1c54, +0x1e86,0x1e86,0x1e86,0x1e86,0x1e86,0x1e86,0x1e86,0x1e87,0x1062,0x1067,0x106e,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f, +0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1e8f,0x1072,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x1d06, +0x1d06,0x1d06,0x107a,0x107f,0x1087,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x1f55,0x1f55,0x1f55,0x1f55,0x1f55,0x1f55,0x1f58,0x108f,0x1f55,0x1f55,0x1f55, +0x1f55,0x1f55,0x1f55,0x1f55,0x1f55,0x1f55,0x1f55,0x1f55,0x1f55,0x1f55,0x1097,0x53d,0x53d,0x1f35,0x109f,0x10a6, +0x1f1d,0x1f1d,0x1f1d,0x10ad,0x53d,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x10b5,0x17b8,0x10bd,0x17b9, +0x17b0,0x17c1,0x17c7,0x17cf,0x10c5,0x192b,0x192b,0x10cd,0x53d,0x53d,0x53d,0x10d5,0x10dd,0x18f3,0x18f3,0x10e5, +0x10ed,0x53d,0x53d,0x53d,0x53d,0x1800,0x1807,0x10f5,0x180a,0x10fd,0x1105,0x110d,0x1804,0x1115,0x111d,0x1125, +0x1809,0x1811,0x1800,0x1807,0x1803,0x180a,0x1812,0x1801,0x1808,0x1804,0x112c,0x17d7,0x17df,0x17e6,0x17ed,0x17da, +0x17e2,0x17e9,0x17f0,0x1134,0x17f8,0x1dae,0x1dae,0x1dae,0x1dae,0x1dae,0x1dae,0x1dae,0x1dae,0x1dae,0x1dae,0x1dae, +0x1dae,0x1dae,0x1dae,0x1dae,0x1dae,0x1dfa,0x1db6,0x1dfa,0x1dbd,0x113c,0x1144,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x114c,0x1154,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x115c,0x1164,0x1f3d,0x116c,0x1171,0x53d,0x53d,0x53d,0x1edf,0x1179,0x1181, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x1185,0x118a,0x1ee7,0x1192,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x119a,0x119f,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x11a6,0x11ab,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x11b3,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x11bb,0x53d,0x1e1a,0x1e12,0x11c3, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x11cb,0x1e97,0x11d0,0x53d,0x53d,0x11d8,0x11d9,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x11e1,0x11e9,0x11f1,0x11f9,0x1201,0x1209,0x53d,0x1210,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x1218,0x1cb7,0x121e,0x1cb7,0x1226,0x122b,0x1233,0x53d,0x1dda,0x1e02,0x1e0a, +0x1e66,0x1de2,0x1ec7,0x1dea,0x1e6e,0x1ecf,0x1ecf,0x12cd,0x12d5,0x12dd,0x1f05,0x12e5,0x12ed,0x1eef,0x1eef,0x1eef, +0x1eef,0x123b,0x1eef,0x1ef5,0x1243,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a, +0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a,0x127a, +0x127a,0x127a,0x127a,0x127a,0x12f4,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d, +0x53d,0x53d,0x53d,0x53d,0x124a,0x19e9,0x1252,0x19eb,0x19eb,0x1256,0x125e,0x1266,0x126e,0x1b54,0x1aa8,0x1b5c, +0x1b64,0x1b4c,0x1276,0x127a,0x1281,0x1289,0x128d,0x1295,0x129d,0x127a,0x127a,0x127a,0x127a,0x1bc5,0x1bcd,0x1bc5, +0x1bd3,0x1bdb,0x1ba6,0x1be3,0x1beb,0x1bc5,0x1bf3,0x1bfb,0x1c02,0x1c0a,0x1bae,0x1bc5,0x1c0f,0x1bb6,0x1bbd,0x1c17, +0x1c1d,0x1cbf,0x1cc6,0x1ca8,0x1c24,0x1c2c,0x1c34,0x1c3c,0x1cb0,0x1bc5,0x1c44,0x12a5,0x12ad,0x1b7c,0x1b7c,0x1b7c, +0x12b5,0x1cb7,0x1cb7,0x12bd,0x12c5,0x1304,0x184a,0x184a,0x184a,0x1305,0x1305,0x1305,0x1305,0x18fb,0x18fb,0x18fb, +0x18fb,0x18fb,0x18fb,0x18fb,0x130d,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305, +0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305, +0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305, +0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305, +0x1305,0x1305,0x1305,0x1305,0x1305,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, +0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, +0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, +0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x1842,0x134e,0x1b74,0x1b74,0x1b74, +0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74, +0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74, +0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74, +0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1356,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x135e,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1366,0x1e7e,0x1e7e, +0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e, +0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x136e,0x1f4d,0x1f4d, +0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d,0x1f4d, +0x1372,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837,0x1837, +0x1837,0x137a,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x1382,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d, +0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x138a,0x1f45,0x1f45,0x1f45,0x1f45, +0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45, +0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45, +0x1f45,0x138e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e,0x134e, +0x134e,0x1382,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2, +0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2, +0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2, +0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2, +0x16e2,0x16da,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2, +0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2, +0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2, +0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2,0x16e2, +0x16e2,0x16e2,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, +0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, +0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, +0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, +0x183f,0x183f,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74, +0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74, +0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74, +0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74,0x1b74, +0x1b74,0x1b74,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32, +0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32, +0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32, +0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32,0x1e32, +0x1e32,0x1e32,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e, +0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e, +0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e, +0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e,0x1e7e, +0x1e7e,0x1e7e,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d, +0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d, +0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d, +0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d,0x1f0d, +0x1f0d,0x1f0d,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45, +0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45, +0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45, +0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45,0x1f45, +0x1f45,0x1f45,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60, +0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60, +0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60, +0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60,0x1f60, +0x1f60,0x1f60,0x51c,0x51c,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xf3,0xff,0xf9, +0xf9,0xfc,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x43e,0x438,0x41d,0x405,0x411,0x40e,0x405,0x420,0x40b,0x417,0x405,0x42f, +0x423,0x41a,0x43b,0x414,0x402,0x402,0x402,0x402,0x402,0x402,0x402,0x402,0x402,0x402,0x426,0x423, +0x429,0x429,0x429,0x438,0x405,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x444,0x444,0x444,0x444,0x444, +0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x40b, +0x411,0x417,0x435,0x3ff,0x432,0x447,0x447,0x447,0x447,0x447,0x447,0x441,0x441,0x441,0x441,0x441, +0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x40b, +0x42c,0x408,0x429,0x12,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x300,0x2f1,0x2f1, -0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1, -0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f4,0x690,0x83d,0x840,0x696,0x840,0x83a,0x68a, -0x681,0x2fa,0x69f,0x2fd,0x843,0x678,0x68d,0x837,0x693,0x69c,0x67e,0x67e,0x684,0x2f7,0x68a,0x687, -0x681,0x67e,0x69f,0x2fd,0x67b,0x67b,0x67b,0x690,0x306,0x306,0x306,0x306,0x306,0x306,0x6a8,0x306, -0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x6a8,0x306,0x306,0x306,0x306,0x306,0x306,0x699, -0x6a8,0x306,0x306,0x306,0x306,0x306,0x6a8,0x6a2,0x6a5,0x6a5,0x303,0x303,0x303,0x303,0x6a2,0x303, -0x6a5,0x6a5,0x6a5,0x303,0x6a5,0x6a5,0x303,0x303,0x6a2,0x303,0x6a5,0x6a5,0x303,0x303,0x303,0x699, -0x6a2,0x6a5,0x6a5,0x303,0x6a5,0x303,0x6a2,0x303,0x312,0x6b4,0x312,0x30c,0x312,0x30c,0x312,0x30c, -0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x30f,0x6b1,0x312,0x6b4,0x312,0x30c,0x312,0x30c, -0x312,0x30c,0x312,0x6b4,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x6b7,0x6b1, -0x312,0x30c,0x312,0x6b4,0x312,0x30c,0x312,0x30c,0x312,0x6b1,0x6ae,0x6ab,0x312,0x30c,0x312,0x30c, -0x6b1,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x6ae,0x6ab,0x6b7,0x6b1,0x312,0x6b4,0x312,0x30c,0x312, -0x6b4,0x6ba,0x6b7,0x6b1,0x312,0x6b4,0x312,0x30c,0x312,0x30c,0x6b7,0x6b1,0x312,0x30c,0x312,0x30c, -0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x6b7,0x6b1, -0x312,0x30c,0x312,0x6b4,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c, -0x312,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x309,0x318,0x327,0x327,0x324,0x327,0x324,0x327,0x327, -0x324,0x327,0x327,0x327,0x324,0x31e,0x327,0x333,0x327,0x327,0x324,0x327,0x327,0x324,0x327,0x327, -0x327,0x324,0x324,0x324,0x327,0x327,0x324,0x327,0x336,0x330,0x327,0x324,0x327,0x324,0x327,0x327, -0x324,0x327,0x31e,0x31e,0x327,0x324,0x327,0x336,0x330,0x327,0x327,0x327,0x324,0x327,0x324,0x327, -0x327,0x315,0x31e,0x321,0x327,0x324,0x31e,0x315,0x31b,0x31b,0x31b,0x31b,0x32d,0x32d,0x32a,0x32d, -0x32d,0x32a,0x32d,0x32d,0x32a,0x336,0x6bd,0x336,0x6bd,0x336,0x6bd,0x336,0x6bd,0x336,0x6bd,0x336, -0x6bd,0x336,0x6bd,0x336,0x6bd,0x324,0x336,0x330,0x336,0x330,0x336,0x330,0x327,0x324,0x336,0x330, -0x336,0x330,0x336,0x330,0x336,0x330,0x336,0x330,0x330,0x32d,0x32d,0x32a,0x336,0x330,0xa29,0xa29, -0xa35,0xa32,0x336,0x330,0x336,0x330,0x336,0x330,0x336,0x330,0x336,0x330,0x336,0x330,0x336,0x330, -0x336,0x330,0x336,0x330,0x336,0x330,0x336,0x330,0x336,0x330,0x336,0x330,0xa35,0xa32,0xa35,0xa32, -0xa29,0xa26,0xa35,0xa32,0xc0c,0xd08,0xa2f,0xa2c,0xa2f,0xa2c,0xa35,0xa32,0xa35,0xa32,0xa35,0xa32, -0xa35,0xa32,0xa35,0xa32,0xa35,0xa32,0xa35,0xa32,0xd05,0xd05,0xd05,0xe01,0xe01,0xe01,0xe04,0xe04, -0xe01,0xe04,0xe04,0xe01,0xe01,0xe04,0xf4e,0xf51,0xf51,0xf51,0xf51,0xf4e,0xf51,0xf4e,0xf51,0xf4e, -0xf51,0xf4e,0xf51,0xf4e,0x339,0x6c0,0x339,0x342,0x342,0x339,0x342,0x342,0x339,0x345,0x339,0x342, -0x339,0x339,0x339,0x339,0x339,0x6c0,0x339,0x342,0x339,0x339,0x339,0x339,0x342,0x342,0x339,0x339, -0x339,0x339,0x339,0x339,0x339,0x339,0x342,0x339,0x339,0x339,0x339,0x33f,0x339,0x339,0x339,0x339, -0x33f,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x342,0x339,0x339, -0x339,0x339,0x339,0x339,0x339,0x339,0x342,0x339,0x33c,0x339,0x339,0x339,0x339,0x339,0x339,0x339, -0x339,0x339,0x33f,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0xa38,0xa38,0xa38, -0xa38,0xa38,0xd0b,0xd0b,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x351,0x351,0x357, -0x357,0x351,0x351,0x351,0x34e,0x34e,0x348,0x348,0x6c3,0x348,0x351,0x6c9,0x354,0x6c9,0x6c9,0x6c9, -0x354,0x6c9,0x351,0x351,0x6cc,0x35a,0x348,0x348,0x348,0x348,0x348,0x348,0x6c6,0x6c6,0x6c6,0x6c6, -0x34b,0x6c6,0x348,0xb82,0x35d,0x35d,0x35d,0x35d,0x35d,0x348,0x348,0x348,0x348,0x348,0xa44,0xa44, -0xa41,0xa3b,0xa3e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e, -0xd0e,0xd0e,0xd0e,0xd0e,0x6db,0x6db,0x6db,0x6db,0x6db,0x6d5,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db, -0x6db,0x6d5,0x6cf,0x6db,0x6db,0x6db,0x6cf,0x6db,0x6db,0x6cf,0x6d5,0x6cf,0x6cf,0x6cf,0x6cf,0x6db, -0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6d5,0x6d5,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6cf,0x6cf,0x6cf, -0x6cf,0x6db,0x6db,0x6cf,0x6db,0x6db,0x6d5,0x6cf,0x6d5,0x6db,0x6d5,0x6cf,0x6db,0x6db,0x6cf,0x6cf, -0x6cf,0x6cf,0x6cf,0x6cf,0x6d8,0x6d8,0x981,0x6d8,0x6d8,0x984,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85, -0xb85,0xb85,0xb85,0xcbd,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xf15,0xf0f,0xf0f,0xf0f, -0xf12,0xdce,0xdce,0xdce,0x6d2,0x6d2,0xb88,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02, -0xd02,0xd02,0xd02,0xd02,0x100e,0x100b,0x100e,0x100b,0x369,0x375,0x100e,0x100b,9,9,0x378,0xf54, -0xf54,0xf54,0x360,0x158a,9,9,9,9,0x372,0x363,0x38d,0x366,0x38d,0x38d,0x38d,9, -0x38d,9,0x38d,0x38d,0x38a,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1, -0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,9,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x6e1,0x38d,0x38d, -0x38a,0x38a,0x38a,0x38a,0x38a,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de, -0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x387,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x38a,0x38a, -0x38a,0x38a,0x38a,0x1011,0x390,0x390,0x393,0x384,0x384,0x390,0x381,0xa4a,0xc15,0xc12,0x37b,0xa47, -0x37b,0xa47,0x37b,0xa47,0x37b,0xa47,0x36f,0x36c,0x36f,0x36c,0x36f,0x36c,0x36f,0x36c,0x36f,0x36c, -0x36f,0x36c,0x36f,0x36c,0x390,0x390,0x381,0x37e,0xbc4,0xbc1,0xc0f,0xd14,0xd11,0xd17,0xd14,0xd11, -0xe07,0xe0a,0xe0a,0xe0a,0xa59,0x6ed,0x3ab,0x3ae,0x3ab,0x3ab,0x3ab,0x3ae,0x3ab,0x3ab,0x3ab,0x3ab, -0x3ae,0xa59,0x3ae,0x3ab,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ed,0x6ea,0x6ea, +0,0,0,0,0x12,0x12,0x12,0x12,0x12,0x102,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x4b,0x30f,0x40e,0x411,0x315,0x411,0x405,0x306,0x2fa,0xa5,0x366,0xcc, +0x429,0x2d6,0x309,0x3fc,0x312,0x33f,0x2e8,0x2e8,0x2fd,0x84,0x306,0x384,0x2fa,0x2e8,0x366,0xcc, +0x2e2,0x2e2,0x2e2,0x30f,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x37b,0x23d,0x23d,0x23d,0x23d,0x23d, +0x23d,0x23d,0x23d,0x23d,0x37b,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x336,0x37b,0x23d,0x23d,0x23d, +0x23d,0x23d,0x37b,0x375,0x378,0x378,0x237,0x237,0x237,0x237,0x375,0x237,0x378,0x378,0x378,0x237, +0x378,0x378,0x237,0x237,0x375,0x237,0x378,0x378,0x237,0x237,0x237,0x336,0x375,0x378,0x378,0x237, +0x378,0x237,0x375,0x237,0x23d,0x378,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237, +0x23d,0x237,0x23d,0x237,0x23a,0x375,0x23d,0x378,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x378, +0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x37b,0x375,0x23d,0x237,0x23d,0x378, +0x23d,0x237,0x23d,0x237,0x23d,0x375,0x372,0x36f,0x23d,0x237,0x23d,0x237,0x375,0x23d,0x237,0x23d, +0x237,0x23d,0x237,0x372,0x36f,0x37b,0x375,0x23d,0x378,0x23d,0x237,0x23d,0x378,0x37e,0x37b,0x375, +0x23d,0x378,0x23d,0x237,0x23d,0x237,0x37b,0x375,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237, +0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x37b,0x375,0x23d,0x237,0x23d,0x378, +0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x23d,0x237,0x23d, +0x237,0x23d,0x237,0x22b,0x216,0x225,0x225,0x222,0x225,0x222,0x225,0x225,0x222,0x225,0x225,0x225, +0x222,0x21c,0x225,0x23a,0x225,0x225,0x222,0x225,0x225,0x222,0x225,0x225,0x225,0x222,0x222,0x222, +0x225,0x225,0x222,0x225,0x23d,0x237,0x225,0x222,0x225,0x222,0x225,0x225,0x222,0x225,0x21c,0x21c, +0x225,0x222,0x225,0x23d,0x237,0x225,0x225,0x225,0x222,0x225,0x222,0x225,0x225,0x210,0x21c,0x21f, +0x225,0x222,0x21c,0x210,0x219,0x219,0x219,0x219,0x231,0x231,0x22b,0x231,0x231,0x22b,0x231,0x231, +0x22b,0x23d,0x378,0x23d,0x378,0x23d,0x378,0x23d,0x378,0x23d,0x378,0x23d,0x378,0x23d,0x378,0x23d, +0x378,0x222,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x225,0x222,0x23d,0x237,0x23d,0x237,0x23d,0x237, +0x23d,0x237,0x23d,0x237,0x237,0x231,0x231,0x22b,0x23d,0x237,0x738,0x738,0x74a,0x747,0x23d,0x237, +0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237, +0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x74a,0x747,0x74a,0x747,0x738,0x735,0x74a,0x747, +0x8eb,0x9b4,0x744,0x741,0x744,0x741,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747, +0x74a,0x747,0x74a,0x747,0x9b1,0x9b1,0x9b1,0xabf,0xabf,0xabf,0xac2,0xac2,0xabf,0xac2,0xac2,0xabf, +0xabf,0xac2,0xbac,0xbaf,0xbaf,0xbaf,0xbaf,0xbac,0xbaf,0xbac,0xbaf,0xbac,0xbaf,0xbac,0xbaf,0xbac, +0x216,0x360,0x216,0x228,0x228,0x216,0x228,0x228,0x216,0x234,0x216,0x228,0x216,0x216,0x216,0x216, +0x216,0x360,0x216,0x228,0x216,0x216,0x216,0x216,0x228,0x228,0x216,0x216,0x216,0x216,0x216,0x216, +0x216,0x216,0x228,0x216,0x216,0x216,0x216,0x21c,0x216,0x216,0x216,0x216,0x21c,0x216,0x216,0x216, +0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x228,0x216,0x216,0x216,0x216,0x216,0x216, +0x216,0x216,0x228,0x216,0x219,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x21c,0x216, +0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x73b,0x73b,0x73b,0x73b,0x73b,0x9b1,0x9b1, +0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x96,0x96,0x9c,0x28b,0x96,0x96,0x96, +0x93,0x93,0x6c,0x6c,0x2f7,0x6c,0x96,0x38a,0x99,0x38a,0x38a,0x38a,0x99,0x38d,0x96,0x96, +0x303,0x9f,0x6c,0x6c,0x6c,0x6c,0x6c,0x28e,0x2fa,0x387,0x2fa,0x2fa,0x72,0x2fa,0x6c,0x7d7, +0x240,0x240,0x240,0x240,0x240,0x6c,0x6c,0x6c,0x6c,0x6c,0x6e7,0x6e7,0x6d5,0x6cc,0x6d2,0x963, +0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963, +0x5ee,0x5f1,0x5f4,0x5fa,0x5fd,0x600,0x603,0x606,0x609,0x5f7,0x60c,0x60f,0x612,0x615,0x61b,0x5eb, +0x618,0x61e,0x5df,0x621,0x5eb,0x5df,0x5e5,0x5df,0x5df,0x5df,0x5df,0x5eb,0x5df,0x5df,0x5df,0x5df, +0x624,0x5e5,0x5e5,0x62a,0x62d,0x627,0x5eb,0x5eb,0x5eb,0x5df,0x5df,0x5df,0x5df,0x630,0x627,0x5df, +0x633,0x636,0x5e5,0x5df,0x5e5,0x5eb,0x5e5,0x5df,0x5eb,0x5eb,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df, +0x5e8,0x5e8,0x639,0x5e8,0x5e8,0x63c,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x957, +0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xb7c,0xb76,0xb76,0xb76,0xb79,0xa3e,0xa44,0xa3e, +0x5e2,0x5e2,0x849,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d, +0xc8a,0xc87,0xc8a,0xc87,0x291,0x2b2,0xc8a,0xc87,0,0,0x19e,0xb9a,0xb9a,0xb9a,0x4e,0x119d, +0,0,0,0,0x198,0x6f,0x1b6,0x78,0x1b6,0x1b6,0x1b6,0,0x1b6,0,0x1b6,0x1b6, +0x1b3,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d, +0x35d,0x35d,0,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x1b6,0x1b6,0x1b3,0x1b3,0x1b3,0x1b3, +0x1b3,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a, +0x35a,0x35a,0x1b0,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0xc8d, +0x1b9,0x1b9,0x1bc,0x1ad,0x1ad,0x1b9,0x1aa,0x70e,0x8e8,0x8e5,0x1a1,0x70b,0x1a1,0x70b,0x1a1,0x70b, +0x1a1,0x70b,0x165,0x162,0x165,0x162,0x165,0x162,0x165,0x162,0x165,0x162,0x165,0x162,0x165,0x162, +0x1b9,0x1b9,0x1aa,0x1a4,0x870,0x86d,0x8e2,0x993,0x990,0x999,0x993,0x990,0xab3,0xab6,0xab6,0xab6, +0x6f6,0x354,0x17d,0x180,0x17d,0x17d,0x17d,0x180,0x17d,0x17d,0x17d,0x17d,0x180,0x6f6,0x180,0x17d, +0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x354,0x351,0x351,0x351,0x351,0x351,0x351, +0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x351, +0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34e,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b, +0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x6f0,0x34e,0x177,0x17a, +0x177,0x177,0x177,0x17a,0x177,0x177,0x177,0x177,0x17a,0x6f0,0x17a,0x177,0x171,0x16b,0x171,0x16b, +0x171,0x16b,0x171,0x16b,0x171,0x16b,0x171,0x16b,0x171,0x16b,0x171,0x16b,0x171,0x16b,0x171,0x16b, +0x171,0x16b,0x174,0x16e,0x171,0x16b,0x171,0x16b,0x171,0x16b,0x171,0x16b,0x171,0x16b,0x168,0x5d9, +0x5dc,0x5ca,0x5ca,0xdd7,0x7fe,0x7fe,0x8dc,0x8d9,0x6f3,0x6ed,0x6f3,0x6ed,0x17d,0x177,0x17d,0x177, +0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177, +0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177, +0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x177,0x17d,0x180,0x17a,0x17d, +0x177,0x8dc,0x8d9,0x17d,0x177,0x8dc,0x8d9,0x17d,0x177,0x8dc,0x8d9,0xb94,0x180,0x17a,0x180,0x17a, +0x17d,0x177,0x180,0x17a,0x17d,0x177,0x180,0x17a,0x180,0x17a,0x180,0x17a,0x17d,0x177,0x180,0x17a, +0x180,0x17a,0x180,0x17a,0x17d,0x177,0x180,0x17a,0x6f6,0x6f0,0x180,0x17a,0x180,0x17a,0x180,0x17a, +0x180,0x17a,0xa95,0xa92,0x180,0x17a,0xb97,0xb94,0xb97,0xb94,0xb97,0xb94,0x8d6,0x8d3,0x8d6,0x8d3, +0x8d6,0x8d3,0x8d6,0x8d3,0x8d6,0x8d3,0x8d6,0x8d3,0x8d6,0x8d3,0x8d6,0x8d3,0xb97,0xb94,0xb97,0xb94, +0xc7b,0xc78,0xc7b,0xc78,0xc7b,0xc78,0xc7b,0xc78,0xc7b,0xc78,0xc7b,0xc78,0xc7b,0xc78,0xc7b,0xc78, +0xdfe,0xdfb,0xfc0,0xfbd,0x1191,0x118e,0x118b,0x1188,0x118b,0x1188,0x1191,0x118e,0,0x14d,0x14d,0x14d, +0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d, +0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0,0,0x150,0x13e,0x13e,0x13e,0x144,0x13e,0x141, +0x1557,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a, +0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a, +0x14a,0x14a,0x14a,0x147,0x1557,0x2b5,0x6e4,0,0,0x1182,0x1182,0x108c,0,0x69f,0x69f,0x69f, +0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0xb58,0x69f, +0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x594,0x594,0x594,0x594, +0x59a,0x594,0x594,0x594,0x594,0x594,0xc09,0x594,0x594,0x594,0x1e0,0x594,0x1d7,0x594,0x594,0x1e3, +0x6a2,0xb5b,0xab9,0xb5e,0,0,0,0,0,0,0,0,0x1f2,0x1f2,0x1f2,0x1f2, +0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2, +0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0,0,0,0,0x1563,0x1f2,0x1f2,0x1f2,0x1dd, +0x1da,0,0,0,0,0,0,0,0,0,0,0,0x97e,0x97e,0x97e,0x97e, +0x1089,0x1179,0xc63,0xc63,0xc63,0xc60,0xc60,0xa6e,0x297,0x978,0x975,0x975,0xa20,0xa20,0xa20,0xa20, +0xa20,0xa20,0xd92,0xd92,0xd92,0xd92,0xd92,0x294,0x114c,0x174c,0xa74,0x29a,0xfb4,0x132,0x135,0x135, +0x135,0x135,0x135,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132, +0x132,0x132,0x132,0x132,0x132,0x132,0x132,0xc66,0xc66,0xc66,0xc66,0xc66,0x29d,0x132,0x132,0x132, +0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x843, +0x843,0x843,0xa20,0xa26,0xa23,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0x104a,0x2b8,0x2b8,0x2b8,0x2b8, +0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x117,0x114,0x111,0x10e,0x8cd,0x8cd,0x5cd,0x132,0x132,0x13b, +0x132,0x123,0x123,0x123,0x123,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132, +0x132,0x132,0x132,0x132,0x132,0x132,0x120,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132, +0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x120,0x132,0x132,0x132,0x132,0x132,0x132, +0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132, +0x6e1,0x6e1,0x132,0x132,0x132,0x132,0x132,0x6e1,0x135,0x132,0x135,0x132,0x132,0x132,0x132,0x132, +0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x6e1,0x132,0x132,0x132,0x135,0x2bb,0x132,0x570,0x570, +0x570,0x570,0x570,0x570,0x570,0x108,0x10e,0x573,0x573,0x570,0x570,0x570,0x570,0x138,0x138,0x570, +0x570,0x10e,0x573,0x573,0x573,0x570,0x97b,0x97b,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a, +0x11a,0x11a,0x6e1,0x6e1,0x6e1,0x6de,0x6de,0x97b,0x7a7,0x7a7,0x7a7,0x7a1,0x7a1,0x7a1,0x7a1,0x7a1, +0x7a1,0x7a1,0x7a1,0x79e,0x7a1,0x79e,0,0x7aa,0x7a4,0x831,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4, +0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4, +0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x9c0,0x9c0,0x9c0,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837, +0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834, +0x834,0x834,0x834,0,0,0x9c0,0x9c0,0x9c0,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71, +0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71, +0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66, +0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad, +0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad, +0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x83a,0x83a, +0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x8f1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3, +0xbd3,0xbd3,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6, +0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6, +0xbd9,0xbd9,0xbd9,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xbdc,0xbdc,0xbcd,0xbcd, +0xbd0,0xbe2,0xbdf,0,0,0x15f0,0x157b,0x157b,0xf78,0xf78,0xf78,0xf78,0xea9,0xf78,0xf78,0xf78, +0xea9,0xf78,0xf78,0xf78,0xf78,0xf75,0,0,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea3,0xeac, +0xea6,0xeac,0xea6,0xea6,0xea6,0xeac,0xeac,0,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b, +0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b, +0x100b,0x1068,0x1068,0x1068,0,0,0x1008,0,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7, +0x14c7,0x14c7,0x14c7,0,0,0,0,0,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746, +0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1740,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0, +0x174f,0x174f,0,0,0,0,0,0x18ea,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1, +0x1185,0x576,0x159,0x159,0,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0,0,0x15f, +0x15f,0,0,0x15f,0x15f,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546, +0x546,0,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0,0x546,0,0,0,0x546,0x546, +0x546,0x546,0,0,0x579,0x981,0x576,0x159,0x159,0x576,0x576,0x576,0x576,0,0,0x159, +0x159,0,0,0x15c,0x15c,0x64b,0xa77,0,0,0,0,0,0,0,0,0x576, +0,0,0,0,0x543,0x543,0,0x543,0x15f,0x15f,0x576,0x576,0,0,0x2c1,0x2c1, +0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x546,0x546,0x156,0x156,0x153,0x153,0x153,0x153, +0x153,0x156,0x153,0xdf2,0x14c1,0x14be,0x15e7,0,0,0xa2c,0x588,0x9a8,0,0x1cb,0x1cb,0x1cb, +0x1cb,0x1cb,0x1cb,0,0,0,0,0x1cb,0x1cb,0,0,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb, +0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb, +0x1cb,0,0x1cb,0x1c8,0,0x1cb,0x1c8,0,0x1cb,0x1cb,0,0,0x58b,0,0x1c5,0x1c5, +0x1c5,0x588,0x588,0,0,0,0,0x588,0x588,0,0,0x588,0x588,0x591,0,0, +0,0xd9e,0,0,0,0,0,0,0,0x1c8,0x1c8,0x1c8,0x1cb,0,0x1c8,0, +0,0,0,0,0,0,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4, +0x588,0x58e,0x1cb,0x1cb,0x1cb,0xd9e,0x1560,0,0,0,0,0,0,0,0,0, +0,0x582,0x582,0x1bf,0,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x9a5,0x1c2,0,0x1c2, +0x1c2,0x1c2,0,0x1c2,0x1c2,0x552,0x552,0x552,0x552,0x552,0x552,0x552,0x552,0x552,0x552,0x552, +0x552,0,0x552,0x552,0x552,0x552,0x552,0x552,0x552,0,0x552,0x552,0,0x552,0x552,0x552, +0x552,0x552,0,0,0x585,0x1c2,0x1bf,0x1bf,0x1bf,0x582,0x582,0x582,0x582,0x582,0,0x582, +0x582,0x1bf,0,0x1bf,0x1bf,0x651,0,0,0x1c2,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1c2,0x9a5,0xa29,0xa29,0,0,0x2c7,0x2c7, +0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x109e,0x9a2,0,0,0,0,0,0, +0,0x13d7,0x1518,0x151e,0x1518,0x151b,0x151b,0x151b,0,0x5af,0x255,0x255,0,0x25b,0x25b,0x25b, +0x25b,0x25b,0x25b,0x25b,0x25b,0,0,0x25b,0x25b,0,0,0x25b,0x25b,0x55b,0x55b,0x55b, +0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b, +0x55b,0,0x55b,0x55b,0,0xa1d,0x55b,0x55b,0x55b,0x55b,0,0,0x5b2,0x25b,0x5af,0x5af, +0x255,0x5af,0x5af,0x5af,0xdad,0,0,0x255,0x258,0,0,0x258,0x258,0x657,0,0, +0,0,0,0,0,0x170d,0x5af,0x5af,0,0,0,0,0x558,0x558,0,0x55b, +0x25b,0x25b,0xdad,0xdad,0,0,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252, +0x24f,0xa1d,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0,0,0,0,0,0,0,0, +0,0,0x5b5,0x264,0,0x264,0x264,0x264,0x264,0x264,0x264,0,0,0,0x264,0x264, +0x264,0,0x264,0x264,0x267,0x264,0,0,0,0x264,0x264,0,0x264,0,0x264,0x264, +0,0,0,0x264,0x264,0,0,0,0x264,0x264,0x264,0,0,0,0x264,0x264, +0x264,0x264,0x264,0x264,0x264,0x264,0xacb,0x264,0x264,0x264,0,0,0,0,0x5b5,0x25e, +0x5b5,0x25e,0x25e,0,0,0,0x25e,0x25e,0x25e,0,0x261,0x261,0x261,0x5b8,0,0, +0xcd2,0,0,0,0,0,0,0x5b5,0,0,0,0,0,0,0,0, +0,0,0xb19,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2ca,0x2ca,0x2ca,0x9fc, +0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c6,0x9c3,0,0,0,0,0,0x12f0,0x26d,0x26d,0x26d, +0x15ed,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0,0x270,0x270,0x270,0,0x270,0x270, +0x270,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0,0x55e,0x55e, +0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x55e,0x12cf,0x55e,0x55e,0x55e,0x55e,0x55e,0,0, +0x17c7,0xcd8,0x5bb,0x5bb,0x5bb,0x26d,0x26d,0x26d,0x26d,0,0x5bb,0x5bb,0x5be,0,0x5bb,0x5bb, +0x5bb,0x65a,0,0,0,0,0,0,0,0x5bb,0x5bb,0,0xd7a,0xd7a,0x13da,0, +0,0x176d,0,0,0x270,0x270,0xdb0,0xdb0,0,0,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a, +0x26a,0x26a,0x26a,0x26a,0,0,0,0,0,0,0,0x1635,0xcd5,0xcd5,0xcd5,0xcd5, +0xcd5,0xcd5,0xcd5,0xcd5,0x1416,0x12e4,0x1f5,0x1f5,0x1566,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb, +0x1fb,0,0x1fb,0x1fb,0x1fb,0,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb, +0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb, +0,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0,0,0xa2f,0x9ab,0x1f5,0x59d,0x5a0,0x1f5,0x59d,0x1f5, +0x1f5,0,0x59d,0x5a0,0x5a0,0,0x5a0,0x5a0,0x59d,0x5a3,0,0,0,0,0,0, +0,0x59d,0x59d,0,0,0,0,0,0,0x1755,0x1f8,0,0x1fb,0x1fb,0xc0c,0xc0c, +0,0,0x2d0,0x2d0,0x2d0,0x2d0,0x2d0,0x2d0,0x2d0,0x2d0,0x2d0,0x2d0,0,0xb9d,0xb9d,0x17ee, +0,0,0,0,0,0,0,0,0,0,0,0,0x1521,0x12e7,0x246,0x246, +0x16c5,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0,0x24c,0x24c,0x24c,0,0x24c,0x24c, +0x24c,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x246,0x5ac,0x5ac,0x5ac, +0xda1,0,0x246,0x246,0x246,0,0x249,0x249,0x249,0x654,0xfdb,0x141c,0,0,0,0, +0x141f,0x141f,0x141f,0x5ac,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x1377,0x24c,0x24c,0xda1,0xda1, +0,0,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0xcb4,0xcb4,0xcb4,0xcb4, +0xcb4,0xcb4,0x141c,0x141c,0x141c,0xcb7,0xcba,0xcba,0xcba,0xcba,0xcba,0xcba,0,0x1710,0x792,0x792, +0,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x798,0x798,0x79b,0x79b,0x79b, +0x79b,0x79b,0x79b,0,0,0,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x798,0x79b, +0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0,0x79b,0x79b,0x79b,0x79b,0x79b, +0x79b,0x79b,0x79b,0x79b,0,0x79b,0,0,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0, +0,0,0x82e,0,0,0,0,0x82b,0x792,0x792,0x82b,0x82b,0x82b,0,0x82b,0, +0x792,0x792,0x795,0x792,0x795,0x795,0x795,0x828,0,0,0,0,0,0,0x11c4,0x11c4, +0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0,0,0x792,0x78f,0x78c,0,0,0, +0,0,0,0,0,0,0,0,0,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f, +0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f, +0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x5c1,0x27f,0x27c,0x5c1,0x5c1,0x5c1,0x5c1, +0x5c1,0x5c1,0x5c7,0,0,0,0,0x2a,0x285,0x285,0x285,0x285,0x285,0x27f,0x282,0x5c4, +0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c1,0x5c4,0x273,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279, +0x279,0x279,0x276,0x276,0,0,0,0,0,0x207,0x207,0,0x207,0,0x161d,0x207, +0x207,0x161d,0x207,0,0x161d,0x207,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x207,0x207,0x207,0x207, +0x161d,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x161d,0x207,0x207,0x207,0,0x207,0,0x207, +0x161d,0x161d,0x207,0x207,0x161d,0x207,0x207,0x207,0x207,0x5a6,0x207,0x201,0x5a6,0x5a6,0x5a6,0x5a6, +0x5a6,0x5a6,0x168f,0x5a6,0x5a6,0x207,0,0,0x20d,0x20d,0x20d,0x20d,0x20d,0,0x20a,0, +0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a6,0x1833,0,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe, +0x1fe,0x1fe,0,0,0x204,0x204,0x10a1,0x10a1,0x68d,0x68d,0x68d,0x68a,0x68d,0x68d,0x68d,0x68d, +0,0x68d,0x68d,0x68d,0x68d,0x68a,0x68d,0x68d,0x68d,0x68d,0x68a,0x68d,0x68d,0x68d,0x68d,0x68a, +0x68d,0x68d,0x68d,0x68d,0x68a,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d, +0x68d,0x68a,0x7b6,0xce4,0xce4,0,0,0,0,0x6a8,0x6a8,0x6a5,0x6a8,0x6a5,0x6a5,0x6ba, +0x6a5,0x6ba,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x684,0x6a8,0x6a5,0x6b4,0x6b4,0x6b7,0x666,0x6b1,0x6b1, +0x68d,0x68d,0x68d,0x68d,0xfe4,0x1053,0x1053,0x1053,0x6a8,0x6a8,0x6a8,0x6a5,0x6a8,0x6a8,0x83d,0x6a8, +0,0x6a8,0x6a8,0x6a8,0x6a8,0x6a5,0x6a8,0x6a8,0x6a8,0x6a8,0x6a5,0x6a8,0x6a8,0x6a8,0x6a8,0x6a5, +0x6a8,0x6a8,0x6a8,0x6a8,0x6a5,0x6a8,0x83d,0x83d,0x83d,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8, +0x83d,0x6a5,0x83d,0x83d,0x83d,0,0x7b3,0x7b3,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x840,0x7b0, +0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0,0xcdb,0x7b0,0xace,0xace,0xcde,0xce1,0xcdb,0xddd,0xddd,0xddd, +0xddd,0xfe1,0xfe1,0,0,0,0,0,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0,0x109b, +0,0,0,0,0,0x109b,0,0,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192, +0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0xa9b, +0x705,0,0x705,0x705,0x705,0x705,0,0,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0, +0x705,0,0x705,0x705,0x705,0x705,0,0,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0xa9b, +0x705,0,0x705,0x705,0x705,0x705,0,0,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705, +0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0xa9b,0x705,0,0x705,0x705, +0x705,0x705,0,0,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0,0x705,0,0x705,0x705, +0x705,0x705,0,0,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0xa9b,0x705,0x705,0x705,0x705, +0x705,0x705,0x705,0,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705, +0x705,0x705,0x705,0xa9b,0x705,0,0x705,0x705,0x705,0x705,0,0,0x705,0x705,0x705,0x705, +0x705,0x705,0x705,0xa9b,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705, +0x705,0x705,0x705,0x705,0x705,0x705,0x705,0,0,0x1050,0x1050,0xb52,0xa98,0x6ff,0x708,0x6fc, +0x6fc,0x6fc,0x6fc,0x708,0x708,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x6f9,0x6f9, +0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0,0,0,0xa9b,0xa9b,0xa9b,0xa9b, +0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa98,0xa98,0xa98,0xa98, +0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0,0,0,0,0,0,0x6ea,0x6ea,0x6ea,0x6ea, 0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea, -0x6ea,0x6ea,0x6ea,0x6ea,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e7,0x6e4,0x6e4, -0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4, -0xa53,0x6e7,0x3a5,0x3a8,0x3a5,0x3a5,0x3a5,0x3a8,0x3a5,0x3a5,0x3a5,0x3a5,0x3a8,0xa53,0x3a8,0x3a5, -0x39f,0x399,0x39f,0x399,0x39f,0x399,0x39f,0x399,0x39f,0x399,0x39f,0x399,0x39f,0x399,0x39f,0x399, -0x39f,0x399,0x39f,0x399,0x39f,0x399,0x3a2,0x39c,0x39f,0x399,0x39f,0x399,0x39f,0x399,0x39f,0x399, -0x39f,0x399,0x396,0x98d,0x990,0x972,0x972,0x11e2,0xa4d,0xa4d,0xc1b,0xc18,0xa56,0xa50,0xa56,0xa50, -0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5, -0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5, -0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5,0x3ab,0x3a5, -0x3ab,0x3ae,0x3a8,0x3ab,0x3a5,0xc1b,0xc18,0x3ab,0x3a5,0xc1b,0xc18,0x3ab,0x3a5,0xc1b,0xc18,0xf57, -0x3ae,0x3a8,0x3ae,0x3a8,0x3ab,0x3a5,0x3ae,0x3a8,0x3ab,0x3a5,0x3ae,0x3a8,0x3ae,0x3a8,0x3ae,0x3a8, -0x3ab,0x3a5,0x3ae,0x3a8,0x3ae,0x3a8,0x3ae,0x3a8,0x3ab,0x3a5,0x3ae,0x3a8,0xa59,0xa53,0x3ae,0x3a8, -0x3ae,0x3a8,0x3ae,0x3a8,0x3ae,0x3a8,0xe10,0xe0d,0x3ae,0x3a8,0xf5a,0xf57,0xf5a,0xf57,0xf5a,0xf57, -0xc81,0xc7e,0xc81,0xc7e,0xc81,0xc7e,0xc81,0xc7e,0xc81,0xc7e,0xc81,0xc7e,0xc81,0xc7e,0xc81,0xc7e, -0xf87,0xf84,0xf87,0xf84,0x1092,0x108f,0x1092,0x108f,0x1092,0x108f,0x1092,0x108f,0x1092,0x108f,0x1092,0x108f, -0x1092,0x108f,0x1092,0x108f,0x121b,0x1218,0x13f8,0x13f5,0x15c6,0x15c3,0x15c0,0x15bd,0x15c0,0x15bd,0x15c6,0x15c3, -0xc,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0, -0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0xc,0xc,0x3c3,0x3b1,0x3b1, -0x3b1,0x3b7,0x3b1,0x3b4,0x19d7,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd, -0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd, -0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3ba,0x19d7,0x3c6,0xa5c,0xc,0xc,0x158d,0x158d,0x14a6, -0xf,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4, -0x9b4,0x9b4,0xe13,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4, -0x3c9,0x3c9,0x3c9,0x3c9,0x3cc,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0xf5d,0x3c9,0x3c9,0x3c9,0x3d8,0x3c9, -0x3cf,0x3c9,0x3c9,0x3db,0x9b7,0xe16,0xe1c,0xe19,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, -0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de, -0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0xf,0xf,0xf,0xf,0x19da, -0x3de,0x3de,0x3de,0x3d5,0x3d2,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, -0xd2c,0xd2c,0xd2c,0xd2c,0x14a9,0x1590,0x101a,0x101a,0x101a,0x1017,0x1017,0xe22,0x8f7,0xd26,0xd23,0xd23, -0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0x1014,0x1014,0x1014,0x1014,0x1014,0x8f4,0x1587,0x1bfc,0xe25,0x8fa, -0x13bf,0x3ff,0x402,0x402,0x402,0x402,0x402,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff, -0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x101d,0x101d,0x101d,0x101d,0x101d, -0x8fd,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x978,0x978,0x978,0x978,0x978, -0x978,0x978,0x978,0xbbb,0xbbb,0xbbb,0xd1a,0xd20,0xd1d,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0x13bc, -0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x3f3,0x3f0,0x3ed,0x3ea,0xc1e,0xc1e, -0x975,0x3ff,0x3ff,0x408,0x3ff,0x3fc,0x3fc,0x3fc,0x3fc,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff, -0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3f9,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff, -0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3f9,0x3ff,0x3ff, -0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff, -0x3ff,0x3ff,0x3ff,0x3ff,0xa62,0xa62,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0xa62,0x402,0x3ff,0x402,0x3ff, -0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0xa62,0x3ff,0x3ff,0x3ff,0x402, -0x996,0x3ff,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e1,0x3ea,0x3e7,0x3e7,0x3e4,0x3e4,0x3e4, -0x3e4,0x405,0x405,0x3e4,0x3e4,0x3ea,0x3e7,0x3e7,0x3e7,0x3e4,0xd29,0xd29,0x3f6,0x3f6,0x3f6,0x3f6, -0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0xa62,0xa62,0xa62,0xa5f,0xa5f,0xd29,0xa77,0xa77,0xa77,0xa71, -0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa6e,0xa71,0xa6e,0x12,0xa7a,0xa74,0xa65,0xa74,0xa74, -0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74, -0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xd2f,0xd2f,0xd2f,0xa6b,0xa6b,0xa6b,0xa6b, -0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa68,0xa68,0xa68,0xa68, -0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0x12,0x12,0xd2f,0xd2f,0xd2f,0xe85,0xe85,0xe85,0xe85, -0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85, -0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4, -0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0xa80,0xa80,0xa80,0xa80, -0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80, -0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80,0xa80, -0xa80,0xa80,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xc21,0x15,0x15, -0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0xf9f,0xf9f,0xf9f,0xf9f, -0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2, -0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2, -0xfa2,0xfa2,0xfa2,0xfa2,0xfa5,0xfa5,0xfa5,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96, -0xfa8,0xfa8,0xf99,0xf99,0xf9c,0xfae,0xfab,0xff,0xff,0x19fe,0x1a01,0x1a01,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb94,0xb94,0xb97,0xb97, -0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0x1d40,0x1d40,0x1d3d,0x1d3d,0x1dd,0x1dd,0x1dd,0x1dd, -0x1dd,0x1dd,0x1dd,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1e9,0x1e9,0x1e9,0x1e9, -0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1311,0x1311,0x1311,0x1311, -0x1311,0x1311,0x1311,0x1311,0x1311,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1cda,0x1cd7,0x1bf,0x1bf, -0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1563,0x1563,0x1563,0x1563, -0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1c59,0x1c59,0x1c59,0x1c59, -0x1c59,0x1c59,0x1c59,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x246,0x246,0x246,0x246, -0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1a4f,0x1a4f,0x1a4f,0x1a4f, -0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1bc0,0x288,0x288,0x288, -0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x183f,0x183f,0x183f,0x183f, -0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1c6b,0x1c6b,0x1c6b,0x1c6b, -0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x172b,0x172b,0x172b,0x172b, -0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1cc2,0x1cc2,0x1cc2,0x1cc2, -0x29d,0x1cc2,0x1cc2,0x1cc2,0x1cc2,0x1cc2,0x1cc2,0x1cc2,0x29d,0x1cc2,0x1cc2,0x29d,0x17a3,0x17a3,0x17a3,0x17a3, -0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1c9e,0x1c9e,0x1c9e,0x1c9e, -0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xe7c,0xe7c,0xe79,0xe79, -0xe79,0xe7c,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x210,0x1857,0x1857,0x1857, -0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x2b8,0x2b8,0x2b8,0x2b8, -0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x1cf5,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b0c,0x1b0c,0x1b0c,0x1b0c, -0x1b0c,0x1b0c,0x1b0c,0x1b0c,0x1b0c,0x1b0c,0x26d,0x26d,0x26d,0x26d,0x1b0f,0x1b09,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1c92,0x1c92,0x1c92,0x1c92, -0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1d25,0x1d25,0x1d25,0x1d25, -0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x252,0x1a64,0x1a64,0x1a64, -0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x270,0x270,0x270,0x270, -0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0,0,0,0, +0x6ea,0x1365,0,0,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0,0,0x783,0x786,0x786,0x786, +0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786, +0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x780,0x77d,0,0,0,0x789,0x789,0x789,0x789, +0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x7c5,0x7c5,0x7c5,0x789,0x789,0x789,0x11be,0x11be,0x11be, +0x11be,0x11be,0x11be,0x11be,0x11be,0,0,0,0,0,0,0,0x8f4,0x8f4,0x8f4,0x8f4, +0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,0x1773,0x8f4,0x8f4,0x8f4,0x8f4,0x945,0x945, +0x948,0x17ca,0,0,0,0,0,0,0,0,0,0x1773,0x8f7,0x8f7,0x8f7,0x8f7, +0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x94b,0x94b, +0x94e,0x900,0x900,0,0,0,0,0,0,0,0,0,0x8fa,0x8fa,0x8fa,0x8fa, +0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x951,0x951, +0,0,0,0,0,0,0,0,0,0,0,0,0x8fd,0x8fd,0x8fd,0x8fd, +0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0,0x8fd,0x8fd,0x8fd,0,0x954,0x954, +0,0,0,0,0,0,0,0,0,0,0,0,0x726,0x726,0x726,0x726, +0x726,0x726,0x801,0x726,0x726,0x80d,0x80d,0x80d,0x80d,0x80d,0x807,0x807,0x80d,0x80a,0x810,0x804, +0x732,0x732,0x720,0x72c,0x71a,0x714,0x71d,0x717,0x72c,0xa32,0,0,0x723,0x723,0x723,0x723, +0x723,0x723,0x723,0x723,0x723,0x723,0,0,0,0,0,0,0x9ae,0x9ae,0x9ae,0x9ae, +0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0,0,0,0,0,0,0x750,0x750,0x7cb,0x7ce, +0x756,0x7c8,0x753,0x750,0x759,0x768,0x75c,0x81c,0x81c,0x81c,0x74d,0x17c4,0x75f,0x75f,0x75f,0x75f, +0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0,0,0,0,0,0,0x762,0x762,0x762,0x762, +0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762, +0x762,0x762,0x762,0x762,0x1572,0,0,0,0,0,0,0,0x762,0x762,0x762,0x762, +0x762,0x762,0x762,0x762,0x762,0x816,0xcbd,0,0,0,0,0,0xe25,0xe25,0xe25,0xe25, +0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25, +0xe25,0xe25,0,0,0,0,0,0,0,0,0,0,0x9d5,0x9d5,0x9d5,0x9d5, +0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5, +0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x11c7,0x11c7,0,0xa35,0xa35,0xa35,0x9d2, +0x9d2,0x9d2,0x9d2,0xa35,0xa35,0x9d2,0x9d2,0x9d2,0,0,0,0,0x9d2,0x9d2,0xa35,0x9d2, +0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0xa38,0xa38,0xa38,0,0,0,0,0x9cc,0,0,0, +0x9d8,0x9d8,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9e7,0x9e7,0x9e7,0x9e7, +0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0,0, +0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0,0,0,0,0,0,0,0,0,0,0, +0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xe2b,0xe2b,0,0,0,0, +0xafb,0xafb,0xafb,0xafb,0xafb,0xafe,0xafe,0xafe,0xafb,0xafb,0xafe,0xafb,0xafb,0xafb,0xafb,0xafb, +0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0,0,0,0,0,0,0xaf8,0xaf8,0xaf8,0xaf8, +0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xe28,0,0,0,0xaf5,0xaf5,0xad7,0xad7,0xad7,0xad7, +0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7, +0xad7,0xad7,0xad7,0xb61,0xb61,0xad4,0xad4,0xb61,0,0,0xad1,0xad1,0xe5b,0xe5b,0xe5b,0xe5b, +0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b, +0xe5b,0xe58,0xf5a,0xe58,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0,0xf63,0xe55,0xf5a,0xe55, +0xe55,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xf5a, +0xf5a,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0,0,0xf5d,0xe52,0xe52,0xe52,0xe52, +0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0,0,0,0,0,0,0xe52,0xe52,0xe52,0xe52, +0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0,0,0,0,0,0,0xe4f,0xe4f,0xe4f,0xe4f, +0xe4f,0xe4f,0xe4f,0xe5e,0xe61,0xe61,0xe61,0xe61,0xe4f,0xe4f,0,0,0x12d8,0x12d8,0x12d8,0x12d8, +0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d2,0x170a,0x170a,0x17be,0x17be,0x17be, +0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17b8,0x17b8,0x17b8,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xbc1,0xbc1,0xc0f,0xc12, +0xc1b,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0x177c,0,0x1872,0x1872,0xbbb,0xbbb,0xbbb,0xbbb, +0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbca,0xbca,0xbb5,0xbb8,0xbca,0xbca,0xff0,0xff0,0xff0,0xff0, +0xff0,0xff0,0x105c,0xfed,0x1059,0x1059,0xfed,0xfed,0xfed,0x1059,0xfed,0x1059,0x1059,0x1059,0x105f,0x105f, +0,0,0,0,0,0,0,0,0xfea,0xfea,0xfea,0xfea,0xd0b,0xd0b,0xd0b,0xd0b, +0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc, +0xd08,0xd08,0xdc2,0xdbf,0,0,0,0xd0e,0xd0e,0xd02,0xd02,0xd02,0xd05,0xd05,0xd05,0xd05, +0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0,0,0,0xd0b,0xd0b,0xd0b,0xd32,0xd32,0xd32,0xd32, +0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0x1410,0x1410,0x1410,0x1410, +0x1410,0x1410,0x1410,0x1410,0x1410,0x1866,0x1863,0,0,0,0,0,0x155d,0x155d,0x155d,0x155d, +0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d, +0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0,0,0x155d,0x155d,0x155d,0x10bc,0x10bc,0x10bc,0x10bc, +0x10bc,0x10bc,0x10bc,0x10bc,0,0,0,0,0,0,0,0,0xf8a,0xf87,0xf8a,0xedf, +0xf87,0xf8d,0xf8d,0xf90,0xf8d,0xf90,0xf93,0xf87,0xf90,0xf90,0xf87,0xf87,0xf90,0xee2,0xf87,0xf87, +0xf87,0xf87,0xf87,0xf87,0xf87,0xee8,0xee5,0xedc,0xedc,0xf8d,0xedc,0xedc,0xedc,0xedc,0xeeb,0x1107, +0x1143,0x1104,0x1104,0x14fd,0x1344,0x1344,0x1674,0,0,0,0,0,0x1b3,0x1b3,0x1b3,0x1b3, +0x1b3,0x1b3,0x1b3,0x1b3,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b3,0x1b3,0x1b3,0x1b3, +0x1b3,0x1b3,0,0,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0,0,0x1b3,0x1b3,0x1b3,0x1b3, +0x1b3,0x1b3,0x1b3,0x1b3,0,0x1b6,0,0x1b6,0,0x1b6,0,0x1b6,0x1b3,0x1b3,0x1b3,0x1b3, +0x1b3,0x1b3,0x1b3,0x1b3,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b3,0x1a7,0x1b3,0x1a7, +0x1b3,0x1a7,0x1b3,0x1a7,0x1b3,0x1a7,0x1b3,0x1a7,0x1b3,0x1a7,0,0,0x1b3,0x1b3,0x1b3,0x1b3, +0x1b3,0x1b3,0x1b3,0x1b3,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b3,0x1b3,0x1b3,0x1b3, +0x1b3,0,0x1b3,0x1b3,0x1b6,0x1b6,0x1b6,0x1ad,0x1b6,0x198,0x1a7,0x198,0x198,0x195,0x1b3,0x1b3, +0x1b3,0,0x1b3,0x1b3,0x1b6,0x1ad,0x1b6,0x1ad,0x1b6,0x195,0x195,0x195,0x1b3,0x1b3,0x1b3,0x1a7, +0,0,0x1b3,0x1b3,0x1b6,0x1b6,0x1b6,0x1ad,0,0x195,0x195,0x195,0x1b3,0x1b3,0x1b3,0x1a7, +0x1b3,0x1b3,0x1b3,0x1b3,0x1b6,0x1b6,0x1b6,0x1ad,0x1b6,0x195,0x195,0x195,0,0,0x1b3,0x1b3, +0x1b3,0,0x1b3,0x1b3,0x1b6,0x1ad,0x1b6,0x1ad,0x1b6,0x19b,0x198,0,0x88e,0x891,0x891,0x891, +0xc21,9,0x1149,0x1149,0x1149,0x1149,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x3f,0x8ee,0,0, +0x2e8,0x3f,0x3f,0x3f,0x3f,0x3f,0x57,0x69,0x57,0x63,0x5d,0x366,0x3c,0x2e5,0x2e5,0x2e5, +0x2e5,0x3c,0x3c,0x3c,0x3c,0x3c,0x54,0x66,0x54,0x60,0x5a,0,0xac5,0xac5,0xac5,0xac5, +0xac5,0xfd5,0xfd5,0xfd5,0xfd5,0xfd5,0xfd5,0xfd5,0xfd5,0,0,0,0x561,0x564,0x7fb,0x7fb, +0x93c,0x942,0x942,0x93f,0x93f,0x93f,0x93f,0xb4c,0xc03,0xc03,0xc03,0xc03,0xdd4,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x21f,0x21f,0x21f,0x73e, +0xba0,0xc93,0xc93,0xc93,0xc93,0xf0c,0x1353,0x1353,0,0,0,0,0x336,0x336,0x336,0x336, +0x336,0x336,0x336,0x336,0x336,0x336,0xd2,0xd2,0xcf,0xcf,0xcf,0xcf,0xa86,0xa83,0xa86,0xa83, +0xa83,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xdf8,0xdf5,0xdf8,0xdf5,0xf42,0xf45,0xf45,0x1092,0x108f, +0,0,0,0,0,0xa8c,0xa89,0xa89,0xa7d,0xa7a,0xa80,0xa7d,0xa9e,0xa9e,0xa9e,0xa9e, +0xa9e,0xa9e,0,0x1095,0,0,0,0,0,0x1095,0,0,0xb01,0xb01,0xb01,0xb01, +0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0x10ad,0x10ad, +0,0,0,0,0,0,0,0xb04,0xfe7,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x1056,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b, +0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0, +0,0,0,0,0,0,0,0,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0, +0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0, +0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd, +0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd, +0x7dd,0x7dd,0,0x7dd,0x7dd,0x7dd,0x7dd,0x7e0,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd, +0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7e0,0,0,0,0, +0,0,0,0,0,0,0,0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0, +0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x7f2,0x7f2,0x7f5,0x7f5,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x1851,0x1851,0x184e,0x184e, +0,0x4d1,0x4cb,0x4d1,0x4cb,0x4d1,0x4cb,0x4d1,0x4cb,0x4d1,0x4cb,0x4cb,0x4ce,0x4cb,0x4ce,0x4cb, +0x4ce,0x4cb,0x4ce,0x4cb,0x4ce,0x4cb,0x4ce,0x4cb,0x4ce,0x4cb,0x4ce,0x4cb,0x4ce,0x4cb,0x4ce,0x4cb, +0x4cb,0x4cb,0x4cb,0x4d1,0x4cb,0x4d1,0x4cb,0x4d1,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4d1,0x4cb, +0x4cb,0x4cb,0x4cb,0x4cb,0x4ce,0x924,0x924,0,0,0x645,0x645,0x519,0x519,0x4d4,0x4d7,0x921, +0,0,0,0,0,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7, +0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7, +0x4a7,0xd71,0x1506,0x15db,0,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2, +0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0,0x525,0x525,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0xd77,0xd77,0xd77,0xd77,0x18e7,0x18e7,0,0, +0,0,0,0,0,0,0,0x1851,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927, +0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9, +0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9, +0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0xa17,0xa17,0,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec, +0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0,0,0,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9, +0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x92d,0x7e9,0x7e9,0x7e9,0x92d,0x7e9,0, +0,0,0,0,0,0,0,0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0, +0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14, +0xd14,0xd14,0xd1a,0xd1a,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7, +0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xf84,0xf84,0xec1,0xeca,0xec4,0xec4,0xec4,0xeca, +0,0,0,0,0,0,0,0,0x1761,0x175b,0x1629,0x1626,0x1629,0x1629,0x1629,0x16bf, +0x16bc,0x16bf,0x16bc,0x186c,0x186c,0x1869,0,0,0x1761,0x175b,0,0x175b,0,0x175b,0x1761,0x175b, +0x1761,0x175b,0x186c,0x1869,0x186c,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x1758,0x1758,0x1758,0x16b6,0x16b3,0x11a3, +0x10aa,0x10aa,0xfd2,0xc93,0xc93,0xc93,0xc93,0xc93,0xaf2,0xaf2,0xaf2,0xaef,0xaef,0xb6d,0xb6d,0xaef, +0xaec,0xaec,0xaec,0xaec,0x1713,0,0,0,0xef1,0xef1,0xef1,0xef4,0xef4,0xef4,0xef7,0xef7, +0xefa,0xef7,0,0,0,0,0,0,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8, +0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe5,0xbe5,0xbeb,0xbeb, +0,0,0,0,0,0,0,0,0xd4d,0xd4d,0xd4d,0xd4d,0xdcb,0x148e,0,0, +0,0,0,0,0,0,0xd53,0xd53,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a, +0xd4a,0xd4a,0,0,0,0,0,0,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xdc5, +0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xd44,0xdc8,0,0,0,0, +0,0,0,0,0,0,0,0xd41,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33, +0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33, +0xf33,0xf33,0xf33,0xf33,0xf33,0,0,0,0xf57,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe3a, +0xe46,0xe46,0xe37,0xe37,0xe37,0xe37,0,0xefd,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d, +0xe3d,0xe3d,0,0,0,0,0xe37,0xe37,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x12ea,0x11b8,0x11b5, +0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac, +0x11ac,0x11ac,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3, +0xcf3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xced,0xced,0xdb3,0xdb3,0xced,0xced,0xdb3,0xdb3,0, +0,0,0,0,0,0,0,0,0xcf0,0xcf0,0xcf0,0xdb3,0xcf0,0xcf0,0xcf0,0xcf0, +0xcf0,0xcf0,0xcf0,0xcf0,0xdb3,0xced,0,0,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea, +0xcea,0xcea,0,0,0xce7,0xcf6,0xcf6,0xcf6,0xeb8,0xf81,0xeb8,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xeb5,0xeb5,0xebb,0xeaf,0xeb2,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5, +0x10c5,0x10c5,0x10c5,0x10c2,0x1125,0x1125,0x10c2,0x10c2,0x10cb,0x10cb,0x10c5,0x10c8,0x10c8,0x10c2,0x1128,0, +0,0,0,0,0,0,0,0,0,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0, +0,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0,0,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0, +0,0,0,0,0,0,0,0,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0, +0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0, +0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x136e,0x136e,0x136e,0x136e,0x11a0,0x119a,0x1626,0x1626, +0x16b9,0x16c2,0x16a7,0x16a7,0,0,0,0,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362, +0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0xe6d,0xe6d,0xe6d,0xe67,0xe67,0xf66,0xe67,0xe67, +0xf66,0xe67,0xe67,0xe70,0xe6a,0xf69,0,0,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64, +0xe64,0xe64,0,0,0,0,0,0,0x69c,0x69c,0x69c,0x69c,0,0,0,0, +0,0,0,0,0,0,0,0,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d, +0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0,0,0,0,0xe0a, +0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a, +0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0,0,0,0, +0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0,0,0,0,0,0,0,0,0, +0,0,0,0x147,0x147,0x147,0x147,0x147,0,0,0,0,0,0x711,0x597,0x1e9, +0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1e6,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9, +0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0,0x1e9,0, +0x1e9,0x1e9,0,0x1e9,0x1e9,0,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1ec, +0x12c,0x126,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126, +0xfb1,0xfb1,0x1743,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x12c,0x12c,0x126, +0x126,0x126,0x126,0x129,0x126,0x126,0x129,0x126,0x129,0x129,0x129,0x126,0x129,0x129,0x129,0x129, +0,0,0x129,0x129,0x129,0x129,0x126,0x126,0x129,0x126,0x126,0x126,0x126,0x129,0x126,0x126, +0x126,0x126,0x126,0x129,0x129,0x129,0x126,0x126,0,0,0,0,0,0,0,0x1743, +0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879, +0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a, +0xb1f,0xb1f,0xb2e,0xb28,0xb25,0xb31,0xb31,0xb2b,0xb1c,0xb22,0,0,0,0,0,0, +0x456,0x47a,0x477,0x47a,0x477,0x930,0x930,0xa0e,0xa08,0x459,0x459,0x459,0x459,0x48f,0x48f,0x48f, +0x47d,0x480,0x495,0,0x486,0x483,0x498,0x498,0x471,0x465,0x453,0x465,0x453,0x465,0x453,0x45c, +0x45c,0x489,0x489,0x48c,0x489,0x489,0x489,0,0x489,0x46e,0x46b,0x45c,0,0,0,0, +0x11d,0x12f,0x11d,0x8d0,0x11d,0,0x11d,0x12f,0x11d,0x12f,0x11d,0x12f,0x11d,0x12f,0x11d,0x12f, +0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x12c, +0x126,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x12c,0x126,0,0,0x1b, +0,0x3ed,0x3cc,0x3ba,0x3c3,0x3c0,0x3ba,0x3cf,0x3bd,0x3b7,0x3ba,0x3db,0x3d2,0x3c9,0x3ea,0x3ba, +0x3e7,0x3e7,0x3e7,0x3e7,0x3e7,0x3e7,0x3e7,0x3e7,0x3e7,0x3e7,0x3d5,0x3d8,0x3db,0x3db,0x3db,0x3ed, +0x39c,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399, +0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0, +0,0,0x399,0x399,0x399,0x399,0x399,0x399,0,0,0x399,0x399,0x399,0x399,0x399,0x399, +0,0,0x399,0x399,0x399,0x399,0x399,0x399,0,0,0x399,0x399,0x399,0,0,0, +0x3c0,0x3c3,0x3db,0x3de,0x3ba,0x3c3,0x3c3,0,0x393,0x396,0x396,0x396,0x396,0x393,0x393,0, +9,9,9,9,9,9,9,9,9,0x6c3,0x6c3,0x6c3,0x6bd,0x2d9,0x288,0x288, +0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0,0x9db,0x9db,0x9db, +0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db, +0x9db,0x9db,0x9db,0,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db, +0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0,0x9db,0x9db,0,0x9db,0x9db,0x9db,0x9db,0x9db, +0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0,0,0x9db,0x9db,0x9db,0x9db, +0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0,0,0x9db,0x9db,0x9db,0x9db, +0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db, +0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0,0,0,0,0,0x9f3,0x9f3,0x9f9,0, +0,0,0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0, +0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0,0,0,0x9f6, +0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7, +0xaa7,0xaa7,0xaa7,0x1197,0x1197,0x1413,0x1413,0,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24, +0xc24,0xc24,0xc24,0xc24,0x16a4,0,0,0,0x1197,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a, +0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a, +0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xd7d,0,0,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29, +0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29, +0xd29,0xd29,0xd29,0xd29,0xd29,0,0,0,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26, +0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1347,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd, +0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd, +0x12bd,0x12bd,0x12bd,0x12bd,0,0,0,0,0x873,0x873,0x873,0x873,0,0,0,0, +0,0,0,0,0,0x14c4,0x14c4,0x14c4,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a, +0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0,0,0,0,0, +0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df, +0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0,0,0,0,0, +0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed, +0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0,0x9ea, +0xb0a,0xb0a,0xb0a,0xb0a,0,0,0,0,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, +0xb07,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0,0,0,0,0,0,0,0,0,0, +0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1, +0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0,0, +0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0,0,0,0,0,0, +0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a, +0x146a,0x146a,0x146a,0x146a,0,0,0,0,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467, +0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467, +0x1467,0x1467,0x1467,0x1467,0,0,0,0,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c, +0,0,0,0,0,0,0,0,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281, +0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0,0,0,0,0,0,0,0, +0,0,0,0x127e,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0, +0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0,0x17a3,0x17a3,0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0, +0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0, +0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0,0x17a0, +0x17a0,0,0,0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c3,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0, +0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0,0,0,0,0,0,0,0, +0,0,0,0,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc, +0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0,0,0,0,0, +0,0,0,0,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc, +0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0,0,0,0,0,0, +0,0,0,0,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1764,0x176a,0x176a,0x1767,0x1767,0x1767,0,0x1767,0x1767,0x1767,0x1767,0x1767, +0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, +0x1767,0x1767,0x1767,0x1767,0x1767,0,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0, +0,0,0,0,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0,0,0x9c9,0,0x9c9,0x9c9, +0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9, +0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0,0x9c9,0x9c9,0,0,0,0x9c9,0,0,0x9c9, +0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79, +0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0,0xe76,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73, +0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230, +0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0, +0,0,0,0,0,0,0,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf, +0x13bf,0x13bf,0x13bf,0,0x13bf,0x13bf,0,0,0,0,0,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc, +0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4, +0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbee,0xbee,0xbee,0xbee,0xe4c,0xe4c,0,0,0,0xbf1, +0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f, +0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0,0,0,0,0,0xd2c, +0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd, +0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0,0,0,0,0x1392,0x1392,0x10dd,0x10dd, +0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392, +0,0,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392, +0xae6,0xb64,0xb64,0xb64,0,0xb64,0xb64,0,0,0,0,0,0xb64,0xb64,0xb64,0xb64, +0xae6,0xae6,0xae6,0xae6,0,0xae6,0xae6,0xae6,0,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6, +0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6, +0x1578,0x1578,0,0,0xb67,0xb67,0xb67,0,0,0,0,0xb6a,0xae0,0xae0,0xae0,0xae0, +0xae0,0xae0,0xae0,0xae0,0x1575,0,0,0,0,0,0,0,0xae3,0xae3,0xae3,0xae3, +0xae3,0xae3,0xae9,0xae9,0xae0,0,0,0,0,0,0,0,0x11f1,0x11f1,0x11f1,0x11f1, +0x11f1,0x12fc,0x12fc,0,0,0,0,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11ee,0x11ee,0x12c0,0x11ee, +0x11ee,0x11ee,0x11eb,0,0,0,0,0,0,0,0,0,0xe82,0xe82,0xe82,0xe82, +0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82, +0xe82,0xe82,0,0,0,0xe7c,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xea0,0xea0,0xea0,0xea0, +0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0, +0xea0,0xea0,0,0,0xe9d,0xe9d,0xe9d,0xe9d,0xe9d,0xe9d,0xe9d,0xe9d,0xe9a,0xe9a,0xe9a,0xe9a, +0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0, +0,0,0,0,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0x11fa,0x11fa,0x11fa,0x11fa, +0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0,0, +0,0,0,0,0,0x11f7,0x11f7,0x11f7,0x11f7,0,0,0,0,0,0,0, +0,0,0,0,0,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xe49,0xe49,0xe49,0xe49, +0xe49,0xe49,0xe49,0xe49,0xe49,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1380,0x1380,0x1380,0x1380, +0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x137d,0x137d,0x137d,0x137d, +0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0, +0,0,0,0,0,0,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x15bd,0x15bd,0x15c0,0x15c0, +0x1608,0x1608,0x1608,0x1608,0,0,0,0,0,0,0,0,0x15ba,0x15ba,0x15ba,0x15ba, +0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0,0,0,0,0,0,0x1887,0x1887,0x1887,0x1887, +0x1887,0x1887,0,0,0,0x18f3,0x18f6,0x18f0,0x18f0,0x18f0,0x1878,0x188a,0x1881,0x1881,0x1881,0x1881, +0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0,0, +0,0,0,0,0,0,0x187b,0x187b,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef, +0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef, +0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x16f5,0x16f5,0,0x1725,0x1725,0x16f2,0,0,0x16f5,0x16f5,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x1860,0x1860,0x1860,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x18ea,0x182d,0x182d,0x182d, +0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cf,0,0,0,0,0,0,0,0, +0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6, +0x15c6,0x15c6,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x15c3,0x15c3,0x15c3, +0x15c3,0x15c9,0x15c9,0x15c9,0x15c9,0x15c9,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791, +0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x17d6,0x17d6,0x17d6,0x17d6,0x1794,0x1794, +0x1794,0x1794,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, +0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0,0,0,0,0, +0,0,0,0,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1065,0x1005,0x1005,0xff6,0xff6,0xff6, +0xff6,0xff6,0,0,0,0,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3, +0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9, +0x17d0,0x1782,0x1782,0x17cd,0x17cd,0x1782,0,0,0,0,0,0,0,0,0,0x12f3, +0xe91,0xe91,0x17d3,0,0,0,0,0,0,0,0,0,0,0x1584,0,0, +0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8, +0x10f8,0,0,0,0,0,0,0,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5, +0x10f5,0x10f5,0,0,0,0,0,0,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x112b, +0x112b,0x112b,0x112b,0x112b,0x10d4,0x112b,0x112e,0x112e,0x112b,0x112b,0x112b,0x1131,0x1131,0,0x10d1,0x10d1, +0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10ce,0x10da,0x10da,0x10da,0x1581,0x157e,0x157e,0x16c8, +0,0,0,0,0,0,0,0,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a, +0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x1332,0x1284,0x1287,0x128a,0, +0,0,0,0,0,0,0,0,0,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1, +0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0,0,0, +0,0,0,0,0,0,0,0,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269, +0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0,0x1269,0x1269,0x1269,0x1269,0x1269, +0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1803,0x183c,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0, +0x13c2,0,0x13c2,0x13c2,0x13c2,0x13c2,0,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2, +0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2, +0x13c2,0x13c5,0,0,0,0,0,0,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f, +0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123c,0x123c,0x123c,0x1314,0x1314,0x1314,0x1314,0x1314, +0x1314,0x1317,0x131a,0,0,0,0,0,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239, +0x1239,0x1239,0,0,0,0,0,0,0x13ec,0x134a,0x120f,0x12c3,0,0x1218,0x1218,0x1218, +0x1218,0x1218,0x1218,0x1218,0x1218,0,0,0x1218,0x1218,0,0,0x1218,0x1218,0x1218,0x1218,0x1218, +0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218, +0x1218,0,0x1218,0x1218,0,0x1218,0x1218,0x1218,0x1218,0x1218,0,0x160e,0x134d,0x1215,0x1308,0x120f, +0x1308,0x120f,0x120f,0x120f,0x120f,0,0,0x120f,0x120f,0,0,0x1212,0x1212,0x130e,0,0, +0x138f,0,0,0,0,0,0,0x1308,0,0,0,0,0,0x121e,0x121b,0x121b, +0x1218,0x1218,0x120f,0x120f,0,0,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0,0,0, +0x130b,0x130b,0x130b,0x130b,0x130b,0,0,0,0,0,0,0,0,0,0,0, +0x18d5,0x18d5,0x18d5,0x18d8,0x18d5,0x18d8,0x18d5,0x18d5,0x18d5,0x18d5,0,0x18d5,0,0,0x18d8,0, +0x18d5,0x18d8,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, +0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0,0x18cc,0x1908,0x18c9,0x18c9,0x1908, +0x1908,0x1908,0x1908,0x1908,0x1908,0,0x1908,0,0,0x190b,0,0x190b,0x190b,0x1908,0x18c9,0, +0x18c9,0x18c9,0x1914,0x1914,0x1917,0x18d2,0x1911,0x18db,0x18de,0x18de,0,0x18c6,0x18c6,0,0,0, +0,0,0,0,0,0x190e,0x190e,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x145e,0x145e,0x14ac,0x14a6,0x14a6,0x145e,0x14a9,0x1461,0x1461,0x1461,0x1461,0x1464, +0x1464,0x1458,0x1455,0x1452,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x16d1,0x1458, +0,0x1452,0x15f3,0x164d,0x16d4,0x16d4,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x9b1,0x9b1,3,3,3,3, +0,0,0,0,0x1329,0x1275,0x132f,0x132c,0x127b,0x127b,0x126f,0x127b,0,0,0,0, +0,0,0,0,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0,0, +0,0,0,0,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae, +0x12ae,0x12ae,0x12ae,0x133b,0x12a8,0x12a8,0x133b,0x133b,0x133b,0x133b,0,0,0x12a8,0x12a8,0x12ab,0x12ab, +0x133b,0x133b,0x12a8,0x1341,0x133e,0x129f,0x12b1,0x12b1,0x12a2,0x12a2,0x12a5,0x12a5,0x12a5,0x12b1,0x13cb,0x13cb, +0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13c8,0x13c8,0x13c8,0x13c8, +0x13fb,0x13fb,0,0,0x1335,0x1299,0x1299,0x128d,0x1296,0,0,0,0,0,0,0, +0,0,0,0,0x1290,0x1290,0x1290,0x1290,0x1290,0x1290,0x1290,0x1290,0x1290,0x1290,0,0, +0,0,0,0,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422, +0x1422,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x113a, +0x10fe,0x113a,0x10fe,0x10fe,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x1140,0x113d,0x1647,0x1785,0,0, +0,0,0,0,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0,0, +0,0,0,0,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f, +0x186f,0x186f,0x186f,0x186f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, +0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x1587,0,0,0x13f5,0x13b3,0x13f5, +0x13b0,0x13b0,0x13f5,0x13f5,0x13f5,0x13f5,0x13b3,0x13f5,0x13f5,0x13f5,0x13f5,0x13f8,0,0,0,0, +0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13aa,0x13aa,0x13b9,0x13b9,0x13b9,0x13aa, +0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1590,0x1590,0x1590,0x15f6, +0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x1590,0x15fc,0x15f9,0x158d,0,0,0,0, +0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242, +0x1242,0x1242,0x1242,0,0,0,0,0,0,0,0,0,0,0,0,0x124b, +0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0,0,0x16e9,0,0,0x16e9,0x16e9,0x16e9,0x16e9, +0x16e9,0x16e9,0x16e9,0x16e9,0,0x16e9,0x16e9,0,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9, +0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x1719,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0,0x16e3, +0x16e6,0,0,0x1719,0x1719,0x171f,0x1722,0x16ec,0x16e3,0x16ec,0x16e3,0x171c,0x16ef,0x16dd,0x16ef,0, +0,0,0,0,0,0,0,0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0, +0x16e0,0x16e0,0,0,0,0,0,0,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, +0,0,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, +0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1665,0x1665,0x1665,0x1698,0x1698,0x1698,0x1698, +0,0,0x1698,0x1698,0x1665,0x1665,0x1665,0x1665,0x169b,0x1668,0x1662,0x1668,0x1665,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x14e8,0x14eb,0x14fa,0x14fa,0x14eb,0x14ee,0x14e8,0x153f, +0,0,0,0,0,0,0,0,0x14df,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x14dc, +0x14dc,0x1530,0x1530,0x1530,0x14df,0x14df,0x14df,0x14df,0x14d6,0x14d9,0x14d9,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770, +0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c, +0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c, +0x129c,0,0,0,0,0,0,0,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb, +0x17eb,0x17eb,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x18bd,0x18b7,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, +0x18ba,0x18ba,0,0,0,0,0,0,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440, +0x1440,0,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440, +0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x143d,0x149d,0x149d,0x149d,0x149d, +0x149d,0x149d,0x149d,0,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x143d,0x14a0,0x1440,0x1443,0x1443,0x1437, +0x1434,0x1434,0,0,0,0,0,0,0,0,0,0,0x143a,0x143a,0x143a,0x143a, +0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431, +0x1431,0x1431,0x1431,0x1431,0x1431,0,0,0,0x1446,0x1449,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f, +0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0,0,0x14a3,0x14a3, +0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0,0x144c,0x14a3,0x14a3, +0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x144c,0x14a3,0x14a3,0x144c,0x14a3,0x14a3,0,0,0,0,0, +0,0,0,0,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0,0x14cd,0x14cd,0,0x14cd, +0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x14cd, +0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0,0,0,0x1527,0, +0x1527,0x1527,0,0x1527,0x1527,0x1527,0x152a,0x1527,0x152d,0x152d,0x14d0,0x1527,0,0,0,0, +0,0,0,0,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0,0, +0,0,0,0,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0,0x159c,0x159c,0,0x159c,0x159c, +0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c, +0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x1599,0x1599,0x1599,0x1599,0x1599,0,0x15ff,0x15ff,0,0x1599, +0x1599,0x15ff,0x1599,0x1602,0x159c,0,0,0,0,0,0,0,0x1596,0x1596,0x1596,0x1596, +0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x15a5,0x15a5,0x15a5,0x15a5, +0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a2,0x1605, +0x1605,0x159f,0x159f,0x15a8,0x15a8,0,0,0,0,0,0,0,0x183f,0x183f,0x1812,0x180c, +0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0,0x180f,0x180f, +0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, +0x180f,0x180f,0x180f,0x180f,0x180c,0x180c,0x183f,0x183f,0x183f,0x183f,0x183f,0,0,0,0x180c,0x180c, +0x183f,0x1842,0x1845,0x1815,0x1815,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806, +0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x18ed,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x16cb,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1632,0x162c,0x162c,0x162c, +0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x162f,0x11e5,0x11e5,0x11e5,0x11e5, +0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5, +0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x1383,0,0,0,0,0,0,0xbfa,0xbfa,0xbfa,0x11e5, +0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0,0xbf7,0xbf7,0xbf7,0xbf7, +0x11e2,0,0,0,0,0,0,0,0,0,0,0,0x1383,0x1383,0x1383,0x1383, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x178e,0x178e,0x178e,0x178e, +0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178b,0x178b,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1836,0x17fd,0x17fd,0x17fd, +0x17fd,0x17fd,0x17fd,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839, +0x1839,0x1839,0,0,0,0,0,0,0,0,0,0,0x1875,0x1875,0x1875,0x1875, +0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875, +0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0,0,0,0,0,0x13a1,0x13a1,0x13a1,0x13a1, +0x13a1,0x13a1,0x13a1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x18f9,0x18fc,0x18fc,0x18fc, +0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18f9,0x1893,0x1893,0x1893,0x18f9,0x18f9,0x18ff,0x1890,0x1890,0x1890,0x1890, +0x1890,0x1890,0x1890,0x1890,0x1890,0x1890,0,0,0,0,0,0,0x100e,0x100e,0x100e,0x100e, +0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e, +0x100e,0x100e,0x100e,0x100e,0x100e,0,0,0,0,0,0,0,0x1254,0x1254,0x1254,0x1254, +0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254, +0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0,0x1251,0x1251,0x1251,0x1251, +0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0,0,0,0,0x1257,0x1257,0x179a,0x179a,0x179a,0x179a, +0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a, +0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0,0x1797,0x1797,0x1797,0x1797, +0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0,0,0,0,0,0,0x11fd,0x11fd,0x11fd,0x11fd, +0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0,0, +0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x1200,0,0,0,0,0,0,0,0,0,0, +0x11d3,0x11d3,0x11d6,0x11d6,0x11d9,0x11ca,0,0,0,0,0,0,0,0,0,0, +0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca, +0x11ca,0x11ca,0,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3, +0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0,0,0,0,0,0x11d3,0x11d3,0x11d3, +0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x189f,0x189f,0x189f,0x18a2,0x189f,0x189f,0x189f,0x18a2,0x18a5,0x18a5,0x18a5,0x18a8,0x18a8,0x1899,0x18ab,0x18ab, +0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0,0,0,0,0,0, +0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab, +0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ae,0x15b7,0x15ab,0x15ab,0,0,0,0,0, +0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0,0,0,0,0x1692, +0x10b6,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3, +0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0,0,0,0,0,0,0,0x111c, +0x111c,0x111c,0x111c,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9, +0x147f,0x1512,0x1680,0x1683,0x172b,0,0,0,0,0,0,0,0,0,0,0, +0x1728,0x1728,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x15e1,0x15e1,0x15e1, +0x15e1,0x15e1,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0,0,0,0,0,0,0,0, +0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707, +0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x18e4,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704, +0x1704,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x17b5,0x17b5,0x17b5,0x17b5,0,0x17b5,0x17b5,0x17b5, +0x17b5,0x17b5,0x17b5,0x17b5,0,0x17b5,0x17b5,0,0x17b2,0x17b2,0x17b2,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x1827,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1686,0x1686,0x1686,0, +0,0x182a,0,0,0,0,0,0,0,0,0,0,0x1689,0x1689,0x1689,0x1689, +0,0,0,0,0,0,0,0,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f, +0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f, +0x150f,0x150f,0x150f,0x150f,0,0,0,0,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206, +0x1206,0x1206,0x1206,0,0,0,0,0,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206, +0x1206,0x1206,0x1206,0x1206,0x1206,0,0,0,0,0,0,0,0x1206,0x1206,0x1206,0x1206, +0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0,0,0x1203,0x1302,0x1305,0x1209,0x12b4,0x12b4,0x12b4,0x12b4, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1857,0x1857,0x1857,0x1857, +0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x185a,0x185a,0x185a,0x185a, +0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0,0,0,0,0,0,0x1854,0x1854,0x1854,0x1854, +0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854, +0,0,0,0,0,0,0,0,0,0,0,0,0x17bb,0x17bb,0x17bb,0x17bb, +0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0,0,0x17bb,0x17bb,0x17bb,0x17bb, +0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0, +0,0,0,0,0,0,0,0,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731, +0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852, +0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0,0,0,0,0,0, +0,0,0,0,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0,0,0xc2d,0x852,0x852, +0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852, +0x852,0x852,0x852,0x852,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1731,0x1731,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xaaa,0xaaa,0xb55,0xb55,0xb55,0xaaa,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df, +0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0,0,0,0,0,0,0,0, +0,0,0,0,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, +0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0,0,0,0,0,0,0,0, +0,0,0,0,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05, +0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0,0,0,0,0, +0,0,0,0,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, +0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x1545,0x1545,0,0,0, +0,0,0,0,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861, +0x861,0x861,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x861,0x861,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x861,0,0x861,0x861,0,0,0x861,0,0,0x861,0x861,0,0,0x861,0x861,0x861, +0x861,0,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x85e,0x85e,0x85e,0x85e,0,0x85e, +0,0x85e,0x85e,0x85e,0x85e,0x969,0x85e,0x85e,0,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861, +0x861,0x861,0x861,0x861,0x85e,0x85e,0x85e,0x85e,0x861,0x861,0,0x861,0x861,0x861,0x861,0, +0,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0,0x861,0x861,0x861,0x861,0x861,0x861, +0x861,0,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x861,0x861,0,0x861, +0x861,0x861,0x861,0,0x861,0x861,0x861,0x861,0x861,0,0x861,0,0,0,0x861,0x861, +0x861,0x861,0x861,0x861,0x861,0,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0xa50,0xa50,0,0,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861, +0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861, +0x85e,0x85e,0x85e,0x858,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0xb88,0xb85,0,0,0x85b,0x85b, +0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b, +0x1386,0x1386,0x1386,0x1386,0x13e9,0x1386,0x1386,0x1389,0x138c,0x1389,0x1389,0x1386,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9, +0,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175e,0x175b,0x175b,0x175b,0x175b,0x175b, +0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0, +0,0,0,0,0,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b, +0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0,0,0x148b,0x148b,0x148b,0x148b,0x148b, +0x148b,0x148b,0,0x148b,0x148b,0,0x148b,0x148b,0x148b,0x148b,0x148b,0,0,0,0,0, +0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8, +0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e8,0x17e8,0x17e8,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x1830,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c, +0x165c,0,0,0,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x165c,0x165c,0x165c,0x165c,0x165c, +0x165f,0x165f,0,0,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0,0, +0,0,0x165c,0x1656,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d, +0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x17d9,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671, +0x1671,0x1671,0x1671,0x1671,0x169e,0x169e,0x169e,0x169e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e, +0x166e,0x166e,0,0,0,0,0,0x166b,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b, +0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x1848,0x1848,0x1848,0x1848,0x1818,0x1818,0x1818,0x1818, +0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4, +0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x1902,0x1905,0x18b4,0x18b1,0x18b1,0x18b1, +0x18b1,0x18b1,0x18b1,0x18b1,0x18b1,0x18b1,0x18b1,0,0,0,0,0x18ae,0x1752,0x1752,0x1752,0x1752, +0x1752,0x1752,0x1752,0,0x1752,0x1752,0x1752,0x1752,0,0x1752,0x1752,0,0x1752,0x1752,0x1752,0x1752, +0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0,0x1224,0x1224,0x1224,0x1224, +0x1224,0,0,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1311,0x1311,0x1311,0x1311, +0x1311,0x1311,0x1311,0,0,0,0,0,0,0,0,0,0x142b,0x142b,0x142b,0x142b, +0x149a,0x149a,0x149a,0x1494,0x1497,0x1497,0x1497,0x164a,0,0,0,0,0x1428,0x1428,0x1428,0x1428, +0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0,0,0,0,0x1425,0x1425,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x1545,0x1545,0x1545, +0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x154b,0x1545,0x1545,0x1545, +0x154b,0x1545,0x1545,0x1545,0x1545,0,0,0,0,0,0,0,0,0,0,0, +0,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611, +0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611, +0x1611,0x1611,0,0,0x1086,0x1086,0x1086,0x1086,0,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086, +0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086, +0x1086,0x1086,0x1086,0x1086,0,0x1086,0x1086,0,0x1086,0,0,0x1086,0,0x1086,0x1086,0x1086, +0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0,0x1086,0x1086,0x1086,0x1086,0,0x1086,0,0x1086, +0,0,0,0,0,0,0x1086,0,0,0,0,0x1086,0,0x1086,0,0x1086, +0,0x1086,0x1086,0x1086,0,0x1086,0x1086,0,0x1086,0,0,0x1086,0,0x1086,0,0x1086, +0,0x1086,0,0x1086,0,0x1086,0x1086,0,0x1086,0,0,0x1086,0x1086,0x1086,0x1086,0, +0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0,0x1086,0x1086,0x1086,0x1086,0,0x1086,0x1086,0x1086, +0x1086,0,0x1086,0,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0,0x1086, +0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086, +0,0,0,0,0,0x1086,0x1086,0x1086,0,0x1086,0x1086,0x1086,0x1086,0x1086,0,0x1086, +0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1080,0x1080,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0,0,0,0, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152, +0,0,0,0,0,0,0,0,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152, +0x1152,0x1152,0,0,0,0,0,0,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152, +0,0,0,0,0,0,0,0,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0,0,0x16a4,0x16a4,0x1854,0x1854, +0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0,0,0,0,0x1854,0x1854,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x16a4,0x16a4,0x16a4,0x16a4, +0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0, +0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x1854,0x1854,0x1854,0x1854, +0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x16aa,0x16aa,0x16aa,0x16aa, +0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x693,0x693,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27, +0xc27,0xc27,0xc27,0xc27,3,3,3,3,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27, +0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,3,3,3,3, +3,3,3,3,3,3,3,3,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c, +0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,3,3,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c, +0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0x1155,3,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c, +0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0x1023,3,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c, +0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155, +0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,3,3, +3,3,3,3,3,3,3,3,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470, +0x1470,0x1470,0x1470,0x1470,0x1470,0x16a4,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,0x9b1,0x9b1, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -0x1596,0x426,0x435,0x435,0x18,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x18,0x18,0x43e, -0x43e,0x18,0x18,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e, -0x43e,0x18,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x18,0x43e,0x18,0x18,0x18,0x43e,0x43e, -0x43e,0x43e,0x18,0x18,0x429,0xd35,0x426,0x435,0x435,0x426,0x426,0x426,0x426,0x18,0x18,0x435, -0x435,0x18,0x18,0x438,0x438,0x42c,0xe2b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x426, -0x18,0x18,0x18,0x18,0x43b,0x43b,0x18,0x43b,0x43e,0x43e,0x426,0x426,0x18,0x18,0x99c,0x99c, -0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x43e,0x43e,0x432,0x432,0x42f,0x42f,0x42f,0x42f, -0x42f,0x432,0x42f,0x11f1,0x1938,0x1935,0x19dd,0x18,0x1b,0xd38,0x441,0xd3b,0x1b,0x450,0x450,0x450, -0x450,0x450,0x450,0x1b,0x1b,0x1b,0x1b,0x450,0x450,0x1b,0x1b,0x450,0x450,0x450,0x450,0x450, -0x450,0x450,0x450,0x450,0x450,0x450,0x450,0x450,0x450,0x1b,0x450,0x450,0x450,0x450,0x450,0x450, -0x450,0x1b,0x450,0x44d,0x1b,0x450,0x44d,0x1b,0x450,0x450,0x1b,0x1b,0x444,0x1b,0x44a,0x44a, -0x44a,0x441,0x441,0x1b,0x1b,0x1b,0x1b,0x441,0x441,0x1b,0x1b,0x441,0x441,0x447,0x1b,0x1b, -0x1b,0x1026,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x44d,0x44d,0x44d,0x450,0x1b,0x44d,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f, -0x441,0x441,0x450,0x450,0x450,0x1026,0x19e0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1e,0x453,0x453,0x45c,0x1e,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0xd44,0x45f,0x1e,0x45f, -0x45f,0x45f,0x1e,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f, -0x45f,0x1e,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x1e,0x45f,0x45f,0x1e,0x45f,0x45f,0x45f, -0x45f,0x45f,0x1e,0x1e,0x456,0x45f,0x45c,0x45c,0x45c,0x453,0x453,0x453,0x453,0x453,0x1e,0x453, -0x453,0x45c,0x1e,0x45c,0x45c,0x459,0x1e,0x1e,0x45f,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, -0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x45f,0xd44,0xd3e,0xd3e,0x1e,0x1e,0x9a2,0x9a2, -0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x14ac,0xd41,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, -0x1e,0x17b8,0x193b,0x193b,0x193b,0x193e,0x193e,0x193e,0x21,0x462,0x471,0x471,0x21,0x47a,0x47a,0x47a, -0x47a,0x47a,0x47a,0x47a,0x47a,0x21,0x21,0x47a,0x47a,0x21,0x21,0x47a,0x47a,0x47a,0x47a,0x47a, -0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x21,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a, -0x47a,0x21,0x47a,0x47a,0x21,0xd47,0x47a,0x47a,0x47a,0x47a,0x21,0x21,0x465,0x47a,0x462,0x462, -0x471,0x462,0x462,0x462,0x1029,0x21,0x21,0x471,0x474,0x21,0x21,0x474,0x474,0x468,0x21,0x21, -0x21,0x21,0x21,0x21,0x21,0x1b54,0x462,0x462,0x21,0x21,0x21,0x21,0x477,0x477,0x21,0x47a, -0x47a,0x47a,0x1029,0x1029,0x21,0x21,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, -0x46b,0xd47,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, -0x24,0x24,0x47d,0x489,0x24,0x489,0x489,0x489,0x489,0x489,0x489,0x24,0x24,0x24,0x489,0x489, -0x489,0x24,0x489,0x489,0x48c,0x489,0x24,0x24,0x24,0x489,0x489,0x24,0x489,0x24,0x489,0x489, -0x24,0x24,0x24,0x489,0x489,0x24,0x24,0x24,0x489,0x489,0x489,0x24,0x24,0x24,0x489,0x489, -0x489,0x489,0x489,0x489,0x489,0x489,0xe2e,0x489,0x489,0x489,0x24,0x24,0x24,0x24,0x47d,0x483, -0x47d,0x483,0x483,0x24,0x24,0x24,0x483,0x483,0x483,0x24,0x486,0x486,0x486,0x480,0x24,0x24, -0x102c,0x24,0x24,0x24,0x24,0x24,0x24,0x47d,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, -0x24,0x24,0xf4b,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a5,0x9a5,0x9a5,0xdfb, -0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4d,0xd4a,0x24,0x24,0x24,0x24,0x24,0x1599,0x49b,0x49b,0x49b, -0x19e3,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x27,0x49e,0x49e,0x49e,0x27,0x49e,0x49e, -0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x27,0x49e,0x49e, -0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x159c,0x49e,0x49e,0x49e,0x49e,0x49e,0x27,0x27, -0x1bff,0x1038,0x48f,0x48f,0x48f,0x49b,0x49b,0x49b,0x49b,0x27,0x48f,0x48f,0x492,0x27,0x48f,0x48f, -0x48f,0x495,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x48f,0x48f,0x27,0x1035,0x1035,0x17bb,0x27, -0x27,0x1c02,0x27,0x27,0x49e,0x49e,0x102f,0x102f,0x27,0x27,0x498,0x498,0x498,0x498,0x498,0x498, -0x498,0x498,0x498,0x498,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x1ab2,0x1032,0x1032,0x1032,0x1032, -0x1032,0x1032,0x1032,0x1032,0x187b,0x159f,0x4a7,0x4a7,0x19e6,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0, -0x4b0,0x2a,0x4b0,0x4b0,0x4b0,0x2a,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0, -0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x2a,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0, -0x2a,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x2a,0x2a,0xd50,0xd53,0x4a7,0x4a1,0x4aa,0x4a7,0x4a1,0x4a7, -0x4a7,0x2a,0x4a1,0x4aa,0x4aa,0x2a,0x4aa,0x4aa,0x4a1,0x4a4,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x4a1,0x4a1,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x1c05,0x4ad,0x2a,0x4b0,0x4b0,0xf63,0xf63, -0x2a,0x2a,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x2a,0xf66,0xf66,0x1cc8, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x1941,0x15a2,0x4bc,0x4bc, -0x1b57,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x2d,0x4c2,0x4c2,0x4c2,0x2d,0x4c2,0x4c2, -0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4bc,0x4b3,0x4b3,0x4b3, -0x103b,0x2d,0x4bc,0x4bc,0x4bc,0x2d,0x4bf,0x4bf,0x4bf,0x4b6,0x13d1,0x187e,0x2d,0x2d,0x2d,0x2d, -0x1881,0x1881,0x1881,0x4b3,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x17be,0x4c2,0x4c2,0x103b,0x103b, -0x2d,0x2d,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x103e,0x103e,0x103e,0x103e, -0x103e,0x103e,0x187e,0x187e,0x187e,0x1041,0x1044,0x1044,0x1044,0x1044,0x1044,0x1044,0x30,0x1b5a,0xa92,0xa92, -0x30,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa98,0xa98,0xa9b,0xa9b,0xa9b, -0xa9b,0xa9b,0xa9b,0x30,0x30,0x30,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa98,0xa9b, -0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0x30,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b, -0xa9b,0xa9b,0xa9b,0xa9b,0x30,0xa9b,0x30,0x30,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0x30, -0x30,0x30,0xa89,0x30,0x30,0x30,0x30,0xa86,0xa92,0xa92,0xa86,0xa86,0xa86,0x30,0xa86,0x30, -0xa92,0xa92,0xa95,0xa92,0xa95,0xa95,0xa95,0xa83,0x30,0x30,0x30,0x30,0x30,0x30,0x15a5,0x15a5, -0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x30,0x30,0xa92,0xa8f,0xa8c,0x30,0x30,0x30, -0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x33,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd, -0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd, -0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4c8,0x4dd,0x4da,0x4c8,0x4c8,0x4c8,0x4c8, -0x4c8,0x4c8,0x4ce,0x33,0x33,0x33,0x33,0x4c5,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4dd,0x4e0,0x4cb, -0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4c8,0x4cb,0x4d1,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7, -0x4d7,0x4d7,0x4d4,0x4d4,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, -0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, -0x33,0x33,0x33,0x33,0x36,0x4f5,0x4f5,0x36,0x4f5,0x36,0x1ab8,0x4f5,0x4f5,0x1ab8,0x4f5,0x36, -0x1ab8,0x4f5,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x4f5,0x4f5,0x4f5,0x4f5,0x1ab8,0x4f5,0x4f5,0x4f5, -0x4f5,0x4f5,0x4f5,0x4f5,0x1ab8,0x4f5,0x4f5,0x4f5,0x36,0x4f5,0x36,0x4f5,0x1ab8,0x1ab8,0x4f5,0x4f5, -0x1ab8,0x4f5,0x4f5,0x4f5,0x4f5,0x4e6,0x4f5,0x4ef,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x1ab5,0x4e6, -0x4e6,0x4f5,0x36,0x36,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x36,0x4f8,0x36,0x4e9,0x4e9,0x4e9,0x4e9, -0x4e9,0x4e6,0x1ccb,0x36,0x4ec,0x4ec,0x4ec,0x4ec,0x4ec,0x4ec,0x4ec,0x4ec,0x4ec,0x4ec,0x36,0x36, -0x4f2,0x4f2,0x14af,0x14af,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, -0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, -0x36,0x36,0x36,0x36,0x9fc,0x9fc,0x9fc,0x9f9,0x9fc,0x9fc,0x9fc,0x9fc,0x39,0x9fc,0x9fc,0x9fc, -0x9fc,0x9f9,0x9fc,0x9fc,0x9fc,0x9fc,0x9f9,0x9fc,0x9fc,0x9fc,0x9fc,0x9f9,0x9fc,0x9fc,0x9fc,0x9fc, -0x9f9,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9f9,0xaaa,0x1050, -0x1050,0x39,0x39,0x39,0x39,0x9bd,0x9bd,0x9ba,0x9bd,0x9ba,0x9ba,0x9cf,0x9ba,0x9cf,0x9bd,0x9bd, -0x9bd,0x9bd,0x9bd,0x9f3,0x9bd,0x9ba,0x9c9,0x9c9,0x9cc,0x9d5,0x9c6,0x9c6,0x9fc,0x9fc,0x9fc,0x9fc, -0x13da,0x13d4,0x13d4,0x13d4,0x9bd,0x9bd,0x9bd,0x9ba,0x9bd,0x9bd,0xa9e,0x9bd,0x39,0x9bd,0x9bd,0x9bd, -0x9bd,0x9ba,0x9bd,0x9bd,0x9bd,0x9bd,0x9ba,0x9bd,0x9bd,0x9bd,0x9bd,0x9ba,0x9bd,0x9bd,0x9bd,0x9bd, -0x9ba,0x9bd,0xa9e,0xa9e,0xa9e,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0xa9e,0x9ba,0xa9e,0xa9e, -0xa9e,0x39,0xaa7,0xaa7,0xaa4,0xaa4,0xaa4,0xaa4,0xaa4,0xaa4,0xaa1,0xaa4,0xaa4,0xaa4,0xaa4,0xaa4, -0xaa4,0x39,0x1047,0xaa4,0xe31,0xe31,0x104a,0x104d,0x1047,0x11f4,0x11f4,0x11f4,0x11f4,0x13d7,0x13d7,0x39, -0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, -0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, -0x501,0x501,0x501,0x501,0x501,0x501,0x3c,0x14b5,0x3c,0x3c,0x3c,0x3c,0x3c,0x14b5,0x3c,0x3c, -0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504, -0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xe40,0xad4,0x3f,0xad4,0xad4,0xad4,0xad4,0x3f,0x3f, -0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0x3f,0xad4,0x3f,0xad4,0xad4,0xad4,0xad4,0x3f,0x3f, -0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xe40,0xad4,0x3f,0xad4,0xad4,0xad4,0xad4,0x3f,0x3f, -0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4, -0xad4,0xad4,0xad4,0xe40,0xad4,0x3f,0xad4,0xad4,0xad4,0xad4,0x3f,0x3f,0xad4,0xad4,0xad4,0xad4, -0xad4,0xad4,0xad4,0x3f,0xad4,0x3f,0xad4,0xad4,0xad4,0xad4,0x3f,0x3f,0xad4,0xad4,0xad4,0xad4, -0xad4,0xad4,0xad4,0xe40,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0x3f,0xad4,0xad4,0xad4,0xad4, -0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xe40,0xad4,0x3f,0xad4,0xad4, -0xad4,0xad4,0x3f,0x3f,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xe40,0xad4,0xad4,0xad4,0xad4, -0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0x3f, -0x3f,0x13dd,0x13dd,0xe3a,0xe3d,0xace,0xad7,0xacb,0xacb,0xacb,0xacb,0xad7,0xad7,0xad1,0xad1,0xad1, -0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8, -0xac8,0x3f,0x3f,0x3f,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada, -0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0x17c4,0x42,0x42,0x17c1,0x17c1,0x17c1,0x17c1, -0x17c1,0x17c1,0x42,0x42,0xaec,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef, -0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xae9, -0xae6,0x45,0x45,0x45,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf2, -0xaf2,0xaf2,0xaf5,0xaf5,0xaf5,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x48,0x48,0x48, -0x48,0x48,0x48,0x48,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xaf8,0xb1f,0xb1f,0xb04,0xb04,0xb04, -0xb04,0xb04,0xafe,0xafe,0xb04,0xb01,0xb07,0xafb,0xb2b,0xb2b,0xb19,0xb25,0xb13,0xb0d,0xb16,0xb10, -0xb25,0xd56,0x4b,0x4b,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0x4b,0x4b, -0x4b,0x4b,0x4b,0x4b,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0x4b,0x4b, -0x4b,0x4b,0x4b,0x4b,0xb37,0xb37,0xbaf,0xbb2,0xb3d,0xbac,0xb3a,0xb37,0xb40,0xb4f,0xb43,0xb52, -0xb52,0xb52,0xb2e,0x1c08,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0x4e,0x4e, -0x4e,0x4e,0x4e,0x4e,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49, -0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0x19e9,0x4e,0x4e,0x4e, -0x4e,0x4e,0x4e,0x4e,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb31,0x106e,0x4e, -0x4e,0x4e,0x4e,0x4e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e, -0x124e,0x124e,0x124e,0x124e,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x52b,0x52b,0x52b,0x52b, -0x52b,0x52b,0x52b,0x52b,0x528,0x528,0x528,0x528,0x528,0x528,0x51,0x51,0x52b,0x52b,0x52b,0x52b, -0x52b,0x52b,0x51,0x51,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x51,0x52b,0x51,0x52b, -0x51,0x52b,0x51,0x52b,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x52b,0x52b,0x52b,0x52b, -0x52b,0x52b,0x52b,0x52b,0x528,0x522,0x528,0x522,0x528,0x522,0x528,0x522,0x528,0x522,0x528,0x522, -0x528,0x522,0x51,0x51,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x52b,0x52b,0x52b,0x52b, -0x52b,0x52b,0x52b,0x52b,0x528,0x528,0x528,0x528,0x528,0x51,0x528,0x528,0x52b,0x52b,0x52b,0x525, -0x52b,0x51c,0x522,0x51c,0x51c,0x519,0x528,0x528,0x528,0x51,0x528,0x528,0x52b,0x525,0x52b,0x525, -0x52b,0x519,0x519,0x519,0x528,0x528,0x528,0x522,0x51,0x51,0x528,0x528,0x52b,0x52b,0x52b,0x525, -0x51,0x519,0x519,0x519,0x528,0x528,0x528,0x522,0x528,0x528,0x528,0x528,0x52b,0x52b,0x52b,0x525, -0x52b,0x519,0x519,0x519,0x51,0x51,0x528,0x528,0x528,0x51,0x528,0x528,0x52b,0x525,0x52b,0x525, -0x52b,0x51f,0x51c,0x51,0xc27,0xc2a,0xc2a,0xc2a,0x107a,0x54,0x1584,0x1584,0x1584,0x1584,0x534,0x534, -0x534,0x534,0x534,0x534,0x57f,0xc3c,0x57,0x57,0x726,0x57f,0x57f,0x57f,0x57f,0x57f,0x585,0x597, -0x585,0x591,0x58b,0x729,0x57c,0x723,0x723,0x723,0x723,0x57c,0x57c,0x57c,0x57c,0x57c,0x582,0x594, -0x582,0x58e,0x588,0x57,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0, -0x13e0,0x57,0x57,0x57,0x1c0b,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a, -0x5a,0x5a,0x5a,0x5a,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, -0x5a6,0x5a3,0x5a3,0x5a3,0x5a3,0x5a6,0xb5e,0xb5e,0xc42,0xc48,0xc48,0xc45,0xc45,0xc45,0xc45,0xe52, -0xf69,0xf69,0xf69,0xf69,0x11df,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d6,0x5d6,0x5d6,0xb67,0xf72,0x1080,0x1080,0x1080,0x1080,0x133e,0x17ca,0x17ca, -0x60,0x60,0x60,0x60,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x5e5,0x5e5, -0x5e2,0x5e2,0x5e2,0x5e2,0x606,0x606,0x606,0x606,0x606,0xb70,0xb70,0x63,0x63,0x63,0x63,0x63, -0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, -0x63,0x63,0x63,0x63,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x66, -0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, -0x66,0x66,0x66,0x66,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b, -0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0x69,0xb8b, -0xb8b,0xb8b,0xb8b,0xb8e,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b, -0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8e,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69, -0x69,0x69,0x69,0x69,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91, -0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c, -0x6c,0x6c,0x6c,0x6c,0x6f,0x873,0x86d,0x873,0x86d,0x873,0x86d,0x873,0x86d,0x873,0x86d,0x86d, -0x870,0x86d,0x870,0x86d,0x870,0x86d,0x870,0x86d,0x870,0x86d,0x870,0x86d,0x870,0x86d,0x870,0x86d, -0x870,0x86d,0x870,0x86d,0x86d,0x86d,0x86d,0x873,0x86d,0x873,0x86d,0x873,0x86d,0x86d,0x86d,0x86d, -0x86d,0x86d,0x873,0x86d,0x86d,0x86d,0x86d,0x86d,0x870,0xce1,0xce1,0x6f,0x6f,0x98a,0x98a,0x951, -0x951,0x876,0x879,0xcde,0x72,0x72,0x72,0x72,0x72,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b, -0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b, -0x88b,0x88b,0x88b,0x88b,0x88b,0x11cd,0x19b0,0x1a9d,0x75,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e, -0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x75,0x95a,0x95a,0x95d,0x95d, -0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x897,0x897,0x897,0x897, -0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897, -0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0x897,0xde0,0xde0,0x78,0xba3,0xba3,0xba3,0xba3, -0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0x7b,0x7b,0x7b,0xba9,0xba9,0xba9,0xba9, -0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xcea,0xba9,0xba9, -0xba9,0xcea,0xba9,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x1275,0x1275,0x1275,0x1275, -0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0xa1d,0xa1d,0xa1d,0xa1d, -0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x12ea,0x12ea,0x12ea,0x12ea, -0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x64e,0x64e,0x64e,0x64e, -0x64e,0x64e,0x64e,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x63c, -0x63c,0x63c,0x63c,0x63c,0x84,0x84,0x84,0x84,0x84,0xb7c,0x63f,0x645,0x64b,0x64b,0x64b,0x64b, -0x64b,0x64b,0x64b,0x64b,0x64b,0x642,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645, -0x645,0x645,0x645,0x84,0x645,0x645,0x645,0x645,0x645,0x84,0x645,0x84,0x645,0x645,0x84,0x645, -0x645,0x84,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x648,0x65a,0x654,0x65a,0x654, -0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654,0x13f2,0x13f2,0x1c0e,0x87, -0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x65a, -0x654,0x657,0x65d,0x65a,0x654,0x65a,0x654,0x65a,0x654,0x65a,0x65a,0x654,0x654,0x654,0x654,0x657, -0x654,0x654,0x657,0x654,0x657,0x657,0x657,0x654,0x657,0x657,0x657,0x657,0x87,0x87,0x657,0x657, -0x657,0x657,0x654,0x654,0x657,0x654,0x654,0x654,0x654,0x657,0x654,0x654,0x654,0x654,0x654,0x657, -0x657,0x657,0x654,0x654,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x1c0e,0xbc7,0xbc7,0xbc7,0xbc7, -0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0x8af,0x8c1,0x8be,0x8c1, -0x8be,0xcff,0xcff,0xdec,0xde9,0x8b2,0x8b2,0x8b2,0x8b2,0x8c4,0x8c4,0x8c4,0x8dc,0x8df,0x8ee,0x8a, -0x8e2,0x8e5,0x8f1,0x8f1,0x8d9,0x8d0,0x8ca,0x8d0,0x8ca,0x8d0,0x8ca,0x8cd,0x8cd,0x8e8,0x8e8,0x8eb, -0x8e8,0x8e8,0x8e8,0x8a,0x8e8,0x8d6,0x8d3,0x8cd,0x8a,0x8a,0x8a,0x8a,0x666,0x672,0x666,0xc7b, -0x666,0x8d,0x666,0x672,0x666,0x672,0x666,0x672,0x666,0x672,0x666,0x672,0x672,0x66f,0x669,0x66c, -0x672,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66f,0x669,0x66f,0x669,0x66c, -0x672,0x66f,0x669,0x66f,0x669,0x66f,0x669,0x66f,0x669,0x8d,0x8d,0x663,0x7ad,0x7b0,0x7c5,0x7c8, -0x7a7,0x7b0,0x7b0,0x93,0x78f,0x792,0x792,0x792,0x792,0x78f,0x78f,0x93,0x90,0x90,0x90,0x90, -0x90,0x90,0x90,0x90,0x90,0xb7f,0xb7f,0xb7f,0xa20,0x789,0x675,0x675,0x93,0x7d7,0x7b6,0x7a7, -0x7b0,0x7ad,0x7a7,0x7b9,0x7aa,0x7a4,0x7a7,0x7c5,0x7bc,0x7b3,0x7d4,0x7a7,0x7d1,0x7d1,0x7d1,0x7d1, -0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7c2,0x7bf,0x7c5,0x7c5,0x7c5,0x7d7,0x798,0x795,0x795,0x795, -0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795, -0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x93,0x93,0x93,0x795,0x795, -0x795,0x795,0x795,0x795,0x93,0x93,0x795,0x795,0x795,0x795,0x795,0x795,0x93,0x93,0x795,0x795, -0x795,0x795,0x795,0x795,0x93,0x93,0x795,0x795,0x795,0x93,0x93,0x93,0xbca,0xbca,0xbca,0xbca, -0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x194d,0x194d,0x194d,0xbd0,0xbd0,0xbd0,0xbd0, -0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0x99, -0x99,0x99,0x99,0x99,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713, -0x1713,0x1713,0x1713,0x1713,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9, -0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c, -0x9c,0x9c,0x9c,0x9c,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0x9f,0x9f,0x108c,0xbe5,0xbe5, -0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5, -0xbe5,0xbe5,0xbe5,0xbe5,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x1c11,0x1c11,0x9f, -0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f, -0x9f,0x9f,0x9f,0x9f,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, -0xbfd,0xbfd,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xa2,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbfd,0xbfd,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfd,0xa2,0xbfd,0xbfd,0xa2,0xa2,0xbfd,0xa2,0xa2,0xbfd,0xbfd,0xa2,0xa2,0xbfd,0xbfd,0xbfd, -0xbfd,0xa2,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfa,0xbfa,0xbfa,0xbfa,0xa2,0xbfa, -0xa2,0xbfa,0xbfa,0xbfa,0xbfa,0xd74,0xbfa,0xbfa,0xa2,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, -0xbfd,0xbfd,0xbfd,0xbfd,0xbfa,0xbfa,0xbfa,0xbfa,0xbfd,0xbfd,0xa2,0xbfd,0xbfd,0xbfd,0xbfd,0xa2, -0xa2,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xa2,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, -0xbfd,0xa2,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfd,0xbfd,0xa2,0xbfd, -0xbfd,0xbfd,0xbfd,0xa2,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xa2,0xbfd,0xa2,0xa2,0xa2,0xbfd,0xbfd, -0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xa2,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xe64,0xe64,0xa2,0xa2,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, -0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, -0xbfa,0xbfa,0xbfa,0xbf4,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xf81,0xf7e,0xa2,0xa2,0xbf7,0xbf7, -0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7, -0xa5,0xc03,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5, +3,3,3,3,3,3,3,3,3,3,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2, +0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2, +0xfa2,0xfa2,0xfa2,0xfa2,0xf36,0x1029,0x1029,3,3,3,3,3,3,3,3,3, +3,3,3,3,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24, +0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0x1029,0x1029,0x1029,0x1029,0x1029,0x1029,0x1029,0x1029,0x1029,0x1479, +3,3,3,3,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,3,3,3, +3,3,3,3,0x1041,0x1041,3,3,3,3,3,3,3,3,3,3, +3,3,3,3,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,3,3,3,3,3,3, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +3,3,3,3,0x1026,0x1023,0x1023,0x1023,0x1023,0x1023,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155, +0x12c9,0x1155,0x1155,0x1155,0x13ce,0x1473,0x1473,0x14b2,0x14b2,0x167a,0x16f8,0x16f8,3,3,3,3, +0x181e,0x17a6,0x17a6,0x17a6,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x12c6, +0x12c6,3,3,3,0x1155,0x1155,0x1155,0x1155,0x1473,0x1473,0x1473,0x1500,0x1500,0x15d5,0x167a,0x16f8, +0x16f8,3,3,3,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99, +0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0x17e2,0x17e2,0x17e2,3,3,3,3,0x17e2, +0x17e2,0x17e2,0x17e2,0x17e2,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1548,0x1548,0x1548,0x1548,0x17e2,3,3, +3,3,3,3,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a, +3,3,3,3,0x17a6,3,3,3,3,3,3,3,3,3,3,3, +3,3,3,3,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611, +0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,3,3,3,3,3,3,3,3, +3,3,3,3,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548, +0x1548,0x1548,3,3,0x167a,0x167a,0x167a,0x167a,0x16f8,0x181e,0x181e,0x181e,0x167a,0x167a,0x167a,0x17a6, +0x17a6,3,3,3,0x167a,0x167a,0x167a,0x16f8,0x16f8,0x16f8,0x16f8,0x181e,0x181e,0x18e1,3,3, +3,3,3,0x18e1,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8, +0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x17a9,0x17a9,0x17a9,0x18e1,3,3,3,3,3, +3,3,0x181e,0x181e,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x17a6,0x17a6,0x17a6,0x181e,0x181e, +0x18e1,3,3,0x18e1,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x181e,0x18e1,3,3, +3,3,3,3,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x1821,0x1821,3,3,3, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,0x693,0x693, +0x172e,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x561,0x561,0x561, +9,0x84f,9,9,9,9,9,9,9,9,9,9,9,9,9,9, +9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, +9,9,9,9,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41, +0xa41,0xa41,0xa41,0xa41,9,9,9,9,9,9,9,9,9,9,9,9, +9,9,9,9,0xa5,0xa5,0xa5,0xa5,0xa5,0x6d8,0x6d8,0x185d,0x185d,0x185d,0xc,0xc, +0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc, +0xc,0xc,0xc,0xc,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xc, +0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc, +0xc,0xc,0xc,0xc,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, +0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0xc,0xc,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, +0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, +0x116a,0x116a,0xc,0x16ad,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x1173,0x12ba,0x1176,0x146d, +0x1407,0x14bb,0x14bb,0x14bb,0x14bb,0x14bb,0x1551,0x154e,0x1554,0x154e,0x1554,0x161a,0x16ad,0x16ad,0x16ad,0x173d, +0x173d,0x1734,0x1737,0x1734,0x1737,0x1734,0x1737,0x1734,0x1737,0x173a,0xc,0xc,0xc,0xc,0xc,0xc, +0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc, +0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x91e,0x91e,0x91e,0x91e, +0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0xf2d,0xf2d,0xf2d,0xf,0xf,0xb3a,0xb3a,0xb3a,0xb3a, +0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a, +0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30, +0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0x17ac,0x17ac,0x17ac, +0x17ac,0x1824,0xf,0xf,0xf,0xf,0xf,0xf,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038, +0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038, +0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0xf,0xf,0x13d4,0x13d4,0xf,0xf,0xf,0xf,0xf,0xf, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509, +0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b, +0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b, +0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0xf,0xf,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c, +0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c, +0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0xf,0xf,0xf,0xf,0xf,0xf,0x693,0x693,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701, +0x1701,0x1701,0x1701,0xf,0xf,0xf,0xf,0xf,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824, +0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x306,0x306,0x309,0xa5,0x348,0x31b,0x31b,0x31e, +0xf6,0xf6,0x15,0x15,0x15,0x15,0x15,0x7d1,0x312,0xb4,0x33c,0x345,0xe7,0x312,0xc0,0xc0, +0xa5,0xcc,0xcc,0x306,0xf0,0xed,0x318,0x75,0x45,0x45,0x48,0x48,0x48,0x48,0x48,0x4b, +0x48,0x48,0x48,0x18,0x10b,0x56d,0x105,0x105,0x32a,0xc6,0xc3,0x327,0x324,0x321,0x336,0xbd, +0x330,0x333,0xc9,0xcc,0x32d,0x32d,0xc9,0xcc,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, +0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0xa5,0x102c,0x102c,0x102c, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x36,0x36,0x90,0x2eb,0x24,0x2dc,0x36,0x8d, +0x24,0x2eb,0x87,0x90,0x90,0x90,0x87,0x87,0x90,0x90,0x90,0x300,0x24,0x90,0x2ee,0x24, +0x81,0x90,0x90,0x90,0x90,0x90,0x24,0x24,0x3f,0x2dc,0x2e8,0x24,0x90,0x24,0x357,0x2d, +0x90,0x51,0x22e,0x369,0x90,0x90,0x7e,0x87,0x90,0x90,0x213,0x90,0x87,0x8a,0x8a,0x8a, +0x8a,0x6cf,0x6c6,0x960,0xa50,0x8a3,0x8a6,0x8a6,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x27, +0x42,0x390,0x2a,0x65d,0x6c0,0x6c9,0x6c9,0x6c9,0x897,0x897,0xa4a,0xa4a,0xa4a,0xa4a,0xde0,0xde3, +0xde3,0xf9f,0x1146,0x115b,0x115e,0x115e,0x1350,0x14b5,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1, +0x2f1,0x2f1,0x30,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906, +0x906,0x906,0x906,0x906,0x906,0x906,0x906,0xa02,0x8a0,0x89d,0x89d,0x89d,0x89d,0x8a6,0x8a3,0x8a3, +0x8a3,0x8a3,0x894,0x89d,0xa47,0xb7f,0xba0,0xc2a,0xde6,0xde6,0xde6,0x2e2,0x2e2,0x33,0x33,0x33, +0x33,0x33,0x33,0x2e2,0x2e2,0x2e2,0x2e2,0x39,0x7b,0xa5,0xa5,0xa5,0xdb,0xb1,0xa8,0x8c7, +0x6db,0x6db,0x6d8,0x6d8,0x6d8,0x6d8,0x8ac,0x903,0x8ac,0x8ac,0x8b8,0x96f,0x966,0xa53,0xa5f,0x8b5, +0xa5f,0xa5f,0xb0d,0xa5f,0xa5c,0xb10,0xa5f,0x89a,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306, +0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0xa2,0xa5,0xa5,0xa5, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf, +0xa5,0xcf,0xcf,0xcf,0xcf,0xcf,0xd2,0xa5,0xcf,0xcf,0xa5,0xa5,0xa5,0xa5,0xcf,0xcf, +0x309,0x309,0xa5,0xa5,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf, +0xcf,0xd2,0xd2,0xd2,0xcf,0xcf,0x336,0xcf,0x336,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf, +0xa5,0xcf,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xcf,0xcf,0xa5,0x309,0xa5,0xa5,0xa5,0x6d8, +0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0xa5,0x6d8,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xde,0xd5,0xde,0xd5, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x306,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x49e,0x49e, +0xa5,0xa5,0xa5,0xa5,0xcf,0xcf,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x4a4,0x4a1,0xa5, 0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5, -0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0x1c17,0xc8a,0xc8a, -0xc8a,0xc8a,0xc84,0xc84,0xc87,0x1c14,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0x1c17, -0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93,0xc93, -0xc93,0xc93,0xc8d,0xc8d,0xc90,0xcf3,0xcf3,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab, -0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99, -0xc99,0xc99,0xc96,0xc96,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae, -0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xb1,0xc9f,0xc9f, -0xc9f,0xb1,0xc9c,0xc9c,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86, -0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0x15c9,0x15c9,0xb4, -0xd77,0xd77,0xd77,0xd83,0xd83,0xd83,0xd83,0xd77,0xd77,0xd83,0xd83,0xd83,0xb4,0xb4,0xb4,0xb4, -0xd83,0xd83,0xd77,0xd83,0xd83,0xd83,0xd83,0xd83,0xd83,0xd7a,0xd7a,0xd7a,0xb4,0xb4,0xb4,0xb4, -0xd7d,0xb4,0xb4,0xb4,0xd89,0xd89,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80, -0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c, -0xd8c,0xd8c,0xb7,0xb7,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7, -0xb7,0xb7,0xb7,0xb7,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc, -0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0xba,0xba,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc, -0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc, -0x15cc,0x15cc,0xba,0x1b5d,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0xdb0,0xdb0,0xdb0,0xdb0, -0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xbd,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0, -0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xbd, -0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0, -0xdb0,0xdb0,0xdb0,0xbd,0xdb0,0xdb0,0xbd,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0, -0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xbd,0xbd,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0, -0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd, -0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd, -0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3, -0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3, -0xdb3,0xdb3,0xdb3,0xc0,0xc0,0xc0,0xc0,0xc0,0xdf2,0xdf2,0xdf8,0xc3,0xc3,0xc3,0xc3,0xdef, -0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef, -0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xc3,0xc3,0xc3,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5, -0xdf5,0xdf5,0xdf5,0xdf5,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9, -0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9, -0xdb9,0xdb9,0xc6,0xdb6,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2, -0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2, -0xdc2,0xdc2,0xc9,0xc9,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xc9,0xc9, -0xc9,0xc9,0xc9,0xc9,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911, -0x1911,0x1911,0x1911,0x1911,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xcc,0xcc,0xdc5,0xcc,0xdc5,0xdc5, -0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5, -0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xcc,0xdc5,0xdc5,0xcc,0xcc,0xcc,0xdc5,0xcc,0xcc,0xdc5, -0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8, -0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf, -0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0x15cf,0x15cf,0x1887,0x1887,0xd5, -0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x1b72,0x126,0x126,0x126, -0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91, -0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe88,0xe88,0xe8e,0xe8e,0xe88,0xd8,0xd8,0xe8b,0xe8b, -0x11d9,0x11d9,0x11d9,0x11d9,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0x1d43, -0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0, -0xea3,0xea0,0xea3,0xea0,0xea0,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0x122a,0x1227,0x122a,0x1227,0x1221, -0x1224,0x1224,0x14be,0x14bb,0xde,0xde,0xde,0xde,0xde,0xe9d,0xe9a,0xe9a,0xe9a,0xe97,0xe9d,0xe9a, -0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6, -0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1, -0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xe1,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xe1, -0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xe1,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xe1, -0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac, -0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4, -0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xe7,0x14c1,0xe7,0xe7,0xe7,0xe7,0xe7,0x14c1,0xe7,0xe7, -0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09, -0xec7,0xebb,0xebb,0xebb,0xea,0xebb,0xebb,0xea,0xea,0xea,0xea,0xea,0xebb,0xebb,0xebb,0xebb, -0xec7,0xec7,0xec7,0xec7,0xea,0xec7,0xec7,0xec7,0xea,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7, -0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7, -0x19f2,0x19f2,0xea,0xea,0xeb8,0xeb8,0xeb8,0xea,0xea,0xea,0xea,0xebe,0xec1,0xec1,0xec1,0xec1, -0xec1,0xec1,0xec1,0xec1,0x19ef,0xea,0xea,0xea,0xea,0xea,0xea,0xea,0xec4,0xec4,0xec4,0xec4, -0xec4,0xec4,0xeca,0xeca,0xec1,0xea,0xea,0xea,0xea,0xea,0xea,0xea,0xed6,0xed6,0xed6,0xed6, -0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0x1230,0x1230,0xed,0xed,0xed,0xed,0xed6,0xed6,0xed6,0xed6, -0xed6,0xed9,0xed9,0xed9,0xed6,0xed6,0xed9,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6, -0xed6,0xed6,0xed,0xed,0xed,0xed,0xed,0xed,0xed3,0xed3,0xed3,0xed3,0xed3,0xed3,0xed3,0xed3, -0xed3,0xed3,0x122d,0xed,0xed,0xed,0xed0,0xed0,0xedf,0xedf,0xedf,0xedf,0xf0,0xf0,0xf0,0xf0, -0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedc,0xedf,0xedf,0xedf,0xedf,0xedf,0xf0,0xf0, -0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x15de,0x15e4,0x15e1,0x1932,0x188d,0x1956,0x1956,0x1956, -0x1956,0x1956,0x19f8,0x19f5,0x19fb,0x19f5,0x19fb,0x1abe,0x1b60,0x1b60,0x1b60,0x1c29,0x1c29,0x1c23,0x1c20,0x1c23, -0x1c20,0x1c23,0x1c20,0x1c23,0x1c20,0x1c26,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3, -0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3, -0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf06,0xf06,0xf06,0xf03,0xf03,0xefa,0xefa,0xf03, -0xf00,0xf00,0xf00,0xf00,0x1b63,0xf6,0xf6,0xf6,0x1395,0x1395,0x1395,0x1398,0x1398,0x1398,0x139b,0x139b, -0x139e,0x139b,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0x14d0,0x14d0, -0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf0c,0x1404,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9, -0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x1401,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3, -0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xf3c,0xf2d,0xf27,0xf39,0xf36,0xf30,0xf30,0xf3f, -0xf2a,0xf33,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc9,0xfc9,0xfb1,0xfc9,0xfcc,0xfcf,0xfcf,0xfcf, -0xfcf,0xfcf,0xfcf,0xfcf,0x1c2c,0x102,0x102,0x102,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3, -0xfc3,0xfc3,0xfd5,0xfd5,0xfbd,0xfc0,0xfd5,0xfd5,0xfba,0xfbd,0xfbd,0xfbd,0xfbd,0xfbd,0xfbd,0xfbd, -0xfbd,0xfbd,0xfbd,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfbd,0xfbd,0xfbd,0xfbd, -0xfbd,0xfbd,0xfbd,0xfbd,0xfbd,0x1c2f,0x1c2f,0x102,0x1c38,0x1c35,0x1aca,0x1ac7,0x1aca,0x1aca,0x1aca,0x1b6f, -0x1b6c,0x1b6f,0x1b6c,0x105,0x105,0x105,0x105,0x105,0x1c38,0x1c35,0x105,0x1c35,0x105,0x1c35,0x1c38,0x1c35, -0x1c38,0x1c35,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105, -0x105,0x105,0x105,0x105,0x105,0x105,0x1c32,0x1c32,0x1c32,0x1b69,0x1b66,0x15ed,0x14d9,0x14d9,0x140d,0x10ef, -0x10ef,0x10ef,0x10ef,0x10ef,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0, -0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xfed,0xfed,0xff3,0xff3,0x108,0x108,0x108,0x108, -0x108,0x108,0x108,0x108,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc, -0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xff6,0xff6,0xff6,0xff6,0x1239,0x1239, -0x10b,0x10b,0x10b,0xff9,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3, -0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x17df,0x10e,0x10e, -0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e, -0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e, -0x1005,0x1005,0x1005,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x111, -0x1002,0x1002,0x1002,0x1002,0x15f6,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111, -0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008, -0x1008,0x1008,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x114,0x114,0x114,0x114,0x114,0x114,0x114, -0x1125,0x1125,0x1125,0x1125,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1113,0x1113,0x1113,0x1113, -0x1113,0x1113,0x1113,0x1113,0x1122,0x1122,0x1119,0x1116,0x117,0x117,0x117,0x1128,0x1128,0x111c,0x111c,0x111c, -0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x117,0x117,0x117,0x1125,0x1125,0x1125, -0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e, -0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1146,0x1146,0x11a,0x11a,0x11a,0x11a, -0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a, -0x1170,0x1170,0x1170,0x1170,0x116a,0x1893,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x1176,0x1176, -0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d, -0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188, -0x1188,0x1188,0x118e,0x1191,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x118b, -0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x11a0, -0x11a0,0x1197,0x1197,0x11a0,0x11a0,0x1197,0x1197,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123, -0x11a3,0x11a3,0x11a3,0x1197,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x1197,0x11a0,0x123,0x123, -0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x123,0x123,0x119a,0x11a9,0x11a9,0x11a9, -0x1605,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5, +0xa5,0xa5,0xa5,0x6d8,0x8b8,0x6d8,0x6d8,0x6d8,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306, +0x306,0x306,0x306,0x306,0xa5,0xa5,0xa5,0xa5,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306, +0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0xa5,0xa5,0x306,0x306,0x306,0x306,0x8ac,0x8ac, +0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x336,0x336,0xa5,0x306,0x306,0x306,0x306,0x306, +0x306,0x306,0xa5,0xa5,0xa5,0xa5,0xcf,0xcf,0xcf,0xcf,0x336,0x336,0xcf,0xcf,0x336,0x336, +0xa5,0xa5,0xa5,0xa5,0x336,0x336,0xcf,0xcf,0x336,0x336,0xa5,0xa5,0xa5,0xa5,0x336,0x336, +0x306,0xa5,0xcf,0x336,0xa5,0xa5,0x306,0x336,0x336,0x336,0xcf,0xcf,0xa5,0xa5,0xa5,0xa5, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x336,0x306,0x336,0x306,0xa5,0xcf, +0xcf,0xcf,0xcf,0xcf,0xcf,0xa5,0xa5,0x306,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x918,0x918,0x8b8,0xae,0xae,0xae,0xae,0xa5,0x336,0x336,0xa5, +0xa5,0x306,0xa5,0xa5,0xa5,0xa5,0x306,0x306,0xa5,0xa5,0xa5,0xa5,0xa14,0xa14,0x8a9,0x8a9, +0xa56,0x6d8,0xae,0xae,0x30c,0xba,0x30c,0xae,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b, +0xa5,0xae,0xae,0xae,0xa5,0xa5,0xa5,0xa5,0x336,0xa5,0x336,0xa5,0xa5,0xa5,0xa5,0xa5, +0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0xa5,0xa5,0xa5,0xa5, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x336,0x336,0xcf,0x336,0x306,0x306,0xa5,0x306, +0x30c,0x306,0x306,0xa5,0x306,0x336,0xcf,0x336,0x6d8,0x6d8,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac, +0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0xa53,0xb37,0x1170,0xae,0xae,0xae,0xae,0x102c,0xa5,0xa5, +0xae,0xae,0x1032,0x1032,0xba,0xba,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x102c,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x309,0xa5,0xa5, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x102c,0xa5,0x102c,0xa5, +0xa5,0xa5,0xa5,0x102c,0x102c,0x102c,0xa5,0xf27,0xa5,0xa5,0xa5,0xb7,0xb7,0xb7,0xb7,0xfab, +0xfab,0xa5,0xab,0xab,0xae,0xa5,0xa5,0xa5,0x8b2,0x8af,0x8b2,0x8af,0x8b2,0x8af,0x8b2,0x8af, +0x8b2,0x8af,0x8b2,0x8af,0x8b2,0x8af,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9, +0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5, +0x102c,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0x102c, +0x336,0xcf,0x336,0x336,0xd2,0xcf,0xcf,0x336,0x336,0xd2,0xcf,0x336,0xd2,0xcf,0xcf,0x336, +0xcf,0x336,0xea,0xe1,0xcf,0x336,0xcf,0xcf,0xcf,0xcf,0x336,0xcf,0xcf,0x336,0x336,0x336, +0x336,0xcf,0xcf,0x336,0xd2,0x336,0xd2,0x336,0x336,0x336,0x336,0x336,0x342,0xe4,0x336,0xe4, +0xe4,0xcf,0xcf,0xcf,0x336,0x336,0x336,0x336,0xcf,0xcf,0xcf,0xcf,0x336,0x336,0xcf,0xcf, +0xcf,0xd2,0xcf,0xcf,0xd2,0xcf,0xcf,0xd2,0x336,0xd2,0xcf,0xcf,0x336,0xcf,0xcf,0xcf, +0xcf,0xcf,0x336,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf, +0x339,0x336,0xd2,0xcf,0x336,0x336,0x336,0x336,0xcf,0xcf,0x336,0x336,0xcf,0xd2,0x339,0x339, +0xd2,0xd2,0xcf,0xcf,0xd2,0xd2,0xcf,0xcf,0xd2,0xd2,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf, +0xd2,0xd2,0x336,0x336,0xd2,0xd2,0x336,0x336,0xd2,0xd2,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf, +0xcf,0xcf,0xcf,0xcf,0xcf,0x336,0xcf,0xcf,0xcf,0x336,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf, +0xcf,0x336,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xd2,0xd2,0xd2,0xd2,0xcf,0xcf,0xcf,0xcf, +0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0x336,0xcf,0xcf,0xcf,0xcf, +0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf, +0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xd2,0xd2,0xd2,0xd2, +0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xd2,0xd2,0xd2,0xd2,0xcf,0xd8,0xcf,0xcf,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x12c,0x12c,0x12c,0x12c, +0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c, +0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d, 0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126, -0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af, -0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11b2,0x129,0x129, -0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5, -0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x12c,0x12c,0x12c, -0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8, -0x11b8,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f, -0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be, -0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x132,0x132,0x132,0x132,0x132,0x11bb, -0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x135,0x135,0x135,0x135, -0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4, -0x11c4,0x11c4,0x11c4,0x11c4,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138, -0x123f,0x123f,0x123f,0x123f,0x1248,0x123f,0x123f,0x123f,0x1248,0x123f,0x123f,0x123f,0x123f,0x123c,0x13b,0x13b, -0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x124b,0x1245,0x124b,0x1245,0x1245,0x1245,0x124b,0x124b,0x13b, -0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e, -0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e, -0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269, -0x1269,0x1269,0x1269,0x1269,0x1269,0x1266,0x1251,0x1266,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x141, -0x125a,0x1263,0x1251,0x1263,0x1263,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1266,0x1266,0x1266, -0x1266,0x1266,0x1266,0x1251,0x1251,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x141,0x141,0x1254, -0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x141,0x141,0x141,0x141,0x141,0x141, -0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x141,0x141,0x141,0x141,0x141,0x141, -0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x126c,0x126f,0x126f,0x126f,0x126f,0x125d,0x125d,0x141,0x141, -0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1644,0x1b84, -0x13b0,0x1389,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x138f,0x138c,0x1383,0x1383,0x13ad,0x1383,0x1383, -0x1383,0x1383,0x1392,0x1578,0x157e,0x157b,0x157b,0x19d1,0x17a6,0x17a6,0x1b4b,0x144,0x144,0x144,0x144,0x144, -0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284, -0x127b,0x127b,0x127e,0x1287,0x1281,0x1281,0x1281,0x1287,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147, -0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374, -0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x14d,0x14d,0x14d, -0x12a5,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x129c,0x12ab,0x12ab,0x1299,0x1299,0x1299,0x1299,0x150,0x13a4, -0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x150,0x150,0x150,0x150,0x1299,0x1299, -0x12c9,0x12bd,0x12c9,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153, -0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x12c6,0x12c6,0x12cc,0x12c0,0x12c3, -0x12e1,0x12e1,0x12e1,0x12db,0x12db,0x12d2,0x12db,0x12db,0x12d2,0x12db,0x12db,0x12e4,0x12de,0x12d5,0x156,0x156, -0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x156,0x156,0x156,0x156,0x156,0x156, -0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x159,0x159,0x159,0x159,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7, -0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7, -0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x159,0x159,0x159,0x159,0x12f3,0x12f3,0x12f3,0x12f3, -0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3, -0x12f3,0x12f3,0x15c,0x12f0,0x12ed,0x12ed,0x12ed,0x12ed,0x12ed,0x12ed,0x12ed,0x12ed,0x1302,0x1302,0x1302,0x1302, -0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302, -0x1302,0x1302,0x15f,0x15f,0x15f,0x12fc,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x1308,0x1308,0x1308,0x1308, -0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308, -0x1308,0x1308,0x162,0x162,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x130e,0x130e,0x130e,0x130e, -0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x130e,0x165, -0x165,0x165,0x165,0x165,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x1314,0x1314,0x1314,0x1314, -0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314, -0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x16b,0x132c,0x132c,0x1c3b,0x16e, -0x16e,0x16e,0x16e,0x16e,0x16e,0x16e,0x16e,0x16e,0x16e,0x1a16,0x16e,0x16e,0x1557,0x1557,0x1557,0x1557, -0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1914,0x1914,0x1914,0x1914, -0x1914,0x1914,0x1914,0x1914,0x1914,0x1914,0x1914,0x1914,0x1914,0x1b75,0x171,0x171,0x171,0x171,0x171,0x171, -0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171, -0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x1419,0x1419, -0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419, -0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x137d,0x147f,0x147f,0x174,0x174,0x174,0x174,0x174, -0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a, -0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f, -0x147f,0x147f,0x147f,0x1917,0x174,0x174,0x174,0x174,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377, -0x1377,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x14a3,0x14a3,0x174,0x174,0x174,0x174,0x174,0x174, -0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x174,0x174, -0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174, -0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174, -0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422, -0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x141c,0x141c,0x141c,0x177,0x177,0x141f,0x177, -0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1425,0x142e,0x1428,0x1428,0x142e,0x142e,0x142e,0x1428,0x142e,0x1428, -0x1428,0x1428,0x1431,0x1431,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x142b,0x142b,0x142b,0x142b, -0x17d,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x17d,0x17d,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x17d, -0x17d,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d, -0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x17d,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x17d, -0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa, -0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143d,0x1452,0x1452,0x1443,0x1443,0x1443,0x1443,0x1443,0x180,0x180, -0x180,0x180,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440, -0x1440,0x1440,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1c41,0x1c44,0x1c44,0x1c3e, -0x1c3e,0x1c44,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x1614,0x1455,0x1455,0x1455,0x1455, -0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455, -0x1455,0x1455,0x1455,0x1455,0x1455,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x1458,0x1458,0x1458,0x1458, -0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x186,0x186,0x1458,0x1458,0x1458, -0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1617,0x186,0x1458,0x1458,0x1458, -0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1488,0x186,0x1458,0x1458,0x1458, -0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1617,0x1617,0x1617,0x1617, -0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617, -0x1617,0x1617,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x149d,0x149a,0x149a,0x149a, -0x149a,0x149a,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x179d,0x1623,0x1623,0x1623,0x186f,0x1920,0x1920,0x1959, -0x1959,0x1b2d,0x1bde,0x1bde,0x189,0x189,0x189,0x189,0x1d2b,0x1cad,0x1cad,0x1cad,0x1623,0x1623,0x1623,0x1623, -0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x179a,0x179a,0x189,0x189,0x189,0x1623,0x1623,0x1623,0x1623, -0x1920,0x1920,0x1920,0x19bc,0x19bc,0x1aa3,0x1b2d,0x1bde,0x1bde,0x189,0x189,0x189,0x145b,0x145b,0x145b,0x145b, -0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b, -0x1cd1,0x1cd1,0x1cd1,0x18c,0x18c,0x18c,0x18c,0x1cd1,0x1cd1,0x1cd1,0x1cd1,0x1cd1,0x14fa,0x14fa,0x14fa,0x14fa, -0x18f,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x18f,0x14fa,0x14fa,0x18f, -0x14fa,0x18f,0x18f,0x14fa,0x18f,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x18f, -0x14fa,0x14fa,0x14fa,0x14fa,0x18f,0x14fa,0x18f,0x14fa,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x14fa,0x18f, -0x18f,0x18f,0x18f,0x14fa,0x18f,0x14fa,0x18f,0x14fa,0x18f,0x14fa,0x14fa,0x14fa,0x18f,0x14fa,0x14fa,0x18f, -0x14fa,0x18f,0x18f,0x14fa,0x18f,0x14fa,0x18f,0x14fa,0x18f,0x14fa,0x18f,0x14fa,0x18f,0x14fa,0x14fa,0x18f, -0x14fa,0x18f,0x18f,0x14fa,0x14fa,0x14fa,0x14fa,0x18f,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x18f, -0x14fa,0x14fa,0x14fa,0x14fa,0x18f,0x14fa,0x14fa,0x14fa,0x14fa,0x18f,0x14fa,0x18f,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x18f,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x18f,0x18f,0x18f,0x18f,0x18f,0x14fa,0x14fa,0x14fa, -0x18f,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x18f,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa, -0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f, +0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x879,0x879,0x879,0x879, +0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x12c,0x12c,0x2d3,0x12c, +0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x11d,0x11d,0x8ca,0x9ff,0x1743,0x1743,0x129,0x12f,0x12c,0x126, +0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126, +0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x12c,0x126,0x12c,0x126, +0x12c,0x126,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126, +0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x12c,0x126, +0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x12c,0x126,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1, +0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x129,0x12f, +0x129,0x12f,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x12c,0x126, +0x129,0x12c,0x126,0x129,0x12c,0x126,0x129,0x12f,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126, +0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x129, +0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c, +0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x126,0x126,0x126,0x126,0x126,0x126,0x126, +0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x129,0x129,0x129,0x129,0x129,0x129,0x129, +0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x126,0x12c,0x2ac,0x2af,0x1743,0x1743,0x1743,0x1743, +0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x129,0x126,0x129,0x129, +0x129,0x129,0x129,0x129,0x126,0x129,0x126,0x126,0x129,0x129,0x126,0x126,0x129,0x129,0x126,0x129, +0x126,0x129,0x126,0x126,0x129,0x126,0x126,0x129,0x126,0x129,0x126,0x126,0x129,0x126,0x129,0x129, +0x126,0x126,0x126,0x129,0x126,0x126,0x126,0x126,0x126,0x129,0x126,0x126,0x126,0x126,0x126,0x126, +0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126, +0x129,0x129,0x126,0x126,0x129,0x126,0x129,0x126,0x126,0x126,0x126,0x126,0x12c,0x12c,0x126,0x12c, +0x126,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x12c,0x126,0x129,0x12f,0x12c, +0x126,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x12c, +0x126,0x12c,0x126,0x12c,0x126,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129, +0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129, +0x12f,0x12c,0x126,0x129,0x12f,0x12c,0x126,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129, +0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129, +0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x12f,0x12c,0x12c,0x12c,0x12c, +0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c, +0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12f,0x12f,0x12f,0x12f, +0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f, +0x12f,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x189,0x189,0x57c,0x57c, +0x2a0,0x2a3,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x183,0xc84,0xc81,0xfc6, +0xfc6,0xfc6,0xfc6,0xfc6,0x12cc,0xf3c,0xf3c,0xc00,0xc00,0xb46,0xc00,0xc00,0xf48,0x57c,0x57c,0x186, +0x98d,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189, +0x189,0x54c,0x54c,0x54c,0x54c,0x54c,0x54c,0x54c,0x54c,0x54c,0x54c,0x54c,0x54c,0x54f,0x54c,0x54c, +0x54c,0x54c,0x54c,0x54c,0x54c,0x54f,0x54c,0x54c,0x54f,0x54c,0x54c,0x54c,0x54c,0x54c,0x104d,0xfc3, +0x57f,0x189,0x186,0x186,0x186,0x57c,0x57c,0x57c,0x57c,0x57c,0x57c,0x57c,0x57c,0x186,0x186,0x186, +0x186,0x64e,0xe04,0xfc3,0x189,0x5d3,0x5d6,0x567,0x567,0xf48,0x104d,0x104d,0x549,0x549,0x549,0x549, +0x549,0x549,0x549,0x549,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192, +0x192,0x192,0x192,0x192,0x192,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x8df,0x8df,0xaa4,0xaa4,0x2a6, +0xaa1,0x1098,0x1098,0x1098,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f, 0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f, -0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x14f7,0x14f7,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f, -0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x14fd, -0x14fd,0x14fd,0x14fd,0x14fd,0x150c,0x14fd,0x1500,0x1500,0x14fd,0x14fd,0x14fd,0x1503,0x1503,0x192,0x1509,0x1509, -0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1506,0x1512,0x1512,0x1512,0x1a22,0x1a1f,0x1a1f,0x1b7b, -0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc, -0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e,0x151e, -0x151e,0x151e,0x151e,0x151b,0x1515,0x1515,0x151b,0x151b,0x1524,0x1524,0x151e,0x1521,0x1521,0x151b,0x1518,0x195, -0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527, -0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527, -0x198,0x198,0x198,0x198,0x17f4,0x17f4,0x1527,0x1527,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4, -0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x198,0x198,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4, -0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x1533,0x1533,0x1533,0x1533,0x1533,0x1ad6,0x1ad6,0x1ad6, -0x1ad6,0x1ad6,0x1ad6,0x19b,0x19b,0x19b,0x19b,0x1ad0,0x1533,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530, -0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1ad3,0x1ad3,0x1ad3,0x1ad3,0x1ad3,0x1ad3,0x1ad3,0x1ad3, -0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x152d,0x152d,0x152d,0x152d,0x1536,0x1536,0x1536,0x1536,0x1536, -0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557, -0x1557,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554, -0x1554,0x1554,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a, -0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x13aa,0x13a7,0x13aa,0x1386,0x13a7,0x13ad,0x13ad,0x13b0, -0x13ad,0x13b0,0x13b3,0x13a7,0x13b0,0x13b0,0x13a7,0x13a7,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c, -0x156c,0x156c,0x156c,0x155d,0x1566,0x155d,0x1566,0x1566,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x1569,0x1560, -0x1ad9,0x1c50,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638, -0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1a7,0x1a7,0x1635,0x1635,0x1635,0x1635,0x1635,0x163b,0x1a7,0x1a7, -0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1641,0x1641,0x1641,0x1641,0x1aa,0x1aa,0x1aa,0x1aa, -0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x163e,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b, -0x1c9b,0x1c9b,0x1c9b,0x2af,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x17a9,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0, -0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0, -0x17a0,0x17a0,0x17a0,0x17a0,0x1ad,0x1ad,0x1ad,0x1ad,0x1b84,0x1c56,0x1c56,0x1c56,0x1c56,0x1c56,0x1c56,0x1c56, -0x1c56,0x1c56,0x1c56,0x1c56,0x1c53,0x1c53,0x1c53,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0, -0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0, -0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, -0x1653,0x1653,0x1653,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, -0x1653,0x1653,0x1653,0x1653,0x1653,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1653,0x1653,0x1653,0x1653, -0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1b3,0x1b3,0x1650,0x164a,0x164d,0x1656,0x1659,0x1659,0x1659,0x1659, -0x1659,0x1659,0x1659,0x1659,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1641,0x1641,0x1641,0x1641, -0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x165c,0x165c,0x165c,0x165c, -0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c, -0x165c,0x1a25,0x1a25,0x1a25,0x1a25,0x1cd4,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b30,0x1b30,0x1b30,0x1b30, -0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0x1b9,0x1b9,0x1b9,0x1b9,0x1cb0,0x1b9,0x1b9,0x1b9, -0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1809,0x17ac,0x1665,0x17b2, -0x1bc,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1bc,0x1bc,0x1671,0x1671,0x1bc,0x1bc,0x1671, -0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1bc,0x1671,0x1671, -0x1671,0x1671,0x1671,0x1671,0x1671,0x1bc,0x1671,0x1671,0x1bc,0x1671,0x1671,0x1671,0x1671,0x1671,0x1bc,0x1aaf, -0x17af,0x166e,0x165f,0x1665,0x165f,0x1665,0x1665,0x1665,0x1665,0x1bc,0x1bc,0x1665,0x1665,0x1bc,0x1bc,0x1668, -0x1668,0x166b,0x1bc,0x1bc,0x180c,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x165f,0x1bc,0x1bc,0x1bc,0x1bc, -0x1bc,0x1677,0x1674,0x1674,0x1671,0x1671,0x1665,0x1665,0x1bc,0x1bc,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662, -0x1662,0x1bc,0x1bc,0x1bc,0x1662,0x1662,0x1662,0x1662,0x1662,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc, -0x1bc,0x1bc,0x1bc,0x1bc,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c, -0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x1bf,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c, -0x168c,0x168c,0x168c,0x168c,0x169e,0x169e,0x169e,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1695,0x1698,0x1c2, -0x1c2,0x1c2,0x1c2,0x1c2,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x1c2,0x1c2, -0x1c2,0x1c2,0x1c2,0x1c2,0x180f,0x180f,0x180f,0x180f,0x16aa,0x16a7,0x1adc,0x1adc,0x1b8a,0x1b8d,0x1b87,0x1b87, -0x1c5,0x1c5,0x1c5,0x1c5,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c, -0x183c,0x183c,0x183c,0x183c,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0, -0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8, -0x1c8,0x1c8,0x1c8,0x1c8,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0, -0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8, -0x1c8,0x1c8,0x1c8,0x1c8,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x1c8,0x1c8,0x1c8,0x1c8, -0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8, -0x1c8,0x1c8,0x1c8,0x1c8,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc, -0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16bc,0x16b3,0x16b6,0x16b9,0x16bc,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb, -0x1cb,0x1cb,0x1cb,0x1cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16bf,0x16bf,0x1ce,0x1ce,0x1ce,0x1ce,0x16c2, -0x16c2,0x16c2,0x16c2,0x16c2,0x16c8,0x16c8,0x17b5,0x16c8,0x16c8,0x16c8,0x16c5,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, -0x1ce,0x1ce,0x1ce,0x1ce,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x1d1,0x1d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1, -0x16d1,0x16d1,0x16d1,0x16d1,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1, -0x1d1,0x1d1,0x1d1,0x1d1,0x16d7,0x16e9,0x16e9,0x16dd,0x16e6,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4, -0x1d4,0x1d4,0x1d4,0x1d4,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x1d4,0x1d4, -0x1d4,0x1d4,0x1d4,0x1d4,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef, -0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef, -0x16ef,0x16ef,0x16ef,0x1d7,0x16ec,0x16ec,0x16ec,0x16ec,0x16ec,0x16ec,0x16ec,0x16ec,0x16ec,0x16ec,0x1d7,0x1d7, -0x1d7,0x1d7,0x16f2,0x16f2,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c, -0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16f5,0x1701,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe, -0x16fe,0x16fe,0x16fe,0x16fe,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16fe,0x16fe, -0x16fe,0x16fe,0x16fe,0x1da,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707, -0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707, -0x1707,0x1707,0x1707,0x1dd,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713, -0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1713,0x1710,0x1710,0x1710,0x1710,0x1710,0x1e0, -0x1e0,0x1e0,0x1e0,0x1e0,0x172b,0x172b,0x172e,0x172e,0x1731,0x1722,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3, -0x1e3,0x1e3,0x1e3,0x1e3,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1e3,0x1722, -0x1722,0x1722,0x1722,0x1722,0x1722,0x1722,0x1e3,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b, -0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x1e3,0x1e3,0x1e3,0x1e3, -0x1e3,0x172b,0x172b,0x172b,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a, -0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x1e6,0x1e6,0x1e6, -0x1e6,0x1e6,0x1e6,0x1e6,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743, -0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1740,0x1740,0x1740, -0x1740,0x1e9,0x1e9,0x1e9,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e, -0x175e,0x175e,0x175e,0x1746,0x1758,0x1758,0x1746,0x1746,0x1746,0x1746,0x1ef,0x1ef,0x1758,0x1758,0x175b,0x175b, -0x1746,0x1746,0x1758,0x174c,0x1749,0x174f,0x1761,0x1761,0x1752,0x1752,0x1755,0x1755,0x1755,0x1761,0x1818,0x1818, -0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1815,0x1815,0x1815,0x1815, -0x1812,0x1812,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef, -0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef, -0x1ef,0x1ef,0x1ef,0x1ef,0x1f2,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764, -0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2, -0x1f2,0x1f2,0x1f2,0x1f2,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1f5,0x1f5,0x1f5,0x1f5,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1f5,0x1f5, -0x1b90,0x1b90,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5, -0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5, -0x1f5,0x1f5,0x1f5,0x1f5,0x176a,0x1779,0x1770,0x176d,0x177f,0x177f,0x1773,0x177f,0x1f8,0x1f8,0x1f8,0x1f8, -0x1f8,0x1f8,0x1f8,0x1f8,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1f8,0x1f8, -0x1f8,0x1f8,0x1f8,0x1f8,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1782,0x1782, -0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb, -0x1fb,0x1fb,0x1fb,0x178b,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, -0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x1a28,0x1fe, -0x1fe,0x181b,0x181b,0x181b,0x1827,0x1827,0x181b,0x181b,0x181b,0x181b,0x182a,0x181b,0x181b,0x181b,0x181b,0x181e, -0x1fe,0x1fe,0x1fe,0x1fe,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1821,0x1821, -0x1830,0x1830,0x1830,0x1821,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x201,0x201,0x201,0x201,0x201, -0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201, -0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x1845,0x1845,0x1845,0x1845, -0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x207, -0x1845,0x1845,0x207,0x207,0x207,0x207,0x207,0x1842,0x1842,0x1842,0x1842,0x1842,0x1848,0x1848,0x1848,0x1848, -0x1848,0x1848,0x1848,0x20a,0x1848,0x20a,0x1848,0x1848,0x1848,0x1848,0x20a,0x1848,0x1848,0x1848,0x1848,0x1848, -0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x20a,0x1848,0x1848,0x1848,0x1848,0x1848, -0x1848,0x1848,0x1848,0x1848,0x1848,0x184b,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x16a1,0x16a1,0x16a1,0x16a1, -0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x1854,0x1854,0x1854,0x1854, -0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x20d, -0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x1851,0x1851,0x1851,0x1851, -0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x20d, -0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x185a,0x185a,0x185a,0x185a, -0x1857,0x185a,0x185a,0x185d,0x1860,0x185d,0x185d,0x185a,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210, -0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x1857,0x1857,0x1857,0x1857,0x1857,0x18b7,0x18b7,0x18b7,0x18b7, -0x18ae,0x18ae,0x18ae,0x18a8,0x18ab,0x18ab,0x18ab,0x1adf,0x213,0x213,0x213,0x213,0x18b4,0x18b4,0x18b4,0x18b4, -0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x213,0x213,0x213,0x213,0x18b1,0x18b1,0x18d2,0x18d2,0x18d2,0x18d2, -0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x216,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2, -0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18cf, -0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x216,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18cf,0x18c0, -0x18d2,0x18d5,0x18d5,0x18c9,0x18c6,0x18c6,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216, -0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3, -0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x216,0x216,0x216,0x18e1,0x18e4,0x18ea,0x18ea, -0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18d8,0x18d8,0x18d8,0x18d8, -0x18d8,0x18d8,0x18d8,0x18d8,0x18d8,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x1a46,0x1a46,0x1a46,0x1a46, -0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x18db,0x18db,0x18db,0x18db, -0x18db,0x18db,0x18db,0x21c,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db, -0x18db,0x18db,0x18db,0x18db,0x18db,0x21c,0x21c,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x21c,0x18db, -0x18db,0x21c,0x18db,0x18db,0x18db,0x18db,0x18db,0x21c,0x21c,0x21c,0x21c,0x21c,0x1cfb,0x1cfb,0x1cfb,0x1cfb, -0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1929,0x19c5,0x1b39,0x1b3c, -0x1bea,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x1be7,0x1be7,0x21f,0x21f, -0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x18ea,0x18ea,0x18ea,0x18ea, -0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x222,0x222,0x18de,0x18de, -0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x222,0x18e7,0x18de,0x18de, -0x18de,0x18de,0x18de,0x18de,0x18de,0x18e7,0x18de,0x18de,0x18e7,0x18de,0x18de,0x222,0x222,0x222,0x222,0x222, -0x222,0x222,0x222,0x222,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed, -0x18ed,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225, -0x225,0x225,0x225,0x225,0x1905,0x1905,0x18f6,0x18f0,0x18f0,0x1905,0x18f3,0x1908,0x1908,0x1908,0x1908,0x190b, -0x190b,0x18ff,0x18fc,0x18f9,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1b93,0x18ff, -0x228,0x18f9,0x1a2b,0x1ae2,0x1b96,0x1b96,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228, -0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228, -0x228,0x228,0x228,0x228,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911, -0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x22b,0x22b,0x22b,0x22b,0x190e,0x190e,0x190e,0x190e, -0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e, -0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x22b,0x22b,0x22b,0x22b,0x192c,0x192c,0x192c,0x192c, -0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x1aac,0x1aac,0x1aac,0x1aac,0x1aac,0x1b3f,0x1b3f, -0x1b3f,0x1b3f,0x1b3f,0x1b3f,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x1cb9,0x1cb9,0x1cb9,0x231, -0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x273,0x273,0x1d2e,0x273, -0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x196b,0x196b,0x196b,0x196b, -0x196b,0x196b,0x196b,0x234,0x196b,0x196b,0x234,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b, -0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x195f,0x195f,0x195f, -0x195f,0x195f,0x195f,0x234,0x234,0x234,0x195f,0x234,0x195f,0x195f,0x234,0x195f,0x195f,0x195f,0x1962,0x195f, -0x1965,0x1965,0x196e,0x195f,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x1968,0x1968,0x1968,0x1968, -0x1968,0x1968,0x1968,0x1968,0x1968,0x1968,0x234,0x234,0x234,0x234,0x234,0x234,0x19ce,0x19ce,0x19ce,0x19ce, -0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce, -0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x237,0x237,0x237,0x237,0x197d,0x1980,0x1980,0x23a, -0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x1c95,0x1c95,0x1c95,0x1c95, -0x1c95,0x1c95,0x1c95,0x1c95,0x1c95,0x1c95,0x1c95,0x1c95,0x1c95,0x1c95,0x1c95,0x1c95,0x198f,0x198f,0x198f,0x198f, -0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x23d,0x23d,0x23d,0x23d,0x23d,0x1c62,0x1c62,0x1c62,0x1c62, -0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x199b,0x199e,0x19ad,0x19ad, -0x199e,0x19a1,0x199b,0x1998,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x1986,0x1971,0x1971,0x1971, -0x1971,0x1971,0x1971,0x1983,0x1983,0x1971,0x1971,0x1971,0x1986,0x1986,0x1986,0x1986,0x1ae8,0x1ae8,0x1ae8,0x1ae8, -0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8, -0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x1a31,0x1a31,0x1a31,0x1a31, -0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x243,0x243,0x1b48,0x1b48,0x1b48,0x1b48, -0x1bf0,0x1d34,0x1d34,0x1d34,0x1b48,0x1b48,0x1b48,0x1cbc,0x1cbc,0x276,0x276,0x276,0x1a43,0x1a43,0x1a43,0x1a43, -0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a40,0x1a40,0x1a40,0x1a34,0x1a34,0x1a34,0x1a34,0x1a34, -0x1a34,0x1a34,0x1a34,0x1a34,0x1a40,0x1a3a,0x1a37,0x1a3d,0x246,0x246,0x246,0x246,0x1a46,0x1a46,0x1a46,0x1a46, -0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46, -0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x249,0x249,0x1a46,0x1a46,0x1a46,0x1a55,0x1a55,0x1a55,0x1a55, -0x1a55,0x1a55,0x24c,0x1a55,0x1a55,0x24c,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55, -0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a52,0x1a52, -0x1a52,0x1a52,0x1a52,0x24c,0x1a49,0x1a49,0x24c,0x1a52,0x1a52,0x1a49,0x1a52,0x1a4c,0x1a55,0x24c,0x24c,0x24c, -0x24c,0x24c,0x24c,0x24c,0x1a5e,0x1a5e,0x1a61,0x1a61,0x1a58,0x1a58,0x1a58,0x1a58,0x24f,0x24f,0x24f,0x24f, -0x24f,0x24f,0x24f,0x24f,0x1a5b,0x1a5b,0x1a5b,0x1a5b,0x1a5b,0x1a5b,0x1a5b,0x1a5b,0x1a5b,0x1a5b,0x24f,0x24f, -0x24f,0x24f,0x24f,0x24f,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64, -0x1a67,0x1a64,0x1a64,0x1a64,0x1a67,0x1a64,0x1a64,0x1a64,0x1a64,0x252,0x252,0x252,0x252,0x252,0x252,0x252, -0x252,0x252,0x252,0x252,0x1a73,0x1a73,0x1a73,0x1a73,0x1a73,0x1a73,0x1a73,0x1a73,0x1a73,0x1a73,0x1a73,0x1a73, -0x1a73,0x1a73,0x1a73,0x1a73,0x1a73,0x1a73,0x1a70,0x1a6a,0x1a6a,0x1a6d,0x1a6d,0x1a76,0x1a76,0x255,0x255,0x255, -0x255,0x255,0x255,0x255,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79, -0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258, -0x258,0x258,0x258,0x258,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c, -0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7c,0x1a7f,0x1a88,0x1a7c,0x1a7c,0x25b, -0x25b,0x25b,0x25b,0x25b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8e,0x25e,0x25e,0x25e,0x25e, -0x25e,0x25e,0x25e,0x25e,0x1a97,0x1a97,0x1a97,0x1a97,0x1a97,0x1a97,0x1a97,0x1a97,0x1a97,0x1a97,0x1a97,0x1a97, -0x1a97,0x1a97,0x1a97,0x1a97,0x1a97,0x1a97,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91, -0x1a91,0x1a94,0x1a94,0x1a94,0x1a94,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x261,0x261,0x261,0x261,0x261,0x261, -0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x1c83,0x1c83,0x1c83,0x1c83, -0x1c83,0x1c83,0x1c83,0x1c83,0x1c83,0x1c83,0x1c83,0x1c83,0x1c83,0x1c83,0x1c83,0x1c83,0x1ce6,0x1cec,0x1cec,0x1cec, -0x1cec,0x1cec,0x1cec,0x1ce9,0x1ce9,0x1ce9,0x1ce9,0x1ce9,0x1ce9,0x1ce9,0x1ce9,0x1ce9,0x1ce9,0x1ce9,0x1ce9,0x1ce9, -0x1ce9,0x1ce9,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x1af4,0x1af4,0x1af4,0x1af4, -0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4, -0x1af4,0x1af4,0x1af4,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x1b03,0x1b03,0x1b03,0x1b03, -0x1b03,0x1b03,0x1b03,0x1b03,0x26a,0x26a,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03, -0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b03,0x1b00,0x1b00,0x1b00, -0x1af7,0x1af7,0x1af7,0x1af7,0x26a,0x26a,0x1af7,0x1af7,0x1b00,0x1b00,0x1b00,0x1b00,0x1afa,0x1b03,0x1afd,0x1b03, -0x1b00,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a, -0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x1b0f,0x1b0f,0x1b0f,0x1b0f, -0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x26d,0x26d,0x26d,0x1b06,0x1b06,0x1b06,0x1b06, -0x1b06,0x1b06,0x1b06,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b12,0x1b12,0x26d,0x26d,0x270,0x1b15,0x1b15,0x1b15, -0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15, -0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x1b15,0x270,0x270, -0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273, -0x1b42,0x1b42,0x1b42,0x273,0x273,0x1d31,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273, -0x1b45,0x1b45,0x1b45,0x1b45,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x19ce,0x19ce,0x19ce,0x19ce, -0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x1b48,0x1b48,0x1b48,0x1bf0, -0x1bf0,0x1bf0,0x1bf0,0x1d34,0x1d34,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x1b48,0x1b48,0x1b48,0x1b48, -0x1b48,0x1b48,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1cbc,0x1cbc,0x1cbc, -0x1cbc,0x1d34,0x1d34,0x1d34,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1cbc,0x1cbc,0x1cbc,0x1cbc,0x1d34, -0x1d34,0x1d34,0x276,0x1d34,0x1bf0,0x1bf0,0x1bf0,0x1cbf,0x1cbf,0x1cbf,0x276,0x276,0x276,0x276,0x276,0x276, -0x276,0x276,0x1d34,0x1d34,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1cbc,0x1cbc,0x1cbc,0x1d34,0x1d34, -0x276,0x276,0x276,0x276,0x1cbc,0x1cbc,0x1cbc,0x1cbc,0x1cbc,0x1cbc,0x1cbc,0x1cbc,0x1d34,0x276,0x276,0x276, -0x276,0x276,0x276,0x276,0x1cbf,0x1cbf,0x1cbf,0x1cbf,0x1cbf,0x1cbf,0x1cbf,0x1d37,0x1d37,0x276,0x276,0x276, -0x276,0x276,0x276,0x276,0x1b1e,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18, -0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279, -0x279,0x279,0x279,0x1b1b,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a, -0x1b21,0x1b21,0x1b21,0x1b21,0x1b27,0x1b27,0x1b27,0x1b27,0x1b27,0x1b27,0x1b27,0x1b27,0x1b27,0x1b27,0x27c,0x27c, -0x27c,0x27c,0x27c,0x1b24,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99, -0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f, -0x27f,0x27f,0x27f,0x27f,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x282,0x282,0x1bb7,0x282,0x282, -0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x282,0x1bb7,0x1bb7,0x282,0x1bb7,0x1bb7,0x1bb7,0x1bb7, -0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1bb7,0x1b9f,0x1bae,0x1bae,0x1bae, -0x1bae,0x1bae,0x282,0x1bae,0x1bb1,0x282,0x282,0x1b9f,0x1b9f,0x1bb4,0x1ba5,0x1bba,0x1bae,0x1bba,0x1bae,0x1ba2, -0x1bbd,0x1ba8,0x1bbd,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x1bab,0x1bab,0x1bab,0x1bab, -0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x282,0x282,0x282,0x282,0x282,0x282,0x1bf6,0x1bf6,0x1bf6,0x1bf6, -0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6, -0x1bf6,0x1bf6,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285, -0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285, -0x285,0x285,0x285,0x285,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3, -0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x28b,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3, -0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b, -0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x1bc6,0x1bc6,0x1bc6,0x1bc6, -0x1bc6,0x1bc6,0x1bc6,0x1bc6,0x1bc6,0x1bc6,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x1bf9,0x1bf9,0x1bf9,0x1bf9, -0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e, -0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e, -0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf, -0x1bcf,0x1bcf,0x291,0x1bc9,0x1bc9,0x1bcc,0x291,0x291,0x1bcf,0x1bcf,0x291,0x291,0x291,0x291,0x291,0x291, -0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62, -0x1c5f,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x1c62,0x294,0x1c65,0x1c65,0x294,0x294,0x294,0x294,0x294,0x294, -0x1c5c,0x1c5c,0x1c5c,0x1c5c,0x1c5c,0x1c5c,0x1c5c,0x1c5c,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b, -0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c68,0x1c68,0x297,0x297,0x297,0x297,0x297, -0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x29a, -0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x29a,0x1c6e,0x1c6e,0x29a,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e, -0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x29a,0x1c71,0x1c77,0x1c77,0x1c74,0x1c74,0x1c74,0x2a0,0x1c74, -0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74, -0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x2a0,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74,0x1c74, -0x1c74,0x1c74,0x1c74,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a, -0x1c7a,0x1c7a,0x1c7d,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a, -0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x1c7a,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x1cef,0x1cef,0x1cef, -0x1cef,0x1cef,0x1cef,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3, -0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3, -0x2a3,0x2a3,0x2a3,0x2a3,0x1c83,0x1c83,0x1c80,0x1c80,0x1c80,0x1c80,0x1c86,0x1c86,0x1c86,0x1c86,0x2a6,0x2a6, -0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6, -0x2a6,0x2a6,0x2a6,0x2a6,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c, -0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c, -0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c, -0x1c8c,0x1c8c,0x1c8c,0x2a9,0x1c89,0x1c89,0x1c89,0x1c89,0x1c89,0x1c89,0x1c89,0x1c89,0x1c89,0x1c89,0x2a9,0x2a9, -0x2a9,0x2a9,0x2a9,0x2a9,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638, -0x1638,0x1638,0x1638,0x1638,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92,0x1c92, -0x1c92,0x1c92,0x1c8f,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, -0x2ac,0x2ac,0x2ac,0x2ac,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x2af, -0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x1c9b,0x2af,0x1c9b,0x1c9b,0x2af,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98, -0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x2af,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98, -0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x2af,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x1c98,0x2af,0x1c98, -0x1c98,0x2af,0x2af,0x2af,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1, -0x1ca1,0x1ca1,0x2b2,0x2b2,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1, -0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2, -0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e, -0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5, -0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5, -0x2b5,0x1cf2,0x1cf2,0x1cf2,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cfb, -0x1cfb,0x1cfb,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8, -0x2b8,0x2b8,0x2b8,0x2b8,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x2bb,0x2bb, -0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, -0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, -0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01,0x1d01, -0x1d01,0x1d01,0x1d01,0x1d01,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be, -0x1d04,0x1d04,0x1d19,0x1d10,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16, -0x1d16,0x2c1,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16, -0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d10,0x1d10,0x1d04,0x1d04,0x1d04,0x1d04,0x1d04,0x2c1, -0x2c1,0x2c1,0x1d10,0x1d10,0x1d04,0x1d13,0x1d07,0x1d1c,0x1d1c,0x1d0a,0x1d0a,0x1d0a,0x1d0a,0x1d0a,0x1d0a,0x1d0a, -0x1d0a,0x1d0a,0x1d0a,0x1d0a,0x1d0d,0x1d0d,0x1d0d,0x1d0d,0x1d0d,0x1d0d,0x1d0d,0x1d0d,0x1d0d,0x1d0d,0x2c1,0x2c1, -0x2c1,0x2c1,0x2c1,0x2c1,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25, -0x1d1f,0x1d1f,0x1d1f,0x1d1f,0x1d22,0x1d22,0x1d22,0x1d22,0x1d22,0x1d22,0x1d22,0x1d22,0x1d22,0x1d22,0x2c4,0x2c4, -0x2c4,0x2c4,0x2c4,0x2c4,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, -0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, -0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x9b1,0x9b1,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a, -0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, -0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced, -0xced,0xced,0xced,0x136e,0x136e,0x136e,0x2ca,0x2ca,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24, -0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24, -0xf24,0xf24,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca, -0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca, -0x2ca,0x2ca,0x2ca,0x2ca,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09, -0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09, -0xc09,0xc09,0x2cd,0x2cd,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380, -0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1caa,0x1caa,0x1caa,0x1caa,0x1d28,0x2d0,0x2d0, -0x2d0,0x2d0,0x2d0,0x2d0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0, -0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0, -0x14a0,0x14a0,0x2d3,0x2d3,0x1872,0x1872,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6, -0x2d6,0x2d6,0x2d6,0x2d6,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8, -0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9, -0x2d9,0x2d9,0x2d9,0x2d9,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46, -0x1d46,0x1d46,0x1d46,0x1d46,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x2dc, -0x2dc,0x2dc,0x2dc,0x2dc,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a, -0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46, -0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46, -0x1d46,0x1d46,0x2df,0x2df,0x41a,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x41a,0x41a,0x41a, -0x41a,0x414,0x11eb,0x13c5,0x420,0x97b,0x97e,0x40b,0x40b,0x11e8,0x13c2,0x13c2,0x41d,0x41d,0x41d,0x41d, -0x41d,0x41d,0x41d,0x41d,0x11e8,0x40e,0x40e,0x41a,0xd32,0x420,0x420,0x420,0x420,0x420,0x420,0x420, -0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420, -0x420,0x420,0x420,0x420,0x420,0x420,0x40e,0x40e,0x900,0x903,0x999,0x999,0x999,0x999,0x999,0x999, -0x999,0x999,0x999,0x999,0x417,0x1023,0x1020,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x1593,0x11ee,0x11ee,0xf60, -0xf60,0xe28,0xf60,0xf60,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x423,0x420,0x420, -0x420,0x420,0x420,0x420,0x420,0x423,0x420,0x420,0x423,0x420,0x420,0x420,0x420,0x420,0x13c2,0x13c5, -0x411,0x420,0x41a,0x41a,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x13ce,0x4c2,0x4c2, -0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x13ce,0x1944, -0x1944,0x1044,0x4b3,0x4bc,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504, -0x504,0x504,0x504,0x504,0x504,0x4fe,0x4fe,0x4fe,0x4fe,0x4fe,0x4fe,0xc24,0xc24,0xe37,0xe37,0x906, -0xe34,0x14b2,0x14b2,0x14b2,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501, -0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501,0x501, -0x501,0x501,0x501,0x501,0x50a,0x50a,0x50a,0x1203,0x1203,0x1203,0x1203,0x1203,0x507,0x507,0x507,0x507, -0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507, -0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x1200,0x1200, -0x1200,0x1200,0x1200,0x1200,0x50d,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a, -0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a, -0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x50a,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513, -0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x513,0x513, -0x513,0x513,0x510,0x9ff,0x1071,0x1071,0x1077,0x1071,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513, -0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513, -0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x516,0x513,0x1074,0x1071,0x1074,0x1071,0x1074,0x1071, -0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b, -0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b, -0x6f0,0x6f0,0x6f3,0x546,0x6ff,0x6fc,0x6fc,0x702,0x570,0x570,0x52e,0x52e,0x52e,0x52e,0x52e,0xbb5, -0x6f6,0x54f,0x71d,0x720,0x567,0x6f6,0x555,0x555,0x546,0x561,0x561,0x6f0,0x56d,0x56a,0x6f9,0x540, -0x537,0x537,0x53a,0x53a,0x53a,0x53a,0x53a,0x53d,0x53a,0x53a,0x53a,0x531,0x579,0x576,0x573,0x573, -0x70e,0x55b,0x558,0x70b,0x708,0x705,0x71a,0x552,0x714,0x717,0x55e,0x561,0x711,0x711,0x55e,0x561, -0x543,0x546,0x546,0x546,0x564,0x54c,0x549,0xc39,0xb58,0xb58,0xb55,0xb55,0xb55,0xb55,0xc30,0xc30, -0xc30,0xc30,0xc36,0xd5f,0xd5c,0xe43,0xe49,0xc33,0xe49,0xe49,0xe49,0xe49,0xe46,0xe49,0xe49,0xc2d, -0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59a,0x5a0,0x78c,0x59d,0xa02,0xa23,0xb5b,0xb5b,0xb5b, -0xc3f,0xc3f,0xe4f,0xe4f,0xe4f,0xe4f,0x120c,0x120f,0x120f,0x13e3,0x1581,0x15ab,0x15ae,0x15ae,0x17c7,0x1947, -0x5af,0x5af,0x5c7,0x732,0x5a9,0x72c,0x5af,0x5c4,0x5a9,0x732,0x5be,0x5c7,0x5c7,0x5c7,0x5be,0x5be, -0x5c7,0x5c7,0x5c7,0x738,0x5a9,0x5c7,0x735,0x5a9,0x5bb,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5a9,0x5a9, -0x5b2,0x72c,0x72f,0x5a9,0x5c7,0x5a9,0x73b,0x5ac,0x5c7,0x5b5,0x5cd,0x73e,0x5c7,0x5c7,0x5b8,0x5be, -0x5c7,0x5c7,0x5ca,0x5c7,0x5be,0x5c1,0x5c1,0x5c1,0x5c1,0xb64,0xb61,0xd62,0xe58,0xc54,0xc57,0xc57, -0xc51,0xc4e,0xc4e,0xc4e,0xc4e,0xc57,0xc54,0xc54,0xc54,0xc54,0xc4b,0xc4e,0xe55,0xf6c,0xf6f,0x107d, -0x1212,0x1212,0x1212,0x744,0x741,0x5d0,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x741,0x744,0x744,0x741,0x5d3, -0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x5dc,0x5dc,0x5dc,0x5dc, -0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9, -0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5df,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e5,0x5df, -0x5e2,0x5e2,0x5df,0x5df,0x5df,0x5df,0x5e2,0x5e2,0x74d,0x74d,0x5df,0x5df,0x5e2,0x5e2,0x5e2,0x5e2, -0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e5,0x5e5,0x5e5,0x5e2,0x5e2,0x750,0x5e2, -0x750,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5df,0x5e2,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df, -0x5e2,0x5e2,0x5df,0x74d,0x5df,0x5df,0x5df,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, -0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0x753,0x5e8,0x753,0x753, -0x5eb,0x5e8,0x5e8,0x753,0x753,0x5eb,0x5e8,0x753,0x5eb,0x5e8,0x5e8,0x753,0x5e8,0x753,0x5f7,0x5f1, -0x5e8,0x753,0x5e8,0x5e8,0x5e8,0x5e8,0x753,0x5e8,0x5e8,0x753,0x753,0x753,0x753,0x5e8,0x5e8,0x753, -0x5eb,0x753,0x5eb,0x753,0x753,0x753,0x753,0x753,0x759,0x5f4,0x753,0x5f4,0x5f4,0x5e8,0x5e8,0x5e8, -0x753,0x753,0x753,0x753,0x5e8,0x5e8,0x5e8,0x5e8,0x753,0x753,0x5e8,0x5e8,0x5e8,0x5eb,0x5e8,0x5e8, -0x5eb,0x5e8,0x5e8,0x5eb,0x753,0x5eb,0x5e8,0x5e8,0x753,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x753,0x5e8, -0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x756,0x753,0x5eb,0x5e8, -0x753,0x753,0x753,0x753,0x5e8,0x5e8,0x753,0x753,0x5e8,0x5eb,0x756,0x756,0x5eb,0x5eb,0x5e8,0x5e8, -0x5eb,0x5eb,0x5e8,0x5e8,0x5eb,0x5eb,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5eb,0x5eb,0x753,0x753, -0x5eb,0x5eb,0x753,0x753,0x5eb,0x5eb,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8, -0x5e8,0x753,0x5e8,0x5e8,0x5e8,0x753,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x753,0x5e8,0x5e8, -0x5e8,0x5e8,0x5e8,0x5e8,0x5eb,0x5eb,0x5eb,0x5eb,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8, -0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x753,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8, -0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8, -0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5eb,0x5eb,0x5eb,0x5eb,0x5e8,0x5e8,0x5e8,0x5e8, -0x5e8,0x5e8,0x5eb,0x5eb,0x5eb,0x5eb,0x5e8,0x5ee,0x5e8,0x5e8,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d, -0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0x5fa,0xb6d,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa, -0x603,0x600,0x603,0x600,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x75c,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa, -0x5fa,0x5fa,0x84c,0x84c,0x5fa,0x5fa,0x5fa,0x5fa,0x5fd,0x5fd,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa, -0x5fa,0x852,0x84f,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa, -0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa, -0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0xb6d,0xc63,0xb6d,0xb6d,0xb6d,0x606,0x606,0x606,0x606, -0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606, -0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x765,0x765,0x765,0x765, -0x765,0x765,0x765,0x765,0x765,0x765,0x60c,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0, -0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xdd1,0x76b,0x76b,0x76b,0x76b, -0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b, -0x60f,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x76b,0x76b,0x76b,0x76b, -0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x612,0x612,0x612,0x612,0x76b,0x76b,0x76b,0x76b, -0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76e,0x76e,0x76e,0x76e, -0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x615,0x615,0x76e,0x76e, -0x76e,0x76e,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0x774,0x774,0x618,0x771, -0x771,0x771,0x771,0x771,0x771,0x771,0x618,0x618,0x618,0x618,0x61b,0x61b,0x61b,0x61b,0x774,0x774, -0x61b,0x61b,0x774,0x774,0x618,0x618,0x618,0x618,0x774,0x774,0x61b,0x61b,0x774,0x774,0x618,0x618, -0x618,0x618,0x774,0x774,0x771,0x618,0x61b,0x774,0x618,0x618,0x771,0x774,0x774,0x774,0x61b,0x61b, -0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x774,0x771, -0x774,0x771,0x618,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x618,0x618,0x771,0xb73,0xb73,0xb73,0xb73, -0xb73,0xb73,0xb73,0xb73,0xc69,0xc69,0xc69,0xc69,0xc69,0xcd8,0xcd8,0xc69,0x621,0x621,0x621,0x621, -0x61e,0x77d,0x77d,0x61e,0x61e,0x777,0x61e,0x61e,0x61e,0x61e,0x777,0x777,0x61e,0x61e,0x61e,0x61e, -0xdda,0xdda,0xc6c,0xc6c,0xe61,0xb76,0x621,0x621,0x77a,0x624,0x77a,0x621,0x61e,0x61e,0x61e,0x61e, -0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e, -0x61e,0x61e,0x61e,0x61e,0x61e,0x621,0x621,0x621,0x61e,0x61e,0x61e,0x61e,0x77d,0x61e,0x77d,0x61e, -0x61e,0x61e,0x61e,0x61e,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855, -0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x77d,0x77d,0x627,0x77d, -0x777,0x777,0x61e,0x777,0x77a,0x777,0x777,0x61e,0x777,0x77d,0x627,0x77d,0xb76,0xb76,0xc6f,0xc6f, -0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xe5e,0xf1b,0x62a,0x62a,0x62a,0x62a, -0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a,0x62a, -0x62d,0x1473,0x1473,0x1473,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x15b4,0x633,0x633,0x633, -0x633,0x1473,0x62d,0x62d,0x633,0x633,0x1476,0x1476,0x639,0x639,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d, -0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x1473,0x62d,0x62d,0x62d, -0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d, -0x62d,0x783,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d, -0x1473,0x62d,0x1473,0x62d,0x62d,0x62d,0x62d,0x1473,0x1473,0x1473,0x62d,0x1368,0x62d,0x62d,0x62d,0x636, -0x636,0x636,0x636,0x13ef,0x13ef,0x62d,0x630,0x630,0x633,0x62d,0x62d,0x62d,0xc75,0xc72,0xc75,0xc72, -0xc75,0xc72,0xc75,0xc72,0xc75,0xc72,0xc75,0xc72,0xc75,0xc72,0x780,0x780,0x780,0x780,0x780,0x780, -0x780,0x780,0x780,0x780,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d, -0x62d,0x62d,0x62d,0x62d,0x1473,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d,0x62d, -0x62d,0x62d,0x62d,0x1473,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a, -0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a, -0x65a,0x65a,0x651,0x651,0x651,0x651,0x651,0x651,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654, -0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654, -0x654,0x654,0x654,0x654,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7, -0xbc7,0xbc7,0xbc7,0xbc7,0x65a,0x65a,0x9ae,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x651,0x651, -0xc78,0xdfe,0x1c0e,0x1c0e,0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654, -0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654, -0x657,0x65d,0x65a,0x654,0x65a,0x654,0x65a,0x654,0x65a,0x654,0x65a,0x654,0x65a,0x654,0x65a,0x654, -0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654, -0x65a,0x654,0x657,0x65d,0x65a,0x654,0x65a,0x654,0x657,0x65d,0x65a,0x654,0x657,0x65d,0x65a,0x654, -0x65a,0x654,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2, -0x65a,0x654,0x65a,0x654,0x65a,0x654,0x657,0x65d,0x657,0x65d,0x65a,0x654,0x65a,0x654,0x65a,0x654, -0x65a,0x654,0x65a,0x654,0x65a,0x654,0x65a,0x654,0x657,0x65a,0x654,0x657,0x65a,0x654,0x657,0x65d, -0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654, -0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657, -0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a, -0x65a,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654, -0x654,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d, -0x654,0x65a,0x96c,0x96f,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e, -0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x657,0x654,0x657,0x657,0x657,0x657,0x657,0x657,0x654,0x657,0x654,0x654, -0x657,0x657,0x654,0x654,0x657,0x657,0x654,0x657,0x654,0x657,0x654,0x654,0x657,0x654,0x654,0x657, -0x654,0x657,0x654,0x654,0x657,0x654,0x657,0x657,0x654,0x654,0x654,0x657,0x654,0x654,0x654,0x654, -0x654,0x657,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654, -0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x657,0x657,0x654,0x654,0x657,0x654,0x657,0x654, -0x654,0x654,0x654,0x654,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657, -0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657, -0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x65d,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a, -0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a, -0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d, -0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65a,0x65a,0x65a, -0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x660,0x660,0x660,0x660,0x1089,0x1089,0x1089,0x15b7, -0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x17cd,0x17cd,0x8b5,0x8bb,0x8bb,0x8c7,0x8c7,0x8b8,0x8af,0x8b8, -0x8af,0x8b8,0x8af,0x8b8,0x8af,0x8b8,0x8af,0x8b8,0x66f,0x66f,0x669,0x66f,0x669,0x66f,0x669,0x66f, -0x669,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66f,0x669,0x66c, -0x672,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66f,0x669,0x66f,0x669,0x66f, -0x669,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66c, -0x672,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66c,0x672,0x66f,0x669,0x66c, -0x672,0x66f,0x669,0x66c,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762, -0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f, -0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f, -0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x768,0x768,0x768,0x768,0x768,0x768, -0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x765,0x765,0x765,0x765, -0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x76b,0x76b,0x76b,0x76b, -0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b, -0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x786,0x786,0x786,0x786, -0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786, -0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0xcc6,0x918,0x90f,0x90c, -0x912,0x915,0x79b,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x91e,0x79b,0x79b,0x79b, -0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b, -0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x91b,0x91b, -0x7a1,0x92d,0x930,0x936,0x858,0x867,0x94e,0x864,0x924,0x921,0x924,0x921,0x92a,0x927,0x92a,0x927, -0x924,0x921,0x85e,0x936,0x924,0x921,0x924,0x921,0x924,0x921,0x924,0x921,0x93c,0x942,0x945,0x93f, -0x7a7,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd, -0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7aa,0x7c5,0x7a4,0x7cb,0x7ce, -0x7c8,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da, -0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7aa,0x7c5,0x7a4,0x7c5,0xcc9, -0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846, -0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846, -0x846,0x846,0x1362,0x1362,0x1362,0x1362,0x1362,0x849,0x85e,0x861,0x861,0x861,0x861,0x861,0x861,0x861, -0x861,0x861,0x987,0x987,0x987,0x987,0x86a,0x86a,0x939,0x94b,0x94b,0x94b,0x94b,0x948,0x85b,0x933, -0xb9a,0xb9a,0xb9a,0xcdb,0xcf9,0xcf6,0xbb8,0x909,0x870,0x86d,0x870,0x873,0x86d,0x870,0x86d,0x870, -0x86d,0x870,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x870,0x870,0x86d,0x870,0x870,0x86d,0x870,0x870, -0x86d,0x870,0x870,0x86d,0x870,0x870,0x86d,0x86d,0xcfc,0x882,0x87c,0x882,0x87c,0x882,0x87c,0x882, -0x87c,0x882,0x87c,0x87c,0x87f,0x87c,0x87f,0x87c,0x87f,0x87c,0x87f,0x87c,0x87f,0x87c,0x87f,0x87c, -0x87f,0x87c,0x87f,0x87c,0x87f,0x87c,0x87f,0x87c,0x87f,0x87c,0x87f,0x882,0x87c,0x87f,0x87c,0x87f, -0x87c,0x87f,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87f,0x87f,0x87c,0x87f,0x87f,0x87c,0x87f,0x87f, -0x87c,0x87f,0x87f,0x87c,0x87f,0x87f,0x87c,0x87c,0x87c,0x87c,0x87c,0x882,0x87c,0x882,0x87c,0x882, -0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x882,0x87c,0x87c,0x87c,0x87c,0x87c,0x87f,0x882,0x882,0x87f, -0x87f,0x87f,0x87f,0x954,0x957,0x885,0x888,0xce4,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e, -0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e, -0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x891,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e, -0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e,0x88e, -0x88e,0x88e,0x88e,0x88e,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a, -0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a,0x89a, -0xde3,0xde3,0xf1e,0x894,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960, -0xddd,0xddd,0xddd,0xddd,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d, -0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d, -0x89d,0x89d,0x89d,0x1b51,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966, -0x966,0x966,0x966,0x966,0x966,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0xde6,0xde6,0xde6,0xde6,0x969, -0x969,0x969,0x969,0x969,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0, -0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0, -0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0xde6,0xde6,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3, -0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3, -0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966, -0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6, -0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6, -0x8a6,0x8a6,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21, -0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0xf21,0x11d0,0x11d0,0x11d0,0x11d0,0x8a9,0x8a9,0x8a9,0x8a9, -0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9, -0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8ac,0x8ac, -0x8a9,0x8ac,0x8a9,0x8ac,0x8ac,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8a9,0x8ac, -0x8a9,0x8ac,0x8a9,0x8ac,0x8ac,0x8a9,0x8a9,0x8ac,0x8ac,0x8ac,0x8a9,0x8a9,0x8a9,0x8a9,0x1572,0x1572, -0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced, -0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960, -0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960, -0x13a1,0x13a1,0x13a1,0x13a1,0x134a,0x134a,0x134a,0x134a,0x134a,0x134a,0x134a,0x134a,0xddd,0xce7,0xce7,0xce7, -0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0x963,0x963,0x963,0x963, -0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963, -0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0xce7,0xce7,0xce7, -0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0x966,0x966,0x966,0x966, -0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966, -0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0xde6,0x9fc,0x9d8,0x9d8,0x9d8, -0x9d8,0x9d2,0x9d8,0x9d8,0x9ed,0x9d8,0x9d8,0x9e7,0x9e4,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ed,0x9d2, -0x9de,0x9d2,0x9d2,0x9d2,0x9c0,0x9c0,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9f0,0x9f0,0x9f0,0x9f0, -0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2, -0x9d5,0x9c6,0x9d2,0x9c6,0x9d2,0x9c3,0x9e1,0x9db,0x9e1,0x9db,0x9f6,0x9f6,0xa05,0xa05,0xa05,0xa05, +0x18f,0x18f,0x18f,0x18f,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b6,0x1b6,0x1b6,0x1b6, +0x1b6,0x1b6,0x1b6,0x1b6,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b6,0x1b6,0x1b6,0x1b6, +0x1b6,0x1b6,0x1b6,0x1b6,0x1d1,0x1d1,0x1d1,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0x1ce,0x1ce,0x1ce,0x1ce, +0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, +0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0xe0a,0xe0a, +0xe0a,0xe0a,0xe0a,0xe0a,0x1d4,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1, +0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1, +0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237, +0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x237,0x237, +0x237,0x237,0x22b,0x660,0xc99,0xc99,0xcb1,0xc99,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c, +0x36c,0x36c,0x36c,0x36c,0x231,0x231,0x231,0x231,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363, +0x363,0x363,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237, +0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237, +0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0x23d,0x237,0xc9c,0xc99,0xc9c,0xc99,0xc9c,0xc99, +0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x1044,0x555,0x555,0x555,0x555,0x555,0x555, +0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x1044,0x1524,0x1524,0xcba,0x5ac,0x246, +0x49e,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x648,0x648,0x648,0x648,0x642,0x642, +0x50a,0x51f,0x51f,0x51f,0x51f,0x51c,0x459,0x504,0x7e3,0x7e3,0x7e3,0x91b,0x939,0x936,0x7f8,0x2a9, +0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df,0x2df, +0x2df,0x2df,0x2df,0x2df,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc, +0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc, +0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4, +0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1, +0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306, +0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306, +0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x306,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381, +0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381, +0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x909,0x3b1,0x3a8,0x3a5,0x3ab,0x3ae,0x39f,0x3a2, +0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3b4,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f, +0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f, +0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x63f,0x63f,0x3ba,0x3f9,0x3f9,0x3f9, +0x3f9,0x3f9,0x3f9,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3, +0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3bd,0x3db,0x3b7,0x3e1,0x3e4,0x3de,0x3f6,0x3f6,0x3f6, +0x3f6,0x3f6,0x3f6,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0, +0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3bd,0x3db,0x3b7,0x3db,0x90c,0x3c6,0x4fe,0x501,0x507, +0x44d,0x4b3,0x534,0x4b0,0x53a,0x537,0x540,0x53d,0x4fb,0x4f8,0x4fb,0x4f8,0x4f5,0x4f2,0x49e,0x507, +0x4f5,0x4f2,0x4f5,0x4f2,0x4f5,0x4f2,0x4f5,0x4f2,0x50d,0x513,0x516,0x510,0x4bc,0x4bc,0x4bc,0x4bc, +0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc, +0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0xa1a,0xa1a,0xb40,0x450,0x56a,0x567,0x56a,0x567, +0xd8c,0xd89,0xd8c,0x12de,0x12db,0x12de,0x12db,0x12de,0x12db,0x12de,0x13e6,0x13e3,0x462,0x474,0x474,0x492, +0x492,0x468,0x456,0x468,0x456,0x468,0x456,0x468,0x456,0x468,0x456,0x468,0x528,0x528,0x528,0x528, +0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x45f,0x45f,0x45f, +0x45f,0x45f,0x45f,0xa0b,0xa0b,0xa0b,0xa0b,0x52e,0x52e,0x52e,0x52e,0x52e,0x45f,0x45f,0x45f,0x45f, +0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f, +0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0xa0b,0xa0b, +0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad, +0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad, +0x4ad,0x4ad,0x4b6,0x4b6,0x4ad,0x4b6,0x4ad,0x4b6,0x4b6,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad, +0x4ad,0x4ad,0x4ad,0x4b6,0x4ad,0x4b6,0x4ad,0x4b6,0x4b6,0x4ad,0x4ad,0x4b6,0x4b6,0x4b6,0x4ad,0x4ad, +0x4ad,0x4ad,0x110d,0x110d,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e, +0x91e,0x91e,0x91e,0x91e,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6, +0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6, +0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xd74,0xd74,0xd74,0xd74, +0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf, +0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf, +0x4bf,0x4bf,0xf33,0xf33,0xf33,0xf33,0xf33,0x4c8,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2, +0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2, +0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c5,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2, +0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2, +0x4c2,0x4c2,0x4c2,0x4c2,0x4ce,0x4cb,0x4ce,0x4d1,0x4cb,0x4ce,0x4cb,0x4ce,0x4cb,0x4ce,0x4cb,0x4cb, +0x4cb,0x4cb,0x4cb,0x4cb,0x4ce,0x4ce,0x4cb,0x4ce,0x4ce,0x4cb,0x4ce,0x4ce,0x4cb,0x4ce,0x4ce,0x4cb, +0x4ce,0x4ce,0x4cb,0x4cb,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528, +0xa0b,0xa0b,0xa0b,0xa0b,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da, +0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da, +0x4da,0x4da,0x4da,0x16a1,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd, +0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd, +0x4dd,0x4dd,0x4dd,0x4dd,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x933,0x4e6,0x4e0,0x4e6, +0x4e0,0x4e6,0x4e0,0x4e6,0x4e0,0x4e6,0x4e0,0x4e0,0x4e3,0x4e0,0x4e3,0x4e0,0x4e3,0x4e0,0x4e3,0x4e0, +0x4e3,0x4e0,0x4e3,0x4e0,0x4e3,0x4e0,0x4e3,0x4e0,0x4e3,0x4e0,0x4e3,0x4e0,0x4e3,0x4e0,0x4e3,0x4e6, +0x4e0,0x4e3,0x4e0,0x4e3,0x4e0,0x4e3,0x4e0,0x4e0,0x4e0,0x4e0,0x4e0,0x4e0,0x4e3,0x4e3,0x4e0,0x4e3, +0x4e3,0x4e0,0x4e3,0x4e3,0x4e0,0x4e3,0x4e3,0x4e0,0x4e3,0x4e3,0x4e0,0x4e0,0x4e0,0x4e0,0x4e0,0x4e6, +0x4e0,0x4e6,0x4e0,0x4e6,0x4e0,0x4e0,0x4e0,0x4e0,0x4e0,0x4e0,0x4e6,0x4e0,0x4e0,0x4e0,0x4e0,0x4e0, +0x4e3,0x4e6,0x4e6,0x4e3,0x4e3,0x4e3,0x4e3,0x4ef,0x522,0x4e9,0x4ec,0x92a,0x528,0x528,0x528,0x528, +0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528, +0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0xf39,0xf39,0xf39,0xf39, +0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xa0b,0x915,0x915,0x915,0x915,0x915,0x915,0x915, +0x915,0x915,0x915,0x915,0x915,0x915,0x915,0x915,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528, +0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528,0x528, +0x528,0x528,0x528,0x528,0x528,0x528,0x528,0xa0b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b, +0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b, +0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x52b,0x915,0x915,0x915,0x915,0x915,0x915,0x915, +0x915,0x915,0x915,0x915,0x915,0x915,0x915,0x915,0x68d,0x669,0x669,0x669,0x669,0x663,0x669,0x669, +0x67e,0x669,0x669,0x678,0x675,0x67b,0x67b,0x67b,0x67b,0x67b,0x67e,0x663,0x66f,0x663,0x663,0x663, +0x6ab,0x6ab,0x663,0x663,0x663,0x663,0x663,0x663,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681, +0x681,0x681,0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x666,0x6b1,0x663,0x6b1, +0x663,0x6ae,0x672,0x66c,0x672,0x66c,0x687,0x687,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690, +0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690, +0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696, +0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696, +0x696,0x696,0x696,0x696,0x696,0x696,0x693,0x693,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696, +0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696, +0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x699,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c, +0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c, +0x69c,0x69c,0x69c,0x69c,0x699,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c, +0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c, +0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8, +0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea, +0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea, +0x705,0x705,0x705,0x705,0x705,0x705,0x705,0xa9b,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705, +0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705, +0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0xa9b,0x705,0x705,0x705,0x705, +0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x72c,0x72c,0x72c,0x72f, +0x72f,0x72c,0x72c,0x72c,0x729,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c, +0x813,0x813,0x726,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x726,0x726,0x72c,0x72c,0x72c,0x72c, +0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c, +0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x762,0x762,0x762,0x762, +0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762, +0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x765, +0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762, +0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x819,0x819,0x762, +0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762, +0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x7d4,0x7d4,0x7d4,0x7d4,0x7d4,0x7d4,0x7d4,0x7d4, +0x7d4,0x7d4,0x77a,0x77a,0x76b,0x76b,0x76b,0x76b,0x774,0x774,0x774,0x774,0x774,0x774,0x771,0x771, +0x81f,0x81f,0xccf,0xccf,0xccf,0xccf,0xda4,0xda4,0x774,0x774,0xccf,0x774,0x774,0x774,0x777,0x774, +0xccf,0x774,0x774,0xcc6,0x76e,0x81f,0x81f,0x81f,0x81f,0x771,0x81f,0xda4,0xda4,0xda4,0x81f,0x822, +0x76e,0x825,0xdaa,0xcc9,0xcc9,0xda4,0xda4,0xccf,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774, +0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774, +0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789, +0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789, +0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x789,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc, +0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7b9,0x7bf,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0xe25, +0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe22,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc, +0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc, +0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7c2,0x7c2,0x7c2,0x7c2, +0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2, +0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7c2,0x7da,0x7da,0x7da,0x7da, +0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da, +0x7da,0x7da,0x7da,0x7da,0x1035,0x1035,0x1035,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x7dd,0x7dd,0x7dd,0x7dd, +0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd, +0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7e0,0x7e0,0x7e0,0x7e0, +0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0, +0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e6,0x7e6,0x7e6,0x7e6, +0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6, +0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x1701,0x1701, +0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x7e9,0x7e9,0x92d,0x92d,0x7e9,0x7e9,0x7e9,0x7e9, +0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x92d,0x7e9,0x7e9,0x7e9, +0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec, +0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ef,0x7ec,0x7ec, +0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec, +0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec, +0x855,0x855,0x855,0x855,0x855,0x885,0x885,0x88b,0x88b,0x88b,0x852,0x852,0x852,0x888,0x888,0x888, +0x888,0x888,0x888,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x88b,0x88b,0x88b,0x88b,0x88b, +0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852, +0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852, +0x852,0x852,0x855,0x855,0x88b,0x88b,0x88b,0x852,0x852,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b,0x88b, +0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852, +0x852,0x852,0x852,0x852,0x852,0x852,0x88b,0x88b,0x88b,0x88b,0x852,0x852,0x852,0x852,0x852,0x852, +0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x855,0x855,0x855,0x855,0x855,0x855,0x852,0x852,0x852, +0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852, +0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x1359,0x1359,0x861,0x858,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x858,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x861,0x861, +0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861, +0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x858,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x858,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861, +0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x858,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b, +0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b, +0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861, +0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861, +0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, +0x85e,0x85e,0x85e,0x85e,0x861,0x861,0x861,0x861,0x867,0x867,0x867,0x867,0x867,0x867,0x98a,0x98a, +0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864, +0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x987,0x987,0x9e4,0x9e4,0x9e4,0x9e4, +0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x867,0x867,0x867,0x867, +0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867, +0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x876,0x876,0x876,0x876, +0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876, +0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x11bb,0x87c,0x87c,0x87c,0x87c, +0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c, +0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87f,0x87f,0x87f,0x87f, +0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f, +0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x1701, +0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x17ac,0x17ac,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882, +0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882, +0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x882,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8ac,0x8b8, +0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x96c, +0x972,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xb91,0xb91,0xb91,0xb91, +0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11, +0x96c,0x96c,0xa53,0xb34,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xc36,0xf18,0xf18, +0xa65,0xa65,0xa65,0xa65,0xa65,0xa6b,0xa68,0xb91,0xb91,0xb91,0xb91,0x107d,0xc51,0x107d,0xfae,0xfae, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x912,0x90f,0x912,0x90f,0x912,0x90f,0xd68,0xd65,0xc57,0xc54,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8be, +0x8bb,0x912,0x90f,0x8be,0x8bb,0x8be,0x8bb,0x8be,0x8bb,0x8be,0x8bb,0x8be,0x8bb,0x8be,0x8bb,0x8be, +0x8bb,0x8be,0x8bb,0x8be,0x8bb,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8be,0x8bb,0x8be,0x8bb,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8be,0x8bb,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8c4,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8c4,0x8c4,0x8c4,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8, +0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8b8,0x8c1,0x8b8,0x8b8,0x8b8,0x91e,0x91e,0x91e,0x91e, +0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e, +0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x96c,0xa11,0xa53,0xa53, +0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xb34,0xb34,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xb8e,0xc36, +0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xf2a,0xf2a,0xf1b,0x96c,0x96c,0x96c,0x96c, +0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53, +0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xd6e,0xd6e,0xc36,0xc36,0xc36,0x9b1,0x9b1,0x9b1,0x9b1, +0x9b1,0x9b1,0x996,0x996,0x996,0x996,0x996,0x984,0x9bd,0x9bd,0x9bd,0x9b7,0x9bd,0x9bd,0x9bd,0x9bd, +0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9b7,0x9bd,0x9bd,0x9bd,0x9bd,0x99f,0x99f,0x9ba,0x9ba, +0x9ba,0x9ba,0x99c,0x99c,0x99c,0x99c,0x99c,0x9b1,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc, +0xabc,0xabc,0xabc,0xabc,0xa8f,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0x9bd,0x9bd,0x9bd,0x9bd, +0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9b7,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd, +0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x99f,0x99f,0x99f,0x9ae,0x9ae,0x9ae,0x9ae, +0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, +0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9b1,0x9b1,0x9b1,0x9b1, +0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1, +0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9db,0x9db,0x9db,0x9db, +0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db, +0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9e4,0x9e4,0x9e4,0x9e4, +0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4, +0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0xa05,0xa05,0xa05,0xa05, 0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05, -0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa08,0xa08,0xa08,0xa08, -0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08, -0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa0b,0xa0b,0xa0b,0xa0b, -0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b, -0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa14,0xa14,0xa14,0xa14, -0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14, -0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa0e,0xa0e,0xa17,0xa17,0xa17,0xa17, -0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17, -0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa11,0xa11,0xa14,0xa14,0xa14,0xa14, -0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14, -0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa17,0xa17,0xa17,0xa17, -0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17, -0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa1a,0xa1d,0xa1d,0xa1d, -0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d, -0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1a,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d, -0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d, -0xa1d,0xa1d,0xa1d,0xa1d,0xabf,0xabf,0x106b,0xabf,0xabf,0xabf,0xac2,0xabf,0x106b,0xabf,0xabf,0x1062, -0xab9,0xaad,0xaad,0xaad,0xaad,0xabc,0xaad,0x1053,0x1053,0x1053,0xaad,0xab0,0xab9,0xab3,0x1059,0x1065, -0x1065,0x1053,0x1053,0x106b,0xbbe,0xbbe,0xbbe,0xbbe,0xbbe,0xbbe,0xbbe,0xbbe,0xbbe,0xbbe,0xac5,0xac5, -0xab6,0xab6,0xab6,0xab6,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabc,0xabc,0xaad,0xaad,0x106b,0x106b, -0x106b,0x106b,0x1053,0x1053,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf, -0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf, -0xabf,0xabf,0xabf,0xabf,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xe40,0xad4,0xad4,0xad4,0xad4, -0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4, -0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xe40, -0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4, -0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada, +0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa41,0xa41,0xa41,0xa41, +0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41, +0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xb16,0xb16,0xb16,0xb16, +0xb16,0xb16,0xb16,0xb16,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d, +0xa4d,0xa4d,0xa4d,0xb8b,0xb8b,0xb8b,0xb8b,0xc33,0xc33,0xc33,0xc33,0xc33,0xa62,0xa62,0xa62,0xa62, +0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f, +0xa5f,0xa5f,0xa5c,0xb13,0xc42,0xc39,0xc4e,0xc36,0xa59,0xa59,0xc36,0xc36,0xa86,0xa83,0xa86,0xa83, +0xa86,0xa83,0xa86,0xa83,0xa86,0xa83,0xa86,0xa83,0xa86,0xa83,0xa86,0xa83,0xa86,0xa83,0xa86,0xa83, +0xa86,0xa83,0xa86,0xa83,0xa86,0xa83,0xa86,0xa83,0xa86,0xa83,0xa86,0xa83,0xa9e,0xa9e,0xa9e,0xa9e, +0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e, +0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xaad,0xaad,0xaad,0xaad, +0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad, +0xaad,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaaa,0xaaa,0xaaa,0xaaa, +0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa, +0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaad,0xaad,0xaad,0xaad, +0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad, +0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xaad,0xac8,0xac8,0xac8,0xac8, +0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8, +0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xab0,0xabc,0xabc,0xabc,0xabc, +0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc, +0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xac8,0xac8,0xac8,0xac8,0xac8,0xadd,0xadd,0xadd,0xadd, +0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0x1779,0xada,0xada,0xada,0xada, 0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada, -0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xadd,0xae3,0xae0, -0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209, -0x1206,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0, -0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0, -0xae0,0xae0,0xae0,0xae0,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5, -0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5, -0xaf5,0xaf5,0xaf5,0xaf5,0xb25,0xb25,0xb25,0xb28,0xb28,0xb25,0xb25,0xb25,0xb22,0xb25,0xb25,0xb25, -0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb0a,0xb0a,0xb1f,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8, -0xaf8,0xaf8,0xb1f,0xb1f,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25, -0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25, -0xb25,0xb25,0xb25,0xb25,0xb49,0xb49,0xb49,0xb49,0xb49,0xb34,0xb34,0xb49,0xb49,0xb49,0xb49,0xb49, -0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49, -0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb4c, -0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49, -0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb6d,0xb6d,0xb6d,0xb6d, -0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d, -0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xc63,0xc63,0xc63,0xc63,0xc63,0xb79,0xb79,0xb79,0xb79, -0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb8b,0xb8b,0xb8b,0xb8b, -0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b, -0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb91,0xb91,0xb91,0xb91, -0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91, -0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0x1479,0x1479,0x1479,0x1bd2,0x1bd2,0x1bd2,0x1bd2,0x1bd2,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0x1bd5,0x1bd5, -0x1bd5,0x1bd5,0x1bd5,0x1bd5,0x1bd5,0x1bd5,0x1bd5,0x1bd5,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3, -0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba6,0xba3,0xba3, -0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3, -0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3, -0xba9,0xba9,0xcea,0xcea,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9, -0xba9,0xba9,0xba9,0xba9,0xcea,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9, -0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd, -0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0x15ba, -0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xd71,0xd71,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3, -0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3, -0xbd3,0xbd3,0xd6e,0xd6e,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc, -0xdbc,0xdbc,0xdbc,0xdbc,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6, -0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6, -0xbd6,0xbd6,0xbd6,0xbd6,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9, -0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9, -0xbd9,0xbd9,0xbd9,0xbd9,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbdf,0xbeb,0xbf1,0xbf1,0xbf1,0xbe5,0xbe5, -0xbe5,0xbee,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbf1, -0xbf1,0xbf1,0xbf1,0xbf1,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5, -0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5, -0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe8,0xbe8,0xbf1,0xbf1,0xbf1,0xbe5,0xbe5,0xbf1,0xbf1,0xbf1, -0xbf1,0xbf1,0xbf1,0xbf1,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5, -0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbf1,0xbf1,0xbf1,0xbf1,0xbe5,0xbe5, -0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8, -0xbe8,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5, -0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0x17d0,0x17d0, -0xbfd,0xbf4,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbf4,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, -0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbf4,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbf4,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, -0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbf4,0xbfa,0xbfa, +0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0x1776,0xadd,0xadd,0xadd,0xadd, +0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd, +0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xaf2,0xaf2,0xb6d,0xaf2, +0xaf2,0xaf2,0xb70,0xaf2,0xaf2,0xaf2,0xaf2,0xb6d,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2, +0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xafb,0xafb,0xafb,0xafb, +0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb, +0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xb01,0xb01,0xb01,0xb01, +0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01, +0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb0a,0xb0a,0xb0a,0xb0a, +0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, +0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb3a,0xb3a,0xb3a,0xb3a, +0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a, +0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb43,0xb43,0xb43,0xb43, +0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xd77,0xd77,0xd77,0xd77, +0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xb73,0xb73,0xb49,0xb49, +0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xd89,0xd89,0xd8c,0xd8f,0xd89,0xd80,0xd83,0xd83,0xd86, +0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xb82,0xb82,0xca2,0xc9f, +0xca2,0xc9f,0xca2,0xc9f,0xca2,0xc9f,0xca2,0xc9f,0xca2,0xc9f,0xca2,0xc9f,0xc90,0xc90,0xc96,0xc90, +0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xb91,0xb91,0xb91,0xb8e, +0xb8e,0xb8e,0xb8e,0xb8e,0xdec,0x102c,0x102c,0x102c,0x102c,0xfa5,0xfa5,0xfa5,0x102f,0xfa8,0xfa8,0x102f, +0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x1404,0x1404,0x1404,0x1404,0x14b8,0xb8e,0xb8e,0xb8e,0xb8e, +0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc51,0xc51,0xc51,0xc51, +0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xba9,0xba6,0xba9,0xba9, +0xba9,0xba6,0xba6,0xba9,0xbac,0xbaf,0xbac,0xbaf,0xbac,0xc96,0xc96,0xc96,0xe10,0xc90,0xc96,0xc90, +0xba0,0xba3,0xba0,0xba6,0xc99,0xc99,0xc99,0xc99,0xcab,0xcae,0xe10,0xe10,0xbb2,0xbb5,0xbb5,0xbb5, +0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, +0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0x177f,0x177f,0x1872,0xc0f,0xc0f,0xc0f,0xc0f, +0xbbe,0xbc4,0xbc7,0xbc4,0xbc7,0xbc4,0xbc7,0xbc4,0xbc7,0xbc4,0xbc7,0xbc4,0xbc4,0xbc4,0xbc7,0xbc4, +0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4, +0xbc4,0xbc4,0xbc4,0xbc4,0xc15,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc12,0xc0f,0xc12,0xbbe,0xbbe, +0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8, +0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8, 0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7, -0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7, -0xbf7,0xbf7,0xbf7,0xbf7,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, -0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfa,0xbfa, 0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd, -0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa, -0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfd,0xbfd,0xbfd,0xbfd,0xc00,0xc00,0xc00,0xc00, -0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00, -0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc06,0xc06,0xc06,0xc06, -0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06, -0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0x1bdb, -0x1bdb,0x1bdb,0x1bdb,0x1bdb,0x1bdb,0x1bdb,0x1ca7,0x1ca7,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09, -0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09, -0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63, -0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc60,0xc63, -0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xd65, -0xd68,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xf78,0xf78,0xf78,0xf78, -0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b, -0xd6b,0xd6b,0xe5e,0xf18,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0x1083,0x1341,0x1341, -0xe67,0xe67,0xe67,0xe67,0xe67,0xe6d,0xe6a,0xf8a,0xf8a,0xf8a,0xf8a,0x14b8,0x1095,0x14b8,0x13fb,0x13fb, -0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2, -0xca2,0xca2,0xccf,0xccc,0xccf,0xccc,0xccf,0xccc,0x11ca,0x11c7,0x109b,0x1098,0xca5,0xca5,0xca5,0xca5, -0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca8,0xca8,0xca8,0xca8, -0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8, -0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xca8,0xcab,0xcab,0xcab,0xcb1, -0xcae,0xcd5,0xcd2,0xcb1,0xcae,0xcb1,0xcae,0xcb1,0xcae,0xcb1,0xcae,0xcb1,0xcae,0xcb1,0xcae,0xcb1, -0xcae,0xcb1,0xcae,0xcb1,0xcae,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab, -0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab, -0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcb1,0xcae,0xcb1,0xcae,0xcab,0xcab,0xcab,0xcab, -0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab, -0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcb1,0xcae,0xcab,0xcab,0xcb4,0xcb4,0xcb4,0xcb4, -0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcba,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4, -0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4, -0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcba,0xcba,0xcba,0xcb4, -0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4, -0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb7,0xcb4,0xcb4,0xcb4, -0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced, -0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced, -0xd6b,0xdd7,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xf18,0xf18,0xe5e,0xe5e,0xe5e,0xe5e, -0xe5e,0xe5e,0xf7b,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1365,0x1365,0x1344, -0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f, -0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f,0xd8f, -0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd95,0xd95,0xd95,0xd95,0xd95,0xd92,0xda7,0xda7,0xda7,0xda1, -0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda1,0xda7,0xda7,0xda7,0xda7, -0xd9b,0xd9b,0xda4,0xda4,0xda4,0xda4,0xd98,0xd98,0xd98,0xd98,0xd98,0xd9e,0xe73,0xe73,0xe73,0xe73, -0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe70,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73, -0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda1,0xda7, -0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xd9b,0xd9b,0xd9b, -0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e, -0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e, -0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xe76,0xe76, -0xe76,0xe76,0xe76,0xe76,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0x11d3,0x11d3,0x109e,0x109e,0x109e, -0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad, -0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad,0xdad, -0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3, -0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3, -0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc, -0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc, -0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8, -0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8, -0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4, -0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4, -0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c, -0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c, -0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82, -0xe82,0xe82,0xe82,0xe82,0xe82,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f, +0xbfa,0xbfa,0xbfa,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5, +0x11e5,0x11e5,0x11e5,0x11e5,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5, +0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12db,0x1515,0x1515,0x1542,0x1515,0x17dc,0x1482, +0x1047,0xf3f,0xc06,0xc06,0xc27,0xc27,0xc27,0xc27,0xd6b,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27, +0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27, +0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc96,0xc90,0xc96,0xc90, +0xc96,0xc90,0xc96,0xc90,0xc33,0xc30,0xc30,0xca8,0xca5,0xfd8,0xfd2,0x1371,0xfcf,0xfcc,0x10a7,0x10a4, +0x11a0,0x11a0,0x11a6,0x11a0,0x11a6,0x11a0,0x11a6,0x11a0,0x11a6,0x11a0,0x11a6,0x11a0,0xc51,0xc51,0xc51,0xc51, +0xc51,0xc36,0xc36,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0x116a,0x116a,0x116a,0xd6e,0xc36,0xc36,0xc36, +0xc36,0xf27,0xf18,0xf18,0xf18,0xf18,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0xc48,0xc48,0xc45,0xc3c, +0xc45,0xc3c,0xc45,0xc3c,0xc45,0xc3c,0xc4b,0xc4b,0xc4b,0xc4b,0xc5d,0xc5a,0xd5f,0xeee,0x1077,0x1074, +0x1074,0x1077,0x1071,0x1071,0x1071,0x1077,0x107a,0x107a,0x12b7,0x116d,0x116d,0x116a,0xc3f,0xc3f,0xc3f,0xc3f, +0xf2a,0xf2a,0xf1b,0xf1b,0xf1b,0xf18,0xf18,0xf18,0xf18,0xf1b,0x102c,0xf1b,0xf1b,0xf1b,0xf18,0xf1b, +0xf2a,0xf18,0xf18,0xf18,0xf1b,0xf1b,0xf18,0xf18,0xf1b,0xf18,0xf18,0xf1b,0xfba,0xfb7,0xc75,0xc6f, +0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc72,0xdda,0xd95,0xd95,0xd95,0xc6c, +0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0xd9b,0xd9b,0xc69,0xc7e,0xc75,0xc6f,0xc75,0xc6f, +0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f, +0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0xc75,0xc6f,0x118b,0x1188,0x118b,0x1188, +0x1194,0x1194,0x13e0,0x1119,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90, +0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90,0xc96,0xc90, +0xc96,0xc90,0xc96,0xc90,0xcae,0xc90,0xc90,0xc90,0xc90,0xc90,0xc90,0xc90,0xc90,0xc96,0xc90,0xc96, +0xc90,0xc96,0xc96,0xc90,0xccf,0xccf,0xda4,0xcc6,0xcc9,0xda4,0xda4,0xccc,0xccc,0xccc,0xccc,0xccc, +0xccc,0xda7,0xccf,0xccc,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xe19,0xe19, +0xe16,0xf4e,0xcc0,0xcc0,0xda4,0xccf,0xcc6,0xccc,0xccc,0xccf,0xccf,0xcc6,0xcc6,0xccc,0xccc,0xccc, +0xccc,0xccc,0xccf,0xccf,0xccf,0xda4,0xda4,0xda4,0xda4,0xccf,0xccf,0xccf,0xccf,0xccf,0xccf,0xccf, +0xccf,0xccf,0xccf,0xccf,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3, +0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3, +0xcf3,0xcf3,0xcf3,0xcf3,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcfc,0xcfc, +0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc, +0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xdb6,0xdb6,0xdb6,0xdb6,0xdb6,0xdb9,0xdb9,0xdb9,0xd62,0xcff, +0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47, +0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b, +0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b, +0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd1d,0xd11,0xd23,0xd20, +0xd1a,0xd1a,0xd1a,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17, +0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17, +0xd17,0xd17,0xd17,0xd17,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26, +0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26, +0xd26,0xd26,0xd26,0xd26,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35, +0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd38,0xd38,0xd38,0xd3b, +0xd38,0xd38,0xd3e,0xd3e,0xd4d,0xd4d,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50, +0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50, +0xd50,0xd50,0xd50,0xd50,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d, +0xd5c,0xd59,0xdce,0xdce,0xdce,0xdce,0xd59,0xd59,0xdce,0xdce,0xdd1,0x1122,0x111f,0x111f,0xd5c,0xd5c, +0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf, +0xdce,0xdce,0xd59,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c, +0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c, +0xd74,0xd74,0xd74,0xd74,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0x1110,0x13d4,0x13d4,0x13d4, +0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509, +0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98, +0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98, +0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf09,0xf09,0xf09,0xde9,0x1545, +0x101a,0xf15,0x101a,0x101a,0x101a,0x101a,0x101a,0x101a,0x101a,0x101a,0x101a,0x101a,0x101a,0xf15,0x101a,0xf15, +0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b, +0xf4b,0xf96,0xe07,0xf00,0xe07,0xe07,0xe07,0xe07,0xe01,0xe01,0xe01,0xe07,0x1368,0x136b,0x155a,0x15ea, +0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c, +0xe1f,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe13,0xe13,0xe13,0xe1c,0xe19,0x12ed,0x11af,0x11b5,0x11b5, +0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25, +0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25, +0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e, +0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e, +0xe34,0xe34,0xe34,0xe31,0xe31,0xe31,0xe2e,0xe2e,0xe2e,0xe2e,0xe31,0xe2e,0xe2e,0xe2e,0xe34,0xe31, +0xe34,0xe31,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e, +0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe34,0xe31,0xe31, +0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0x1800, +0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163e,0x1638,0x17f7,0x17f7,0x17f7,0x17fa,0x17f4,0x17fa,0x17f4, +0xf51,0xf51,0xf51,0xe40,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43, +0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43, +0xe43,0xe43,0xe43,0xf54,0xe40,0xe40,0xf51,0xf51,0xf51,0xf51,0xe40,0xe40,0xf51,0xf51,0xe40,0xe40, +0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49, +0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49, +0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b, +0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b, +0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d, +0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d,0xe6d, 0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82, 0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82, -0xf48,0xf48,0xe94,0xe94,0xf90,0xf90,0xf90,0xf90,0xf90,0xf90,0xf90,0x10ad,0x10ad,0x10b0,0x10b3,0x10ad, -0x10a7,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa, -0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0, -0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0,0xea3,0xea0, -0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf, -0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf,0xeaf, -0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0x1c1d, -0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2, -0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0x1c1a, +0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8e,0xe8b,0xe8b,0xe8b,0xe8b, +0xe88,0xe88,0xe88,0xf6c,0xf6c,0xf6c,0xf6c,0xe88,0xe88,0xf72,0xf6f,0xe85,0xe85,0xe94,0xe91,0xe91, +0xf6c,0xf6c,0xe88,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b, +0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8e,0xe8b,0xe8e,0xe8b,0xe8b,0xe8b, +0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9, +0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xf78,0xf78,0xf7b,0xf7b,0xea9,0xf78,0xf78,0xf78,0xf78,0xf78, 0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5, 0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5, -0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd, -0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xf93,0xf93,0xf93,0xf93,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6, -0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6, -0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6, -0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf, -0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xedf, -0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8, -0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee8,0xee2, -0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5, -0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee8,0xee8,0xee8,0xee8,0xee8, -0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef1,0xef1, -0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xeee,0xef7,0x10c2,0x10bc,0x10ce,0x10b9,0xeeb,0xeeb,0x10b9,0x10b9, -0xf06,0xf06,0xefa,0xf06,0xf06,0xf06,0xefd,0xf06,0xf06,0xf06,0xf06,0xefa,0xf06,0xf06,0xf06,0xf06, +0xf7e,0xeb5,0xf7e,0xf7e,0xf7e,0xebe,0xebe,0xf7e,0xf7e,0xebe,0xeb5,0xebe,0xebe,0xeb5,0xf7e,0xf81, +0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7, +0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7,0xec7, +0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0, +0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xecd,0xed3, +0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9, +0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed6,0xed6,0xed6, +0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0xf03,0xf03,0xf03,0xf03,0x101d,0x1011, +0xf0f,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x1470,0x1470,0x1470,0x1470,0x1470, +0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0x114f,0x114f,0x16a4,0x16a4,0x16a4, 0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06, -0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09, -0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09, -0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24, -0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24, -0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45, -0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9, -0xf78,0xf78,0xf78,0xf75,0xf75,0xf75,0xf75,0xf75,0x1215,0x146a,0x146a,0x146a,0x146a,0x13e6,0x13e6,0x13e6, -0x146d,0x13e9,0x13e9,0x146d,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x1884,0x1884,0x1884,0x1884,0x194a, -0xf8d,0xf8d,0xf8d,0xf8d,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e, -0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1, -0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2, -0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d5,0x1953,0x1953,0x19d4,0x1953,0x1cc5,0x188a,0x13fe,0x121e,0xf90,0xf90, -0xfb1,0xfb1,0xfb1,0xfb1,0xfc6,0xfcf,0xfd2,0xfcf,0xfd2,0xfcf,0xfd2,0xfcf,0xfd2,0xfcf,0xfd2,0xfcf, -0xfcf,0xfcf,0xfd2,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf, -0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfb4,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfc9, -0xfb1,0xfc9,0xfc6,0xfc6,0xfe1,0xfde,0xfe1,0xfe1,0xfe1,0xfde,0xfde,0xfe1,0xfe4,0xfe7,0xfe4,0xfe7, -0xfe4,0x10da,0x10da,0x10da,0x1236,0x10d7,0x10da,0x10d7,0xfd8,0xfdb,0xfd8,0xfde,0x10dd,0x10dd,0x10dd,0x10dd, -0x10e0,0x10e3,0x1236,0x1236,0xfea,0xfea,0x10f8,0x10f5,0x10f8,0x10f5,0x10f8,0x10f5,0x10f8,0x10f5,0x10f8,0x10f5, -0x10f8,0x10f5,0x10f8,0x10f5,0x10ec,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec, -0x10f2,0x10ec,0x10f2,0x10ec,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0, +0x101a,0x101a,0xf15,0x101a,0x101a,0x101a,0xf15,0x101a,0x101a,0x101a,0xf0f,0xf0f,0xf0f,0xf0f,0xf0f,0x1014, +0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0xf12,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0xf12, +0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x106e,0x106e,0x1614,0x16a4,0x16a4,0x16a4, +0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0x1017,0xf12,0x1017,0xf12,0xf12,0x1017,0x1017,0xf12, +0xf1b,0xf1b,0xfa5,0xf18,0xfa5,0xfa5,0xfa5,0xfa5,0xf18,0xf18,0xf2a,0xf18,0xf18,0xf18,0xf18,0xf18, +0xf18,0xf1b,0xf2a,0xf2a,0xf1b,0xf2a,0xf18,0xf1b,0xf1b,0xf1e,0xf2a,0xf18,0xf18,0xf2a,0xf1b,0xf1b, +0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30, +0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30, +0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99, +0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99, +0xfcf,0xfcc,0xfcf,0xfcc,0xfcf,0xfcc,0xfcf,0xfcc,0xfcf,0xfcc,0x10a7,0x11a6,0x11a6,0x11a6,0x1419,0x1569, +0x11a6,0x11a6,0x1374,0x1374,0x1374,0x136e,0x1374,0x136e,0x156f,0x156c,0x1623,0x1620,0x1623,0x1620,0x1623,0x1620, 0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0, -0xff0,0xff0,0xff0,0xff0,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff, +0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0, +0xffc,0x1062,0xffc,0x1002,0x1002,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff, 0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff, -0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3, -0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005, -0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005, -0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1053,0x106b,0x1062,0x1068,0x1068,0x106b,0x106b,0x1062, -0x1062,0x1068,0x1068,0x1068,0x1068,0x1068,0x106b,0x106b,0x106b,0x1053,0x1053,0x1053,0x1053,0x106b,0x106b,0x106b, -0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x1053,0x1062,0x1065,0x1053,0x1053,0x1068, -0x1068,0x1068,0x1068,0x1068,0x1068,0x1056,0x106b,0x1068,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f,0x105f, -0x105f,0x105f,0x11fd,0x11fd,0x11fa,0x11f7,0x105c,0x105c,0x1086,0x1086,0x1086,0x1086,0x1365,0x1365,0x1344,0x1344, -0x1344,0x1341,0x1341,0x1341,0x1341,0x1344,0x1470,0x1344,0x1344,0x1344,0x1341,0x1344,0x1365,0x1341,0x1341,0x1341, -0x1344,0x1344,0x1341,0x1341,0x1344,0x1341,0x1341,0x1344,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x109e,0x109e,0x10a1, -0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x15cc,0x15cc,0x15cc,0x11d3,0x109e,0x109e,0x109e,0x109e,0x1371,0x134d,0x134d, -0x134d,0x134d,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x10c8,0x10c8,0x10c5,0x10bf,0x10c5,0x10bf,0x10c5,0x10bf, -0x10c5,0x10bf,0x10cb,0x10cb,0x10cb,0x10cb,0x10d4,0x10d1,0x10cb,0x1233,0x14ca,0x14c7,0x14c7,0x14ca,0x14c4,0x14c4, -0x14c4,0x14ca,0x14cd,0x14cd,0x15e7,0x15db,0x15db,0x15d8,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec, -0x10e9,0x10e6,0x10e6,0x10fe,0x10fb,0x1410,0x140d,0x17d9,0x140a,0x1407,0x14d6,0x14d3,0x15ea,0x15ea,0x15f0,0x15ea, -0x15f0,0x15ea,0x15f0,0x15ea,0x15f0,0x15ea,0x15f0,0x15ea,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec, -0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec, -0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x1101,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec, -0x10ec,0x10f2,0x10ec,0x10f2,0x10ec,0x10f2,0x10f2,0x10ec,0x1104,0x1104,0x110a,0x1110,0x1110,0x1110,0x1110,0x1110, -0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110, -0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x110a,0x1104,0x1104,0x1104,0x1104,0x110a,0x110a, -0x1104,0x1104,0x110d,0x14df,0x14dc,0x14dc,0x1110,0x1110,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107, -0x1107,0x1107,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x14e2,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125, -0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125, -0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e, -0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e, -0x1131,0x1131,0x1131,0x1134,0x1131,0x1131,0x1137,0x1137,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a, -0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a, -0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x113a,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143, -0x1143,0x1143,0x1143,0x1143,0x1149,0x113d,0x114f,0x114c,0x1146,0x1146,0x1146,0x1143,0x1143,0x1143,0x1143,0x1143, -0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143, -0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1143,0x1416,0x1413,0x1164,0x115e, -0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1161,0x11e5,0x1152,0x1152,0x1152,0x115b, -0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x1155,0x1155,0x1158,0x1167,0x1164,0x115e,0x1164,0x115e, -0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e, -0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x1164,0x115e,0x15ff,0x15fc,0x15ff,0x15fc, -0x1602,0x1602,0x17e2,0x14e5,0x1170,0x1170,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173, -0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173, -0x1173,0x1173,0x1173,0x1173,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170, -0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1179,0x1179,0x1179,0x1179,0x1179,0x117c,0x117c,0x117c,0x11dc,0x1185, -0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194, -0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182, -0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182, -0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6, -0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6, -0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8, -0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8, -0x11c1,0x11c1,0x11c1,0x11c1,0x11d6,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1, -0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x11c1, -0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4, -0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4, -0x11d0,0x11d0,0x11d0,0x11d0,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x156f,0x1863,0x1863,0x1863, -0x1863,0x1863,0x1863,0x1863,0x1863,0x1863,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3, +0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e, +0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e, +0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1020,0x1020,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1020,0x1023,0x1023,0x1023,0x1020,0x1023,0x1020,0x1023,0x1020,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1026,0x1023,0x1023,0x1023,0x1023,0x1020,0x1023,0x1020,0x1020,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1020, +0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020, +0x1020,0x1020,0x1152,0x1152,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155, +0x1155,0x13ce,0x13ce,0x13ce,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1155,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1155,0x13ce,0x13ce,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1026,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1152,0x1152,0x1155,0x1155,0x1023,0x1023,0x1026,0x1026, +0x1026,0x12c6,0x1023,0x1026,0x1023,0x1023,0x1026,0x1164,0x1164,0x1155,0x1155,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce, +0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1155,0x1155,0x1155, +0x12c6,0x1155,0x1155,0x1155,0x13ce,0x13ce,0x13ce,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1155,0x1023,0x1155,0x1026,0x1026, +0x1023,0x1023,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1026,0x1026, +0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026, +0x1026,0x1023,0x1023,0x1023,0x1026,0x1023,0x1023,0x1023,0x1023,0x1026,0x1026,0x1026,0x1023,0x1026,0x1026,0x1026, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1026,0x1023,0x1026,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x12c6,0x1023,0x1023,0x1023,0x1023,0x1155,0x1155,0x13ce,0x106b,0x106b,0x106b,0x106b, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1155,0x13ce,0x13ce,0x13ce,0x13ce,0x1356,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1155,0x1155,0x1155,0x1155, +0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1164,0x1164,0x1155,0x1155,0x1155,0x1155,0x1476,0x1155, +0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155, +0x1155,0x1155,0x1155,0x1155,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1155,0x1023,0x1023,0x1023,0x1023,0x1023, +0x110a,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x110a,0x1023,0x1023,0x1023,0x110a,0x1023,0x110a,0x1023,0x110a,0x1023,0x110a,0x1023,0x1023,0x1023,0x110a, +0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x110a,0x110a,0x1023,0x1023,0x1023,0x1023,0x110a,0x1023,0x110a,0x110a, +0x1023,0x1023,0x1023,0x1023,0x110a,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x12c6,0x12c6,0x13ce,0x13ce,0x1026,0x1026,0x1026,0x1023,0x1023,0x1023,0x1026,0x1026,0x1026,0x1026,0x1026, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152, +0x1023,0x1023,0x1023,0x1026,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1023,0x1023,0x1023,0x1023,0x1026,0x1026,0x1026,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023, +0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038, +0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038, +0x103e,0x103b,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c, +0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c, +0x1083,0x117f,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x117c,0x117c,0x117c, +0x117c,0x117c,0x117f,0x135f,0x135f,0x1746,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x16b0,0x16b0, +0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0, +0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0, +0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3, +0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x1641, +0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6, +0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6, +0x112b,0x112b,0x112b,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7, +0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7, +0x1137,0x10ec,0x10ef,0x10ef,0x10ec,0x10f2,0x10f2,0x10e0,0x10e3,0x13ef,0x13f2,0x13f2,0x13f2,0x125d,0x16ce,0x1716, +0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x125a,0x1398,0x139b,0x1395,0x139e,0x139e, +0x1134,0x1134,0x10e9,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec, +0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec, +0x10ec,0x10ec,0x10ec,0x10e9,0x10e9,0x10e9,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x10e9, +0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101, +0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101, +0x1485,0x1485,0x140a,0x13dd,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113, +0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x12e1, +0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155, +0x1155,0x1155,0x1155,0x1155,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1155,0x1155,0x1155,0x1155, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1161,0x1161,0x1161,0x1158,0x1158,0x1158,0x1152,0x1152,0x1152,0x1152, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152, +0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1155,0x1155,0x1155,0x1155, +0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1164,0x1155,0x1155,0x1155, +0x1155,0x12c9,0x12c9,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1473,0x1155,0x1155,0x1155, +0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155, +0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0, +0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0, +0x11a0,0x11a0,0x11a0,0x1167,0x11a9,0x11a9,0x11a9,0x11a9,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, +0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, +0x116a,0x116a,0x154e,0x154e,0x154e,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, +0x116a,0x1617,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x14b8,0x154e,0x154e,0x154e,0x154e,0x154e, +0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3, +0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x12f6,0x12f6,0x12f6,0x12f6,0x12f6,0x12f6,0x12f6,0x11d9, +0x11d9,0x11cd,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3, +0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3, +0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc, +0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc, +0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11dc,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1, +0x11e8,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1, +0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206, +0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206, +0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c, +0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c, +0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224, +0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224, +0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a, +0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a, +0x122a,0x122a,0x122a,0x122a,0x122a,0x1227,0x1227,0x1227,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236, +0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1233, +0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f, +0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f, +0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x1314,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248, 0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248, -0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x123f,0x123f,0x1242,0x1242,0x1248,0x123f,0x123f,0x123f,0x123f,0x123f, -0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e, +0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e, 0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e, -0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269, -0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269, -0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275, -0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1272,0x1278, -0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284, -0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284, -0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a, -0x128a,0x13b6,0x1290,0x13b9,0x1290,0x1290,0x1290,0x1290,0x128d,0x128d,0x128d,0x1290,0x17e5,0x17e8,0x1a13,0x1a10, -0x1293,0x1293,0x1293,0x12a2,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8, -0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8, -0x12a8,0x12a8,0x12a8,0x1296,0x12a2,0x12a2,0x1293,0x1293,0x1293,0x1293,0x12a2,0x12a2,0x1293,0x1293,0x12a2,0x12a2, -0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4, -0x12b7,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x12ae,0x12ae,0x12ae,0x12b4,0x12b1,0x1608,0x160b,0x160e,0x160e, -0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6, -0x12ba,0x12c6,0x12ba,0x12ba,0x12ba,0x12cf,0x12cf,0x12ba,0x12ba,0x12cf,0x12c6,0x12cf,0x12cf,0x12c6,0x12ba,0x12bd, -0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6, -0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6, -0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1, -0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1, -0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9, -0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f6,0x12f6,0x12f6, -0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302, -0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302, -0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311, -0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311, -0x1317,0x1317,0x1323,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326, -0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1329,0x1326,0x1329,0x1326,0x1326,0x1326, -0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1326,0x1329,0x1326,0x1326,0x1326,0x1326, -0x1323,0x1323,0x1323,0x1317,0x1317,0x1317,0x1317,0x1323,0x1323,0x131d,0x131a,0x1320,0x1320,0x132f,0x132c,0x132c, -0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332, -0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332, -0x1338,0x1338,0x1338,0x1335,0x1335,0x1335,0x1332,0x1332,0x1332,0x1332,0x1335,0x1332,0x1332,0x1332,0x1338,0x1335, -0x1338,0x1335,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332, -0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1338,0x1335,0x1335, -0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1cce, -0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1af1,0x1aeb,0x1ce0,0x1ce0,0x1ce0,0x1ce3,0x1cdd,0x1ce3,0x1cdd, -0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1356,0x1356,0x1356,0x133b,0x1a19, -0x1467,0x135f,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x135f,0x1467,0x135f, -0x1344,0x1344,0x13ec,0x1341,0x13ec,0x13ec,0x13ec,0x13ec,0x1341,0x1341,0x1365,0x1341,0x1341,0x1341,0x1341,0x1341, -0x1341,0x1344,0x1365,0x1365,0x1344,0x1365,0x1341,0x1344,0x1344,0x1347,0x1365,0x1341,0x1341,0x1365,0x1344,0x1344, -0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1350,0x1350,0x1350,0x1350,0x147c,0x145e, -0x1359,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x1914,0x1914,0x1914,0x1914,0x1914, -0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1611,0x1611,0x1b75,0x1b75,0x1b75, -0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353, -0x1467,0x1467,0x135f,0x1467,0x1467,0x1467,0x135f,0x1467,0x1467,0x1467,0x1359,0x1359,0x1359,0x1359,0x1359,0x1461, -0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x135c,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x135c, -0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x14e8,0x14e8,0x1acd,0x1b75,0x1b75,0x1b75, -0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x135c,0x1464,0x135c,0x135c,0x1464,0x1464,0x135c, -0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380, +0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269, +0x1269,0x1269,0x1269,0x1269,0x1266,0x1266,0x1266,0x131d,0x131d,0x131d,0x1266,0x1266,0x131d,0x1326,0x1320,0x1323, +0x126c,0x126c,0x1263,0x126c,0x126c,0x1260,0x1491,0x1803,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b, +0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x1329,0x1275,0x1275,0x1329,0x1329,0x1329,0x1329,0x1329, +0x1329,0x1275,0x1329,0x1278,0x1278,0x1329,0x1278,0x1329,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b, +0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b, +0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281, +0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281, +0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296, +0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1293,0x1293,0x1293,0x1335,0x1335,0x1335,0x1335,0x1335, +0x1335,0x1335,0x1335,0x1293,0x1293,0x1335,0x1293,0x1338,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296, +0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296, +0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c, +0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c, +0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae, +0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae, +0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e, +0x154e,0x154e,0x154e,0x154e,0x135c,0x135c,0x135c,0x135c,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e, +0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x1617,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362, +0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362, +0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d, +0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d, +0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380, 0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380, -0x140a,0x1407,0x140a,0x1407,0x140a,0x1407,0x140a,0x1407,0x140a,0x1407,0x14d6,0x15f0,0x15f0,0x15f0,0x1890,0x1a04, -0x15f0,0x15f0,0x17dc,0x17dc,0x17dc,0x17d6,0x17dc,0x17d6,0x1a0a,0x1a07,0x1ac4,0x1ac1,0x1ac4,0x1ac1,0x1ac4,0x1ac1, -0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434, -0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434, -0x1449,0x143a,0x1449,0x144f,0x144f,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c, -0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c, -0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455, -0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455, -0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b, -0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b, -0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x1485,0x1482,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9, -0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9, -0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148b,0x148b,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148b,0x148e,0x148e,0x148e,0x148b,0x148e,0x148b,0x148e,0x148b,0x148e,0x148e,0x148e, -0x148e,0x148e,0x1491,0x148e,0x148e,0x148e,0x148e,0x148b,0x148e,0x148b,0x148b,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148b, -0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b, -0x148b,0x148b,0x161a,0x161a,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d, -0x161d,0x1866,0x1866,0x1866,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x161d,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x161d,0x1866,0x1866,0x148e,0x148e,0x148e,0x148e, -0x148e,0x1491,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e, -0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161a,0x161a,0x161d,0x161d,0x148e,0x148e,0x1491,0x1491, -0x1491,0x1791,0x148e,0x1491,0x148e,0x148e,0x1491,0x1620,0x1620,0x161d,0x161d,0x1866,0x1866,0x1866,0x1866,0x1866, -0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x161d,0x161d,0x161d, -0x1791,0x161d,0x161d,0x161d,0x1866,0x1866,0x1866,0x1869,0x1869,0x1869,0x1869,0x1869,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x161d,0x148e,0x161d,0x1491,0x1491, -0x148e,0x148e,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x1491,0x1491, -0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491, -0x1491,0x148e,0x148e,0x148e,0x1491,0x148e,0x148e,0x148e,0x148e,0x1491,0x1491,0x1491,0x148e,0x1491,0x1491,0x1491, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x1491,0x148e,0x1491,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x1791,0x148e,0x148e,0x148e,0x148e,0x161d,0x161d,0x1866,0x14eb,0x14eb,0x14eb,0x14eb, -0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161d,0x1866,0x1866,0x1866,0x1866,0x17eb,0x148e,0x148e,0x148e,0x148e, -0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x161d,0x161d,0x161d,0x161d, -0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x1620,0x1620,0x161d,0x161d,0x161d,0x161d,0x191d,0x161d, -0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d, -0x161d,0x161d,0x161d,0x161d,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161d,0x148e,0x148e,0x148e,0x148e,0x148e, -0x1575,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494, -0x1494,0x1575,0x1494,0x1494,0x1494,0x1575,0x1494,0x1575,0x1494,0x1575,0x1494,0x1575,0x1494,0x1494,0x1494,0x1575, -0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1575,0x1575,0x1494,0x1494,0x1494,0x1494,0x1575,0x1494,0x1575,0x1575, -0x1494,0x1494,0x1494,0x1494,0x1575,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494, -0x1494,0x1797,0x1797,0x186c,0x186c,0x1497,0x1497,0x1497,0x1494,0x1494,0x1494,0x1497,0x1497,0x1497,0x1497,0x1497, -0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716, -0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a, -0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a, -0x149a,0x149a,0x149a,0x149d,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a, -0x149a,0x149a,0x149a,0x149a,0x149d,0x149d,0x149d,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a, -0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0, -0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0, -0x1899,0x1899,0x1896,0x17ee,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14ee,0x14ee,0x14ee,0x14ee,0x14ee,0x14ee, -0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x1626, -0x14f4,0x162c,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x1629,0x1629,0x1629, -0x1629,0x1629,0x162c,0x17f1,0x17f1,0x1c4a,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x1b78,0x1b78, -0x14fd,0x14fd,0x14fd,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f, +0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383, +0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383, +0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386, +0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386, +0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9, +0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x1386, +0x1386,0x1386,0x1386,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9, +0x13e9,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x13e9,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386, +0x1386,0x1386,0x1386,0x1386,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392, +0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392, +0x1392,0x1392,0x1392,0x1392,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1, +0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1, +0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a7,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1, +0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x14af,0x14af,0x14af,0x14af,0x14af,0x14af,0x14af,0x14af, +0x14af,0x14af,0x14af,0x14af,0x16fb,0x167a,0x167a,0x167d,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce, +0x13d1,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1503,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce,0x1473,0x1473,0x1473, +0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500, +0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x13ce,0x15d5,0x15d5,0x167a,0x167a,0x167a,0x167a,0x167a, +0x167a,0x167a,0x167a,0x16f8,0x17a6,0x167d,0x167d,0x167d,0x1500,0x1503,0x1503,0x1503,0x1503,0x1503,0x1503,0x1503, +0x1503,0x1503,0x1503,0x1503,0x1503,0x1503,0x1500,0x1500,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4, +0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4, +0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9, +0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9, +0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1476,0x1473, +0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1476,0x1503,0x1503,0x1476,0x1476,0x1476,0x1476,0x1476, +0x1476,0x1476,0x1473,0x1401,0x1476,0x1476,0x1476,0x167a,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1401,0x1473, +0x1473,0x1473,0x1473,0x1473,0x1500,0x15d5,0x15d5,0x15d5,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473, +0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1500,0x142e,0x142e,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b, +0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b, +0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e, +0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e, +0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461, +0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x145e,0x145e,0x145e, +0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461, +0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461, +0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c, +0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c, +0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x1704,0x1704,0x1704,0x1704,0x1704, +0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0, +0x1746,0x1749,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x15e4,0x1488,0x1488,0x1488,0x1488, +0x1488,0x1488,0x1488,0x1488,0x1488,0x1488,0x1488,0x1488,0x14df,0x14df,0x14df,0x14df,0x1650,0x1650,0x14e2,0x14e2, +0x14e2,0x14e2,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x14dc, +0x1533,0x1536,0x14d3,0x14e5,0x14e5,0x158a,0x14d6,0x14d6,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df, +0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df, +0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4, +0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x1539,0x153f,0x153c,0x153c,0x153c, +0x153c,0x14f1,0x14f7,0x153c,0x153c,0x153c,0x153c,0x14ee,0x14f4,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, +0x153c,0x153c,0x153c,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4, +0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500, +0x1500,0x1500,0x1500,0x1500,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x167a,0x16f8,0x15d5,0x15d5,0x15d5,0x15d5,0x16fb, +0x16f8,0x17a6,0x15d5,0x167a,0x15d5,0x15d5,0x15d5,0x15d5,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x15d5, +0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5, +0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509, +0x1509,0x1509,0x1509,0x15de,0x15de,0x15de,0x15de,0x15de,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701, +0x1701,0x1701,0x1701,0x1701,0x1701,0x17ac,0x17ac,0x17ac,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509, +0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509, +0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x1509,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c, +0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c, +0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x17af,0x150f,0x150f,0x150f,0x150f, 0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f, -0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, -0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, -0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530, -0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1ad3, -0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533, -0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533, -0x1539,0x1539,0x1545,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b, -0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b, -0x154b,0x154b,0x154b,0x1545,0x1545,0x1545,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539,0x1545, -0x1548,0x154b,0x154e,0x154e,0x154b,0x1551,0x1551,0x153c,0x153f,0x17f7,0x17fa,0x17fa,0x17fa,0x1632,0x1b81,0x1b7e, -0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x162f,0x1800,0x1803,0x17fd,0x1806,0x1806, -0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c, -0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c, -0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc, -0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x19ec,0x19ec,0x19ec,0x15cc,0x15cc,0x15cc, -0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x1abb,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc, -0x15cc,0x15cc,0x1950,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec, -0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d, -0x161d,0x161d,0x161d,0x161d,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161d,0x161d,0x161d,0x161d, -0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x1620,0x161d,0x161d,0x161d, -0x161d,0x1794,0x1794,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x191a,0x161d,0x161d,0x161d, -0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d, -0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, -0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641, -0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, -0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, -0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659, -0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659, -0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c, +0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x150f,0x1545,0x1545,0x1545,0x1545, +0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, +0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1593,0x1593,0x1593,0x1593, +0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593, +0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x15b1,0x15b1,0x15b1,0x15b1, +0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1, +0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b4,0x15b4,0x15b4,0x15b4, +0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, +0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd, +0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15cf,0x15cf,0x15cf,0x15cf, +0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf, +0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cc,0x15cc,0x15cc,0x15d5,0x15d5,0x15d5,0x16f8, +0x16f8,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x16f8,0x16f8,0x16f8,0x167a,0x167a,0x15d5,0x15d5,0x15d5,0x15d5, +0x15d5,0x15d8,0x15d8,0x15d5,0x15d8,0x15d8,0x167a,0x167d,0x167a,0x167a,0x167a,0x167a,0x1611,0x1611,0x1611,0x1611, +0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611, +0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x162c,0x162c,0x162c,0x162c, +0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x1677,0x1677,0x162c,0x1677, +0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x1632,0x1632,0x1632,0x165c,0x165c,0x165c,0x165c, 0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c, -0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c, -0x168c,0x168c,0x168c,0x168c,0x1686,0x1686,0x1686,0x167a,0x167a,0x167a,0x1686,0x1686,0x167a,0x1689,0x167d,0x167a, -0x168f,0x168f,0x1683,0x168f,0x168f,0x1680,0x18a2,0x1cda,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1, -0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1, -0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x1692,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa, -0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa, -0x16aa,0x16aa,0x16aa,0x16a4,0x16ad,0x16ad,0x16ad,0x16ad,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0, -0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0, -0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb, -0x16c2,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb, -0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4, -0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4, -0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6, -0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e3,0x16e3,0x16e3,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7, -0x16d7,0x16d7,0x16d7,0x16e3,0x16e3,0x16d7,0x16e3,0x16da,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6, -0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6, -0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d, -0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d,0x170d, -0x170d,0x170d,0x170d,0x170d,0x170d,0x170a,0x170a,0x170a,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716, -0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x171c,0x171c, -0x171c,0x1719,0x1719,0x1719,0x1716,0x1716,0x1716,0x1716,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b, -0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x171f,0x171f,0x171f,0x171f,0x171f,0x171f,0x171f,0x1731, -0x1731,0x1725,0x1722,0x1722,0x1722,0x1722,0x1722,0x1722,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b, -0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b, -0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737, -0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1734, -0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a, -0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a, -0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e, -0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e, -0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f, -0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x176a,0x1779,0x1779,0x176a,0x176a,0x176a,0x176a,0x176a, -0x176a,0x1779,0x176a,0x177c,0x177c,0x176a,0x177c,0x176a,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f, -0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f, -0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788, -0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788, -0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e, +0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x1671,0x1671,0x1671,0x1671, +0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671, +0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x16a4,0x16a4,0x16a4,0x16a4, +0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4, +0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4,0x1854, +0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854, +0x1854,0x1854,0x1854,0x1854,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x16f5,0x16f5,0x16f5,0x16f5,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x17a6,0x17a6,0x17a6, +0x17a6,0x181e,0x181e,0x181e,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x17a6,0x17a6,0x17a6,0x17a6,0x181e, +0x181e,0x181e,0x18e1,0x181e,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701, +0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701, +0x1701,0x1701,0x1701,0x1701,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707, +0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707, +0x1707,0x1707,0x1707,0x1707,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731, +0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731, +0x1731,0x1731,0x1731,0x1731,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e, 0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e, -0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec, -0x19ec,0x19ec,0x19ec,0x19ec,0x17d3,0x17d3,0x17d3,0x17d3,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec, -0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x19ec,0x1abb,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4, -0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4, -0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833, -0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833, -0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1839,0x1836,0x1833,0x1833,0x1833,0x1833, -0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x1833,0x183c,0x183c,0x183c,0x183c, -0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c, -0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183f,0x183f,0x183f,0x183f, -0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, -0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x1851,0x1851,0x1851,0x1851, -0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851, -0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1854,0x1854,0x1854,0x1854, +0x178e,0x178e,0x178e,0x178e,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a, +0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a, +0x179a,0x179a,0x179a,0x179a,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb, +0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb, +0x17bb,0x17bb,0x17bb,0x17bb,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8, +0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5, +0x17e5,0x17e5,0x17e5,0x17e5,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824, +0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824, +0x1824,0x1824,0x1824,0x1824,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b, +0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b,0x184b, +0x184b,0x184b,0x184b,0x184b,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854, 0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854, -0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1857,0x1857,0x1857,0x1857, -0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857, -0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x185a, -0x185a,0x185a,0x185a,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857, -0x1857,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x1857,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a, -0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a, -0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x1872,0x1872,0x1872,0x1872, -0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872, -0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x195c,0x195c,0x195c,0x195c, -0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x1be4,0x1b33,0x1b33,0x1b36,0x1875,0x1875,0x1875,0x1875, -0x1875,0x1875,0x1875,0x1875,0x1878,0x1926,0x1926,0x1926,0x1926,0x1926,0x1926,0x19c2,0x1875,0x1875,0x1875,0x1875, -0x1875,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x19bf,0x19bf, -0x19bf,0x19bf,0x19bf,0x19bf,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1875,0x1aa6,0x1aa6,0x1b33, -0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1be1,0x1cb3,0x1b36,0x1b36,0x1b36,0x19bf,0x19c2,0x19c2,0x19c2, -0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19bf,0x19bf,0x1b78,0x1b78,0x1b78,0x1b78, -0x1b78,0x1b78,0x1b78,0x1b78,0x1c4a,0x1c4d,0x1c47,0x1c47,0x1c47,0x1c47,0x1c47,0x1c47,0x1c47,0x1c47,0x1c47,0x1a1c, -0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x189c,0x1923,0x1923,0x1923,0x1923, -0x1923,0x1923,0x1926,0x1923,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x1926,0x19c2,0x19c2,0x1926, -0x1926,0x1926,0x1926,0x1926,0x1926,0x1926,0x1923,0x18a5,0x1926,0x1926,0x1926,0x1b33,0x1923,0x1923,0x1923,0x1923, -0x1923,0x1923,0x18a5,0x1923,0x1923,0x1923,0x1923,0x1923,0x19bf,0x1aa6,0x1aa6,0x1aa6,0x1923,0x1923,0x1923,0x1923, -0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x19bf,0x18ba,0x18ba,0x18b7,0x18b7, -0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7, -0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18ba,0x18ba,0x18ba,0x18ba, -0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, -0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x1908,0x1908,0x1908,0x1908, -0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908, -0x1908,0x1905,0x1905,0x1905,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x1908,0x1908,0x1908,0x1908, -0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908, -0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x192c,0x192c,0x192c,0x192c, -0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c, -0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192f,0x192f,0x192f,0x192f, -0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f, -0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x1bed, -0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1986,0x1986,0x1986,0x1986, -0x1ae5,0x1ae5,0x1989,0x1989,0x1989,0x1989,0x1971,0x1971,0x1971,0x1971,0x1971,0x1971,0x1971,0x1971,0x1971,0x1971, -0x1971,0x1971,0x1971,0x1983,0x1974,0x1977,0x197a,0x198c,0x198c,0x1a2e,0x197d,0x197d,0x1986,0x1986,0x1986,0x1986, -0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986, -0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x19a7,0x19a7,0x19a7,0x19a7, -0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x1992, -0x1998,0x1995,0x1995,0x1995,0x1995,0x19a4,0x19aa,0x1995,0x1995,0x1995,0x1995,0x19a1,0x19a7,0x1995,0x1995,0x1995, -0x1995,0x1995,0x1995,0x1995,0x1995,0x1995,0x1995,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7, -0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x19b3,0x19b3,0x19b3,0x19b3, -0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x1aa0,0x1aa0,0x1aa0,0x1aa0,0x1aa0,0x1bd8,0x1bd8,0x1bd8,0x1bd8, -0x1bd8,0x1bd8,0x1bd8,0x1bd8,0x1bd8,0x1bd8,0x1bd8,0x1bd8,0x1bd8,0x1ca4,0x1ca4,0x1ca4,0x19b9,0x19b9,0x19b9,0x19b9, -0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9, -0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x19bf,0x19bf,0x19bf,0x19bf, -0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1b33,0x1be1,0x1aa6, -0x1aa6,0x1aa6,0x1aa6,0x1be4,0x1be1,0x1cb3,0x1aa6,0x1b33,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x19bf,0x19bf,0x19bf,0x19bf, -0x19bf,0x19bf,0x19bf,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6, -0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x19c8,0x19c8,0x19c8,0x19c8, -0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8, -0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19cb,0x19cb,0x19cb,0x19cb, -0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb, -0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x1cb6,0x19ce,0x19ce,0x19ce,0x19ce, -0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce, -0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x19ce,0x1a43,0x1a43,0x1a43,0x1a43, -0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43, -0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a43,0x1a5e,0x1a5e,0x1a5e,0x1a5e, -0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e, -0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a5e,0x1a64,0x1a64,0x1a64,0x1a64, -0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64, -0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a82,0x1a82,0x1a82,0x1a82, -0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82, -0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a82,0x1a85,0x1a85,0x1a85,0x1a85, -0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85, -0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a85,0x1a8e,0x1a8e,0x1a8e,0x1a8e, -0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e, -0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8e,0x1a8b,0x1a8b,0x1a8b,0x1aa6,0x1aa6,0x1aa6,0x1be1, -0x1be1,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1be1,0x1be1,0x1be1,0x1b33,0x1b33,0x1aa6,0x1aa6,0x1aa6,0x1aa6, -0x1aa6,0x1aa9,0x1aa9,0x1aa6,0x1aa9,0x1aa9,0x1b33,0x1b36,0x1b33,0x1b33,0x1b33,0x1b33,0x1ae8,0x1ae8,0x1ae8,0x1ae8, -0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8, -0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1b0f,0x1b0f,0x1b0f,0x1b0f, -0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f, -0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b18,0x1b18,0x1b18,0x1b18, -0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b4e,0x1b4e,0x1b18,0x1b4e, -0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b18,0x1b1e,0x1b1e,0x1b1e,0x1b2a,0x1b2a,0x1b2a,0x1b2a, -0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a, -0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1bc3,0x1bc3,0x1bc3,0x1bc3, -0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3, -0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bcf,0x1bcf,0x1bcf,0x1bcf, -0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf, -0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bcf,0x1bf3,0x1bf3,0x1bf3,0x1bf3, -0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3, -0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf3,0x1bf6,0x1bf6,0x1bf6,0x1bf6, -0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6, -0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1c6b,0x1c6b,0x1c6b,0x1c6b, -0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b, -0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c8c,0x1c8c,0x1c8c,0x1c8c, -0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c, -0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c8c,0x1c9e,0x1c9e,0x1c9e,0x1c9e, -0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e, -0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1ca1,0x1ca1,0x1ca1,0x1ca1, -0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1, -0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1ca1,0x1cfb,0x1cfb,0x1cfb,0x1cfb, -0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cfb,0x1cf8,0x1cf8,0x1cf8, -0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1cf8,0x1d3a,0x1d3a,0x1d3a,0x1d3a, -0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a, -0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d46,0x1d46,0x1d46,0x1d46, -0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46, -0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0x1d46,0,0,0,0 +0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857, +0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875, +0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875, +0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x1884,0x1884,0x1884,0x1884,0x188d,0x1884, +0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887, +0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896, +0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x18f9,0x18f9, +0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f, +0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f, +0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd, +0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd,0x18bd, +0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c3,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0, +0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0, +0,0,0,0 }; static const UTrie2 propsVectorsTrie={ propsVectorsTrie_index, - propsVectorsTrie_index+5368, + propsVectorsTrie_index+5236, nullptr, - 5368, - 27416, + 5236, + 27088, 0xa40, - 0x1578, + 0x14f4, 0x0, 0x0, 0x110000, - 0x800c, + 0x7e40, nullptr, 0, false, false, 0, nullptr }; -static const uint32_t propsVectors[7497]={ -0x67,0,0,0x67,0,0xe00000,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67, -0,0,0xd67,0,0,0xe67,0,0,0x1067,0,0,0x1167,0,0,0x1267,0, -0,0x1367,0,0,0x1467,0,0,0x1567,0,0,0x1667,0,0,0x1767,0,0, -0x1867,0,0,0x1967,0,0,0x1a67,0,0,0x1b67,0,0,0x1d67,0,0,0x1f67, -0,0,0x2067,0,0,0x2267,0,0,0x2367,0,0,0x2467,0,0,0x2567,0, -0,0x2767,0,0,0x2867,0x80000,0x20,0x2967,0,0,0x2a67,0,0x1600000,0x2b67,0,0, -0x2d67,0,0,0x3167,0x20000000,0,0x3267,0x20000000,0,0x3a67,0,0,0x3b67,0,0,0x3e67, -0,0,0x4067,0,0,0x4167,0,0,0x4467,0,0,0x4867,0,0,0x4967,0, -0,0x4a67,0,0,0x5067,0,0,0x5167,0,0,0x5467,0,0,0x5567,0,0, -0x5667,0x80000,0x20,0x5767,0,0,0x5867,0,0,0x5967,0,0,0x5b67,0,0,0x5c67, -0,0,0x5d67,0,0,0x6067,0x80000,0x20,0x6267,0,0,0x6367,0,0,0x6467,0, -0,0x6567,0,0,0x6f67,0,0,0x7067,0,0,0x7367,0x20000000,0,0x7567,0,0, -0x7667,0,0,0x7767,0,0,0x7867,0,0,0x7a67,0,0,0x7b67,0,0,0x7c67, -0,0,0x7e67,0,0,0x7f67,0,0,0x8167,0,0,0x8267,0,0,0x8467,0, -0,0x8567,0,0,0x8667,0,0,0x8767,0,0,0x8967,0,0,0x8b67,0,0, -0x8c67,0,0,0x8e67,0x20000000,0,0x8f67,0,0,0x9067,0,0,0x9167,0,0,0x9267, -0,0,0x9367,0,0,0x9567,0,0,0x9667,0,0,0x9767,0,0,0x9867,0, -0,0x9967,0,0,0x9a67,0,0,0x9c67,0,0,0x9f67,0,0,0xa167,0,0, -0xa367,0,0,0xa467,0,0,0xa567,0,0,0xa667,0,0,0xa767,0,0,0xa867, -0,0,0xa967,0,0,0xaa67,0,0xe00000,0xab67,0,0xe00000,0xac67,0,0,0xad67,0, -0,0xae67,0,0,0xaf67,0,0,0xb167,0,0,0xb267,0,0,0xb467,0,0, -0xb567,0,0,0xb767,0,0,0xb867,0,0,0xb967,0,0,0xba67,0,0,0xbc67, -0,0,0xbd67,0,0,0xbe67,0,0,0xbf67,0,0,0xc067,0,0,0xc167,0, -0,0xc367,0,0xe00000,0xc467,0,0xe00000,0xc667,0,0,0xc767,0,0,0xc867,0,0, -0xc967,0,0,0xca67,0,0,0xcc67,0,0xe00000,0xcf67,0,0xe00000,0xd067,0,0xe00000,0xd367, -0,0,0xd467,0,0,0xd567,0,0,0xd667,0,0,0xd867,0,0,0xda67,0, -0,0xdb67,0,0,0xdc67,0,0,0xdd67,0,0,0xde67,0,0,0xdf67,0,0, -0xe067,0,0,0xe167,0,0,0xe267,0,0,0xe367,0,0xe00000,0xe467,0,0,0xe567, -0,0,0xe667,0,0,0xe767,0,0,0xe867,0,0,0xe967,0,0,0xea67,0, -0,0xeb67,0,0,0xec67,0,0,0xed67,0,0,0xee67,0,0,0xef67,0,0, -0xf167,0,0,0xf367,0,0,0xf567,0,0,0xf667,0,0,0xf767,0,0,0xf867, -0,0,0xf967,0,0,0xfa67,0,0xe00000,0xfb67,0,0,0xfc67,0,0,0xfd67,0, -0,0xfe67,0,0,0x10167,0,0,0x10267,0,0,0x10367,0,0,0x10467,0,0, -0x10667,0,0,0x10767,0,0,0x10867,0,0,0x10967,0,0,0x10a67,0,0,0x10b67, -0,0,0x10c67,0,0,0x10d67,0,0,0x10e67,0,0,0x10f67,0,0,0x11067,0, -0,0x11367,0,0,0x11467,0,0,0x11567,0,0,0x11667,0,0,0x11767,0,0, -0x11867,0,0,0x11967,0,0xe00000,0x11a67,0,0,0x11b67,0,0,0x11c67,0,0,0x11d67, -0,0,0x11e67,0,0,0x11f67,0,0,0x12067,0,0,0x12167,0,0,0x12267,0, -0,0x12367,0,0,0x12467,0,0,0x12567,0,0,0x12667,0,0,0x12767,0,0, -0x12867,0,0,0x12967,0,0,0x12a67,0,0xe00000,0x12b67,0,0,0x12c67,0,0,0x12d67, -0,0,0x12f67,0,0,0x13067,0,0,0x13167,0,0,0x13267,0,0,0x13367,0, -0,0x13467,0,0,0x13567,0,0,0x13667,0,0,0x13767,0,0,0x13867,0,0, -0x13967,0,0,0x13a67,0,0,0x13b67,0,0,0x13c67,0,0,0x13d67,0,0,0x13f67, -0,0,0x14067,0,0,0x14167,0,0,0x14367,0,0,0x14467,0,0,0x14567,0, -0,0x14667,0,0,0x14767,0,0,0xa0067,0,0xe00000,0xa4f67,0,0xe00000,0xa5f67,0,0xe00000, -0xac567,0,0xe00000,0xad167,0,0xe00000,0xb0067,0,0xe00000,0xb1267,0,0xe00000,0xb2e67,0,0xe00000,0xb4867, -0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x4440020,0x11000100,0x40000001,0x4643020,0x11000100,0x40000001,0x4a5a040,0x11000100,0x40000001, -0x516a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc8c4000b,0x11000200,0x7c00100,0xc8220402,0x11000200,0x24000000,0x4200000,0x11000200,0x24000008,0x5710000, -0x11000200,0x40000001,0x5d3b020,0x11000219,0x7c00100,0xfc220401,0x11000219,0x7c00100,0xfc250401,0x11000319,0x7c00100,0xc8220402,0x11000319,0x7c00100,0xfc220401,0x11000319, -0x7c00100,0xfc250400,0x11000319,0x7c00100,0xfc250401,0x11000419,0x7c00100,0x8220400,0x11000419,0x7c00100,0x10220400,0x11000419,0x7c00100,0x10230400,0x11000419,0x7c00100, -0x18220400,0x11000419,0x7c00100,0x18230400,0x11000419,0x7c00100,0x20220400,0x11000419,0x7c00100,0x20250400,0x11000419,0x7c00100,0xc8220402,0x11000419,0x7c00100,0xc8250402, -0x11000419,0x7c00100,0xfc220401,0x11000419,0x7c00100,0xfc250400,0x11000419,0x7c00100,0xfc250401,0x11000519,0x7c00100,0x10220400,0x11000519,0x7c00100,0x10230400,0x11000519, -0x7c00100,0x18220400,0x11000519,0x7c00100,0x30220400,0x11000519,0x7c00100,0xfc220400,0x11000600,0x4000400,0x4200400,0x11000600,0x4000400,0xc8200002,0x11000600,0x7c00500, -0x10220400,0x11000600,0x7c00500,0x10230400,0x11000600,0x7c00500,0x10530400,0x11000600,0x7c00500,0xfc230400,0x11000600,0x7c00d00,0x10230400,0x11000619,0x7c00500,0xc822040f, -0x11000800,0x4000010,0xc9001401,0x11000800,0x4000400,0xc8200001,0x11000800,0x6800010,0xc8201001,0x11000800,0x7c00500,0xc8230401,0x11000807,0x7c00100,0x80220400,0x11000807, -0x7c00100,0x80250400,0x1100080e,0x4000400,0xc8200002,0x1100080e,0x4000400,0xf8200000,0x1100080e,0x7000500,0xc8220402,0x1100080e,0x7c00100,0x8250400,0x1100080e,0x7c00100, -0x18220400,0x1100080e,0x7c00100,0xc8220402,0x1100080e,0x7c00100,0xc8250401,0x1100080e,0x7c00100,0xfc220400,0x1100080e,0x7c00100,0xfc220401,0x1100080e,0x7c00100,0xfc250401, -0x1100080e,0x7c00120,0xc8220402,0x1100080e,0x7c00120,0xc8250402,0x11000908,0x4000000,0xc200000,0x11000908,0x7c00100,0x8220400,0x11000908,0x7c00100,0x8220401,0x11000908, -0x7c00100,0x8250400,0x11000908,0x7c00100,0x8250401,0x11000908,0x7c00100,0xfc220400,0x11000908,0x7c00100,0xfc220401,0x11000908,0x7c00100,0xfc250400,0x11000908,0x7c00100, -0xfc250401,0x11000a03,0x4000000,0x4200400,0x11000a03,0x4000000,0x4201000,0x11000a03,0x4000000,0x4270000,0x11000a03,0x7c00100,0xc8220402,0x11000a03,0x7c00100,0xfc220400, -0x11000a03,0x7c00100,0xfc250400,0x11000a03,0x7c00500,0xfc230400,0x11000a03,0xc000010,0x5049400,0x11000b13,0x2802500,0x20962460,0x11000b13,0x2802500,0xfc962460,0x11000b13, -0x4000000,0x4200000,0x11000b13,0x4000000,0xf8201000,0x11000b13,0x4000000,0xf8230400,0x11000b13,0x4000002,0x4400000,0x11000b13,0x4000010,0x4200000,0x11000b13,0x7c00100, -0xfe633800,0x11000c00,0x80000000,0x5329960,0x11000c02,0x2802100,0x20962460,0x11000c02,0x2802400,0x20962460,0x11000c02,0x4000000,0x4200000,0x11000c02,0x4000000,0x5329400, -0x11000c02,0x4000000,0x5329800,0x11000c02,0x4000000,0x5500000,0x11000c02,0x6800000,0xfd329800,0x11000c02,0x7c00100,0x8230400,0x11000c02,0x7c00100,0xc8230402,0x11000c02, -0x7c00100,0xfc230400,0x11000c02,0x7c00100,0xfc230401,0x11000c02,0x7c00500,0xfc230400,0x11000c02,0x7d00100,0xc0230400,0x11000f01,0x2802400,0x10962460,0x11000f0a,0x2802100, -0xfc962460,0x11000f0a,0x2802400,0xfc962460,0x11000f0a,0x2806400,0xfc962460,0x11000f0a,0x4000000,0x4200000,0x11000f0a,0x6800100,0xfc962540,0x11000f0a,0x7c00100,0xc8230401, -0x11000f0a,0x7c00100,0xfc230400,0x11000f0a,0x7c00100,0xfc230401,0x11001004,0x2802100,0xfc962460,0x11001004,0x2802400,0xfc962460,0x11001004,0x2806400,0xfc962460,0x11001004, -0x4000000,0x4200000,0x11001004,0x4000000,0x5500000,0x11001004,0x6800100,0xfc962540,0x11001004,0x6800100,0xfc962541,0x11001004,0x7c00100,0xc8230401,0x11001004,0x7c00100, -0xfc230400,0x11001110,0x2802100,0xfc962460,0x11001110,0x2802400,0xfc962460,0x11001110,0x2806400,0xfc962460,0x11001110,0x6800100,0xfc962540,0x11001110,0x7c00100,0xc8230401, -0x11001110,0x7c00100,0xfc230400,0x1100120f,0x2802100,0xfc962460,0x1100120f,0x2802400,0xfc962460,0x1100120f,0x2806400,0xfc962460,0x1100120f,0x6800100,0xfc962540,0x1100120f, -0x7c00100,0xfc230400,0x1100131f,0x2802100,0xfc962460,0x1100131f,0x2802400,0xfc962460,0x1100131f,0x2806400,0xfc962460,0x1100131f,0x4000000,0x4200000,0x1100131f,0x6800000, -0xfd329800,0x1100131f,0x6800100,0xfc962540,0x1100131f,0x6800100,0xfc962541,0x1100131f,0x7c00100,0xc8230401,0x1100131f,0x7c00100,0xfc230400,0x11001423,0x2802100,0xfc962460, -0x11001423,0x2806400,0xfc962460,0x11001423,0x6800100,0xfc962540,0x11001423,0x6800100,0xfc962541,0x11001423,0x7c00100,0xfc230400,0x11001423,0x7c00100,0xfc230401,0x11001524, -0x2802100,0xfc962460,0x11001524,0x2802100,0xfc962461,0x11001524,0x2806400,0xfc962460,0x11001524,0x6800000,0xfd329800,0x11001524,0x6800100,0xfc962540,0x11001524,0x7c00100, -0xfc230400,0x11001615,0x2802100,0xfc962460,0x11001615,0x2806400,0xfc962460,0x11001615,0x6800100,0xfc962540,0x11001615,0x6800100,0xfc962541,0x11001615,0x7c00100,0x8230400, -0x11001615,0x7c00100,0xfc230400,0x1100171a,0x2802100,0xfc962460,0x1100171a,0x2806400,0xfc962460,0x1100171a,0x6800000,0xfd329800,0x1100171a,0x6800100,0xfc962540,0x1100171a, -0x6800100,0xfc962541,0x1100171a,0x7c00100,0xfc230400,0x11001900,0x4000000,0x5600000,0x11001926,0x2802100,0xfd862460,0x11001926,0x2802400,0xfd862460,0x11001926,0x2806100, -0xfd862460,0x11001926,0x4000000,0x4200000,0x11001926,0x4000010,0x4400000,0x11001926,0x6800000,0xfd329800,0x11001926,0x7800100,0xc9830142,0x11001926,0x7c00100,0xfd830000, -0x11001926,0x7c00900,0xfd830000,0x11001926,0x7e00100,0xfd830000,0x11001a18,0x2802100,0xfd862460,0x11001a18,0x2802400,0xfd862460,0x11001a18,0x6800000,0xfd329800,0x11001a18, -0x7800100,0xc9830142,0x11001a18,0x7c00100,0xc9830002,0x11001a18,0x7c00100,0xfd830000,0x11001a18,0x7c00900,0xfd830000,0x11001a18,0x7e00100,0xfd830000,0x11001d0c,0x7c00100, -0x8230400,0x11001d0c,0x7c00100,0x8250400,0x11001d0c,0x7c00100,0xfc230400,0x11001e12,0x7c00100,0xa230500,0x11001e12,0x7c00100,0xa330520,0x11001e12,0x7c80100,0xc6330520, -0x11002619,0x7c00100,0xc8220402,0x11002619,0x7c00100,0xfc220401,0x11002619,0x7c00100,0xfc250401,0x1100270e,0x4000400,0xc8200001,0x1100270e,0x4000400,0xc8200002,0x1100270e, -0x4000400,0xc8500001,0x1100270e,0x7c00100,0xc8220401,0x1100270e,0x7c00100,0xc8250401,0x1100270e,0x7c00100,0xfc220401,0x1100270e,0x7c00100,0xfc250401,0x11002800,0x80000, -0xc4918820,0x11002800,0x80000,0xc5c18020,0x11002800,0x180000,0xc0918820,0x11002800,0x4000001,0xc8445801,0x11002800,0x4000001,0xc8445802,0x11002800,0x4000001,0xc8c4000b, -0x11002800,0x6800000,0x10201c00,0x11002800,0x6800020,0x10201c00,0x11002800,0x24000000,0x4200000,0x11002800,0x24000000,0x4810000,0x11002800,0x24000000,0x5410000,0x11002800, -0x24000000,0x5500000,0x11002800,0x24000000,0xc8200002,0x11002800,0x24000000,0xc9500002,0x11002800,0x24000002,0x4400000,0x11002800,0x24000006,0xc8c0000b,0x11002800,0x24000008, -0x5410000,0x11002800,0x24000008,0x5710000,0x11002800,0x24000020,0x5001400,0x11002800,0x24000020,0xc9500002,0x11002800,0x2c000010,0x5248000,0x11002800,0x2c000010,0xc9248002, -0x11002800,0x40000001,0x463b020,0x11002800,0x40080000,0xc4918820,0x11002801,0x2880000,0xc6a65620,0x11002801,0x2882000,0xc4962460,0x11002900,0x4000000,0xc820000e,0x11002900, -0x4000000,0xc820000f,0x11002900,0x4000020,0xc820000e,0x11002900,0x4000020,0xc820000f,0x11002900,0x4000020,0xc881000e,0x11002900,0x4000020,0xc881000f,0x11002900,0x4000020, -0xc941000e,0x11002900,0x4000020,0xc941000f,0x11002900,0x4000022,0xc820000e,0x11002900,0x4000022,0xc820000f,0x11002a00,0x4000000,0x5500000,0x11002a00,0x4000000,0x5600000, -0x11002a00,0x4000000,0xc9600002,0x11002b01,0x2000,0x14962460,0x11002b01,0x2802020,0x10962460,0x11002c00,0x4000000,0x4200000,0x11002c00,0x4000000,0xc200000,0x11002c00, -0x4000000,0xc8200002,0x11002c00,0x4000000,0xc820000f,0x11002c00,0x4000020,0x4200000,0x11002c00,0x7c00000,0x10200000,0x11002c00,0x7c00020,0x10200000,0x11002c00,0x7c00120, -0xc8220405,0x11002c00,0x7c00120,0xc8230402,0x11002c00,0x7c00120,0xc8250402,0x11002c00,0x7c00120,0xc8250405,0x11002c19,0x7c00100,0x8250400,0x11002c19,0x7c00100,0xc8250401, -0x11002d00,0x4000000,0xc8100006,0x11002d00,0x4000000,0xc8200006,0x11002d19,0x7c00100,0x18230400,0x11002d19,0x7c00100,0xc8220402,0x11002d19,0x7c00100,0xc8250402,0x11002e00, -0x24000000,0x4200000,0x11002e00,0x24000020,0x4200000,0x11002e00,0x24000020,0x4200001,0x11002f00,0x24000020,0x4200000,0x11002f00,0x24000020,0x4200001,0x11002f00,0x24000020, -0x4f00000,0x11002f00,0x24000020,0x5600000,0x11002f00,0x24000020,0xc8200002,0x11002f00,0x24000022,0x5600000,0x11003000,0x24000000,0x4200000,0x11003000,0x24000020,0x4200000, -0x11003000,0x24000020,0x4810000,0x11003000,0x24000020,0x5410000,0x11003100,0x24000000,0x4200000,0x11003200,0x24000000,0x4200000,0x11003300,0x4000000,0xc8100003,0x11003400, -0x24000000,0x4100000,0x11003400,0x24000000,0x4200000,0x11003500,0x24000000,0x4200000,0x11003600,0x24000000,0x4200000,0x11003600,0x24000020,0x4200000,0x11003700,0x24000000, -0x4200000,0x11003700,0x24000000,0x4e00000,0x11003700,0x24000000,0x6800000,0x11003700,0x24000020,0x4200000,0x11003800,0x4000000,0x4100000,0x11003800,0x24000000,0x4200000, -0x11003800,0x24000000,0x4b00000,0x11003800,0x24000000,0x4e00000,0x11003800,0x24000000,0x5710000,0x11003800,0x24000000,0x6800000,0x11005003,0x7c00100,0xc8220402,0x11005013, -0x2802500,0x30962460,0x11005013,0x4000020,0xc8200005,0x11005013,0x7c00100,0xca633801,0x11005013,0x7c00100,0xca633802,0x11005013,0x7c00100,0xca633805,0x11005019,0x7c00100, -0xc8220402,0x11005102,0x7000100,0xc8230408,0x11005102,0x7c00100,0xc8230404,0x11005102,0x7c00100,0xc8230407,0x11005102,0x7c00100,0xc8230408,0x11005102,0x7c00100,0xc8230409, -0x11005201,0x2802400,0x10962460,0x11005500,0x80000,0xc5e18820,0x11005502,0x7000100,0xc8230408,0x11005502,0x7c00100,0xc8230404,0x11005502,0x7c00100,0xc8230407,0x11005502, -0x7c00100,0xc8230408,0x11005502,0x7c00100,0xc8230409,0x11005667,0x1000,0,0x11020200,0x80004,0xc4418820,0x11020200,0x4000000,0xc8100006,0x11020200,0x4000000, -0xc810000f,0x11020200,0x4000400,0xc8100002,0x11020200,0x4000400,0xc8500002,0x11020200,0x6800c00,0xf8101000,0x11020200,0x24000000,0x4100000,0x11020200,0x24000000,0x4200000, -0x11020200,0x24000000,0x5400000,0x11020200,0x24000000,0x5500000,0x11020200,0x24000000,0x5600000,0x11020200,0x24000020,0x4100000,0x11020200,0x24000020,0x5600000,0x11020219, -0x7c00100,0xc812040f,0x11020219,0x7c00100,0xfc220400,0x11020219,0x7c00100,0xfc220401,0x11020219,0x7c00100,0xfc250400,0x11020319,0x7c00100,0xc8220402,0x11020319,0x7c00100, -0xc8250402,0x11020319,0x7c00100,0xfc220400,0x11020319,0x7c00100,0xfc220401,0x11020319,0x7c00100,0xfc250400,0x11020319,0x7d00100,0xc0220402,0x11020419,0x7c00100,0xfc220401, -0x11020519,0x7c00100,0x10220400,0x11020600,0x4000400,0x4200400,0x11020600,0x4000400,0xc8100002,0x11020600,0x7c00500,0x10130400,0x11020600,0x7c00d00,0x10130400,0x11020701, -0x2802400,0x10962460,0x11020701,0x2802400,0x10c62460,0x11020701,0x2802400,0x20962460,0x11020701,0x2802400,0xc8962461,0x11020701,0x2802400,0xfc962460,0x1102080e,0x7c00100, -0xfc220400,0x1102080e,0x7c00100,0xfc250400,0x11020908,0x7c00100,0xfc220400,0x11020908,0x7c00100,0xfc220401,0x11020908,0x7c00100,0xfc250400,0x11020908,0x7c00100,0xfc250401, -0x11022800,0x24000000,0x4100000,0x11022800,0x24000000,0x4200000,0x11022800,0x24000000,0x5500000,0x11022800,0x24000000,0xc8200002,0x11022800,0x24000000,0xc8f00002,0x11022800, -0x24000000,0xc8f0ac02,0x11022800,0x24000000,0xf8401000,0x11022800,0x24000002,0x4100000,0x11022800,0x24000002,0x4370000,0x11022800,0x24000002,0x4470000,0x11022800,0x24000006, -0xf8400000,0x11022800,0x24000008,0x5710000,0x11022800,0x24000008,0x5712c00,0x11022800,0x24000008,0xf9712c00,0x11022800,0x24000020,0x4100000,0x11022800,0x24000020,0x5500000, -0x11022800,0x24000020,0xc9500002,0x11022900,0x4000000,0xc810000e,0x11022900,0x4000000,0xc810000f,0x11022919,0x7c00100,0xc812040f,0x11022c00,0x4000000,0xc8100002,0x11022c00, -0x4000000,0xc810000f,0x11022c00,0x4000000,0xc9500002,0x11022c00,0x4000000,0xc9600002,0x11022c00,0x7c00120,0xc8120405,0x11022c0e,0x7c00100,0xc8250401,0x11022c19,0x7c00100, -0xc8150401,0x11022d00,0x4000000,0xc8100006,0x11022d00,0x4000000,0xc8200006,0x11022d19,0x7c00100,0xc8120402,0x11022d19,0x7c00100,0xc8150402,0x11022e00,0x24000000,0x4200000, -0x11022e00,0x24000020,0x4100000,0x11022f00,0x24000020,0x4100000,0x11022f00,0x24000020,0x4100001,0x11022f00,0x24000020,0xc8100002,0x11023000,0x24000000,0x4100000,0x11023300, -0x4000000,0xc8100002,0x11023300,0x4000000,0xc8100003,0x11023300,0x4000100,0xc8120403,0x11023300,0x4000100,0xc8150403,0x11023400,0x24000000,0x4100000,0x11023500,0x24000000, -0x4100000,0x11023600,0x24000000,0x4100000,0x11023600,0x24000020,0x4100000,0x11023700,0x24000000,0x4100000,0x11023700,0x24000000,0x4e00000,0x11023700,0x24000020,0x4100000, -0x11023800,0x4000000,0x4100000,0x11023800,0x24000000,0x4200000,0x11024e67,0,0,0x11025600,0x4000000,0x4100000,0x11042a00,0x4000000,0x5600000,0x11045700, -0x4000000,0xc820000a,0x11045700,0x4000020,0xc820000a,0x11045712,0x7c00100,0xc8e3040a,0x11045712,0x7c80100,0xc4e3040a,0x11045716,0x7c00100,0xc8e30c0a,0x11045716,0x7c00100, -0xca530c0a,0x11063d00,0x4000001,0xc8445811,0x11065700,0x4000000,0xc8810011,0x11065700,0x4000000,0xc8e00011,0x11065700,0x4000000,0xc9410011,0x11065700,0x4000000,0xc9500011, -0x11065700,0x4000000,0xc9600011,0x11065700,0x4000006,0xc8e70011,0x11065700,0x4000008,0xc8e00011,0x11065700,0x4000008,0xc8e02c11,0x11065700,0x4000010,0xc8871411,0x11065700, -0x4000010,0xc9201411,0x11065700,0x4000010,0xc9271011,0x11065700,0x4000020,0xc8e00011,0x11065700,0x4000400,0xc8e00011,0x11065700,0x4000420,0xc8e00011,0x11065700,0x6800000, -0xc8e01c11,0x11065700,0x6800040,0xc8e29811,0x11065700,0xc000010,0xc880ac11,0x11065700,0xc000010,0xc8b48011,0x11065719,0x7c00100,0xc8e20411,0x11065719,0x7c00100,0xc8e50411, -0x11065719,0x7c00140,0xc8e20411,0x11065719,0x7c00140,0xc8e50411,0x11080100,0x6800000,0xfc201c00,0x11080100,0x68000c0,0xfd329800,0x11080100,0x24000000,0x4200000,0x11080100, -0x24000000,0x4810000,0x11080100,0x24000000,0x5410000,0x11080100,0x24000000,0x5500000,0x11080100,0x24000000,0x5600000,0x11080100,0x24000000,0x5b00000,0x11080100,0x24000000, -0x6410000,0x11080100,0x24000006,0xf8d70000,0x11080100,0x24000008,0x5714000,0x11080100,0x24000008,0xf9713c00,0x11080100,0x24000010,0x5001400,0x11080100,0x24000010,0x5071400, -0x11080100,0x24000010,0xf9071000,0x11080100,0x24000020,0x4200000,0x11080100,0x24000020,0x4400000,0x11080100,0x24000020,0x5600000,0x11080100,0x24000400,0x4200000,0x11080100, -0x24000420,0x4200000,0x11080100,0x2c000010,0x4b48000,0x11080100,0x2c000010,0xf900ac00,0x11080100,0x44000001,0x5a45800,0x11080119,0x7c00100,0xfc220400,0x11080119,0x7c00100, -0xfc250400,0x11080119,0x7c001c0,0xfc220400,0x11080119,0x7c001c0,0xfc250400,0x11080200,0x4000400,0xc8200002,0x11080200,0x24000000,0x4200000,0x11080200,0x24000000,0x5500000, -0x11080200,0x24000000,0x5600000,0x11080200,0x24000020,0x4200000,0x110a1e12,0x7c00100,0xa130480,0x110a1e12,0x7c80100,0xc6130480,0x110a3000,0x24000000,0x4e00000,0x110a3000, -0x24100000,0xc0810001,0x110a3000,0x24100000,0xc1410001,0x110a3700,0x24000000,0x4200000,0x110a3d00,0x4000000,0x4e00000,0x110a3d00,0x4000000,0xc8e00002,0x110a3d00,0x24000000, -0x4e00000,0x110a3d11,0x7c00300,0x10e30000,0x110a3d11,0x7c00300,0xfce30000,0x110a3d11,0x7c00900,0xfd230400,0x110a3d12,0x2802400,0x18962460,0x110a3e14,0x7c00100,0xfce30000, -0x110a3e14,0x7c00100,0xfce30001,0x110a3e14,0x7c00100,0xfe530000,0x110a3e14,0x7c00900,0xfd230000,0x110a3e14,0x7c00900,0xfd230001,0x110a3f16,0x7c00100,0xfce30c00,0x110a3f16, -0x7c00100,0xfce30c01,0x110a3f16,0x7c00100,0xfe530c00,0x110a3f16,0x7c00900,0xfd230c00,0x110a3f16,0x7c00900,0xfd230c01,0x110a4005,0x7c00100,0xfce30400,0x110a4112,0x7c00100, -0xc8e30402,0x110a4112,0x7c80100,0xc4e30402,0x110a4400,0x4000000,0x14e00000,0x110a4412,0x4000000,0xc8e00002,0x110a4412,0x4000000,0xc8e00003,0x110a4416,0x4000000,0xc8e00c03, -0x110a4500,0x4000000,0xc8e0000d,0x110a4516,0x4000000,0xc8e00c0d,0x110a4711,0x7c40300,0xfce30000,0x110a4f11,0x7c00300,0xc8e30001,0x110a4f11,0x7c40300,0xfce30000,0x110a5300, -0x4000000,0xc8810010,0x110a5300,0x4000000,0xc8e00002,0x110a5300,0x4000000,0xc8e00010,0x110a5300,0x4000000,0xc9410010,0x110a5300,0x4000002,0xc8e70010,0x110a5300,0x4000008, -0xc8810010,0x110a5300,0x4000008,0xc9410010,0x110a5300,0x6800000,0xc8e01c02,0x110a5300,0x6800000,0xc8e01c10,0x110a5400,0x4000000,0xc881000c,0x110a5400,0x4000000,0xc8e0000c, -0x110a5400,0x4000000,0xc941000c,0x110a5400,0x4000000,0xc950000c,0x110a5400,0x4000000,0xc960000c,0x110a5400,0x4000002,0xc8e7000c,0x110a5400,0x4000010,0xc887140c,0x110a5400, -0x4000010,0xc8e7000c,0x110a5400,0x4000010,0xc920140c,0x110a5400,0x4000010,0xc927100c,0x110a5400,0x4000020,0xc8e0000c,0x110a5400,0x4000026,0xc8e7000c,0x110a5400,0xc000010, -0xc880ac0c,0x110a5400,0xc000010,0xc8b4800c,0x11400c0c,0x4000010,0x4b00000,0x11400c0c,0x4000010,0x5071400,0x11400c17,0xc000010,0x4b48000,0x11400c1e,0x7c00900,0x8230400, -0x11400f4b,0xc000010,0x4448000,0x11400f5f,0xc000010,0x4448000,0x11401d94,0x4000000,0x4200000,0x11403dcc,0x4000000,0x4e00000,0x114457c1,0x4000008,0xc881000a,0x114457c1, -0x4000008,0xc941000a,0x114457c1,0x4000010,0xc887000a,0x114457c1,0x6800004,0xc920000a,0x114457c1,0xc000010,0xc884800a,0x114457ca,0x3802500,0xc926246a,0x114457ca,0x7c00d00, -0xca530c0a,0x114a3dc1,0x24000000,0x4810000,0x114a3dc1,0x24000000,0x5410000,0x114a3dc1,0x24000008,0x4810000,0x114a3dc1,0x24000008,0x5410000,0x114a3dc1,0x24000010,0x4870000, -0x114a3dc1,0x2c000010,0x4848000,0x114a3dc7,0x4000000,0x4e00000,0x114a3dc7,0x24000000,0x4e00000,0x114a3dc7,0x24000002,0x4e00000,0x114a3dc7,0x24000002,0x5200000,0x114a3dc7, -0x24000008,0x4810000,0x114a3dc7,0x24000008,0x5410000,0x114a3dc7,0x24000008,0xc810000,0x114a3dca,0x7c00900,0x10930c00,0x114a3dca,0x7c00900,0x10e30c00,0x114a3dcc,0x7c00300, -0xfce30000,0x114a3eca,0x7000400,0xc9200c02,0x114a3fc1,0x6800004,0xf9200000,0x114a3fca,0x7c00d00,0xfe530c00,0x114a42cc,0x4000000,0x4e00000,0x114a42cc,0x4000000,0xc8e0000f, -0x114a44cc,0x4000000,0xc8e00002,0x114a44cc,0x4000000,0xc8e00003,0x114a45cc,0x4000000,0xc8e00002,0x114a45cc,0x4000000,0xc8e0000d,0x11505113,0x24000000,0x14810000,0x11505113, -0x24000000,0x15410000,0x1180090a,0x2802400,0x18962460,0x11800c27,0x2802100,0xfc962460,0x11800c27,0x2802500,0xfc962460,0x11800f32,0x2802400,0x8962460,0x11800f3f,0x2802400, -0x8962460,0x11820700,0x2802400,0xfc962460,0x11820700,0x2802500,0xfc962460,0x118a3dcd,0x2802400,0x10962460,0x118a3eca,0x2802400,0xfc962460,0x11c00904,0x2802400,0x8962460, -0x11c00908,0x2802400,0x18962460,0x11c00c2c,0x6800000,0xfd329800,0x11c00c30,0xc000010,0x4b48000,0x11c00f78,0x6800000,0xfd329800,0x11c0107d,0x6800000,0xfd329800,0x11c01181, -0x6800000,0xfd329800,0x11c01285,0x6800000,0xfd329800,0x11c01489,0x4000000,0x4200000,0x11c01489,0x6800000,0xfd329800,0x11c0168d,0x6800000,0xfd329800,0x11d05117,0x7c00100, -0xc8230408,0x20000067,0x1000,0,0x20000b13,0x2802400,0x20962460,0x20000b13,0x2802500,0x20962460,0x20001b27,0x2802100,0xc8962461,0x20001b27,0x2802100,0xfc962460, -0x20001b27,0x2802400,0x10962460,0x20001b27,0x2802400,0x20962460,0x20001b27,0x2802400,0xfc962460,0x20001b27,0x2802500,0xfc962460,0x20001b27,0x2806400,0xfc962460,0x20001b27, -0x2902100,0xc0962462,0x20001b27,0x4000000,0x4200000,0x20001b27,0x4000000,0x4400000,0x20001b27,0x4000000,0x4500000,0x20001b27,0x4000000,0x4810000,0x20001b27,0x4000000, -0x4b00000,0x20001b27,0x4000000,0x5410000,0x20001b27,0x4000000,0xc8c0000b,0x20001b27,0x4000000,0xf8400000,0x20001b27,0x4000010,0x4b00000,0x20001b27,0x4000010,0x4c00000, -0x20001b27,0x6800000,0xfd329800,0x20001b27,0x6800100,0xfc462540,0x20001b27,0x6800400,0xfc962540,0x20001b27,0x7c00100,0xc8230401,0x20001b27,0x7c00100,0xfc230400,0x20002619, -0x7c00100,0xc8220401,0x20002a00,0x4000000,0x5600000,0x20004b67,0,0x1900000,0x20004c67,0,0x1900000,0x20004d67,0,0x1900000,0x20006d67,0x1000, -0,0x20006e67,0x1000,0,0x20026d67,0,0,0x20026e67,0,0,0x200a4a12,0x7c00100,0xfdf304c1,0x200a4a12,0x7c00100,0xfe0304e1, -0x21005600,0x4000000,0x4700000,0x21022a00,0x4000000,0x5600000,0x30000419,0x7c00100,0x8220400,0x30000419,0x7c00100,0x8250400,0x30000419,0x7c00100,0x20220400,0x30000419, -0x7c00100,0x20250400,0x30000419,0x7c00100,0xfc220401,0x30000419,0x7c00100,0xfc250401,0x30000519,0x7c00100,0x10220400,0x30000600,0x4000400,0x4200400,0x30000600,0x7c00500, -0x10230400,0x30000600,0x7c00500,0xfc230400,0x30000605,0x4000400,0x4200400,0x3000080e,0x7c00100,0x8220400,0x3000080e,0x7c00100,0x10220400,0x30000908,0x2000,0xc962460, -0x30000908,0x7c00100,0xfc220400,0x30000908,0x7c00100,0xfc220401,0x30000908,0x7c00100,0xfc250400,0x30000908,0x7c00100,0xfc250401,0x30000a03,0x4000006,0xf8400400,0x30000c02, -0x4000000,0xf8200000,0x30000c02,0x7c00100,0xfc230400,0x30000d22,0x2802100,0x40962460,0x30000d22,0x2802400,0x50962460,0x30000d22,0x2802500,0x40962460,0x30000d22,0x4000000, -0x44200000,0x30000d22,0x4000010,0x44200000,0x30000d22,0x7c00100,0x40230400,0x30000d22,0xc000010,0x44248000,0x30000d22,0x80000000,0x44218560,0x30000e25,0x2802500,0xfc962460, -0x30000e25,0x7c00100,0xfc230400,0x30001821,0x2802100,0x30962460,0x30001821,0x2802100,0xfc962460,0x30001821,0x2806400,0xfc962460,0x30001821,0x4000000,0x4200000,0x30001821, -0x6800100,0x30962540,0x30001821,0x6800100,0xfc962540,0x30001821,0x6800100,0xfc962541,0x30001821,0x7c00100,0x30230400,0x30001821,0x7c00100,0xfc230400,0x30001b27,0x2802100, -0xfc962460,0x30001b27,0x2802400,0xfc962460,0x30001b27,0x4000000,0x4200000,0x30001b27,0x4000000,0x4400000,0x30001b27,0x7c00100,0xfc230400,0x30001c1c,0x2802100,0xfd862460, -0x30001c1c,0x2802400,0xfd862460,0x30001c1c,0x2806400,0xfd862460,0x30001c1c,0x4000000,0x4200000,0x30001c1c,0x6800100,0xfd862400,0x30001c1c,0x6800100,0xfd862540,0x30001c1c, -0x7c00100,0xfd830000,0x30001c1c,0x7c00100,0xfd830001,0x30001c1c,0xc000010,0x4448000,0x30001f0b,0x4000000,0x4200000,0x30001f0b,0x4000010,0x4200000,0x30001f0b,0x4000010, -0x4400000,0x30001f0b,0x6800000,0x8200000,0x30001f0b,0x7c00100,0xfc230400,0x30001f0b,0xc000010,0x4248000,0x30002006,0x7c00100,0x40250400,0x30002128,0x4000000,0x44200000, -0x30002128,0x7c00100,0x40230400,0x30002128,0xc000010,0x44248000,0x3000221d,0x4000000,0x84810000,0x3000221d,0x4000000,0x85410000,0x3000221d,0x4000001,0x84445800,0x3000221d, -0x7c00100,0x80230400,0x30002300,0x4000010,0x4400000,0x30002320,0x7c00100,0x80230400,0x30002417,0x2802100,0xfd862460,0x30002417,0x2802400,0x9862460,0x30002417,0x2802400, -0x11862460,0x30002417,0x2802400,0x19862460,0x30002417,0x2802400,0xfd862460,0x30002417,0x2806400,0xfd862460,0x30002417,0x2882000,0xc5862460,0x30002417,0x4000000,0x4200000, -0x30002417,0x4000000,0x5600000,0x30002417,0x4000000,0xc400000,0x30002417,0x4000010,0x4400000,0x30002417,0x4000010,0x5200000,0x30002417,0x6800000,0xfd329800,0x30002417, -0x6800100,0xfd862540,0x30002417,0x7c00100,0x9830000,0x30002417,0x7c00100,0xfd830000,0x30002417,0x7d00100,0xc1830000,0x30002417,0xc000010,0x4448000,0x3000251b,0x80000, -0xc4c18820,0x3000251b,0x2802100,0xa0962460,0x3000251b,0x3c02100,0x80962460,0x3000251b,0x4000000,0x84200000,0x3000251b,0x4000006,0x84500000,0x3000251b,0x4000010,0x84400000, -0x3000251b,0x4000010,0x84b70000,0x3000251b,0x4000800,0x84200000,0x3000251b,0x6800000,0x81329800,0x3000251b,0x7c00100,0x80230400,0x3000251b,0x7c00900,0x80230400,0x3000251b, -0xc000010,0x84b48000,0x3000251b,0x12882000,0xc4962460,0x30002800,0x24000000,0x4200000,0x30002800,0x2c000010,0xc9248002,0x30002a00,0x4000000,0x5600000,0x30002b01,0x2000, -0x14962460,0x30002c00,0x4000000,0x4200000,0x30002c00,0x7c00100,0xc8220405,0x30002d19,0x7c00100,0x18250400,0x30002e00,0x24000000,0x4200000,0x30003000,0x24000000,0x4200000, -0x30003100,0x24000000,0x4200000,0x30003600,0x24000000,0x4200000,0x30003700,0x24000000,0x4200000,0x3000392e,0x24000000,0x14200000,0x30005013,0x7c00100,0xca633801,0x30005600, -0,0x4918820,0x30020600,0x4000400,0x4500400,0x30020701,0x2802400,0x10962460,0x30020701,0x2802400,0x10c62460,0x300a3a11,0x4020000,0x4e00000,0x300a3a11,0x4020000, -0xc8e00002,0x300a3b11,0x4020000,0xc8e00002,0x300a3c00,0x4008000,0x4e00000,0x300a3c00,0x4010000,0x4e00000,0x300a3d11,0x7c00300,0xc8e30002,0x300a4305,0x7c00100,0xfce30400, -0x300a4611,0x7c40300,0xfce30000,0x300a4829,0x7c00100,0x40e30400,0x300a4829,0x7c00900,0x41230400,0x300a4929,0x4000000,0x44e00000,0x3040259a,0x4000010,0x84400000,0x3040259a, -0x4000010,0x84b70000,0x3040259a,0xc000010,0x84b48000,0x304028bc,0x4000001,0xc8c41c0b,0x304a3dcc,0x4000000,0x4e00000,0x30800c27,0x2802100,0xfc962460,0x30c01c92,0x6800000, -0xfd329800,0x3100080e,0x7c00120,0xc8220402,0x3100080e,0x7c00120,0xc8250402,0x31005167,0x1000,0,0x3100581e,0x4000000,0x84200000,0x3100581e,0x7c00100,0x80230400, -0x3100590d,0x7c00100,0x80230400,0x31005a09,0x7c00100,0x80220400,0x31005a09,0x7c00100,0x80250400,0x31005b00,0x4000000,0x14200000,0x31005c00,0x80000,0xc4918820,0x31005c00, -0x2802000,0x10962460,0x31005c00,0x2802400,0x10962460,0x31005c00,0x4000000,0x14200000,0x31005c00,0x4000000,0xc8200001,0x31005c00,0x6800000,0x10962540,0x31005c00,0x6800400, -0x10962540,0x31005c01,0x2802400,0x10962460,0x31005d00,0x4000020,0xc8200005,0x31005d00,0x6800020,0xc9329805,0x31005d00,0x7c00120,0xc8220405,0x31005d00,0x7c00120,0xc8250405, -0x31006000,0x82000,0xc4962460,0x31006000,0x180000,0xc0918820,0x310a5e11,0x7c40300,0xfce30000,0x310a5f11,0x7c00300,0xc8e30001,0x32000419,0x7c00100,0x20250400,0x3200080e, -0x4000020,0x4200000,0x3200080e,0x7c00100,0x8220400,0x3200080e,0x7c00100,0x8250400,0x32000908,0x7c00100,0xfc220400,0x32000908,0x7c00100,0xfc250400,0x32000c02,0x7c00100, -0x8230400,0x32000e25,0x7c00100,0xfc230400,0x32001d0c,0x7c00100,0xfc230400,0x32002800,0x80000,0xc5e18820,0x32002800,0x80020,0xc4218820,0x32002800,0x4000001,0xc8445802, -0x32002800,0x24000000,0x4200000,0x32002800,0x24000000,0xc9500002,0x32002800,0x24000020,0x4200000,0x32002800,0x2c000010,0xc9248002,0x32002919,0x7c00100,0xc822040f,0x32002a00, -0x4000000,0x5600000,0x32002b01,0x2000,0x14962460,0x32002b01,0x2802000,0x10962460,0x32002b01,0x2802020,0x10962460,0x32002c00,0x4000000,0x4200000,0x32002c00,0x4000020, -0x4200000,0x32002c00,0x4000020,0xc8200005,0x32002c00,0x7c00120,0xc8220405,0x32002c00,0x7c00120,0xc8250405,0x32002e00,0x24000020,0x4200000,0x32002f00,0x24000020,0x4200000, -0x32003000,0x24000000,0x4200000,0x32003000,0x24000020,0x4200000,0x32003500,0x24000000,0x4200000,0x32003600,0x24000020,0x4200000,0x32003700,0x24000000,0x4100000,0x32003700, -0x24000000,0x4200000,0x32003800,0x24000000,0x4810000,0x32003800,0x24000000,0x5410000,0x32005102,0x4000000,0xc9500008,0x32005502,0x7c00100,0x10230400,0x32006108,0x7c00100, -0x8220400,0x32006108,0x7c00100,0x8250400,0x3200622a,0x2802100,0x80962460,0x3200622a,0x2806400,0x80962460,0x3200622a,0x7c00100,0x80230400,0x3200632b,0x2802100,0x80962460, -0x3200632b,0x6804000,0x80962540,0x3200632b,0x7c00100,0x80230400,0x3200642c,0x2802100,0x80962460,0x3200642c,0x7c00100,0x80230400,0x3200652d,0x2802100,0x80962460,0x3200652d, -0x7c00100,0x80230400,0x32006600,0x24000020,0x4200000,0x32006700,0x24000020,0x4200000,0x32006800,0x24000020,0x4200000,0x32006900,0x24000020,0x4200000,0x32006900,0x24000020, -0x4810000,0x32006900,0x24000020,0x5410000,0x32006a00,0x24000020,0x4200000,0x32006a00,0x24000020,0xc8200001,0x32006a00,0x24000020,0xc8200002,0x32020701,0x2882000,0xc4c62460, -0x32023300,0x4000000,0x14100000,0x32026c01,0x12882000,0xc4962460,0x32065700,0x4000000,0xc8810011,0x32065700,0x4000000,0xc9410011,0x32086600,0x24000020,0x4810000,0x32086600, -0x24000020,0x5410000,0x32086900,0x24000020,0x4810000,0x32086900,0x24000020,0x5410000,0x320a3600,0x24000020,0x4200000,0x320a3d11,0x7c00100,0x11230400,0x320a3e14,0x7c00100, -0xc8e30010,0x320a3e14,0x7c00100,0xfe530000,0x320a3f16,0x7c00100,0xc8e30c10,0x320a4400,0x4000000,0xc8e00003,0x320a4929,0x4000000,0x44e00000,0x320a4f11,0x7c00300,0xc8e30001, -0x320a6b16,0x7c00100,0xa530c00,0x32406396,0xc000010,0x84448000,0x324a3dcf,0x4000000,0x4e00000,0x324a3dcf,0x7c00100,0x11230400,0x324a3fca,0x4000002,0xf9200c00,0x324a53c7, -0x24000000,0x14e00000,0x32820701,0x2802000,0x8962460,0x40000419,0x7c00100,0x10220400,0x40000419,0x7c00100,0x20220400,0x40000519,0x7c00100,0x10220400,0x40000600,0x4000400, -0x4200400,0x4000080e,0x7c00100,0x8220400,0x4000080e,0x7c00100,0x8250400,0x4000080e,0x7c00100,0xc8250402,0x40000c02,0x2802100,0x20962460,0x40000c02,0x2802400,0x20962460, -0x40000c02,0x2802500,0x20962460,0x40000c02,0x4000000,0x4200000,0x40000c02,0x4000000,0x5071400,0x40000c02,0x7c00100,0xfc230400,0x40000c02,0x80000000,0x5329960,0x40000d22, -0x7c00100,0x40230400,0x40000f0a,0x7c00100,0xfc230400,0x40001004,0x7c00100,0xfc230400,0x40001110,0x2802100,0xfc962460,0x40001110,0x6800100,0xfc962540,0x4000120f,0x2802100, -0xfc962460,0x4000120f,0x4000000,0x5600000,0x4000120f,0x7c00100,0xfc230400,0x4000131f,0x7c00100,0xfc230400,0x40001423,0x4000000,0x4200000,0x40001423,0x4000000,0x5600000, -0x40001615,0x2802400,0xfc962460,0x40001615,0x7c00100,0xfc230400,0x40002417,0x2802400,0x19862460,0x40002417,0x4000000,0x4200000,0x40002800,0x6800000,0x20201c00,0x40002800, -0x24000002,0x4200000,0x40002c00,0x4000000,0xc8200002,0x40003000,0x24000000,0x4200000,0x40003000,0x24000020,0x4200000,0x40003700,0x24000000,0x4200000,0x40005a09,0x7c00100, -0x80220400,0x40005a09,0x7c00100,0x80250400,0x40005d00,0x7c00120,0xc8220405,0x40006f30,0x2802100,0x40962460,0x40006f30,0x2802400,0x40962460,0x40006f30,0x4000000,0x44200000, -0x40006f30,0x6800000,0x41329800,0x40006f30,0x6800100,0x40962540,0x40006f30,0x7c00100,0x40230400,0x40006f30,0xc000010,0x44b48000,0x40007034,0x7c00100,0x41830000,0x40007117, -0x4000000,0x4200000,0x40007208,0x7c00100,0x10220400,0x4000720e,0x7c00100,0x10220400,0x4000720e,0x7c00500,0xc822040e,0x4000720e,0x7c00500,0xc822040f,0x40007219,0x7c00100, -0x10220400,0x40007219,0x7c00500,0x10220400,0x40007219,0x7c00500,0xc822040e,0x40007219,0x7c00500,0xc822040f,0x40007300,0x24000000,0x4200000,0x40007400,0x4000000,0x14200000, -0x40007531,0x7c00100,0x80230400,0x40007631,0x7c00100,0x80230400,0x40007835,0x4000010,0x84400000,0x40007835,0x7c00100,0x80230400,0x40007933,0x7c00100,0x80230400,0x40007a32, -0x6800000,0x81329800,0x40007a32,0x7c00100,0x80230400,0x40007b2f,0x7c00100,0x80230400,0x40007c00,0x4000000,0x14200000,0x40020701,0x2802400,0x10962460,0x40020701,0x2802400, -0x10c62460,0x40023300,0x4000000,0x14200000,0x40027d01,0x12882000,0xc4962460,0x400a3700,0x24000000,0x4200000,0x400a3700,0x24000000,0x4e00000,0x400a4400,0x4000000,0xc8e0000d, -0x400a4412,0x4000000,0xc8e00002,0x400a4412,0x4000000,0xc8e00003,0x400a4500,0x4000000,0xc8e0000d,0x400a5300,0x4000000,0xc8810010,0x400a5300,0x4000000,0xc9410010,0x40507719, -0x4000000,0x84200000,0x4050771c,0x4000000,0x84400000,0x4050771f,0x4000000,0x84200000,0x4050771f,0x4000000,0x84400000,0x40c01489,0x4000000,0x4200000,0x40d05117,0x4000000, -0x14200000,0x41000419,0x7c00100,0x20220400,0x41000419,0x7c00100,0x20250400,0x4100080e,0x7c00100,0xfc220400,0x4100080e,0x7c00100,0xfc250400,0x41000908,0x7c00100,0xfc220400, -0x41000908,0x7c00100,0xfc250400,0x41000b13,0x2802000,0x28962460,0x41000b13,0x2802100,0x28962460,0x41000b13,0x2802100,0x30962460,0x41000b13,0x4000000,0xcb00000,0x41000c02, -0x2802100,0x20962460,0x41000c02,0x4000000,0x5500000,0x41000c02,0xc000010,0x4b48000,0x41000f0a,0x7c00100,0xfc230400,0x41001004,0x7c00100,0xfc230400,0x41001423,0x7c00100, -0xfc230400,0x41001b27,0x4000000,0x4500000,0x41001d0c,0x7c00100,0xc822040f,0x41001d0c,0x7c00100,0xfc230400,0x41001f0b,0x2802400,0xfc962460,0x41001f0b,0x4000000,0x4200000, -0x41001f0b,0x7c00100,0xfc230400,0x41002800,0x24000000,0x4200000,0x41002800,0x24000000,0xc200000,0x41002800,0x24000000,0xc400000,0x41002919,0x7c00100,0xc822040e,0x41002a00, -0x4000000,0x5600000,0x41002b01,0x2802020,0x10962460,0x41002c00,0x4000000,0x4200000,0x41002c00,0x7c00120,0xc8220405,0x41003000,0x24000000,0x4200000,0x41003700,0x24000000, -0x4200000,0x41003700,0x24000000,0x4e00000,0x41005d00,0x7c00120,0xc8220405,0x41006600,0x24000020,0x4200000,0x41006600,0x24000020,0x4810000,0x41006600,0x24000020,0x5410000, -0x41007208,0x7c00100,0xc822040f,0x41007219,0x7c00100,0x10220400,0x41007300,0x24000000,0x4200000,0x41007e0e,0x2802000,0x18962460,0x41007e0e,0x4000000,0xc200000,0x41007f0e, -0x4000000,0x4200000,0x41007f0e,0x7c00100,0x8230400,0x41008002,0x7c00100,0xfc230400,0x41008137,0x2802100,0x80962460,0x41008137,0x4000000,0x84200000,0x41008137,0x6800100, -0x80962540,0x41008137,0x7c00100,0x80230400,0x41008301,0x2802000,0x18962460,0x41008407,0x4000000,0x84200000,0x41008407,0x4000000,0x84400000,0x41008407,0x4000000,0x84b00000, -0x41008407,0x7c00100,0x80220400,0x41008407,0x7c00100,0x80250400,0x4100850b,0x7c00100,0xfc230400,0x4100860b,0x4000000,0x4200000,0x4100860b,0x7c00100,0xfc230400,0x4100870c, -0x7c00100,0x8220400,0x41008838,0x7c00100,0x80220400,0x41008838,0x7c00100,0x80250400,0x41008939,0x2802000,0x80962460,0x41008939,0x2802100,0x80962460,0x41008939,0x2806000, -0x80962460,0x41008939,0x4000000,0x84200000,0x41008939,0x4000000,0x84400000,0x41008939,0x7c00100,0x80230400,0x41008939,0xc000010,0x84448000,0x41008a00,0x4000400,0x14200400, -0x41008b3b,0x4000000,0x45800000,0x41008b3b,0x6800000,0x41329800,0x41008b3b,0x7c00100,0x41830000,0x41008b3b,0x7e00100,0x41830000,0x41008c3d,0x4000010,0x84400000,0x41008c3d, -0x7c00100,0x80230400,0x41008d0e,0x7c00100,0xc822040f,0x41008d19,0x7c00100,0x10220400,0x41008d19,0x7c00100,0xc822040f,0x41008e00,0x24000000,0x5710000,0x41008e00,0x24000000, -0xc200000,0x41008e00,0x24000000,0xc400000,0x41008e00,0x24000000,0x1d710000,0x41008e00,0x24000006,0x4400000,0x41008f3a,0x2802100,0x40962460,0x41008f3a,0x2806000,0x40962460, -0x41008f3a,0x4000000,0x44200000,0x41008f3a,0x6800100,0x40962540,0x41008f3a,0x7c00100,0x40230400,0x4100903c,0x7c00100,0x40230400,0x4100903c,0x7c00100,0xc823040f,0x41020701, -0x2802000,0x10962460,0x41020701,0x2802000,0x10c62460,0x41020701,0x2802000,0x20962460,0x410a3700,0x24000000,0x4200000,0x410a3700,0x24000000,0x4e00000,0x410a4412,0x4000000, -0xc8e00003,0x410a4711,0x7c40300,0xfce30000,0x410a4f11,0x7c00300,0xc8e30001,0x410a9100,0x4000000,0xc8800010,0x410a9100,0x4000000,0xc8810010,0x410a9100,0x4000000,0xc8870010, -0x410a9100,0x4000000,0xc8b00010,0x410a9100,0x4000000,0xc8f00010,0x410a9100,0x4000000,0xc9001410,0x410a9100,0x4000000,0xc9071010,0x410a9100,0x4000000,0xc9071410,0x410a9100, -0x4000000,0xc9410010,0x41408ad2,0x4000400,0xc200000,0x414a82cc,0x4000000,0x4e00000,0x41808300,0x2802000,0x18962460,0x41c01489,0x6800000,0xfd329800,0x50000419,0x7c00100, -0x20220400,0x50000419,0x7c00100,0x20250400,0x5000080e,0x7c00100,0xfc220400,0x50000908,0x7c00100,0xfc220400,0x50000908,0x7c00100,0xfc250400,0x50000b13,0x2802500,0x20962460, -0x50000f0a,0x7c00100,0xfc230400,0x50001615,0x2802100,0xfc962460,0x50001615,0x7c00100,0xfc230400,0x50002b01,0x2802020,0x10962460,0x50002c00,0x4000000,0x4200000,0x50002c19, -0x7c00100,0x8220400,0x50002d19,0x7c00100,0x8220400,0x50003000,0x24000000,0x4200000,0x50003000,0x24000020,0x4200000,0x50003700,0x24000000,0x4200000,0x50005d00,0x7c00120, -0xc8220405,0x50005d00,0x7c00120,0xc8250405,0x50006108,0x7c00100,0xfc220400,0x50006108,0x7c00100,0xfc250400,0x50006600,0x24000020,0x4200000,0x50007300,0x24000000,0x4200000, -0x50008301,0x2802400,0x10962460,0x50008a00,0x7c00500,0xfc230400,0x50009257,0x2802400,0x40962460,0x50009257,0x4000000,0x44200000,0x50009257,0x4000010,0x45071400,0x50009257, -0x6800000,0x41329800,0x50009257,0x7c00100,0x40230400,0x50009257,0x7c00100,0x48230400,0x50009257,0x7c00500,0x40230400,0x50009257,0x7c00900,0x48230400,0x50009257,0xc000010, -0x44b48000,0x5000933e,0x2802100,0x40962460,0x5000933e,0x2802400,0x40962460,0x5000933e,0x2802400,0x50962460,0x5000933e,0x4000000,0x44400000,0x5000933e,0x4000000,0x44e00000, -0x5000933e,0x4000010,0x44400000,0x5000933e,0x6800000,0x40e29800,0x5000933e,0x6800100,0x40962540,0x5000933e,0x6800100,0x40962541,0x5000933e,0x6804400,0x42f62540,0x5000933e, -0x7c00100,0x42b30400,0x5000933e,0x7c00100,0x42b30401,0x5000933e,0xc000010,0x44448000,0x50009419,0x7c00100,0x8220400,0x50009419,0x7c00100,0x8250400,0x50009419,0x7c00100, -0x10220400,0x50009419,0x7c00100,0x10250400,0x50009419,0x7c00100,0x20220400,0x50009419,0x7c00100,0x20250400,0x50009500,0x4000400,0x4200400,0x5000965a,0x4000000,0x84500000, -0x5000965a,0x7c00100,0x80230400,0x5000965a,0xc000010,0x84b48000,0x5000975b,0x4000000,0x84200000,0x5000975b,0x4000010,0x84400000,0x5000975b,0x7c00100,0x80230400,0x50009865, -0x7c00100,0x80230400,0x50009965,0x4000010,0x84400000,0x50009965,0x7c00100,0x80230400,0x50409acc,0x4000000,0x4200000,0x5100080e,0x7c00100,0x8220400,0x5100080e,0x7c00100, -0x8250400,0x5100080e,0x7c00100,0x10250400,0x51000c02,0x2802100,0x20962460,0x51000c02,0x4000000,0x5500000,0x51000c02,0x4000020,0x4200000,0x51000c02,0x7c00100,0xfc230400, -0x51000f0a,0x7c00100,0xfc230400,0x51000f0a,0x7c00500,0xfc230400,0x51001110,0x2802100,0x20962460,0x5100131f,0x2802100,0x20962460,0x51001423,0x7c00100,0xfc230400,0x51001524, -0x2802100,0x20962460,0x51001524,0x4000000,0x4200000,0x51001524,0x7c00100,0x8230400,0x51001524,0x7c00100,0xfc230400,0x5100171a,0x2802100,0x20962460,0x5100171a,0x4000000, -0x4200000,0x5100171a,0x4000000,0x5500000,0x5100171a,0x7c00100,0xfc230400,0x51001b27,0x4000000,0x4200000,0x51001b27,0x4000000,0x4400000,0x51001b27,0x4000000,0x4500000, -0x51001b27,0x7c00100,0xfc230400,0x51001c1c,0x2802100,0xfd862460,0x51001c1c,0x2802500,0xfd862460,0x51001c1c,0x2806400,0xfd862460,0x51001c1c,0x4000000,0x5800000,0x51001c1c, -0x6800000,0xfd329800,0x51001c1c,0x6800100,0xfd862400,0x51001c1c,0x6800100,0xfd862540,0x51001c1c,0x6800500,0xfd862400,0x51001c1c,0x7c00100,0xfd830000,0x5100251b,0x7c00100, -0x80230400,0x51002619,0x7c00100,0x10220400,0x51002619,0x7c00100,0x10250400,0x51002619,0x7c00100,0xfc250400,0x51002800,0x80020,0xc4218820,0x51002c00,0x4000000,0xc200000, -0x51002d19,0x7c00100,0x8230400,0x51003700,0x24000000,0x4200000,0x51003700,0x24000000,0x4e00000,0x51005201,0x2802400,0x10962460,0x51005c00,0x4000000,0x14200000,0x51006108, -0x7c00100,0xfc220400,0x51006108,0x7c00100,0xfc250400,0x51006600,0x24000020,0x4200000,0x51006600,0x24000020,0x4810000,0x51006600,0x24000020,0x5410000,0x51007300,0x24000000, -0x4200000,0x51007300,0x24000020,0x4200000,0x51008002,0x7c00100,0xfc230400,0x51008301,0x2802000,0x10962460,0x51008301,0x2802000,0x18962460,0x51008301,0x2802400,0x10962460, -0x51008301,0x2802400,0x10c62460,0x51008301,0x2802400,0x18962460,0x51008a00,0x7c00500,0xfc230400,0x51008e00,0x24000000,0x4200000,0x51008e00,0x24000000,0x4400000,0x51008e00, -0x24000000,0x4810000,0x51008e00,0x24000000,0x5400000,0x51008e00,0x24000000,0x5410000,0x51008e00,0x24000000,0x5710000,0x51008e00,0x24000000,0xc400000,0x51008e00,0x24000002, -0x4200000,0x51008e00,0x24000500,0xc230400,0x51008e00,0x2c000010,0xcb48000,0x51009419,0x7c00100,0x8220400,0x51009419,0x7c00100,0x8250400,0x51009419,0x7c00100,0x10220400, -0x51009419,0x7c00100,0xc822040e,0x51009419,0x7c00100,0xc822040f,0x51009500,0x4000400,0x4200400,0x51009500,0x7c00500,0xfc230400,0x51009519,0x7c00100,0x8220400,0x51009519, -0x7c00100,0x8230400,0x51009519,0x7c00100,0x8250400,0x51009519,0x7c00100,0x18220400,0x51009519,0x7c00100,0x18250400,0x51009519,0x7c00100,0x20220400,0x51009519,0x7c00100, -0x20250400,0x51009519,0x7c00100,0xc822040f,0x51009b71,0x2802100,0x40962460,0x51009b71,0x6800000,0x41329800,0x51009b71,0x6800100,0x40962540,0x51009b71,0x6804400,0x40962540, -0x51009b71,0x7c00100,0x40230400,0x51009c52,0x2802100,0x40962460,0x51009c52,0x2802400,0x40962460,0x51009c52,0x2802d00,0x40962460,0x51009c52,0x4000010,0x44400000,0x51009c52, -0x6800000,0x41329800,0x51009c52,0x6800100,0x40962540,0x51009c52,0x7c00100,0x40230400,0x51009c52,0xc000010,0x44448000,0x51009d6d,0x6800000,0x41329800,0x51009d6d,0x7c00100, -0x40230400,0x51009d6d,0x7c00500,0x40230400,0x51009d6d,0x7c00d00,0x40230400,0x51009d6d,0xc000010,0x44448000,0x51009e08,0x2802100,0x8962460,0x51009f63,0x4000010,0x44400000, -0x51009f63,0x6800000,0x41329800,0x51009f63,0x7c00100,0x40230400,0x51009f63,0x7c00100,0x48230400,0x51009f63,0x7c00900,0x40230400,0x51009f63,0xc000010,0x44448000,0x51009f63, -0xc000010,0x44b48000,0x5100a008,0x2000,0xc962460,0x5100a008,0x2802400,0x20962460,0x5100a008,0x4000000,0x4200000,0x5100a008,0x4000000,0xc200000,0x5100a008,0x7c00100, -0x8220400,0x5100a008,0x7c00100,0x8230400,0x5100a008,0x7c00100,0x8250400,0x5100a008,0x7c00500,0xfc230400,0x5100a16f,0x2806400,0x40962460,0x5100a16f,0x6800000,0x41329800, -0x5100a16f,0x6800100,0x40962540,0x5100a16f,0x7c00100,0x40230400,0x5100a16f,0xc000010,0x44448000,0x5100a24f,0x2802100,0x40962460,0x5100a24f,0x2802400,0x40962460,0x5100a24f, -0x6800000,0x41329800,0x5100a24f,0x7c00100,0x40230400,0x5100a24f,0xc000010,0x44448000,0x5100a36e,0x2802100,0x80962460,0x5100a36e,0x4000000,0x84200000,0x5100a36e,0x6800100, -0x80962540,0x5100a36e,0x6804400,0x80962540,0x5100a36e,0x7c00100,0x80230400,0x5100a442,0x2802100,0x40962460,0x5100a442,0x4000000,0x44e00000,0x5100a442,0x6800000,0x40e29800, -0x5100a442,0x6800100,0x40962540,0x5100a442,0x7c00100,0x40430400,0x5100a442,0x7c00100,0x42d30400,0x5100a442,0xc000010,0x44448000,0x5100a500,0x4000000,0x4200000,0x5100a600, -0x4000000,0xc200000,0x5100a601,0x2802000,0x8962460,0x5100a76b,0x7c00100,0x80230400,0x5100a868,0x7c00100,0x80230400,0x5100a96c,0x4000000,0x84200000,0x5100a96c,0x7c00100, -0x80230400,0x5100aa00,0x4000000,0x4e00000,0x5100ab00,0x4000000,0x4e00000,0x51086600,0x24000020,0x4810000,0x51086600,0x24000020,0x5410000,0x510a4005,0x7c00100,0xfce30400, -0x510a4711,0x7c40300,0xfce30000,0x510a7300,0x24000000,0x4200000,0x510aaa00,0x4000000,0x4e00000,0x514a82cc,0x4000000,0x4e00000,0x5150a20e,0x4000400,0x4400000,0x51802bbe, -0x2802000,0x10962460,0x51c00908,0x2802400,0x18962460,0x51c0a008,0x2802400,0x20962460,0x52000f0a,0x2802100,0x20962460,0x52000f0a,0x6800100,0x8962540,0x52000f0a,0x7c00100, -0xfc230400,0x52001004,0x4000000,0x5600000,0x52001b00,0x4000000,0x4200000,0x52001c1c,0x2802100,0xfd862460,0x52001c1c,0x6800100,0xfd862400,0x52001c1c,0x6800500,0xfd862400, -0x52001e12,0x7c00100,0xa230500,0x52001e12,0x7c00100,0xa330520,0x52002128,0x4000002,0x44400000,0x52002128,0x7c00100,0x40230400,0x52002a00,0x4000000,0x5500000,0x52002a00, -0x4000000,0x5600000,0x52002d00,0x4000000,0xc8200006,0x52003000,0x24000000,0x4200000,0x52006108,0x7c00100,0xfc220400,0x52006108,0x7c00100,0xfc250400,0x52008301,0x2802400, -0x10962460,0x52008407,0x2802400,0x80962460,0x52008407,0x2802400,0x90962460,0x52008407,0x7c00100,0x80220400,0x52008407,0x7c00100,0x80250400,0x52008b3b,0x6800000,0x41800000, -0x52008b3b,0x7c00100,0x41830000,0x52008e00,0x24000000,0xc400000,0x52009419,0x7c00100,0x8250400,0x5200975b,0x4000000,0x84200000,0x5200ac7e,0x2802000,0x80962460,0x5200ac7e, -0x2802100,0x80962460,0x5200ac7e,0x2802400,0x80962460,0x5200ac7e,0x4000010,0x84200000,0x5200ac7e,0x7c00100,0x80230400,0x5200ac7e,0xc000010,0x84248000,0x5200ad28,0x7c00100, -0x40230400,0x5200ae6a,0x2802100,0x41862460,0x5200ae6a,0x2802400,0x40962460,0x5200ae6a,0x2802400,0x41862460,0x5200ae6a,0x2806000,0x41862460,0x5200ae6a,0x4000000,0x45800000, -0x5200ae6a,0x6800000,0x41329800,0x5200ae6a,0x6800100,0x41862400,0x5200ae6a,0x6800100,0x41862540,0x5200ae6a,0x7c00100,0x41830000,0x5200ae6a,0x7c00900,0x41830000,0x5200ae6a, -0xc000010,0x45848000,0x5200b083,0x4000010,0x44400000,0x5200b083,0x7c00100,0x40230400,0x5200b083,0xc000010,0x44448000,0x5200b182,0x2802400,0x40962460,0x5200b182,0x4000000, -0x44200000,0x5200b182,0x4000010,0x44400000,0x5200b182,0x7c00100,0x40230400,0x5200b182,0xc000010,0x44448000,0x5200b30a,0x2802400,0x8962460,0x5200b30a,0x4000000,0xc200000, -0x5200b30a,0x7c00100,0x8230400,0x5200b54e,0x2802100,0x40962460,0x5200b54e,0x2802400,0x40962460,0x5200b54e,0x4000000,0x44e00000,0x5200b54e,0x4000010,0x44400000,0x5200b54e, -0x6800000,0x40e29800,0x5200b54e,0x6800100,0x40962540,0x5200b54e,0x6804400,0x42f62540,0x5200b54e,0x7c00100,0x42b30400,0x5200b54e,0xc000010,0x44448000,0x5200b61c,0x4000000, -0x5800000,0x5200b61c,0x6800500,0xfd862400,0x5200b61c,0x7c00100,0xfd830000,0x5200b61c,0x7c00900,0xfd830000,0x5200b77f,0x2802100,0x41862460,0x5200b77f,0x2802400,0x41862460, -0x5200b77f,0x4000000,0x45800000,0x5200b77f,0x4000010,0x45800000,0x5200b77f,0x7c00100,0x41830000,0x5200b77f,0x7c00500,0x41830000,0x5200b77f,0x7c00900,0x41830000,0x5200b77f, -0x7e00100,0x41830000,0x5200b873,0x2802100,0x40962460,0x5200b873,0x2806400,0x40962460,0x5200b873,0x6800000,0x41329800,0x5200b873,0x6800100,0x40962540,0x5200b873,0x6800400, -0x40962540,0x5200b873,0x7c00100,0x40230400,0x5200b873,0xc000010,0x44448000,0x5200b912,0x7c00100,0xa230500,0x5200b912,0x7c00100,0xa330520,0x5200ba74,0x4000000,0x84200000, -0x5200ba74,0x4000010,0x84400000,0x5200ba74,0x7c00100,0x80230400,0x5200bb85,0x4000000,0x84200000,0x5200bb85,0x7c00100,0x80230400,0x5200bc75,0x4000000,0x84400000,0x5200bc75, -0x4000010,0x84400000,0x5200bc75,0x7c00100,0x80230400,0x5200bd7d,0x4000000,0x84200000,0x5200bd7d,0x7c00100,0x80230400,0x5200be7a,0x4000000,0x84200000,0x5200be7a,0x7c00100, -0x80230400,0x5200bf58,0x7c00100,0x80230400,0x5200c002,0x4000000,0x4200000,0x5200c178,0x2802100,0x80962460,0x5200c178,0x2802400,0x80962460,0x5200c178,0x2806400,0x80962460, -0x5200c178,0x4000000,0x84200000,0x5200c178,0x6800100,0x80962540,0x5200c178,0x7c00100,0x80230400,0x5200c178,0x7c00100,0x80230401,0x5200c178,0xc000010,0x84448000,0x5200c178, -0x80000000,0x85329960,0x5200c247,0x7c00100,0x80230400,0x5200c247,0x7c00100,0x80830400,0x5200c247,0x7c00100,0x81430400,0x5200c300,0x4000000,0xc8200003,0x52022d00,0x4000000, -0xc8100006,0x52023700,0x24000000,0x4100000,0x52023700,0x24000000,0x4e00000,0x52023700,0x24000000,0x6800000,0x52024400,0x4000000,0x4100000,0x52027300,0x24000000,0x4100000, -0x5202c300,0x4000000,0x4100000,0x5202c300,0x4000000,0xc8100002,0x5202c300,0x4000000,0xc8100003,0x5202c300,0x4000000,0xc810000d,0x5202c300,0x4000100,0x4150400,0x5202c300, -0x4000100,0xc815040d,0x520a1e12,0x7c00100,0xa130480,0x520a3700,0x24000000,0x4e00000,0x520a3800,0x24000000,0x4100000,0x520a4711,0x7c40300,0xfce30000,0x520a4f11,0x7c00300, -0xc8e30001,0x520a7300,0x24000000,0x4100000,0x520ab412,0x7c00100,0xa130480,0x520ac400,0x4000000,0xc8e00002,0x520ac400,0x4000000,0xc8e0000d,0x520ac414,0x4000000,0xc8e0000d, -0x520ac511,0x7c40300,0xfce30000,0x5240af9c,0x7c00100,0x8230400,0x5240afa1,0x4000400,0xc200000,0x5240afa3,0x6800400,0x8962540,0x5240afa3,0x7c00100,0x8230400,0x5240afad, -0x7c00100,0x8230400,0x5240afaf,0x7c00100,0x8230400,0x5240b2d4,0x4000000,0x4200000,0x5240b2e3,0x4000000,0x4200000,0x5240b2f1,0x4000000,0x4200000,0x5240b2fc,0x4000000, -0x5500000,0x524a44cc,0x4000000,0xc8e00003,0x5250b511,0x7c00900,0x60430400,0x5280af9c,0x2802400,0x8962460,0x5280af9d,0x2802400,0x8962460,0x5280afa3,0x2802400,0x8962460, -0x5280afa5,0x2802400,0x8962460,0x5280afa7,0x2802400,0x8962460,0x52d0b308,0x2802400,0x8962460,0x52d0b30c,0x7c00100,0x8230400,0x60000c02,0x2802100,0x20962460,0x60000c02, -0x7c00100,0xfc230400,0x60000f0a,0x2802100,0xfc962460,0x60000f0a,0x6800100,0xfc962540,0x60000f0a,0x7c00100,0xfc230400,0x6000131f,0x4000000,0x4200000,0x6000171a,0x7c00100, -0xfc230400,0x6000171a,0x7c00100,0xfc230560,0x60001b27,0x2802100,0xfc962460,0x60001b27,0x4000000,0x4c00000,0x60001b27,0x7c00100,0xfc230400,0x60001f0b,0x2802400,0xfc962460, -0x60002919,0x7c00100,0xc822040e,0x60002a00,0x4000000,0x5600000,0x60003000,0x24000000,0x4200000,0x60003000,0x24000000,0x4e00000,0x60003700,0x24000000,0x4200000,0x60003800, -0x24000000,0x5710000,0x60005102,0x4000000,0x14200000,0x60006108,0x7c00100,0xfc220400,0x60006108,0x7c00100,0xfc250400,0x60006600,0x24000020,0x4200000,0x60008301,0x2802400, -0x10c62460,0x6000903c,0x2806000,0x40962460,0x6000903c,0x4000000,0x44400000,0x60009519,0x7c00100,0x8220400,0x60009519,0x7c00100,0x8250400,0x60009519,0x7c00100,0x10220400, -0x60009519,0x7c00100,0xfc250400,0x6000a008,0x7c00100,0x8220400,0x6000a008,0x7c00100,0x8250400,0x6000c300,0x4000000,0x6703580,0x6000c654,0x2802000,0x40962460,0x6000c654, -0x4000010,0x44200000,0x6000c654,0x7c00100,0x40230400,0x6000c73f,0x2802000,0x40962460,0x6000c73f,0x2802100,0x40962460,0x6000c73f,0x4000000,0x44200000,0x6000c73f,0x6800100, -0x40962540,0x6000c73f,0x6804000,0x42e62540,0x6000c73f,0x7c00100,0x42d30400,0x6000c80b,0x7c00100,0xfc230400,0x6000c941,0x2802100,0x80962460,0x6000c941,0x2806400,0x82f62460, -0x6000c941,0x4000000,0x84e00000,0x6000c941,0x4000010,0x84e00000,0x6000c941,0x6800000,0x82d29800,0x6000c941,0x6800100,0x80962540,0x6000c941,0x7c00100,0x82b30400,0x6000c941, -0x7c00100,0x82c30400,0x6000c941,0xc000010,0x84448000,0x6000ca82,0x7c00100,0x40230400,0x6000cc00,0x4000000,0x4e00000,0x6000d000,0x4000000,0x4200000,0x6002c300,0x4000000, -0x4100000,0x6002c300,0x4000000,0xc810000d,0x6002c300,0x4000100,0x4150400,0x6002c300,0x4000100,0xc815040d,0x600a3000,0x24000000,0x4200000,0x600a3000,0x24000000,0x4e00000, -0x600a3700,0x24000000,0x4200000,0x600a3800,0x24000000,0x4200000,0x600a3800,0x24000000,0x6800000,0x600a4305,0x7c00100,0xfce30400,0x600ac300,0x4000000,0x4100000,0x600ac400, -0x4000000,0xc8e0000d,0x600acb14,0x7c00100,0x8e30000,0x600acb16,0x7c00100,0x8e30c00,0x600acc00,0x4000000,0x4e00000,0x600acd00,0x4000000,0x4200000,0x600acd00,0x4000000, -0x4e00000,0x600acd00,0x4000000,0x6800000,0x600ace00,0x4000000,0x4e00000,0x600ace00,0x4000000,0x6800000,0x600acf00,0x4000000,0x4e00000,0x600acf00,0x4000000,0x6800000, -0x600ad111,0x7c40300,0xfce30000,0x604ac4cc,0x4000000,0xc8e00003,0x61000a03,0x4000000,0x5600000,0x61000c02,0x80000000,0x5329960,0x6100120f,0x4000000,0x4200000,0x61001a18, -0x7c00100,0xfd830000,0x61001d0c,0x7c00100,0xfc230400,0x61001d0c,0x7c00100,0xfc250400,0x61006600,0x24000020,0x4200000,0x61008407,0x7c00100,0x80220400,0x61008407,0x7c00100, -0x80250400,0x6100870c,0x7c00100,0xfc220400,0x61008e00,0x24000000,0x4200000,0x61008e00,0x24000000,0x4400000,0x61008e00,0x24000000,0xc200000,0x61008e00,0x24000002,0x4300000, -0x6100903c,0x7c00100,0x40230400,0x61009519,0x7c00100,0xfc220400,0x61009519,0x7c00100,0xfc250400,0x61009519,0x7c00500,0xc822040f,0x61009b71,0x2802100,0x40962460,0x61009b71, -0x2806400,0x40962460,0x61009b71,0x7c00100,0x40230400,0x6100a008,0x2802100,0x8962460,0x6100c300,0x4000000,0xc820000f,0x6100cd00,0x4000000,0x4200000,0x6100d202,0x2802400, -0x20962460,0x6100d202,0x2802500,0x20962460,0x6100d202,0x7c00100,0xfc230400,0x6100d302,0x4000020,0x4200000,0x6100d302,0x7c00120,0xc8230405,0x6100d476,0x2802100,0x40962460, -0x6100d476,0x2802100,0x40962461,0x6100d476,0x2806400,0x40962460,0x6100d476,0x4000000,0x44400000,0x6100d476,0x6800000,0x41329800,0x6100d476,0x6800100,0x40962540,0x6100d476, -0x7c00100,0x40230400,0x6100d476,0xc000010,0x44448000,0x6100d573,0x2802100,0x40962460,0x6100d573,0x2806400,0x40962460,0x6100d573,0x6800100,0x40962540,0x6100d573,0x7c00100, -0x40230400,0x6100d573,0x7c00900,0x40230400,0x6100d573,0xc000010,0x44448000,0x6100d68d,0x7c00100,0x80230400,0x6100d756,0x7c00100,0x80230400,0x6100d85c,0x2802500,0x40962460, -0x6100d85c,0x6800100,0x40962540,0x6100d85c,0x7c00100,0x40230400,0x6100d85c,0x7c00500,0x40230400,0x6100d997,0x2802100,0x80962460,0x6100d997,0x4000000,0x84200000,0x6100d997, -0x4000000,0x84400000,0x6100d997,0x6800000,0x81329800,0x6100d997,0x6800100,0x80962540,0x6100d997,0x6804400,0x80962540,0x6100d997,0x7c00100,0x80230400,0x6100d997,0x7c00100, -0x80230560,0x6100d997,0xc000010,0x84448000,0x6100da98,0x6800000,0x81329800,0x6100da98,0x7c00100,0x80230400,0x6100db71,0x4000000,0x44200000,0x6100dc99,0x2802100,0x80962460, -0x6100dc99,0x2802400,0x80962460,0x6100dc99,0x6800000,0x81329800,0x6100dc99,0x6800100,0x80962540,0x6100dc99,0x6804400,0x80962540,0x6100dc99,0x7c00100,0x80230400,0x610a4711, -0x7c40300,0xfce30000,0x610a4f11,0x7c00300,0xc8e30001,0x610ace00,0x4000000,0x4e00000,0x6140afa1,0x7c00100,0x8230400,0x6140afa3,0x7c00100,0x8230400,0x6180af9e,0x2802400, -0x8962460,0x62002a00,0x4000000,0x5600000,0x63002800,0x80000,0xc4918820,0x63c00c15,0x80000,0xc4918820,0x7000080e,0x7c00100,0x8250400,0x70000a03,0x4000000,0x4200000, -0x70000c00,0x80000000,0x5329960,0x70000f0a,0x7c00100,0x8230400,0x70001004,0x7c00100,0x8230400,0x70001524,0x2802100,0x8962460,0x70001524,0x7c00100,0x8230400,0x70001615, -0x2802100,0x8962460,0x7000171a,0x2802100,0x8962460,0x70001821,0x6800000,0x9329800,0x70002320,0x7c00100,0x80230400,0x70002a00,0x4000000,0x5500000,0x70002a00,0x4000000, -0x5600000,0x70003000,0x24000000,0x4200000,0x70003800,0x24000000,0x4e00000,0x70005201,0x2802400,0x10962460,0x7000581e,0x7c00100,0x80230400,0x70006108,0x7c00100,0x8220400, -0x70006108,0x7c00100,0x8250400,0x70006108,0x7c00100,0xfc220400,0x70006108,0x7c00100,0xfc250400,0x70006f30,0x7c00100,0x40230400,0x70007300,0x24000000,0x4200000,0x70007f0e, -0x4000000,0x4200000,0x70008301,0x2802100,0x10962460,0x70008301,0x2802400,0x10962460,0x70008e00,0x24000000,0x4200000,0x70008e00,0x24000000,0x4400000,0x70008e00,0x24000002, -0x4400000,0x70008e00,0x24000008,0x5410000,0x70008e00,0x24000010,0x4400000,0x70008e00,0x2c000010,0x4448000,0x70009519,0x7c00100,0x8220400,0x70009519,0x7c00100,0x8230400, -0x70009519,0x7c00100,0x8250400,0x70009865,0x7c00100,0x80230400,0x70009965,0x4000010,0x84400000,0x70009965,0x7c00100,0x80230400,0x7000a008,0x7c00100,0x8220400,0x7000a008, -0x7c00100,0x8250400,0x7000a008,0x7c00500,0xc822040f,0x7000a50e,0x4000000,0x4200000,0x7000b61c,0x2802500,0xfd862460,0x7000b61c,0x6800500,0xfd862400,0x7000b61c,0x7c00100, -0xfd830000,0x7000c300,0x4000000,0x4100000,0x7000c941,0x2806000,0x80c62460,0x7000cc00,0x4000000,0x4e00000,0x7000cd00,0x4000000,0x4200000,0x7000cd00,0x4000000,0x4e00000, -0x7000cd00,0x4000000,0x6800000,0x7000cf00,0x4000000,0x4e00000,0x7000d202,0x2802100,0x20962460,0x7000d202,0x7c00100,0x8230400,0x7000d202,0x7c00100,0xfc230400,0x7000d997, -0x7c00100,0x80230400,0x7000d997,0xc000010,0x84248000,0x7000dd86,0x2802400,0x80962460,0x7000dd86,0x7c00100,0x80230400,0x7000dd86,0xc000010,0x84448000,0x7000de9f,0x4000000, -0x84200000,0x7000de9f,0x7c00100,0x80230400,0x7000e001,0x2400,0x4962460,0x7000e001,0x2802400,0x8962460,0x7000e187,0x2802000,0x80962460,0x7000e187,0x2802100,0x80962460, -0x7000e187,0x4000000,0x84200000,0x7000e187,0x7c00100,0x80230400,0x7000e187,0xc000010,0x84448000,0x7000e288,0x7c00100,0x80230400,0x7000e300,0x4000000,0x4200000,0x7000e489, -0x2802100,0x80962460,0x7000e489,0x2802400,0x80962460,0x7000e489,0x6800100,0x80962540,0x7000e489,0x6800100,0x80962541,0x7000e489,0x6804400,0x82f62540,0x7000e489,0x7c00100, -0x80430400,0x7000e489,0x7c00100,0x82b30400,0x7000e489,0x7c00100,0x82d30400,0x7000e489,0x7c00900,0x80430400,0x7000e59d,0x2802100,0x80962460,0x7000e59d,0x2802400,0x80962460, -0x7000e59d,0x4000000,0x84200000,0x7000e59d,0x4000010,0x84200000,0x7000e59d,0x6800100,0x80962540,0x7000e59d,0x6804400,0x80962540,0x7000e59d,0x7c00100,0x80230400,0x7000e59d, -0xc000010,0x84448000,0x7000e691,0x2802100,0x80962460,0x7000e691,0x2802400,0x80962460,0x7000e691,0x2806400,0x80962460,0x7000e691,0x6800000,0x81329800,0x7000e691,0x6800100, -0x80962540,0x7000e691,0x7c00100,0x80230400,0x7000e700,0x4000400,0x4200400,0x7000e70e,0x7c00100,0x8220400,0x7000e719,0x7c00100,0x8220400,0x7000e719,0x7c00500,0xc822040f, -0x7000e853,0x7c00100,0x80230400,0x7000e9a0,0x2802400,0x80962460,0x7000e9a0,0x4000000,0x84200000,0x7000e9a0,0x4000000,0x84500000,0x7000e9a0,0x7c00100,0x80230400,0x7000ea79, -0x2802400,0x80962460,0x7000ea79,0x4000000,0x84200000,0x7000ea79,0x4000000,0x84f00000,0x7000ea79,0x4000010,0x84400000,0x7000ea79,0x7c00100,0x80230400,0x7000eb8c,0x2802400, -0x80962460,0x7000eb8c,0x4000000,0x84200000,0x7000eb8c,0x7c00100,0x80230400,0x7000eca3,0x2802100,0x80962460,0x7000eca3,0x2806400,0x80962460,0x7000eca3,0x4000000,0x84200000, -0x7000eca3,0x6800000,0x81329800,0x7000eca3,0x6800100,0x80962540,0x7000eca3,0x7c00100,0x80230400,0x7000eca3,0xc000010,0x84448000,0x7000ed95,0x6800000,0xa1329800,0x7000ed95, -0x7c00100,0xa0230400,0x7000ed95,0xc000010,0x84448000,0x7000ee1c,0x2802500,0x9862460,0x7000ee1c,0x6800000,0xfd329800,0x7000ee1c,0x7c00100,0x9830000,0x7000ee1c,0x7c00100, -0xfd830000,0x7000ee1c,0x7c00900,0x9830000,0x7000ef8f,0x4000000,0x84200000,0x7000ef8f,0x7c00100,0x80230400,0x7000f08e,0x4000000,0x84200000,0x7000f08e,0x7c00100,0x80230400, -0x7000f159,0x2802100,0x80962460,0x7000f159,0x7c00100,0x80230400,0x7000f200,0x4000000,0x4200000,0x7000f200,0x4000000,0x5200000,0x7000f200,0x4000000,0x5710000,0x7000f34b, -0x2802400,0x80962460,0x7000f34b,0x4000000,0x84200000,0x7000f34b,0x4000010,0x84400000,0x7000f34b,0x6800000,0x81329800,0x7000f34b,0x7c00100,0x80230400,0x7000f34b,0x7c00900, -0x80230400,0x7000f34b,0xc000010,0x84448000,0x7000f490,0x4000000,0x84200000,0x7000f490,0x7c00100,0x80230400,0x7000f5a5,0x7c00100,0x80230400,0x7000f67b,0x4000000,0x84200000, -0x7000f67b,0x4000010,0x84200000,0x7000f67b,0x7c00100,0x80230400,0x7000f8a6,0x2802100,0x80962460,0x7000f8a6,0x2802400,0x80962460,0x7000f8a6,0x2806400,0x80962460,0x7000f8a6, -0x4000000,0x84500000,0x7000f8a6,0x4000010,0x84b00000,0x7000f8a6,0x4000800,0x84200000,0x7000f8a6,0x6800100,0x80962540,0x7000f8a6,0x6800100,0x80962541,0x7000f8a6,0x7c00100, -0x80230400,0x7000f8a6,0xc000010,0x84448000,0x7000f921,0x4000000,0x4200000,0x7000fa00,0x4000000,0x4200000,0x7000fb9e,0x2802100,0x80962460,0x7000fb9e,0x2802400,0x80962460, -0x7000fb9e,0x2806400,0x80962460,0x7000fb9e,0x4000000,0x84200000,0x7000fb9e,0x6800000,0x81329800,0x7000fb9e,0x6800100,0x80962540,0x7000fb9e,0x6800100,0x80962541,0x7000fb9e, -0x7c00100,0x80230400,0x7000fc92,0x4000000,0x84200000,0x7000fc92,0x6800000,0x81329800,0x7000fc92,0x7c00100,0x80220400,0x7000fc92,0x7c00100,0x80230400,0x7000fc92,0x7c00100, -0x80250400,0x700acd00,0x4000000,0x4e00000,0x700acd00,0x4000000,0x6800000,0x700ace00,0x4000000,0x4e00000,0x700acf00,0x4000000,0x4e00000,0x700acf00,0x4000000,0x6800000, -0x7050df21,0x4000000,0xc200000,0x7050f729,0x80000,0xc4918820,0x7080afa1,0x2802400,0x8962460,0x7090df21,0x2802400,0x8962460,0x70d0e427,0x2802100,0xfc962460,0x70d0e427, -0x2802400,0xfc962460,0x70d0e427,0x6800100,0xfc962540,0x70d0ea25,0x4000010,0x84400000,0x8000120f,0x7c00100,0x20230400,0x80001524,0x7c00100,0x20230400,0x8000171a,0x7c00100, -0x8230400,0x80002006,0x7c00100,0x40220400,0x80002006,0x7c00100,0x40250400,0x80002a00,0x4000000,0x5500000,0x80002d00,0x4000000,0x24200000,0x80005208,0x2802400,0x30962460, -0x80005c00,0x4000000,0x34200000,0x80007300,0x24000000,0x24200000,0x80009519,0x7c00100,0x20220400,0x80009519,0x7c00100,0x20230400,0x80009519,0x7c00100,0x20250400,0x80009865, -0x7c00100,0x80230400,0x8000a008,0x2802100,0x28962460,0x8000b30a,0x4000000,0x2c500000,0x8000b30a,0x7c00100,0x28230400,0x8000cd00,0x4000000,0x24e00000,0x8000d202,0x2802500, -0x20962460,0x8000d202,0x7c00100,0x20230400,0x8000d68d,0x4000000,0x84200000,0x8000d997,0x2802000,0x80962460,0x8000d997,0x2802400,0x80962460,0x8000d997,0x4000000,0x84400000, -0x8000d997,0x4000000,0x84500000,0x8000d997,0x7c00100,0x80230400,0x8000d997,0xc000010,0x84448000,0x8000e489,0x2802100,0x80962460,0x8000e489,0x7c00100,0x82d30400,0x8000e719, -0x7c00100,0x20220400,0x8000f8a6,0x2802100,0x80962460,0x8000f8a6,0x7c00100,0x80230400,0x8000f8a6,0xc000010,0x84448000,0x8000fda1,0x2802100,0x81862460,0x8000fda1,0x2806400, -0x81862460,0x8000fda1,0x4000000,0x85800000,0x8000fda1,0x6800000,0x81329800,0x8000fda1,0x6800100,0x81862400,0x8000fda1,0x6800100,0x81862540,0x8000fda1,0x7c00100,0x81830000, -0x8000fda1,0xc000010,0x84448000,0x8000fe9c,0x7c00100,0x80230400,0x8000fe9c,0x7c00100,0x80830400,0x8000fe9c,0x7c00100,0x81430400,0x8000ff06,0x7c00100,0x40220400,0x80010165, -0x7c00100,0x80230400,0x800102a2,0x4000000,0x84200000,0x800102a2,0x7c00100,0x80230400,0x800103a4,0x7c00100,0x80230400,0x800103a4,0xc000010,0x84448000,0x8001044c,0x4000000, -0x84200000,0x8001044c,0x7c00100,0x80220400,0x8001044c,0x7c00100,0x80250400,0x80010670,0x2802000,0x80962460,0x80010670,0x4000000,0x84200000,0x80010670,0x4000010,0x84400000, -0x80010670,0xc000010,0x84448000,0x800a4711,0x7c40300,0xfce30000,0x800acd00,0x4000000,0x4e00000,0x800acd00,0x4000000,0x6902460,0x800ace00,0x4000000,0x4e00000,0x800acf00, -0x4000000,0x4e00000,0x800b0011,0x7c40300,0xfce30000,0x800b0500,0x4000000,0x4e00000,0x800b0500,0x4000000,0x6800000,0x90001615,0x7c00100,0xfc230400,0x9000171a,0x4000000, -0x4200000,0x9000171a,0x7c00100,0xfc230400,0x90003000,0x24000000,0x4200000,0x90007f0e,0x4000000,0x4200000,0x90008301,0x2802400,0x10962460,0x90008e00,0x24000000,0x4400000, -0x90009519,0x7c00100,0x10250400,0x9000a16f,0x2802100,0x40962460,0x9000d200,0x80000000,0x5329960,0x9000d202,0x2802000,0x20962460,0x9000d202,0x2802100,0x20962460,0x9000d202, -0x7c00100,0xfc230400,0x9000e59d,0x2802100,0x80962460,0x90010500,0x4000000,0x4e00000,0x900107a7,0x2802100,0x40962460,0x900107a7,0x2802400,0x40962460,0x900107a7,0x2802c00, -0x40962460,0x900107a7,0x4000000,0x45400000,0x900107a7,0x6800000,0x41329800,0x900107a7,0x7c00100,0x40220400,0x900107a7,0x7c00100,0x40250400,0x900108a8,0x2802100,0x80962460, -0x900108a8,0x2806400,0x80962460,0x900108a8,0x4000000,0x84200000,0x900108a8,0x4000000,0x84400000,0x900108a8,0x4000010,0x84400000,0x900108a8,0x6800000,0x81329800,0x900108a8, -0x6800100,0x80962540,0x900108a8,0x7c00100,0x80230400,0x900108a8,0xc000010,0x84448000,0x90010908,0x7c00100,0x8220400,0x90010a38,0x2802100,0x80962460,0x90010ca9,0x2802100, -0x80962460,0x90010ca9,0x4000000,0x84500000,0x90010ca9,0x4000010,0x84b00000,0x90010ca9,0x6800100,0x80962540,0x90010ca9,0x7c00100,0x80230400,0x90010d1b,0x4000000,0x84500000, -0x90010eaa,0x2802100,0x40962460,0x90010eaa,0x2802400,0x40962460,0x90010eaa,0x2806400,0x40962460,0x90010eaa,0x4000000,0x44200000,0x90010eaa,0x4000000,0x44400000,0x90010eaa, -0x4000010,0x44400000,0x90010eaa,0x6800000,0x41329800,0x90010eaa,0x6800100,0x40962540,0x90010eaa,0x7c00100,0x40230400,0x90010eaa,0xc000010,0x44448000,0x90010fab,0x7c00100, -0x40220400,0x90010fab,0x7c00100,0x40250400,0x9002c300,0x4000000,0x4100000,0x900ac400,0x4000000,0xc8e0000d,0x900acd00,0x4000000,0x4e00000,0x900acd00,0x4000000,0x6800000, -0x900acf00,0x4000000,0x4e00000,0x900b0500,0x4000000,0x4e00000,0x900b0500,0x4000000,0x6800000,0x900b0b9a,0x7c00900,0x81230400,0x900b109a,0x7c00300,0x80e30000,0x900b119a, -0x7c00300,0x80e30000,0x90408e06,0x24000000,0x4400000,0xa0001004,0x4000000,0x4200000,0xa0001004,0x7c00100,0x8230400,0xa000120f,0x2802100,0xfc962460,0xa000120f,0x2802400, -0xfc962460,0xa000171a,0x2802100,0xfc962460,0xa000171a,0x2806400,0x8962460,0xa0002a00,0x4000000,0x5600000,0xa0003000,0x24000000,0x4200000,0xa000581e,0x7c00100,0x80230400, -0xa0007300,0x24000000,0x4200000,0xa0008301,0x2802400,0x10962460,0xa0008e00,0x24000000,0x4400000,0xa000cf00,0x4000000,0x4e00000,0xa0010500,0x4000000,0x4200000,0xa00114af, -0x2802100,0x80962460,0xa00114af,0x2802400,0x80962460,0xa00114af,0x2806400,0x80962460,0xa00114af,0x6800000,0x81329800,0xa00114af,0x7c00100,0x80230400,0xa00114af,0x7c00100, -0x80230560,0xa00116b0,0x2802100,0x80962460,0xa00116b0,0x2802800,0x80962460,0xa00116b0,0x2806400,0x80962460,0xa00116b0,0x4000000,0x84400000,0xa00116b0,0x4000000,0x84500000, -0xa00116b0,0x4000010,0x84400000,0xa00116b0,0x6800100,0x80962540,0xa00116b0,0x7c00100,0x80230400,0xa00116b0,0x7c00100,0x80230560,0xa00116b0,0xc000010,0x84448000,0xa0011722, -0x7c00100,0x40230400,0xa00118b1,0x2802000,0x80962460,0xa00118b1,0x2802100,0x80962460,0xa00118b1,0x2806400,0x80962460,0xa00118b1,0x4000000,0x84200000,0xa00118b1,0x4000000, -0x84400000,0xa00118b1,0x4000000,0x84500000,0xa00118b1,0x6800100,0x80962540,0xa00118b1,0x7c00100,0x80230400,0xa00118b1,0x7c00100,0x80230560,0xa00118b1,0xc000010,0x84448000, -0xa00a4005,0x7c00100,0x8e30400,0xa00a4711,0x7c40300,0xfce30000,0xa00ac400,0x4000000,0x4e00000,0xa00acb14,0x7c00100,0x8e30000,0xa00acf00,0x4000000,0x4e00000,0xa00b0500, -0x4000000,0x4e00000,0xa00b0500,0x4000000,0x6800000,0xa00b0b96,0x7c00900,0x81230400,0xa00b1211,0x7c40300,0xfce30000,0xa00b1314,0x7c00100,0x8e30000,0xa00b1596,0x7c00300, -0x80e30000,0xa040afb9,0x6800400,0x8962540,0xa08083ba,0x2802400,0x10962460,0xb0000a03,0x7c00100,0x10220400,0xb0000b13,0x7c00100,0xfe633800,0xb0001004,0x2802000,0xfc962460, -0xb0001110,0x4000000,0x4200000,0xb0001524,0x2802100,0xfc962460,0xb0001615,0x4000000,0x4500000,0xb000251b,0x7c00100,0x80230400,0xb0007300,0x24000000,0x4200000,0xb0008939, -0x4000000,0x84200000,0xb0008939,0x7c00100,0x80230400,0xb0008e00,0x24000000,0x4200000,0xb0008e00,0x24000000,0x4400000,0xb0008e00,0x24000010,0x4400000,0xb0009257,0x2802000, -0x40962460,0xb0009257,0x4000000,0x45600000,0xb0009519,0x7c00100,0x10220400,0xb0009519,0x7c00100,0x20220400,0xb0009519,0x7c00100,0x20250400,0xb0009a00,0x4000000,0x4200000, -0xb000b30a,0x2802100,0x8962460,0xb000b30a,0x7c00100,0x8230400,0xb000c178,0x80000000,0x85329960,0xb000c300,0x4000000,0x4200000,0xb000d202,0x2802000,0x20962460,0xb000d476, -0x6800100,0x40962540,0xb000d476,0x7c00100,0x40230400,0xb000e300,0x4000000,0x4e00000,0xb000fda1,0x7c00100,0x81830000,0xb0010eaa,0x2802000,0x40962460,0xb00116b0,0x7c00100, -0x80230400,0xb0011900,0x4000000,0x4e00000,0xb0011ab2,0x2802100,0x80962460,0xb0011ab2,0x2802400,0x80962460,0xb0011ab2,0x2806400,0x80962460,0xb0011ab2,0x4000000,0x84200000, -0xb0011ab2,0x6800100,0x80962540,0xb0011ab2,0x7c00100,0x80230400,0xb0011b0c,0x7c00100,0xfc230400,0xb0011cb3,0x2802100,0x40962460,0xb0011cb3,0x2806400,0x40962460,0xb0011cb3, -0x6800000,0x41329800,0xb0011cb3,0x6800100,0x40962540,0xb0011cb3,0x7c00100,0x40230400,0xb0011db6,0x2802500,0x40962460,0xb0011db6,0x6800000,0x41329800,0xb0011db6,0x7c00100, -0x40230400,0xb0011db6,0x7c00500,0x40230400,0xb0011e00,0x4000000,0x4200000,0xb0011e00,0x4000000,0x5500000,0xb0011fb4,0x2802100,0x80962460,0xb0011fb4,0x6800100,0x80962540, -0xb0011fb4,0x7c00100,0x80430400,0xb0011fb4,0x7c00100,0x82d30400,0xb0011fb4,0xc000010,0x84448000,0xb0012000,0x4000000,0x4200000,0xb00121b5,0x4000000,0x84200000,0xb00121b5, -0x4000010,0x84400000,0xb00121b5,0x7c00100,0x80220400,0xb00121b5,0x7c00100,0x80250400,0xb00121b5,0xc000010,0x84448000,0xb00122b8,0x4000000,0x84200000,0xb00122b8,0x7c00100, -0x80230400,0xb00123b7,0x2802400,0x80962460,0xb00123b7,0x4000000,0x84200000,0xb00123b7,0x7c00100,0x80230400,0xb00123b7,0xc000010,0x84248000,0xb00a4005,0x7c00100,0xfce30400, -0xb00a4711,0x7c40300,0xfce30000,0xb00acf00,0x4000000,0x4e00000,0xb00b0500,0x4000000,0x4e00000,0xb00b0500,0x4000000,0x6800000,0xb00b109a,0x7c00300,0x80e30000,0xb080e487, -0x2802000,0xfc962460,0xc0001524,0x4000000,0x4500000,0xc0001a18,0x2806400,0xfd862460,0xc0001a18,0x7c00100,0xfd830000,0xc0007300,0x24000000,0x4200000,0xc0008e00,0x24000010, -0x4400000,0xc0009519,0x7c00100,0x10220400,0xc0009519,0x7c00100,0x10250400,0xc0009519,0x7c00100,0xfc220400,0xc0009519,0x7c00100,0xfc250400,0xc000c300,0x4000000,0xc820000f, -0xc000d85c,0x2802100,0x40962460,0xc000d85c,0x6800100,0x40962540,0xc000d85c,0x7c00100,0x40230400,0xc000dc99,0x7c00100,0x80230400,0xc000e719,0x7c00100,0xfc220400,0xc00107a7, -0x7c00100,0x40230400,0xc0010eaa,0x7c00100,0x40230400,0xc00116b0,0x7c00100,0x80230560,0xc0011900,0x4000000,0x4200000,0xc0012447,0,0x84818820,0xc0012447,0, -0x84c18820,0xc0012447,0,0x85418820,0xc00125b9,0x7c00100,0x80230400,0xc00126bb,0x2802100,0x80962460,0xc00126bb,0x2806400,0x80962460,0xc00126bb,0x4000000,0x84500000, -0xc00126bb,0x6800100,0x80962540,0xc00126bb,0x7c00100,0x80230400,0xc00127ba,0x2802400,0x40962460,0xc00127ba,0x4000000,0x44200000,0xc00127ba,0x6800000,0x41329800,0xc00127ba, -0x7c00100,0x40230400,0xc00127ba,0x7c00900,0x40230400,0xc0012800,0x4000000,0x4200000,0xc0012b23,0x4000000,0x4200000,0xc0012b23,0x4000000,0x4400000,0xc0012b23,0x4000000, -0x5500000,0xc0012cbc,0x2802400,0x40962460,0xc0012cbc,0x4000000,0x45600000,0xc0012cbc,0x6800000,0x41329800,0xc0012cbc,0x7c00100,0x40230400,0xc00acf00,0x4000000,0x4e00000, -0xc00ae300,0x4000000,0x4e00000,0xc00b0500,0x4000000,0x4e00000,0xc00b0500,0x4000000,0x6800000,0xc00b0b11,0x4000000,0x5200000,0xc00b0b11,0x7c00900,0x9230400,0xc00b109a, -0x7c00300,0x80e30000,0xc00b2914,0x7c00100,0xfe530000,0xc00b2916,0x7c00100,0xfe530c00,0xc00b2a00,0x4000000,0x4e00000,0xc040af5e,0x7c00100,0x80230400,0xc0c12b89,0x4000000, -0x4200000,0xc14a44cc,0x4000000,0xc8e0000d,0xd000131f,0x2802c00,0xfc962460,0xd000171a,0x7c00100,0x18230400,0xd0001821,0x2802100,0x10962460,0xd0007300,0x24000000,0x4200000, -0xd0008e00,0x24000000,0x4200000,0xd0008f3a,0x2806000,0x40962460,0xd0009519,0x7c00100,0x8220400,0xd0009519,0x7c00100,0x8250400,0xd0009519,0x7c00100,0xfc220400,0xd0009519, -0x7c00100,0xfc250400,0xd000a500,0x4000000,0x4200000,0xd000c300,0x4000000,0x4e00000,0xd000d202,0x7c00100,0xfc230400,0xd000d476,0x7c00100,0x40230400,0xd000d997,0x2802100, -0x80962460,0xd000d997,0x6800100,0x80962540,0xd000e001,0x2802100,0x10962460,0xd000e700,0x4000400,0x4200000,0xd000e719,0x7c00100,0x10220400,0xd000e719,0x7c00500,0xc822040f, -0xd000fa00,0x4000000,0x4e00000,0xd0010eaa,0x4000010,0x44400000,0xd0010eaa,0x7c00100,0x40230400,0xd0012dbd,0x4000000,0x84200000,0xd0012dbd,0x7c00100,0x80230400,0xd0012fbe, -0x2802100,0x80962460,0xd0012fbe,0x2802400,0x80962460,0xd0012fbe,0x2806400,0x82f62460,0xd0012fbe,0x4000000,0x84400000,0xd0012fbe,0x6800000,0x80e29800,0xd0012fbe,0x6800100, -0x80962540,0xd0012fbe,0x6800100,0x80962541,0xd0012fbe,0x6804400,0x80962540,0xd0012fbe,0x7c00100,0x82b30400,0xd0012fbe,0x7c00100,0x82c30560,0xd0012fbe,0xc000010,0x84448000, -0xd0013183,0x7c00100,0x40230400,0xd0013200,0x4000000,0x4200000,0xd0013200,0x6800000,0xc9329805,0xd00134c0,0x2802100,0x80962460,0xd00134c0,0x4000002,0x84400000,0xd00134c0, -0x7c00100,0x80230400,0xd00a4305,0x7c00100,0xfce30400,0xd00a4611,0x7c40300,0xfce30000,0xd00a4711,0x7c40300,0xfce30000,0xd00a5e11,0x7c40300,0xfce30000,0xd00acf00,0x4000000, -0x4e00000,0xd00b0500,0x4000000,0x4e00000,0xd00b0500,0x4000000,0x6800000,0xd00b0b11,0x6800500,0xfc962540,0xd00b0bbf,0x2802200,0x80c62460,0xd00b119a,0x7c00300,0x80e30000, -0xd00b2a00,0x4000000,0x4e00000,0xd00b2e11,0x7c40300,0xfce30000,0xd00b30bf,0x7c00300,0x80230000,0xd00b339a,0x7c00300,0x80e30000,0xe0000c02,0xc000010,0x4b48000,0xe0001524, -0x2802400,0xfc962460,0xe0001524,0x7c00100,0xfc230400,0xe0001615,0x7c00100,0xfc230400,0xe000251b,0x12882000,0xc4962460,0xe0002a00,0x4000000,0x5500000,0xe0005102,0x4000000, -0x14200000,0xe0005c00,0x4000000,0x14200000,0xe000622a,0x6804400,0x80962540,0xe000622a,0x7c00100,0x80230400,0xe0008838,0x7c00100,0x80220400,0xe0008838,0x7c00100,0x80250400, -0xe0008e00,0x24000000,0x4810000,0xe0008e00,0x24000000,0x5410000,0xe0008e00,0x24000002,0x4400000,0xe0008e00,0x2c000010,0x4b48000,0xe000933e,0x7c00100,0x42b30400,0xe000933e, -0xc000010,0x44448000,0xe0009519,0x7c00100,0xc822040f,0xe0009519,0x7c00100,0xfc220400,0xe0009519,0x7c00100,0xfc250400,0xe000c178,0x2802100,0x80962460,0xe000c941,0x2802100, -0x80962460,0xe000c941,0x2806400,0x80962460,0xe000c941,0x7c00100,0x82b30400,0xe000d202,0x2802400,0x20962460,0xe000d202,0x7c00100,0xfc230400,0xe000d202,0x7c00500,0xfc230400, -0xe000dc99,0x4000000,0x84200000,0xe000e001,0x2802100,0x20962460,0xe000e001,0x2802400,0x20962460,0xe000fda1,0x7c00100,0x81830000,0xe0013502,0x2802400,0x20962460,0xe0013502, -0x4000000,0x4200000,0xe0013502,0x7c00100,0xfc230400,0xe0013502,0x80000000,0x5329960,0xe00136c1,0x4000000,0x84200000,0xe00136c1,0x7c00100,0x80230400,0xe001370b,0x7c00100, -0xfc230400,0xe0013919,0x7c00500,0x20220400,0xe0013919,0x7c00500,0xc822040f,0xe0013919,0x7c00d00,0xc823040f,0xe0013a19,0x7c00100,0xfc220400,0xe0013a19,0x7c00100,0xfc230400, -0xe0013bc2,0x2802400,0x80962460,0xe0013bc2,0x7c00100,0x80230400,0xe0013bc2,0xc000010,0x84248000,0xe0013cc3,0x6800000,0x81329800,0xe0013cc3,0x7c00100,0x80230400,0xe0013dc4, -0x2802400,0x80962460,0xe0013dc4,0x7c00100,0x80230400,0xe0013e28,0x7c00100,0x40230400,0xe0013fc5,0x7c00100,0x80220400,0xe0013fc5,0x7c00100,0x80250400,0xe0014000,0x4000000, -0x14200000,0xe0014001,0x2802400,0x10962460,0xe00a4711,0x7c40300,0xfce30000,0xe00a5e11,0x7c40300,0xfce30000,0xe00ac511,0x7c40300,0xfce30000,0xe00acf00,0x4000000,0x4e00000, -0xe00ae300,0x4000000,0x4e00000,0xe00b0500,0x4000000,0x4e00000,0xe00b1314,0x7c00100,0xfce30000,0xe00b1316,0x7c00100,0xfce30c00,0xe00b2a00,0x4000000,0x4e00000,0xe00b2a00, -0x4000000,0x6800000,0xe00b3816,0x7c00500,0x20230c00,0xe0808328,0x2802400,0x50962460,0xf0001615,0x6800100,0xfc962540,0xf0001a18,0x2802000,0xfd862460,0xf000c247,0x7c00100, -0x81430400,0xf000d000,0x4000000,0x4e00000,0xf000e300,0x4000000,0x4e00000,0xf000e59d,0x2802100,0x80962460,0xf000e59d,0x7c00100,0x80230400,0xf0012447,0,0x84818820, -0xf0012447,0,0x84c18820,0xf0012447,0,0x85418820,0xf0012447,0x2802000,0x80962460,0xf0012447,0x2802400,0x80962460,0xf0012447,0x7c00100,0x80230400,0xf0013a19, -0x7c00100,0xfc220400,0xf0014102,0x2802400,0x20962460,0xf0014308,0x2802100,0xfc962460,0xf0014308,0x7c00500,0xc822040e,0xf0014308,0x7c00500,0xc822040f,0xf001440a,0x4000000, -0x4500000,0xf0014500,0x4000000,0x4200000,0xf00146c6,0x2802100,0x80962460,0xf00146c6,0x2806000,0x82f62460,0xf00146c6,0x4000000,0x84e00000,0xf00146c6,0x6800000,0x82d29800, -0xf00146c6,0x6800100,0x80962540,0xf00146c6,0x6804000,0x80962540,0xf00146c6,0x7c00100,0x82b30400,0xf00146c6,0x7c00100,0x82c30560,0xf00146c6,0xc000010,0x84448000,0xf00147c7, -0x2802000,0x80962460,0xf00147c7,0x6800000,0x81329800,0xf00147c7,0x7c00100,0x80230400,0xf00ac511,0x7c40300,0xfce30000,0xf00acf00,0x4000000,0x4e00000,0xf00b2914,0x7c00100, -0xfe530000,0xf00b2916,0x7c00100,0xfe530c00,0xf00b2a00,0x4000000,0x4e00000,0xf00b2a00,0x4000000,0x6800000,0xf00b4211,0x7c40300,0xfce30000,0xf10a3c00,0x4000000,0x4e00000, -0xf10a3c00,0x4008000,0x4e00000,0xf10a8200,0x4008000,0x4e00000,0xf10b4811,0x7c40300,0xfce30000}; +static const uint32_t propsVectors[6426]={ +0x67,0,0,0x67,0,0xe00000,0x67,0,0x1600000,0x67,0x80000,0x20,0x67,0x20000000,0,0x5067, +0,0xe00000,0x5000000,0,0x900020,0x5000000,0x80000,0xc4918820,0x5000000,0x80000,0xc5c18020,0x5000000,0x80000,0xc5e18820,0x5000000,0x180000, +0xc0918820,0x5000000,0x4000000,0x4100000,0x5000000,0x4000000,0x4200000,0x5000000,0x4000000,0x5500000,0x5000000,0x4000000,0x5600000,0x5000000,0x4000000,0xc200000, +0x5000000,0x4000000,0xc8100003,0x5000000,0x4000000,0xc8100006,0x5000000,0x4000000,0xc8200002,0x5000000,0x4000000,0xc8200006,0x5000000,0x4000000,0xc820000e,0x5000000, +0x4000000,0xc820000f,0x5000000,0x4000000,0xc9600002,0x5000000,0x4000001,0xc8445801,0x5000000,0x4000001,0xc8445802,0x5000000,0x4000001,0xc8c4000b,0x5000000,0x4000010, +0xc9071401,0x5000000,0x4000020,0x4200000,0x5000000,0x4000020,0xc820000e,0x5000000,0x4000020,0xc820000f,0x5000000,0x4000020,0xc881000e,0x5000000,0x4000020,0xc881000f, +0x5000000,0x4000020,0xc941000e,0x5000000,0x4000020,0xc941000f,0x5000000,0x4000022,0xc820000e,0x5000000,0x4000022,0xc820000f,0x5000000,0x4000400,0x4200400,0x5000000, +0x4000400,0xc8200001,0x5000000,0x4000400,0xc8200002,0x5000000,0x6800000,0x10201c00,0x5000000,0x6800010,0xc8201001,0x5000000,0x6800020,0x10201c00,0x5000000,0x7c00000, +0x10200000,0x5000000,0x7c00020,0x10200000,0x5000000,0x7c00100,0xc8220402,0x5000000,0x7c00120,0xc8220405,0x5000000,0x7c00120,0xc8230402,0x5000000,0x7c00120,0xc8250402, +0x5000000,0x7c00120,0xc8250405,0x5000000,0x7c00500,0x10220400,0x5000000,0x7c00500,0x10230400,0x5000000,0x7c00500,0x10530400,0x5000000,0x7c00500,0xfc230400,0x5000000, +0x7c00d00,0x10230400,0x5000000,0x24000000,0x4100000,0x5000000,0x24000000,0x4200000,0x5000000,0x24000000,0x4810000,0x5000000,0x24000000,0x4b00000,0x5000000,0x24000000, +0x4e00000,0x5000000,0x24000000,0x5410000,0x5000000,0x24000000,0x5500000,0x5000000,0x24000000,0x5710000,0x5000000,0x24000000,0x6800000,0x5000000,0x24000000,0xc8200002, +0x5000000,0x24000000,0xc9500002,0x5000000,0x24000002,0x4400000,0x5000000,0x24000006,0xc8c0000b,0x5000000,0x24000008,0x5410000,0x5000000,0x24000008,0x5710000,0x5000000, +0x24000020,0x4200000,0x5000000,0x24000020,0x4200001,0x5000000,0x24000020,0x4810000,0x5000000,0x24000020,0x4f00000,0x5000000,0x24000020,0x5001400,0x5000000,0x24000020, +0x5410000,0x5000000,0x24000020,0x5600000,0x5000000,0x24000020,0xc8200002,0x5000000,0x24000020,0xc9500002,0x5000000,0x24000022,0x5600000,0x5000000,0x2c000010,0x5248000, +0x5000000,0x2c000010,0xc9248002,0x5000000,0x40000001,0x4440020,0x5000000,0x40000001,0x463b020,0x5000000,0x40000001,0x4643020,0x5000000,0x40000001,0x4a5a040,0x5000000, +0x40000001,0x516a8a0,0x5000000,0x40000001,0x5d3b020,0x5000000,0x40080000,0xc4918820,0x5000000,0x80000000,0x5329960,0x5000001,0x2882000,0xc4962460,0x5000002,0x4000000, +0x4200000,0x5000002,0x4000000,0x5329400,0x5000002,0x4000000,0x5329800,0x5000002,0x4000000,0x5500000,0x5000002,0x6800000,0xfd329800,0x5000002,0x7000100,0xc8230408, +0x5000002,0x7c00100,0x8230400,0x5000002,0x7c00100,0xc8230402,0x5000002,0x7c00100,0xc8230404,0x5000002,0x7c00100,0xc8230407,0x5000002,0x7c00100,0xc8230408,0x5000002, +0x7c00100,0xc8230409,0x5000002,0x7c00100,0xfc230400,0x5000002,0x7c00100,0xfc230401,0x5000002,0x7c00500,0xfc230400,0x5000002,0x7d00100,0xc0230400,0x5000003,0x4000000, +0x4200400,0x5000003,0x4000000,0x4201000,0x5000003,0x4000000,0x4270000,0x5000003,0x7c00100,0xc8220402,0x5000003,0x7c00100,0xfc220400,0x5000003,0x7c00100,0xfc250400, +0x5000003,0x7c00500,0xfc230400,0x5000004,0x4000000,0x4200000,0x5000004,0x4000000,0x5500000,0x5000004,0x6800100,0xfc962540,0x5000004,0x6800100,0xfc962541,0x5000004, +0x7c00100,0xfc230400,0x5000007,0x7c00100,0x80220400,0x5000007,0x7c00100,0x80250400,0x5000008,0x4000000,0xc200000,0x5000008,0x7c00100,0x8220400,0x5000008,0x7c00100, +0x8220401,0x5000008,0x7c00100,0x8250400,0x5000008,0x7c00100,0x8250401,0x5000008,0x7c00100,0xfc220400,0x5000008,0x7c00100,0xfc220401,0x5000008,0x7c00100,0xfc250400, +0x5000008,0x7c00100,0xfc250401,0x500000a,0x4000000,0x4200000,0x500000a,0x6800100,0xfc962540,0x500000a,0x7c00100,0xfc230400,0x500000c,0x7c00100,0x8230400,0x500000c, +0x7c00100,0x8250400,0x500000c,0x7c00100,0xfc230400,0x500000e,0x4000400,0xc8200001,0x500000e,0x4000400,0xc8200002,0x500000e,0x4000400,0xc8500001,0x500000e,0x7000500, +0xc8220402,0x500000e,0x7c00100,0x8250400,0x500000e,0x7c00100,0x18220400,0x500000e,0x7c00100,0xc8220401,0x500000e,0x7c00100,0xc8220402,0x500000e,0x7c00100,0xc8250401, +0x500000e,0x7c00100,0xfc220400,0x500000e,0x7c00100,0xfc220401,0x500000e,0x7c00100,0xfc250401,0x500000e,0x7c00120,0xc8220402,0x500000e,0x7c00120,0xc8250402,0x500000f, +0x6800100,0xfc962540,0x500000f,0x7c00100,0xfc230400,0x5000010,0x6800100,0xfc962540,0x5000010,0x7c00100,0xc8230401,0x5000010,0x7c00100,0xfc230400,0x5000012,0x7c00100, +0xa230500,0x5000012,0x7c00100,0xa330520,0x5000012,0x7c80100,0xc6330520,0x5000013,0x4000000,0x4200000,0x5000013,0x4000000,0xf8201000,0x5000013,0x4000000,0xf8230400, +0x5000013,0x4000002,0x4400000,0x5000013,0x4000010,0x4200000,0x5000013,0x4000020,0xc8200005,0x5000013,0x7c00100,0xca633801,0x5000013,0x7c00100,0xca633802,0x5000013, +0x7c00100,0xca633805,0x5000013,0x7c00100,0xfe633800,0x5000015,0x6800100,0xfc962540,0x5000015,0x7c00100,0x8230400,0x5000015,0x7c00100,0xfc230400,0x5000018,0x6800000, +0xfd329800,0x5000018,0x7800100,0xc9830142,0x5000018,0x7c00100,0xc9830002,0x5000018,0x7c00100,0xfd830000,0x5000018,0x7c00900,0xfd830000,0x5000018,0x7e00100,0xfd830000, +0x5000019,0x7c00100,0x8220400,0x5000019,0x7c00100,0x8250400,0x5000019,0x7c00100,0x10220400,0x5000019,0x7c00100,0x10230400,0x5000019,0x7c00100,0x18220400,0x5000019, +0x7c00100,0x18230400,0x5000019,0x7c00100,0x20220400,0x5000019,0x7c00100,0x20250400,0x5000019,0x7c00100,0x30220400,0x5000019,0x7c00100,0xc8220402,0x5000019,0x7c00100, +0xc8250401,0x5000019,0x7c00100,0xc8250402,0x5000019,0x7c00100,0xfc220400,0x5000019,0x7c00100,0xfc220401,0x5000019,0x7c00100,0xfc250400,0x5000019,0x7c00100,0xfc250401, +0x5000019,0x7c00500,0xc822040f,0x500001a,0x6800000,0xfd329800,0x500001a,0x6800100,0xfc962540,0x500001a,0x6800100,0xfc962541,0x500001a,0x7c00100,0xfc230400,0x500001f, +0x4000000,0x4200000,0x500001f,0x6800000,0xfd329800,0x500001f,0x6800100,0xfc962540,0x500001f,0x6800100,0xfc962541,0x500001f,0x7c00100,0xfc230400,0x5000023,0x6800100, +0xfc962540,0x5000023,0x6800100,0xfc962541,0x5000023,0x7c00100,0xfc230400,0x5000023,0x7c00100,0xfc230401,0x5000024,0x6800000,0xfd329800,0x5000024,0x6800100,0xfc962540, +0x5000024,0x7c00100,0xfc230400,0x5000026,0x4000000,0x4200000,0x5000026,0x4000010,0x4400000,0x5000026,0x6800000,0xfd329800,0x5000026,0x7800100,0xc9830142,0x5000026, +0x7c00100,0xfd830000,0x5000026,0x7c00900,0xfd830000,0x5000026,0x7e00100,0xfd830000,0x5000067,0x1000,0,0x5000410,0x7c00500,0xfc230400,0x500041b,0x4000400, +0x4200400,0x500048e,0x7c00500,0xc8230401,0x50004a1,0x4000010,0x4b00000,0x50004a1,0x4000010,0x5071400,0x50004ad,0xc000010,0x4b48000,0x50004b5,0x7c00900,0x8230400, +0x50004e2,0xc000010,0x4448000,0x50004f7,0xc000010,0x4448000,0x500052f,0x4000000,0x4200000,0x500059b,0x4000000,0x4e00000,0x50005f8,0x24000000,0x14810000,0x50005f8, +0x24000000,0x15410000,0x5000c90,0x4000400,0xf8200000,0x5000c9f,0xc000010,0x5049400,0x5000cc3,0x6800000,0xfd329800,0x5000cc7,0xc000010,0x4b48000,0x5000d12,0x6800000, +0xfd329800,0x5000d17,0x6800000,0xfd329800,0x5000d1b,0x6800000,0xfd329800,0x5000d1f,0x6800000,0xfd329800,0x5000d23,0x4000000,0x4200000,0x5000d23,0x6800000,0xfd329800, +0x5000d28,0x6800000,0xfd329800,0x5000dfc,0x7c00100,0xc8230408,0x5001000,0x80004,0xc4418820,0x5001000,0x4000000,0x4100000,0x5001000,0x4000000,0xc8100002,0x5001000, +0x4000000,0xc8100003,0x5001000,0x4000000,0xc8100006,0x5001000,0x4000000,0xc810000e,0x5001000,0x4000000,0xc810000f,0x5001000,0x4000000,0xc9500002,0x5001000,0x4000000, +0xc9600002,0x5001000,0x4000100,0xc8120403,0x5001000,0x4000100,0xc8150403,0x5001000,0x4000400,0x4200400,0x5001000,0x4000400,0xc8100002,0x5001000,0x4000400,0xc8500002, +0x5001000,0x7c00120,0xc8120405,0x5001000,0x7c00d00,0x10130400,0x5001000,0x24000000,0x4100000,0x5001000,0x24000000,0x4200000,0x5001000,0x24000000,0x4e00000,0x5001000, +0x24000000,0x5400000,0x5001000,0x24000000,0x5500000,0x5001000,0x24000000,0x5600000,0x5001000,0x24000000,0xc8200002,0x5001000,0x24000000,0xc8f00002,0x5001000,0x24000000, +0xf8401000,0x5001000,0x24000002,0x4100000,0x5001000,0x24000002,0x4370000,0x5001000,0x24000002,0x4470000,0x5001000,0x24000006,0xf8400000,0x5001000,0x24000008,0x5710000, +0x5001000,0x24000008,0x5712c00,0x5001000,0x24000008,0xf9712c00,0x5001000,0x24000020,0x4100000,0x5001000,0x24000020,0x4100001,0x5001000,0x24000020,0x5500000,0x5001000, +0x24000020,0x5600000,0x5001000,0x24000020,0xc8100002,0x5001000,0x24000020,0xc9500002,0x5001000,0x2c000010,0xc8f0ac02,0x5001008,0x7c00100,0xfc220400,0x5001008,0x7c00100, +0xfc220401,0x5001008,0x7c00100,0xfc250400,0x5001008,0x7c00100,0xfc250401,0x500100e,0x7c00100,0xc8250401,0x500100e,0x7c00100,0xfc220400,0x500100e,0x7c00100,0xfc250400, +0x5001019,0x7c00100,0x10220400,0x5001019,0x7c00100,0xc8120402,0x5001019,0x7c00100,0xc812040f,0x5001019,0x7c00100,0xc8150401,0x5001019,0x7c00100,0xc8150402,0x5001019, +0x7c00100,0xc8220402,0x5001019,0x7c00100,0xc8250402,0x5001019,0x7c00100,0xfc220400,0x5001019,0x7c00100,0xfc220401,0x5001019,0x7c00100,0xfc250400,0x5001019,0x7d00100, +0xc0220402,0x5001067,0,0,0x5001400,0x6800c00,0xf8101000,0x5001417,0x4000400,0xc8100002,0x5001417,0x7c00500,0x10130400,0x5001419,0x7c00500,0x10130400, +0x5002000,0x4000000,0x5600000,0x5002000,0x4000000,0xc820000a,0x5002000,0x4000020,0xc820000a,0x5002012,0x7c00100,0xc8e3040a,0x5002012,0x7c80100,0xc4e3040a,0x5002016, +0x7c00100,0xc8e30c0a,0x5002016,0x7c00100,0xca530c0a,0x5002581,0x4000008,0xc881000a,0x5002581,0x4000008,0xc941000a,0x5002581,0x4000010,0xc887000a,0x5002581,0x6800004, +0xc920000a,0x5002581,0xc000010,0xc884800a,0x5002599,0x7c00d00,0xca530c0a,0x5003000,0x4000000,0xc8810011,0x5003000,0x4000000,0xc8e00011,0x5003000,0x4000000,0xc9410011, +0x5003000,0x4000000,0xc9500011,0x5003000,0x4000000,0xc9600011,0x5003000,0x4000001,0xc8445811,0x5003000,0x4000006,0xc8e70011,0x5003000,0x4000008,0xc8e00011,0x5003000, +0x4000008,0xc8e02c11,0x5003000,0x4000010,0xc8871411,0x5003000,0x4000010,0xc9271011,0x5003000,0x4000010,0xc9271411,0x5003000,0x4000020,0xc8e00011,0x5003000,0x4000400, +0xc8e00011,0x5003000,0x4000420,0xc8e00011,0x5003000,0x6800000,0xc8e01c11,0x5003000,0x6800040,0xc8e29811,0x5003000,0xc000010,0xc880ac11,0x5003000,0xc000010,0xc8b48011, +0x5003019,0x7c00100,0xc8e20411,0x5003019,0x7c00100,0xc8e50411,0x5003019,0x7c00140,0xc8e20411,0x5003019,0x7c00140,0xc8e50411,0x5004000,0x4000400,0xc8200002,0x5004000, +0x6800000,0xfc201c00,0x5004000,0x68000c0,0xfd329800,0x5004000,0x24000000,0x4200000,0x5004000,0x24000000,0x4810000,0x5004000,0x24000000,0x5410000,0x5004000,0x24000000, +0x5500000,0x5004000,0x24000000,0x5600000,0x5004000,0x24000000,0x5b00000,0x5004000,0x24000000,0x6410000,0x5004000,0x24000006,0xf8d70000,0x5004000,0x24000008,0x5714000, +0x5004000,0x24000008,0xf9713c00,0x5004000,0x24000010,0x5071400,0x5004000,0x24000010,0xf9071000,0x5004000,0x24000020,0x4200000,0x5004000,0x24000020,0x4400000,0x5004000, +0x24000020,0x5600000,0x5004000,0x24000400,0x4200000,0x5004000,0x24000420,0x4200000,0x5004000,0x2c000010,0x4b48000,0x5004000,0x2c000010,0xf900ac00,0x5004000,0x44000001, +0x5a45800,0x5004019,0x7c00100,0xfc220400,0x5004019,0x7c00100,0xfc250400,0x5004019,0x7c001c0,0xfc220400,0x5004019,0x7c001c0,0xfc250400,0x5005000,0x4000000,0x4e00000, +0x5005000,0x4000000,0x14e00000,0x5005000,0x4000000,0xc881000c,0x5005000,0x4000000,0xc8810010,0x5005000,0x4000000,0xc8e00002,0x5005000,0x4000000,0xc8e0000c,0x5005000, +0x4000000,0xc8e0000d,0x5005000,0x4000000,0xc8e00010,0x5005000,0x4000000,0xc941000c,0x5005000,0x4000000,0xc9410010,0x5005000,0x4000000,0xc950000c,0x5005000,0x4000000, +0xc960000c,0x5005000,0x4000002,0xc8e7000c,0x5005000,0x4000002,0xc8e70010,0x5005000,0x4000008,0xc8810010,0x5005000,0x4000008,0xc9410010,0x5005000,0x4000010,0xc887140c, +0x5005000,0x4000010,0xc8e7000c,0x5005000,0x4000010,0xc927100c,0x5005000,0x4000010,0xc927140c,0x5005000,0x4000020,0xc8e0000c,0x5005000,0x4000026,0xc8e7000c,0x5005000, +0x6800000,0xc8e01c02,0x5005000,0x6800000,0xc8e01c10,0x5005000,0xc000010,0xc880ac0c,0x5005000,0xc000010,0xc8b4800c,0x5005000,0x24000000,0x4200000,0x5005000,0x24000000, +0x4e00000,0x5005000,0x24100000,0xc0810001,0x5005000,0x24100000,0xc1410001,0x5005005,0x7c00100,0xfce30400,0x5005011,0x7c00300,0x10e30000,0x5005011,0x7c00300,0xc8e30001, +0x5005011,0x7c00300,0xfce30000,0x5005011,0x7c00900,0xfd230400,0x5005011,0x7c40300,0xfce30000,0x5005012,0x4000000,0xc8e00002,0x5005012,0x4000000,0xc8e00003,0x5005012, +0x7c00100,0xa130480,0x5005012,0x7c00100,0xc8e30402,0x5005012,0x7c80100,0xc4e30402,0x5005012,0x7c80100,0xc6130480,0x5005014,0x7c00100,0xfce30000,0x5005014,0x7c00100, +0xfce30001,0x5005014,0x7c00100,0xfe530000,0x5005014,0x7c00900,0xfd230000,0x5005014,0x7c00900,0xfd230001,0x5005016,0x4000000,0xc8e00c03,0x5005016,0x4000000,0xc8e00c0d, +0x5005016,0x7c00100,0xfce30c00,0x5005016,0x7c00100,0xfce30c01,0x5005016,0x7c00100,0xfe530c00,0x5005016,0x7c00900,0xfd230c00,0x5005016,0x7c00900,0xfd230c01,0x5005581, +0x6800004,0xf9200000,0x5005581,0x24000000,0x4810000,0x5005581,0x24000000,0x5410000,0x5005581,0x24000008,0x4810000,0x5005581,0x24000008,0x5410000,0x5005587,0x24000010, +0x4870000,0x500558e,0x2c000010,0x4848000,0x5005596,0x4000000,0x4e00000,0x5005596,0x24000000,0x4e00000,0x5005596,0x24000002,0x4e00000,0x5005596,0x24000002,0x5200000, +0x5005596,0x24000008,0x4810000,0x5005596,0x24000008,0x5410000,0x5005596,0x24000008,0xc810000,0x5005599,0x7000400,0xc9200c02,0x5005599,0x7c00900,0x10930c00,0x5005599, +0x7c00900,0x10e30c00,0x5005599,0x7c00d00,0xfe530c00,0x500559b,0x4000000,0x4e00000,0x500559b,0x4000000,0xc8e00002,0x500559b,0x4000000,0xc8e00003,0x500559b,0x4000000, +0xc8e0000d,0x500559b,0x4000000,0xc8e0000f,0x500559b,0x7c00300,0xfce30000,0x500559c,0x24000000,0x4810000,0x500559c,0x24000000,0x5410000,0x50055a4,0x24000000,0x4810000, +0x50055a4,0x24000000,0x5410000,0x5008004,0x7c00100,0xc8230401,0x5008004,0x7c00100,0xfc230400,0x500800a,0x7c00100,0xc8230401,0x500800a,0x7c00100,0xfc230400,0x500800a, +0x7c00100,0xfc230401,0x500800f,0x7c00100,0xfc230400,0x500801a,0x7c00100,0xfc230400,0x500801f,0x7c00100,0xc8230401,0x500801f,0x7c00100,0xfc230400,0x5008024,0x7c00100, +0xfc230400,0x5010001,0x2000,0x14962460,0x5010001,0x2802020,0x10962460,0x5010001,0x2802400,0x10962460,0x5010001,0x2802400,0x10c62460,0x5010001,0x2880000,0xc6a65620, +0x5010002,0x2802100,0x20962460,0x5010002,0x2802400,0x20962460,0x5010004,0x2802100,0xfc962460,0x5010004,0x2802400,0xfc962460,0x501000a,0x2802100,0xfc962460,0x501000a, +0x2802400,0xfc962460,0x501000f,0x2802100,0xfc962460,0x501000f,0x2802400,0xfc962460,0x5010010,0x2802100,0xfc962460,0x5010010,0x2802400,0xfc962460,0x5010010,0x2802900, +0xfc962460,0x5010010,0x2806400,0xfc962460,0x5010013,0x2802500,0x20962460,0x5010013,0x2802500,0x30962460,0x5010013,0x2802500,0xfc962460,0x5010015,0x2802100,0xfc962460, +0x5010015,0x2802100,0xfc962461,0x5010015,0x2806400,0xfc962460,0x5010018,0x2802100,0xfd862460,0x5010018,0x2802400,0xfd862460,0x501001a,0x2802100,0xfc962460,0x501001f, +0x2802100,0xfc962460,0x501001f,0x2802400,0xfc962460,0x5010023,0x2802100,0xfc962460,0x5010023,0x2806400,0xfc962460,0x5010024,0x2802100,0xfc962460,0x5010024,0x2802100, +0xfc962461,0x5010026,0x2802100,0xfd862460,0x5010026,0x2802400,0xfd862460,0x5010026,0x2806500,0xfd862460,0x501089a,0x2802400,0x18962460,0x50108be,0x2802100,0xfc962460, +0x50108be,0x2802500,0xfc962460,0x50108c9,0x2802400,0x8962460,0x50108d6,0x2802400,0x8962460,0x5010c94,0x2802400,0x8962460,0x5010c98,0x2802400,0x18962460,0x5011001, +0x2802400,0x10962460,0x5011001,0x2802400,0x10c62460,0x5011001,0x2802400,0x20962460,0x5011001,0x2802400,0xc8962461,0x5011001,0x2802400,0xfc962460,0x501181d,0x2802400, +0xfc962460,0x5011825,0x2802400,0xfc962460,0x501182d,0x2802400,0xfc962460,0x501182f,0x2802400,0xfc962460,0x5011831,0x2802400,0xfc962460,0x5011836,0x2802400,0xfc962460, +0x5011841,0x2802400,0x20962460,0x5011847,0x2802400,0xfc962460,0x501184b,0x2802400,0xfc962460,0x5011854,0x2802400,0xfc962460,0x501185e,0x2802400,0xfc962460,0x5011861, +0x2802400,0xfc962460,0x5011865,0x2802400,0xfc962460,0x5011868,0x2802400,0x20962460,0x5011868,0x2802400,0xfc962460,0x501186a,0x2802400,0x10962460,0x501186c,0x2802400, +0xfc962460,0x501186f,0x2802400,0xfc962460,0x5011873,0x2802400,0x10962460,0x5011873,0x2802400,0xfc962460,0x5011875,0x2802400,0xfc962460,0x501187a,0x2802400,0xfc962460, +0x501187e,0x2802400,0xfc962460,0x5011881,0x2802400,0xfc962460,0x5011884,0x2802400,0xfc962460,0x501188a,0x2802400,0xfc962460,0x501188a,0x2802500,0xfc962460,0x5012599, +0x3802500,0xc926246a,0x5015012,0x2802400,0x18962460,0x5015999,0x2802400,0xfc962460,0x50159ad,0x2802400,0x10962460,0x5018004,0x2806400,0xfc962460,0x501800a,0x2806400, +0xfc962460,0x501800f,0x2806400,0xfc962460,0x501801a,0x2806400,0xfc962460,0x501801f,0x2806400,0xfc962460,0x5018024,0x2806400,0xfc962460,0x8000000,0x4000000,0x5600000, +0x8000019,0x7c00100,0xc8220401,0x8000027,0x4000000,0x4200000,0x8000027,0x4000000,0x4400000,0x8000027,0x4000000,0x4500000,0x8000027,0x4000000,0x4810000,0x8000027, +0x4000000,0x4b00000,0x8000027,0x4000000,0x5410000,0x8000027,0x4000000,0xc8c0000b,0x8000027,0x4000000,0xf8400000,0x8000027,0x4000010,0x4b00000,0x8000027,0x4000010, +0x4c00000,0x8000027,0x6800000,0xfd329800,0x8000027,0x6800100,0xfc462540,0x8000027,0x6800400,0xfc962540,0x8000027,0x7c00100,0xc8230401,0x8000027,0x7c00100,0xfc230400, +0x8000067,0,0x1900000,0x8000067,0x1000,0,0x8001067,0,0,0x8005012,0x7c00100,0xfdf304c1,0x8005012,0x7c00100,0xfe0304e1,0x8010013, +0x2802400,0x20962460,0x8010013,0x2802500,0x20962460,0x8010027,0x2802100,0xc8962461,0x8010027,0x2802100,0xfc962460,0x8010027,0x2802400,0x10962460,0x8010027,0x2802400, +0x20962460,0x8010027,0x2802400,0xfc962460,0x8010027,0x2802500,0xfc962460,0x8010027,0x2806400,0xfc962460,0x8010027,0x2902100,0xc0962462,0x9000000,0x4000000,0x4700000, +0x9001000,0x4000000,0x5600000,0xc000000,0,0x4918820,0xc000000,0x4000000,0x4200000,0xc000000,0x4000000,0x5600000,0xc000000,0x4000400,0x4200400,0xc000000, +0x7c00100,0xc8220405,0xc000000,0x7c00500,0x10230400,0xc000000,0x7c00500,0xfc230400,0xc000000,0x24000000,0x4200000,0xc000000,0x2c000010,0xc9248002,0xc000002,0x4000000, +0xf8200000,0xc000002,0x7c00100,0xfc230400,0xc000003,0x4000006,0xf8400400,0xc000005,0x4000400,0x4200400,0xc000006,0x7c00100,0x40250400,0xc000008,0x7c00100,0xfc220400, +0xc000008,0x7c00100,0xfc220401,0xc000008,0x7c00100,0xfc250400,0xc000008,0x7c00100,0xfc250401,0xc00000b,0x4000000,0x4200000,0xc00000b,0x4000010,0x4200000,0xc00000b, +0x4000010,0x4400000,0xc00000b,0x6800000,0x8200000,0xc00000b,0x7c00100,0xfc230400,0xc00000b,0xc000010,0x4248000,0xc00000e,0x7c00100,0x8220400,0xc00000e,0x7c00100, +0x10220400,0xc000013,0x7c00100,0xca633801,0xc000017,0x4000000,0x4200000,0xc000017,0x4000000,0x5600000,0xc000017,0x4000000,0xc400000,0xc000017,0x4000010,0x4400000, +0xc000017,0x4000010,0x5200000,0xc000017,0x6800000,0xfd329800,0xc000017,0x6800100,0xfd862540,0xc000017,0x7c00100,0x9830000,0xc000017,0x7c00100,0xfd830000,0xc000017, +0x7d00100,0xc1830000,0xc000017,0xc000010,0x4448000,0xc000019,0x7c00100,0x8220400,0xc000019,0x7c00100,0x8250400,0xc000019,0x7c00100,0x10220400,0xc000019,0x7c00100, +0x18250400,0xc000019,0x7c00100,0x20220400,0xc000019,0x7c00100,0x20250400,0xc000019,0x7c00100,0xfc220401,0xc000019,0x7c00100,0xfc250401,0xc00001b,0x80000,0xc4c18820, +0xc00001b,0x4000000,0x84200000,0xc00001b,0x4000006,0x84500000,0xc00001b,0x4000010,0x84400000,0xc00001b,0x4000010,0x84b70000,0xc00001b,0x4000800,0x84200000,0xc00001b, +0x6800000,0x81329800,0xc00001b,0x7c00100,0x80230400,0xc00001b,0x7c00900,0x80230400,0xc00001b,0xc000010,0x84b48000,0xc00001c,0x4000000,0x4200000,0xc00001c,0x6800100, +0xfd862400,0xc00001c,0x6800100,0xfd862540,0xc00001c,0x7c00100,0xfd830000,0xc00001c,0x7c00100,0xfd830001,0xc00001c,0xc000010,0x4448000,0xc00001d,0x4000000,0x84810000, +0xc00001d,0x4000000,0x85410000,0xc00001d,0x4000001,0x84445800,0xc00001d,0x7c00100,0x80230400,0xc000020,0x7c00100,0x80230400,0xc000021,0x4000000,0x4200000,0xc000021, +0x6800100,0x30962540,0xc000021,0x6800100,0xfc962540,0xc000021,0x6800100,0xfc962541,0xc000021,0x7c00100,0x30230400,0xc000021,0x7c00100,0xfc230400,0xc000022,0x4000000, +0x44200000,0xc000022,0x4000010,0x44200000,0xc000022,0x7c00100,0x40230400,0xc000022,0xc000010,0x44248000,0xc000022,0x80000000,0x44218560,0xc000025,0x7c00100,0xfc230400, +0xc000027,0x4000000,0x4200000,0xc000027,0x4000000,0x4400000,0xc000027,0x7c00100,0xfc230400,0xc000028,0x4000000,0x44200000,0xc000028,0x7c00100,0x40230400,0xc000028, +0xc000010,0x44248000,0xc00002e,0x24000000,0x14200000,0xc000532,0x4000010,0x84400000,0xc000537,0x4000010,0x84400000,0xc000537,0x4000010,0x84b70000,0xc000537,0xc000010, +0x84b48000,0xc00055f,0x4000001,0xc8c41c0b,0xc000d2d,0x6800000,0xfd329800,0xc001000,0x4000400,0x4500400,0xc005005,0x7c00100,0xfce30400,0xc005011,0x4020000,0x4e00000, +0xc005011,0x4020000,0xc8e00002,0xc005011,0x7c00300,0xc8e30002,0xc005011,0x7c40300,0xfce30000,0xc005029,0x4000000,0x44e00000,0xc005029,0x7c00100,0x40e30400,0xc005029, +0x7c00900,0x41230400,0xc00557f,0x4008000,0x4e00000,0xc00557f,0x4010000,0x4e00000,0xc00559b,0x4000000,0x4e00000,0xc010001,0x2000,0x14962460,0xc010008,0x2000, +0xc962460,0xc010017,0x2802100,0xfd862460,0xc010017,0x2802400,0x9862460,0xc010017,0x2802400,0x11862460,0xc010017,0x2802400,0x19862460,0xc010017,0x2802400,0xfd862460, +0xc010017,0x2806400,0xfd862460,0xc010017,0x2882000,0xc5862460,0xc01001b,0x2802100,0xa0962460,0xc01001b,0x3c02100,0x80962460,0xc01001b,0x12882000,0xc4962460,0xc01001c, +0x2802100,0xfd862460,0xc01001c,0x2802400,0xfd862460,0xc01001c,0x2806400,0xfd862460,0xc010021,0x2802100,0x30962460,0xc010021,0x2802100,0xfc962460,0xc010021,0x2806400, +0xfc962460,0xc010022,0x2802100,0x40962460,0xc010022,0x2802400,0x50962460,0xc010022,0x2802500,0x40962460,0xc010025,0x2802500,0xfc962460,0xc010027,0x2802100,0xfc962460, +0xc010027,0x2802400,0xfc962460,0xc0108be,0x2802100,0xfc962460,0xc011001,0x2802400,0x10962460,0xc011001,0x2802400,0x10c62460,0xd000000,0x80000,0xc4918820,0xd000000, +0x180000,0xc0918820,0xd000000,0x4000000,0x14200000,0xd000000,0x4000000,0xc8200001,0xd000000,0x4000020,0xc8200005,0xd000000,0x6800020,0xc9329805,0xd000000,0x7c00120, +0xc8220405,0xd000000,0x7c00120,0xc8250405,0xd000009,0x7c00100,0x80220400,0xd000009,0x7c00100,0x80250400,0xd00000d,0x7c00100,0x80230400,0xd00000e,0x7c00120,0xc8220402, +0xd00000e,0x7c00120,0xc8250402,0xd00001e,0x4000000,0x84200000,0xd00001e,0x7c00100,0x80230400,0xd000067,0x1000,0,0xd005011,0x7c00300,0xc8e30001,0xd005011, +0x7c40300,0xfce30000,0xd010000,0x82000,0xc4962460,0xd010000,0x2802000,0x10962460,0xd010000,0x2802400,0x10962460,0xd010001,0x2802400,0x10962460,0xe000000,0x80000, +0xc5e18820,0xe000000,0x80020,0xc4218820,0xe000000,0x4000000,0x4200000,0xe000000,0x4000000,0x5600000,0xe000000,0x4000001,0xc8445802,0xe000000,0x4000020,0x4200000, +0xe000000,0x4000020,0xc8200005,0xe000000,0x7c00120,0xc8220405,0xe000000,0x7c00120,0xc8250405,0xe000000,0x24000000,0x4100000,0xe000000,0x24000000,0x4200000,0xe000000, +0x24000000,0x4810000,0xe000000,0x24000000,0x5410000,0xe000000,0x24000000,0xc9500002,0xe000000,0x24000020,0x4200000,0xe000000,0x24000020,0x4810000,0xe000000,0x24000020, +0x5410000,0xe000000,0x24000020,0xc8200001,0xe000000,0x24000020,0xc8200002,0xe000000,0x2c000010,0xc9248002,0xe000002,0x4000000,0xc9500008,0xe000002,0x7c00100,0x8230400, +0xe000002,0x7c00100,0x10230400,0xe000008,0x7c00100,0x8220400,0xe000008,0x7c00100,0x8250400,0xe000008,0x7c00100,0xfc220400,0xe000008,0x7c00100,0xfc250400,0xe00000c, +0x7c00100,0xfc230400,0xe00000e,0x4000020,0x4200000,0xe00000e,0x7c00100,0x8220400,0xe00000e,0x7c00100,0x8250400,0xe000019,0x7c00100,0x20250400,0xe000019,0x7c00100, +0xc822040f,0xe000025,0x7c00100,0xfc230400,0xe00002a,0x7c00100,0x80230400,0xe00002b,0x7c00100,0x80230400,0xe00002c,0x7c00100,0x80230400,0xe00002d,0x7c00100,0x80230400, +0xe000533,0xc000010,0x84448000,0xe000562,0x24000000,0x4200000,0xe001000,0x4000000,0x14100000,0xe003000,0x4000000,0xc8810011,0xe003000,0x4000000,0xc9410011,0xe004000, +0x24000020,0x4810000,0xe004000,0x24000020,0x5410000,0xe005000,0x4000000,0xc8e00003,0xe005000,0x24000020,0x4200000,0xe005011,0x7c00100,0x11230400,0xe005011,0x7c00300, +0xc8e30001,0xe005014,0x7c00100,0xc8e30010,0xe005014,0x7c00100,0xfe530000,0xe005016,0x7c00100,0xa530c00,0xe005016,0x7c00100,0xc8e30c10,0xe005029,0x4000000,0x44e00000, +0xe005596,0x24000000,0x14e00000,0xe005599,0x4000002,0xf9200c00,0xe0055af,0x4000000,0x4e00000,0xe0055af,0x7c00100,0x11230400,0xe010001,0x2000,0x14962460,0xe010001, +0x2802000,0x10962460,0xe010001,0x2802020,0x10962460,0xe01002a,0x2802100,0x80962460,0xe01002a,0x2806400,0x80962460,0xe01002b,0x2802100,0x80962460,0xe01002b,0x2806400, +0x80962460,0xe01002c,0x2802100,0x80962460,0xe01002d,0x2802100,0x80962460,0xe011001,0x2882000,0xc4c62460,0xe011001,0x12882000,0xc4962460,0xe011818,0x2802100,0x8962460, +0x10000000,0x4000000,0xc8200002,0x10000000,0x4000400,0x4200400,0x10000000,0x6800000,0x20201c00,0x10000000,0x7c00120,0xc8220405,0x10000000,0x24000000,0x4200000,0x10000000, +0x24000002,0x4200000,0x10000000,0x24000020,0x4200000,0x10000002,0x4000000,0x4200000,0x10000002,0x4000000,0x5071400,0x10000002,0x7c00100,0xfc230400,0x10000002,0x80000000, +0x5329960,0x10000004,0x7c00100,0xfc230400,0x10000008,0x7c00100,0x10220400,0x10000009,0x7c00100,0x80220400,0x10000009,0x7c00100,0x80250400,0x1000000a,0x7c00100,0xfc230400, +0x1000000e,0x7c00100,0x8220400,0x1000000e,0x7c00100,0x8250400,0x1000000e,0x7c00100,0x10220400,0x1000000e,0x7c00100,0xc8250402,0x1000000e,0x7c00500,0xc822040e,0x1000000e, +0x7c00500,0xc822040f,0x1000000f,0x4000000,0x5600000,0x1000000f,0x7c00100,0xfc230400,0x10000010,0x6800100,0xfc962540,0x10000015,0x7c00100,0xfc230400,0x10000017,0x4000000, +0x4200000,0x10000019,0x7c00100,0x10220400,0x10000019,0x7c00100,0x20220400,0x10000019,0x7c00500,0x10220400,0x10000019,0x7c00500,0xc822040e,0x10000019,0x7c00500,0xc822040f, +0x10000022,0x7c00100,0x40230400,0x10000023,0x4000000,0x4200000,0x10000023,0x4000000,0x5600000,0x1000002f,0x7c00100,0x80230400,0x10000030,0x4000000,0x44200000,0x10000030, +0x6800000,0x41329800,0x10000030,0x6800100,0x40962540,0x10000030,0x7c00100,0x40230400,0x10000030,0xc000010,0x44b48000,0x10000031,0x7c00100,0x80230400,0x10000032,0x6800000, +0x81329800,0x10000032,0x7c00100,0x80230400,0x10000033,0x7c00100,0x80230400,0x10000034,0x7c00100,0x41830000,0x10000035,0x4000010,0x84400000,0x10000035,0x7c00100,0x80230400, +0x100005fe,0x4000000,0x84200000,0x10000601,0x4000000,0x84400000,0x10000604,0x4000000,0x84200000,0x10000604,0x4000000,0x84400000,0x10000d23,0x4000000,0x4200000,0x10000dfc, +0x4000000,0x14200000,0x10001000,0x4000000,0x14200000,0x10005000,0x4000000,0x14200000,0x10005000,0x4000000,0xc8810010,0x10005000,0x4000000,0xc8e0000d,0x10005000,0x4000000, +0xc9410010,0x10005000,0x24000000,0x4200000,0x10005000,0x24000000,0x4e00000,0x10005012,0x4000000,0xc8e00002,0x10005012,0x4000000,0xc8e00003,0x1000801f,0x7c00100,0xfc230400, +0x10010002,0x2802100,0x20962460,0x10010002,0x2802400,0x20962460,0x10010002,0x2802500,0x20962460,0x1001000f,0x2802100,0xfc962460,0x10010010,0x2802100,0xfc962460,0x10010015, +0x2802400,0xfc962460,0x10010017,0x2802400,0x19862460,0x10010030,0x2802100,0x40962460,0x10010030,0x2802400,0x40962460,0x10011001,0x2802400,0x10962460,0x10011001,0x2802400, +0x10c62460,0x10011001,0x12882000,0xc4962460,0x1001188b,0x2802400,0x10c62460,0x11000000,0x4000000,0x4200000,0x11000000,0x4000000,0x5600000,0x11000000,0x4000400,0x14200400, +0x11000000,0x7c00120,0xc8220405,0x11000000,0x24000000,0x4200000,0x11000000,0x24000000,0x4e00000,0x11000000,0x24000000,0x5710000,0x11000000,0x24000000,0xc200000,0x11000000, +0x24000000,0xc400000,0x11000000,0x24000000,0x1d710000,0x11000000,0x24000020,0x4200000,0x11000000,0x24000020,0x4810000,0x11000000,0x24000020,0x5410000,0x11000002,0x4000000, +0x5500000,0x11000002,0x7c00100,0xfc230400,0x11000002,0xc000010,0x4b48000,0x11000004,0x7c00100,0xfc230400,0x11000007,0x4000000,0x84200000,0x11000007,0x4000000,0x84400000, +0x11000007,0x4000000,0x84b00000,0x11000007,0x7c00100,0x80220400,0x11000007,0x7c00100,0x80250400,0x11000007,0xc000010,0x84448000,0x11000007,0xc000010,0x84b48000,0x11000008, +0x7c00100,0xc822040f,0x11000008,0x7c00100,0xfc220400,0x11000008,0x7c00100,0xfc250400,0x1100000b,0x4000000,0x4200000,0x1100000b,0x7c00100,0xfc230400,0x1100000c,0x7c00100, +0x8220400,0x1100000c,0x7c00100,0xc822040f,0x1100000c,0x7c00100,0xfc230400,0x1100000e,0x4000000,0x4200000,0x1100000e,0x4000000,0xc200000,0x1100000e,0x7c00100,0x8230400, +0x1100000e,0x7c00100,0xc822040f,0x1100000e,0x7c00100,0xfc220400,0x1100000e,0x7c00100,0xfc250400,0x11000013,0x4000000,0xcb00000,0x11000019,0x7c00100,0x10220400,0x11000019, +0x7c00100,0x20220400,0x11000019,0x7c00100,0x20250400,0x11000019,0x7c00100,0xc822040e,0x11000019,0x7c00100,0xc822040f,0x11000023,0x7c00100,0xfc230400,0x11000027,0x4000000, +0x4500000,0x11000037,0x4000000,0x84200000,0x11000037,0x6800100,0x80962540,0x11000037,0x7c00100,0x80230400,0x11000038,0x7c00100,0x80220400,0x11000038,0x7c00100,0x80250400, +0x11000039,0x4000000,0x84200000,0x11000039,0x4000000,0x84400000,0x11000039,0x7c00100,0x80230400,0x11000039,0xc000010,0x84448000,0x1100003a,0x4000000,0x44200000,0x1100003a, +0x6800100,0x40962540,0x1100003a,0x7c00100,0x40230400,0x1100003b,0x4000000,0x45800000,0x1100003b,0x6800000,0x41329800,0x1100003b,0x7c00100,0x41830000,0x1100003b,0x7e00100, +0x41830000,0x1100003c,0x7c00100,0x40230400,0x1100003c,0x7c00100,0xc823040f,0x1100003d,0x4000010,0x84400000,0x1100003d,0x7c00100,0x80230400,0x11000564,0x24000000,0xc400000, +0x1100056a,0x24000000,0xc400000,0x11000571,0x24000006,0x4400000,0x110005b2,0x4000400,0xc200000,0x11000d23,0x6800000,0xfd329800,0x11005000,0x4000000,0xc8810010,0x11005000, +0x4000000,0xc8870010,0x11005000,0x4000000,0xc8f00010,0x11005000,0x4000000,0xc9270010,0x11005000,0x4000000,0xc9271010,0x11005000,0x4000000,0xc9410010,0x11005000,0xc000010, +0xc8848010,0x11005000,0xc000010,0xc8b48010,0x11005000,0x24000000,0x4200000,0x11005000,0x24000000,0x4e00000,0x11005011,0x7c00300,0xc8e30001,0x11005011,0x7c40300,0xfce30000, +0x11005012,0x4000000,0xc8e00003,0x1100559b,0x4000000,0x4e00000,0x1100800a,0x7c00100,0xfc230400,0x11010001,0x2802000,0x18962460,0x11010001,0x2802020,0x10962460,0x11010002, +0x2802100,0x20962460,0x1101000b,0x2802400,0xfc962460,0x1101000e,0x2802000,0x18962460,0x11010013,0x2802000,0x28962460,0x11010013,0x2802100,0x28962460,0x11010013,0x2802100, +0x30962460,0x11010037,0x2802100,0x80962460,0x11010039,0x2802100,0x80962460,0x11010039,0x2802400,0x80962460,0x11010039,0x2806400,0x80962460,0x1101003a,0x2802100,0x40962460, +0x1101003a,0x2806400,0x40962460,0x1101088a,0x2802000,0x18962460,0x11011001,0x2802000,0x10962460,0x11011001,0x2802000,0x10c62460,0x11011863,0x2802000,0x20962460,0x14000000, +0x4000000,0x4200000,0x14000000,0x4000400,0x4200400,0x14000000,0x7c00120,0xc8220405,0x14000000,0x7c00120,0xc8250405,0x14000000,0x7c00500,0xfc230400,0x14000000,0x24000000, +0x4200000,0x14000000,0x24000020,0x4200000,0x14000008,0x7c00100,0xfc220400,0x14000008,0x7c00100,0xfc250400,0x1400000e,0x7c00100,0xfc220400,0x14000015,0x7c00100,0xfc230400, +0x14000019,0x7c00100,0x8220400,0x14000019,0x7c00100,0x8250400,0x14000019,0x7c00100,0x10220400,0x14000019,0x7c00100,0x10250400,0x14000019,0x7c00100,0x20220400,0x14000019, +0x7c00100,0x20250400,0x1400003e,0x4000000,0x44400000,0x1400003e,0x4000000,0x44e00000,0x1400003e,0x4000010,0x44400000,0x1400003e,0x6800000,0x42d29800,0x1400003e,0x6800100, +0x40962540,0x1400003e,0x6800100,0x40962541,0x1400003e,0x7c00100,0x42b30400,0x1400003e,0x7c00100,0x42b30401,0x1400003e,0xc000010,0x44448000,0x14000057,0x4000000,0x44200000, +0x14000057,0x4000010,0x45071400,0x14000057,0x6800000,0x41329800,0x14000057,0x7c00100,0x40230400,0x14000057,0x7c00100,0x48230400,0x14000057,0x7c00500,0x40230400,0x14000057, +0x7c00900,0x48230400,0x14000057,0xc000010,0x44b48000,0x1400005a,0x4000000,0x84500000,0x1400005a,0x7c00100,0x80230400,0x1400005a,0xc000010,0x84b48000,0x1400005b,0x4000000, +0x84200000,0x1400005b,0x4000010,0x84400000,0x1400005b,0x7c00100,0x80230400,0x14000065,0x4000010,0x84400000,0x14000065,0x7c00100,0x80230400,0x1400559b,0x4000000,0x4200000, +0x1400800a,0x7c00100,0xfc230400,0x14010001,0x2802020,0x10962460,0x14010001,0x2802400,0x10962460,0x14010013,0x2802500,0x20962460,0x14010015,0x2802100,0xfc962460,0x1401003e, +0x2802100,0x40962460,0x1401003e,0x2802100,0x40962461,0x1401003e,0x2802400,0x40962460,0x1401003e,0x2802400,0x50962460,0x1401003e,0x2806400,0x42f62460,0x14010057,0x2802400, +0x40962460,0x15000000,0x80020,0xc4218820,0x15000000,0x4000000,0x4200000,0x15000000,0x4000000,0x4e00000,0x15000000,0x4000000,0xc200000,0x15000000,0x4000000,0x14200000, +0x15000000,0x4000400,0x4200400,0x15000000,0x7c00500,0xfc230400,0x15000000,0x24000000,0x4200000,0x15000000,0x24000000,0x4400000,0x15000000,0x24000000,0x4810000,0x15000000, +0x24000000,0x4e00000,0x15000000,0x24000000,0x5400000,0x15000000,0x24000000,0x5410000,0x15000000,0x24000000,0x5710000,0x15000000,0x24000000,0xc400000,0x15000000,0x24000002, +0x4200000,0x15000000,0x24000020,0x4200000,0x15000000,0x24000020,0x4810000,0x15000000,0x24000020,0x5410000,0x15000000,0x24000500,0xc230400,0x15000000,0x2c000010,0xcb48000, +0x15000002,0x4000000,0x5500000,0x15000002,0x4000020,0x4200000,0x15000002,0x7c00100,0xfc230400,0x15000008,0x4000000,0x4200000,0x15000008,0x4000000,0xc200000,0x15000008, +0x7c00100,0x8220400,0x15000008,0x7c00100,0x8230400,0x15000008,0x7c00100,0x8250400,0x15000008,0x7c00100,0xfc220400,0x15000008,0x7c00100,0xfc250400,0x15000008,0x7c00500, +0xfc230400,0x1500000a,0x7c00100,0xfc230400,0x1500000a,0x7c00500,0xfc230400,0x1500000e,0x7c00100,0x8220400,0x1500000e,0x7c00100,0x8250400,0x1500000e,0x7c00100,0x10250400, +0x15000019,0x7c00100,0x8220400,0x15000019,0x7c00100,0x8230400,0x15000019,0x7c00100,0x8250400,0x15000019,0x7c00100,0x10220400,0x15000019,0x7c00100,0x10250400,0x15000019, +0x7c00100,0x18220400,0x15000019,0x7c00100,0x18250400,0x15000019,0x7c00100,0x20220400,0x15000019,0x7c00100,0x20250400,0x15000019,0x7c00100,0xc822040e,0x15000019,0x7c00100, +0xc822040f,0x15000019,0x7c00100,0xfc250400,0x1500001a,0x4000000,0x4200000,0x1500001a,0x4000000,0x5500000,0x1500001a,0x7c00100,0xfc230400,0x1500001b,0x7c00100,0x80230400, +0x1500001c,0x4000000,0x5800000,0x1500001c,0x6800000,0xfd329800,0x1500001c,0x6800100,0xfd862400,0x1500001c,0x6800100,0xfd862540,0x1500001c,0x6800500,0xfd862400,0x1500001c, +0x7c00100,0xfd830000,0x15000023,0x7c00100,0xfc230400,0x15000024,0x4000000,0x4200000,0x15000024,0x7c00100,0xfc230400,0x15000027,0x4000000,0x4200000,0x15000027,0x4000000, +0x4400000,0x15000027,0x4000000,0x4500000,0x15000027,0x7c00100,0xfc230400,0x15000042,0x4000000,0x44e00000,0x15000042,0x6800000,0x42d29800,0x15000042,0x6800100,0x40962540, +0x15000042,0x7c00100,0x40430400,0x15000042,0x7c00100,0x42d30400,0x15000042,0xc000010,0x44448000,0x1500004f,0x6800000,0x41329800,0x1500004f,0x7c00100,0x40230400,0x1500004f, +0xc000010,0x44448000,0x15000052,0x4000010,0x44400000,0x15000052,0x6800000,0x41329800,0x15000052,0x6800100,0x40962540,0x15000052,0x7c00100,0x40230400,0x15000052,0xc000010, +0x44448000,0x15000063,0x4000010,0x44400000,0x15000063,0x6800000,0x41329800,0x15000063,0x7c00100,0x40230400,0x15000063,0x7c00100,0x48230400,0x15000063,0x7c00900,0x40230400, +0x15000063,0xc000010,0x44448000,0x15000063,0xc000010,0x44b48000,0x15000068,0x7c00100,0x80230400,0x1500006b,0x7c00100,0x80230400,0x1500006c,0x4000000,0x84200000,0x1500006c, +0x7c00100,0x80230400,0x1500006d,0x6800000,0x41329800,0x1500006d,0x7c00100,0x40230400,0x1500006d,0x7c00500,0x40230400,0x1500006d,0x7c00d00,0x40230400,0x1500006d,0xc000010, +0x44448000,0x1500006e,0x4000000,0x84200000,0x1500006e,0x6800100,0x80962540,0x1500006e,0x7c00100,0x80230400,0x1500006f,0x6800000,0x41329800,0x1500006f,0x6800100,0x40962540, +0x1500006f,0x7c00100,0x40230400,0x1500006f,0xc000010,0x44448000,0x15000071,0x6800000,0x41329800,0x15000071,0x6800100,0x40962540,0x15000071,0x7c00100,0x40230400,0x15000573, +0x24000000,0x84400000,0x150005f3,0x4000400,0x4400000,0x15004000,0x24000020,0x4810000,0x15004000,0x24000020,0x5410000,0x15005000,0x4000000,0x4e00000,0x15005000,0x24000000, +0x4200000,0x15005005,0x7c00100,0xfce30400,0x15005011,0x7c40300,0xfce30000,0x1500559b,0x4000000,0x4e00000,0x15008024,0x7c00100,0x8230400,0x15010001,0x2802000,0x8962460, +0x15010001,0x2802000,0x10962460,0x15010001,0x2802000,0x18962460,0x15010001,0x2802100,0x18962460,0x15010001,0x2802400,0x10962460,0x15010001,0x2802400,0x10c62460,0x15010001, +0x2802400,0x18962460,0x15010002,0x2802100,0x20962460,0x15010008,0x2000,0xc962460,0x15010008,0x2802100,0x8962460,0x15010008,0x2802400,0x20962460,0x15010010,0x2802100, +0x20962460,0x1501001a,0x2802100,0x20962460,0x1501001c,0x2802100,0xfd862460,0x1501001c,0x2802500,0xfd862460,0x1501001c,0x2806400,0xfd862460,0x1501001f,0x2802100,0x20962460, +0x15010024,0x2802100,0x20962460,0x15010042,0x2802100,0x40962460,0x1501004f,0x2802100,0x40962460,0x1501004f,0x2802400,0x40962460,0x15010052,0x2802100,0x40962460,0x15010052, +0x2802400,0x40962460,0x15010052,0x2802d00,0x40962460,0x1501006e,0x2802100,0x80962460,0x1501006e,0x2806400,0x80962460,0x1501006f,0x2806400,0x40962460,0x15010071,0x2802100, +0x40962460,0x15010071,0x2806400,0x40962460,0x1501096e,0x2802000,0x10962460,0x15010c98,0x2802400,0x18962460,0x15010c98,0x2802400,0x20962460,0x16000000,0x4000000,0x4200000, +0x16000000,0x4000000,0x5500000,0x16000000,0x4000000,0x5600000,0x16000000,0x4000000,0xc8100006,0x16000000,0x4000000,0xc8200003,0x16000000,0x24000000,0x4200000,0x16000002, +0x4000000,0x4200000,0x16000004,0x4000000,0x5600000,0x16000007,0x7c00100,0x80220400,0x16000007,0x7c00100,0x80250400,0x16000008,0x7c00100,0xfc220400,0x16000008,0x7c00100, +0xfc250400,0x1600000a,0x4000000,0xc200000,0x1600000a,0x6800100,0x8962540,0x1600000a,0x7c00100,0x8230400,0x16000012,0x7c00100,0xa230500,0x16000012,0x7c00100,0xa330520, +0x16000019,0x7c00100,0x8250400,0x1600001c,0x4000000,0x5800000,0x1600001c,0x6800100,0xfd862400,0x1600001c,0x6800500,0xfd862400,0x1600001c,0x7c00100,0xfd830000,0x1600001c, +0x7c00900,0xfd830000,0x16000028,0x4000002,0x44400000,0x16000028,0x7c00100,0x40230400,0x1600003b,0x6800000,0x41329800,0x1600003b,0x7c00100,0x41830000,0x16000047,0x7c00100, +0x80230400,0x16000047,0x7c00100,0x80830400,0x16000047,0x7c00100,0x81430400,0x1600004e,0x4000000,0x44e00000,0x1600004e,0x4000010,0x44400000,0x1600004e,0x6800000,0x42d29800, +0x1600004e,0x6800100,0x40962540,0x1600004e,0x7c00100,0x42b30400,0x1600004e,0xc000010,0x44448000,0x16000058,0x7c00100,0x80230400,0x1600005b,0x4000000,0x84200000,0x1600006a, +0x4000000,0x45800000,0x1600006a,0x6800000,0x41329800,0x1600006a,0x6800100,0x41862400,0x1600006a,0x6800100,0x41862540,0x1600006a,0x7c00100,0x41830000,0x1600006a,0x7c00900, +0x41830000,0x1600006a,0xc000010,0x45848000,0x16000073,0x6800000,0x41329800,0x16000073,0x6800100,0x40962540,0x16000073,0x6800400,0x40962540,0x16000073,0x7c00100,0x40230400, +0x16000073,0xc000010,0x44448000,0x16000074,0x4000000,0x84200000,0x16000074,0x4000010,0x84400000,0x16000074,0x7c00100,0x80230400,0x16000075,0x4000000,0x84400000,0x16000075, +0x4000010,0x84400000,0x16000075,0x7c00100,0x80230400,0x16000078,0x4000000,0x84200000,0x16000078,0x6800100,0x80962540,0x16000078,0x7c00100,0x80230400,0x16000078,0x7c00100, +0x80230401,0x16000078,0xc000010,0x84448000,0x16000078,0x80000000,0x85329960,0x1600007a,0x4000000,0x84200000,0x1600007a,0x7c00100,0x80230400,0x1600007d,0x4000000,0x84200000, +0x1600007d,0x7c00100,0x80230400,0x1600007e,0x4000000,0x84200000,0x1600007e,0x4000010,0x84200000,0x1600007e,0x7c00100,0x80230400,0x1600007e,0xc000010,0x84248000,0x1600007f, +0x4000000,0x45800000,0x1600007f,0x4000010,0x45800000,0x1600007f,0x7c00100,0x41830000,0x1600007f,0x7c00500,0x41830000,0x1600007f,0x7c00900,0x41830000,0x1600007f,0x7e00100, +0x41830000,0x16000082,0x4000000,0x44200000,0x16000082,0x4000010,0x44400000,0x16000082,0x7c00100,0x40230400,0x16000082,0xc000010,0x44448000,0x16000083,0x4000010,0x44400000, +0x16000083,0x7c00100,0x40230400,0x16000083,0xc000010,0x44448000,0x16000085,0x4000000,0x84200000,0x16000085,0x7c00100,0x80230400,0x16000539,0x7c00100,0x8230400,0x1600053b, +0x4000400,0xc200000,0x1600053e,0x6800400,0x8962540,0x1600053e,0x7c00100,0x8230400,0x16000548,0x7c00100,0x8230400,0x1600054a,0x7c00100,0x8230400,0x16000575,0x24000000, +0xc400000,0x160005b4,0x4000000,0x4200000,0x160005c4,0x4000000,0x4200000,0x160005d3,0x4000000,0x4200000,0x160005de,0x4000000,0x5500000,0x160005f6,0x7c00900,0x60430400, +0x16000df1,0x7c00100,0x8230400,0x16001000,0x4000000,0x4100000,0x16001000,0x4000000,0xc8100002,0x16001000,0x4000000,0xc8100003,0x16001000,0x4000000,0xc8100006,0x16001000, +0x4000000,0xc810000d,0x16001000,0x4000100,0x4150400,0x16001000,0x4000100,0xc815040d,0x16001000,0x24000000,0x4100000,0x16001000,0x24000000,0x4e00000,0x16001000,0x24000000, +0x6800000,0x16005000,0x4000000,0xc8e00002,0x16005000,0x4000000,0xc8e0000d,0x16005000,0x24000000,0x4100000,0x16005000,0x24000000,0x4e00000,0x16005011,0x7c00300,0xc8e30001, +0x16005011,0x7c40300,0xfce30000,0x16005012,0x7c00100,0xa130480,0x16005014,0x4000000,0xc8e0000d,0x1600559b,0x4000000,0xc8e00003,0x1600800a,0x7c00100,0xfc230400,0x16010001, +0x2802400,0x10962460,0x16010007,0x2802400,0x80962460,0x16010007,0x2802400,0x90962460,0x1601000a,0x2802100,0x20962460,0x1601000a,0x2802400,0x8962460,0x1601001c,0x2802100, +0xfd862460,0x1601004e,0x2802100,0x40962460,0x1601004e,0x2802400,0x40962460,0x1601004e,0x2806400,0x42f62460,0x1601006a,0x2802100,0x41862460,0x1601006a,0x2802400,0x40962460, +0x1601006a,0x2802400,0x41862460,0x1601006a,0x2806400,0x41862460,0x16010073,0x2802100,0x40962460,0x16010073,0x2806400,0x40962460,0x16010078,0x2802100,0x80962460,0x16010078, +0x2802400,0x80962460,0x16010078,0x2806400,0x80962460,0x1601007e,0x2802000,0x80962460,0x1601007e,0x2802100,0x80962460,0x1601007e,0x2802400,0x80962460,0x1601007f,0x2802100, +0x41862460,0x1601007f,0x2802400,0x41862460,0x16010082,0x2802400,0x40962460,0x16010939,0x2802400,0x8962460,0x1601093a,0x2802400,0x8962460,0x1601093e,0x2802400,0x8962460, +0x16010940,0x2802400,0x8962460,0x16010942,0x2802400,0x8962460,0x16010ded,0x2802400,0x8962460,0x18000000,0x4000000,0x4200000,0x18000000,0x4000000,0x4e00000,0x18000000, +0x4000000,0x5600000,0x18000000,0x4000000,0x6703580,0x18000000,0x24000000,0x4200000,0x18000000,0x24000000,0x4e00000,0x18000000,0x24000000,0x5710000,0x18000000,0x24000020, +0x4200000,0x18000002,0x4000000,0x14200000,0x18000002,0x7c00100,0xfc230400,0x18000008,0x7c00100,0x8220400,0x18000008,0x7c00100,0x8250400,0x18000008,0x7c00100,0xfc220400, +0x18000008,0x7c00100,0xfc250400,0x1800000a,0x6800100,0xfc962540,0x1800000a,0x7c00100,0xfc230400,0x1800000b,0x7c00100,0xfc230400,0x18000019,0x7c00100,0x8220400,0x18000019, +0x7c00100,0x8250400,0x18000019,0x7c00100,0x10220400,0x18000019,0x7c00100,0xc822040e,0x18000019,0x7c00100,0xfc250400,0x1800001a,0x7c00100,0xfc230560,0x1800001f,0x4000000, +0x4200000,0x18000027,0x4000000,0x4c00000,0x18000027,0x7c00100,0xfc230400,0x1800003c,0x4000000,0x44400000,0x1800003f,0x4000000,0x44200000,0x1800003f,0x6800100,0x40962540, +0x1800003f,0x7c00100,0x42d30400,0x18000041,0x4000000,0x84e00000,0x18000041,0x4000010,0x84e00000,0x18000041,0x6800000,0x82d29800,0x18000041,0x6800100,0x80962540,0x18000041, +0x7c00100,0x82b30400,0x18000041,0x7c00100,0x82c30400,0x18000041,0xc000010,0x84448000,0x18000054,0x4000010,0x44200000,0x18000054,0x7c00100,0x40230400,0x18000082,0x7c00100, +0x40230400,0x18001000,0x4000000,0x4100000,0x18001000,0x4000000,0xc810000d,0x18001000,0x4000100,0x4150400,0x18001000,0x4000100,0xc815040d,0x18005000,0x4000000,0x4100000, +0x18005000,0x4000000,0x4200000,0x18005000,0x4000000,0x4e00000,0x18005000,0x4000000,0x6800000,0x18005000,0x4000000,0xc8e0000d,0x18005000,0x24000000,0x4200000,0x18005000, +0x24000000,0x4e00000,0x18005000,0x24000000,0x6800000,0x18005005,0x7c00100,0xfce30400,0x18005011,0x7c40300,0xfce30000,0x18005014,0x7c00100,0x8e30000,0x18005016,0x7c00100, +0x8e30c00,0x1800559b,0x4000000,0xc8e00003,0x1800801a,0x7c00100,0xfc230400,0x18010001,0x2802400,0x10c62460,0x18010002,0x2802100,0x20962460,0x1801000a,0x2802100,0xfc962460, +0x1801000b,0x2802400,0xfc962460,0x18010027,0x2802100,0xfc962460,0x1801003c,0x2806000,0x40962460,0x1801003f,0x2802100,0x40962460,0x1801003f,0x2802400,0x40962460,0x1801003f, +0x2806400,0x42e62460,0x18010041,0x2802100,0x80962460,0x18010041,0x2806400,0x82f62460,0x18010054,0x2802000,0x40962460,0x19000000,0x4000000,0x4200000,0x19000000,0x4000000, +0xc820000f,0x19000000,0x24000000,0x4200000,0x19000000,0x24000000,0x4400000,0x19000000,0x24000000,0xc200000,0x19000000,0x24000002,0x4300000,0x19000000,0x24000020,0x4200000, +0x19000002,0x4000020,0x4200000,0x19000002,0x7c00100,0xfc230400,0x19000002,0x7c00120,0xc8230405,0x19000002,0x80000000,0x5329960,0x19000003,0x4000000,0x5600000,0x19000007, +0x7c00100,0x80220400,0x19000007,0x7c00100,0x80250400,0x1900000c,0x7c00100,0xfc220400,0x1900000c,0x7c00100,0xfc230400,0x1900000c,0x7c00100,0xfc250400,0x1900000f,0x4000000, +0x4200000,0x19000018,0x7c00100,0xfd830000,0x19000019,0x7c00100,0xfc220400,0x19000019,0x7c00100,0xfc250400,0x19000019,0x7c00500,0xc822040f,0x1900003c,0x7c00100,0x40230400, +0x19000056,0x7c00100,0x80230400,0x1900005c,0x6800100,0x40962540,0x1900005c,0x7c00100,0x40230400,0x1900005c,0x7c00500,0x40230400,0x19000071,0x4000000,0x44200000,0x19000071, +0x7c00100,0x40230400,0x19000073,0x6800100,0x40962540,0x19000073,0x7c00100,0x40230400,0x19000073,0x7c00900,0x40230400,0x19000073,0xc000010,0x44448000,0x19000076,0x4000000, +0x44400000,0x19000076,0x6800000,0x41329800,0x19000076,0x6800100,0x40962540,0x19000076,0x7c00100,0x40230400,0x19000076,0xc000010,0x44448000,0x1900008d,0x7c00100,0x80230400, +0x19000097,0x4000000,0x84200000,0x19000097,0x4000000,0x84400000,0x19000097,0x6800000,0x81329800,0x19000097,0x6800100,0x80962540,0x19000097,0x7c00100,0x80230400,0x19000097, +0x7c00100,0x80230560,0x19000097,0xc000010,0x84448000,0x19000098,0x6800000,0x81329800,0x19000098,0x7c00100,0x80230400,0x19000099,0x6800000,0x81329800,0x19000099,0x6800100, +0x80962540,0x19000099,0x7c00100,0x80230400,0x1900053e,0x7c00100,0x8230400,0x19000555,0x7c00100,0x8230400,0x19005000,0x4000000,0x4e00000,0x19005011,0x7c00300,0xc8e30001, +0x19005011,0x7c40300,0xfce30000,0x19010002,0x2802400,0x20962460,0x19010002,0x2802500,0x20962460,0x19010008,0x2802100,0x8962460,0x1901005c,0x2802500,0x40962460,0x19010071, +0x2802100,0x40962460,0x19010071,0x2806400,0x40962460,0x19010073,0x2802100,0x40962460,0x19010073,0x2806400,0x40962460,0x19010076,0x2802100,0x40962460,0x19010076,0x2802100, +0x40962461,0x19010076,0x2806400,0x40962460,0x19010097,0x2802100,0x80962460,0x19010097,0x2806400,0x80962460,0x19010099,0x2802100,0x80962460,0x19010099,0x2802400,0x80962460, +0x19010099,0x2806400,0x80962460,0x19010957,0x2802400,0x8962460,0x1a000000,0x4000000,0x5600000,0x1b000000,0x80000,0xc4918820,0x1b000cab,0x80000,0xc4918820,0x1c000000, +0x4000000,0x4100000,0x1c000000,0x4000000,0x4200000,0x1c000000,0x4000000,0x4e00000,0x1c000000,0x4000000,0x5200000,0x1c000000,0x4000000,0x5500000,0x1c000000,0x4000000, +0x5600000,0x1c000000,0x4000000,0x5710000,0x1c000000,0x4000000,0x6800000,0x1c000000,0x4000400,0x4200400,0x1c000000,0x24000000,0x4200000,0x1c000000,0x24000000,0x4400000, +0x1c000000,0x24000000,0x4e00000,0x1c000000,0x24000002,0x4400000,0x1c000000,0x24000008,0x5410000,0x1c000000,0x80000000,0x5329960,0x1c000002,0x7c00100,0x8230400,0x1c000002, +0x7c00100,0xfc230400,0x1c000003,0x4000000,0x4200000,0x1c000004,0x7c00100,0x8230400,0x1c000008,0x7c00100,0x8220400,0x1c000008,0x7c00100,0x8250400,0x1c000008,0x7c00100, +0xfc220400,0x1c000008,0x7c00100,0xfc250400,0x1c000008,0x7c00500,0xc822040f,0x1c00000e,0x4000000,0x4200000,0x1c00000e,0x7c00100,0x8220400,0x1c00000e,0x7c00100,0x8250400, +0x1c000019,0x7c00100,0x8220400,0x1c000019,0x7c00100,0x8230400,0x1c000019,0x7c00100,0x8250400,0x1c000019,0x7c00500,0xc822040f,0x1c00001c,0x6800000,0xfd329800,0x1c00001c, +0x6800500,0xfd862400,0x1c00001c,0x7c00100,0x9830000,0x1c00001c,0x7c00100,0xfd830000,0x1c00001c,0x7c00900,0x9830000,0x1c00001e,0x7c00100,0x80230400,0x1c000020,0x7c00100, +0x80230400,0x1c000021,0x4000000,0x4200000,0x1c000021,0x6800000,0x9329800,0x1c000030,0x7c00100,0x40230400,0x1c00004b,0x4000000,0x84200000,0x1c00004b,0x4000010,0x84400000, +0x1c00004b,0x6800000,0x81329800,0x1c00004b,0x7c00100,0x80230400,0x1c00004b,0x7c00900,0x80230400,0x1c00004b,0xc000010,0x84448000,0x1c000053,0x7c00100,0x80230400,0x1c000059, +0x7c00100,0x80230400,0x1c000065,0x4000010,0x84400000,0x1c000065,0x7c00100,0x80230400,0x1c000079,0x4000000,0x84200000,0x1c000079,0x4000000,0x84f00000,0x1c000079,0x4000010, +0x84400000,0x1c000079,0x7c00100,0x80230400,0x1c00007b,0x4000000,0x84200000,0x1c00007b,0x4000010,0x84200000,0x1c00007b,0x7c00100,0x80230400,0x1c000086,0x7c00100,0x80230400, +0x1c000086,0xc000010,0x84448000,0x1c000087,0x4000000,0x84200000,0x1c000087,0x7c00100,0x80230400,0x1c000087,0xc000010,0x84448000,0x1c000088,0x7c00100,0x80230400,0x1c000089, +0x6800100,0x80962540,0x1c000089,0x6800100,0x80962541,0x1c000089,0x7c00100,0x80430400,0x1c000089,0x7c00100,0x82b30400,0x1c000089,0x7c00100,0x82d30400,0x1c000089,0x7c00900, +0x80430400,0x1c00008c,0x4000000,0x84200000,0x1c00008c,0x7c00100,0x80230400,0x1c00008e,0x4000000,0x84200000,0x1c00008e,0x7c00100,0x80230400,0x1c00008f,0x4000000,0x84200000, +0x1c00008f,0x7c00100,0x80230400,0x1c000090,0x4000000,0x84200000,0x1c000090,0x7c00100,0x80230400,0x1c000091,0x6800000,0x81329800,0x1c000091,0x6800100,0x80962540,0x1c000091, +0x7c00100,0x80230400,0x1c000092,0x4000000,0x84200000,0x1c000092,0x6800000,0x81329800,0x1c000092,0x7c00100,0x80220400,0x1c000092,0x7c00100,0x80230400,0x1c000092,0x7c00100, +0x80250400,0x1c000095,0x6800000,0xa1329800,0x1c000095,0x7c00100,0xa0230400,0x1c000095,0xc000010,0x84448000,0x1c000097,0x7c00100,0x80230400,0x1c000097,0xc000010,0x84248000, +0x1c00009d,0x4000000,0x84200000,0x1c00009d,0x4000010,0x84200000,0x1c00009d,0x6800100,0x80962540,0x1c00009d,0x7c00100,0x80230400,0x1c00009d,0xc000010,0x84448000,0x1c00009e, +0x4000000,0x84200000,0x1c00009e,0x6800000,0x81329800,0x1c00009e,0x6800100,0x80962540,0x1c00009e,0x6800100,0x80962541,0x1c00009e,0x7c00100,0x80230400,0x1c00009f,0x4000000, +0x84200000,0x1c00009f,0x7c00100,0x80230400,0x1c0000a0,0x4000000,0x84200000,0x1c0000a0,0x4000000,0x84500000,0x1c0000a0,0x7c00100,0x80230400,0x1c0000a3,0x4000000,0x84200000, +0x1c0000a3,0x6800000,0x81329800,0x1c0000a3,0x6800100,0x80962540,0x1c0000a3,0x7c00100,0x80230400,0x1c0000a3,0xc000010,0x84448000,0x1c0000a5,0x7c00100,0x80230400,0x1c0000a6, +0x4000000,0x84500000,0x1c0000a6,0x4000010,0x84b00000,0x1c0000a6,0x4000800,0x84200000,0x1c0000a6,0x6800100,0x80962540,0x1c0000a6,0x6800100,0x80962541,0x1c0000a6,0x7c00100, +0x80230400,0x1c0000a6,0xc000010,0x84448000,0x1c00045d,0x80000,0xc4918820,0x1c00045d,0x2c000010,0x84448000,0x1c00057c,0x24000010,0x4400000,0x1c000606,0x4000000,0xc200000, +0x1c000e0a,0x4000010,0x84400000,0x1c000e0c,0x6800100,0xfc962540,0x1c005000,0x4000000,0x4e00000,0x1c005000,0x4000000,0x6800000,0x1c00800a,0x7c00100,0x8230400,0x1c008024, +0x7c00100,0x8230400,0x1c010001,0x2400,0x4962460,0x1c010001,0x2802100,0x10962460,0x1c010001,0x2802400,0x8962460,0x1c010001,0x2802400,0x10962460,0x1c010001,0x2802400, +0x10c62460,0x1c010002,0x2802100,0x20962460,0x1c010015,0x2802100,0x8962460,0x1c01001a,0x2802100,0x8962460,0x1c01001c,0x2802500,0x9862460,0x1c01001c,0x2802500,0xfd862460, +0x1c010024,0x2802100,0x8962460,0x1c010041,0x2806000,0x80c62460,0x1c01004b,0x2802400,0x80962460,0x1c010059,0x2802100,0x80962460,0x1c010079,0x2802400,0x80962460,0x1c010086, +0x2802400,0x80962460,0x1c010087,0x2802000,0x80962460,0x1c010087,0x2802100,0x80962460,0x1c010089,0x2802100,0x80962460,0x1c010089,0x2802400,0x80962460,0x1c010089,0x2806400, +0x82f62460,0x1c01008c,0x2802400,0x80962460,0x1c010091,0x2802100,0x80962460,0x1c010091,0x2802400,0x80962460,0x1c010091,0x2806400,0x80962460,0x1c01009d,0x2802100,0x80962460, +0x1c01009d,0x2802400,0x80962460,0x1c01009d,0x2802900,0x80962460,0x1c01009d,0x2806400,0x80962460,0x1c01009e,0x2802100,0x80962460,0x1c01009e,0x2802400,0x80962460,0x1c01009e, +0x2806400,0x80962460,0x1c0100a0,0x2802400,0x80962460,0x1c0100a3,0x2802100,0x80962460,0x1c0100a3,0x2806400,0x80962460,0x1c0100a6,0x2802100,0x80962460,0x1c0100a6,0x2802400, +0x80962460,0x1c0100a6,0x2806400,0x80962460,0x1c010955,0x2802400,0x8962460,0x1c010a06,0x2802400,0x8962460,0x1c010e0c,0x2802100,0xfc962460,0x1c010e0c,0x2802400,0xfc962460, +0x20000000,0x4000000,0x5500000,0x20000000,0x4000000,0x24200000,0x20000000,0x4000000,0x24e00000,0x20000000,0x4000000,0x34200000,0x20000000,0x24000000,0x24200000,0x20000002, +0x7c00100,0x20230400,0x20000006,0x7c00100,0x40220400,0x20000006,0x7c00100,0x40250400,0x2000000a,0x4000000,0x2c500000,0x2000000a,0x7c00100,0x28230400,0x20000019,0x7c00100, +0x20220400,0x20000019,0x7c00100,0x20230400,0x20000019,0x7c00100,0x20250400,0x2000001a,0x7c00100,0x8230400,0x2000004c,0x4000000,0x84200000,0x2000004c,0x7c00100,0x80220400, +0x2000004c,0x7c00100,0x80250400,0x20000065,0x7c00100,0x80230400,0x20000070,0x4000000,0x84200000,0x20000070,0x4000010,0x84400000,0x20000070,0xc000010,0x84448000,0x20000089, +0x7c00100,0x82d30400,0x2000008d,0x4000000,0x84200000,0x20000097,0x4000000,0x84400000,0x20000097,0x4000000,0x84500000,0x20000097,0x7c00100,0x80230400,0x20000097,0xc000010, +0x84448000,0x2000009c,0x7c00100,0x80230400,0x2000009c,0x7c00100,0x80830400,0x2000009c,0x7c00100,0x81430400,0x200000a1,0x4000000,0x85800000,0x200000a1,0x6800000,0x81329800, +0x200000a1,0x6800100,0x81862400,0x200000a1,0x6800100,0x81862540,0x200000a1,0x7c00100,0x81830000,0x200000a1,0xc000010,0x84448000,0x200000a2,0x4000000,0x84200000,0x200000a2, +0x7c00100,0x80230400,0x200000a4,0x7c00100,0x80230400,0x200000a4,0xc000010,0x84448000,0x200000a6,0x7c00100,0x80230400,0x200000a6,0xc000010,0x84448000,0x20005000,0x4000000, +0x4e00000,0x20005000,0x4000000,0x6800000,0x20005011,0x7c40300,0xfce30000,0x2000800f,0x7c00100,0x20230400,0x20008024,0x7c00100,0x20230400,0x20010002,0x2802500,0x20962460, +0x20010008,0x2802100,0x28962460,0x20010008,0x2802400,0x30962460,0x20010008,0x2802400,0x30c62460,0x20010070,0x2802000,0x80962460,0x20010089,0x2802100,0x80962460,0x20010097, +0x2802000,0x80962460,0x20010097,0x2802400,0x80962460,0x200100a1,0x2802100,0x81862460,0x200100a1,0x2806400,0x81862460,0x200100a6,0x2802100,0x80962460,0x20015000,0x4000000, +0x6902460,0x24000000,0x4000000,0x4e00000,0x24000000,0x24000000,0x4200000,0x24000000,0x24000000,0x4400000,0x24000000,0x80000000,0x5329960,0x24000002,0x7c00100,0xfc230400, +0x24000008,0x7c00100,0x8220400,0x2400000e,0x4000000,0x4200000,0x24000015,0x7c00100,0xfc230400,0x24000019,0x7c00100,0x10250400,0x2400001a,0x4000000,0x4200000,0x2400001a, +0x7c00100,0xfc230400,0x2400001b,0x4000000,0x84500000,0x240000a7,0x4000000,0x45400000,0x240000a7,0x6800000,0x41329800,0x240000a7,0x7c00100,0x40220400,0x240000a7,0x7c00100, +0x40250400,0x240000a8,0x4000000,0x84200000,0x240000a8,0x4000000,0x84400000,0x240000a8,0x4000010,0x84400000,0x240000a8,0x6800000,0x81329800,0x240000a8,0x6800100,0x80962540, +0x240000a8,0x7c00100,0x80230400,0x240000a8,0xc000010,0x84448000,0x240000a9,0x4000000,0x84500000,0x240000a9,0x4000010,0x84b00000,0x240000a9,0x6800100,0x80962540,0x240000a9, +0x7c00100,0x80230400,0x240000aa,0x4000000,0x44200000,0x240000aa,0x4000000,0x44400000,0x240000aa,0x4000010,0x44400000,0x240000aa,0x6800000,0x41329800,0x240000aa,0x6800100, +0x40962540,0x240000aa,0x7c00100,0x40230400,0x240000aa,0xc000010,0x44448000,0x240000ab,0x7c00100,0x40220400,0x240000ab,0x7c00100,0x40250400,0x24000496,0x24000000,0x4400000, +0x24001000,0x4000000,0x4100000,0x24005000,0x4000000,0x4e00000,0x24005000,0x4000000,0x6800000,0x24005000,0x4000000,0xc8e0000d,0x2400509a,0x7c00300,0x80e30000,0x2400509a, +0x7c00900,0x81230400,0x24010001,0x2802400,0x10962460,0x24010002,0x2802000,0x20962460,0x24010002,0x2802100,0x20962460,0x24010038,0x2802100,0x80962460,0x2401006f,0x2802100, +0x40962460,0x2401009d,0x2802100,0x80962460,0x240100a7,0x2802100,0x40962460,0x240100a7,0x2802400,0x40962460,0x240100a7,0x2802c00,0x40962460,0x240100a8,0x2802100,0x80962460, +0x240100a8,0x2806400,0x80962460,0x240100a9,0x2802100,0x80962460,0x240100aa,0x2802100,0x40962460,0x240100aa,0x2802400,0x40962460,0x240100aa,0x2806400,0x40962460,0x28000000, +0x4000000,0x4200000,0x28000000,0x4000000,0x4e00000,0x28000000,0x4000000,0x5600000,0x28000000,0x24000000,0x4200000,0x28000000,0x24000000,0x4400000,0x28000004,0x4000000, +0x4200000,0x28000004,0x7c00100,0x8230400,0x2800001e,0x7c00100,0x80230400,0x28000022,0x7c00100,0x40230400,0x280000af,0x6800000,0x81329800,0x280000af,0x7c00100,0x80230400, +0x280000af,0x7c00100,0x80230560,0x280000b0,0x4000000,0x84400000,0x280000b0,0x4000000,0x84500000,0x280000b0,0x4000010,0x84400000,0x280000b0,0x6800100,0x80962540,0x280000b0, +0x7c00100,0x80230400,0x280000b0,0x7c00100,0x80230560,0x280000b0,0xc000010,0x84448000,0x280000b1,0x4000000,0x84200000,0x280000b1,0x4000000,0x84400000,0x280000b1,0x4000000, +0x84500000,0x280000b1,0x6800100,0x80962540,0x280000b1,0x7c00100,0x80230400,0x280000b1,0x7c00100,0x80230560,0x280000b1,0xc000010,0x84448000,0x2800055b,0x6800400,0x8962540, +0x28005000,0x4000000,0x4e00000,0x28005000,0x4000000,0x6800000,0x28005005,0x7c00100,0x8e30400,0x28005011,0x7c40300,0xfce30000,0x28005014,0x7c00100,0x8e30000,0x28005096, +0x7c00300,0x80e30000,0x28005096,0x7c00900,0x81230400,0x28010001,0x2802400,0x10962460,0x2801000f,0x2802100,0xfc962460,0x2801000f,0x2802400,0xfc962460,0x2801000f,0x2802900, +0xfc962460,0x2801001a,0x2802100,0xfc962460,0x2801001a,0x2806400,0x8962460,0x280100af,0x2802100,0x80962460,0x280100af,0x2802400,0x80962460,0x280100af,0x2806400,0x80962460, +0x280100b0,0x2802100,0x80962460,0x280100b0,0x2802800,0x80962460,0x280100b0,0x2806400,0x80962460,0x280100b1,0x2802000,0x80962460,0x280100b1,0x2802100,0x80962460,0x280100b1, +0x2806400,0x80962460,0x2801095c,0x2802400,0x10962460,0x2c000000,0x4000000,0x4200000,0x2c000000,0x4000000,0x4e00000,0x2c000000,0x4000000,0x5500000,0x2c000000,0x24000000, +0x4200000,0x2c000000,0x24000000,0x4400000,0x2c000000,0x24000010,0x4400000,0x2c000003,0x7c00100,0x10220400,0x2c00000a,0x7c00100,0x8230400,0x2c00000c,0x7c00100,0xfc230400, +0x2c000010,0x4000000,0x4200000,0x2c000013,0x7c00100,0xfe633800,0x2c000015,0x4000000,0x4500000,0x2c000019,0x7c00100,0x10220400,0x2c000019,0x7c00100,0x20220400,0x2c000019, +0x7c00100,0x20250400,0x2c00001b,0x7c00100,0x80230400,0x2c000039,0x4000000,0x84200000,0x2c000039,0x7c00100,0x80230400,0x2c000057,0x4000000,0x45600000,0x2c000076,0x6800100, +0x40962540,0x2c000076,0x7c00100,0x40230400,0x2c000078,0x80000000,0x85329960,0x2c0000a1,0x7c00100,0x81830000,0x2c0000b0,0x7c00100,0x80230400,0x2c0000b2,0x4000000,0x84200000, +0x2c0000b2,0x6800100,0x80962540,0x2c0000b2,0x7c00100,0x80230400,0x2c0000b3,0x6800000,0x41329800,0x2c0000b3,0x6800100,0x40962540,0x2c0000b3,0x7c00100,0x40230400,0x2c0000b4, +0x6800100,0x80962540,0x2c0000b4,0x7c00100,0x80430400,0x2c0000b4,0x7c00100,0x82d30400,0x2c0000b4,0xc000010,0x84448000,0x2c0000b5,0x4000000,0x84200000,0x2c0000b5,0x4000010, +0x84400000,0x2c0000b5,0x7c00100,0x80220400,0x2c0000b5,0x7c00100,0x80250400,0x2c0000b5,0xc000010,0x84448000,0x2c0000b6,0x6800000,0x41329800,0x2c0000b6,0x7c00100,0x40230400, +0x2c0000b6,0x7c00500,0x40230400,0x2c0000b7,0x4000000,0x84200000,0x2c0000b7,0x7c00100,0x80230400,0x2c0000b7,0xc000010,0x84248000,0x2c0000b8,0x4000000,0x84200000,0x2c0000b8, +0x7c00100,0x80230400,0x2c005000,0x4000000,0x4200000,0x2c005000,0x4000000,0x4e00000,0x2c005000,0x4000000,0x6800000,0x2c005005,0x7c00100,0xfce30400,0x2c005011,0x7c40300, +0xfce30000,0x2c00509a,0x7c00300,0x80e30000,0x2c010002,0x2802000,0x20962460,0x2c010004,0x2802000,0xfc962460,0x2c01000a,0x2802100,0x8962460,0x2c010024,0x2802100,0xfc962460, +0x2c010057,0x2802000,0x40962460,0x2c0100aa,0x2802000,0x40962460,0x2c0100b2,0x2802100,0x80962460,0x2c0100b2,0x2802400,0x80962460,0x2c0100b2,0x2806400,0x80962460,0x2c0100b3, +0x2802100,0x40962460,0x2c0100b3,0x2806400,0x40962460,0x2c0100b4,0x2802100,0x80962460,0x2c0100b6,0x2802500,0x40962460,0x2c0100b7,0x2802400,0x80962460,0x2c010921,0x2802400, +0xfc962460,0x30000000,0x4000000,0x4200000,0x30000000,0x4000000,0xc820000f,0x30000000,0x24000000,0x4200000,0x30000000,0x24000010,0x4400000,0x30000018,0x7c00100,0xfd830000, +0x30000019,0x7c00100,0x10220400,0x30000019,0x7c00100,0x10250400,0x30000019,0x7c00100,0xfc220400,0x30000019,0x7c00100,0xfc250400,0x30000023,0x4000000,0x4200000,0x30000023, +0x4000000,0x4400000,0x30000023,0x4000000,0x5500000,0x30000024,0x4000000,0x4500000,0x30000047,0,0x84818820,0x30000047,0,0x84c18820,0x30000047,0, +0x85418820,0x3000005c,0x6800100,0x40962540,0x3000005c,0x7c00100,0x40230400,0x30000099,0x7c00100,0x80230400,0x300000a7,0x7c00100,0x40230400,0x300000aa,0x7c00100,0x40230400, +0x300000b0,0x7c00100,0x80230560,0x300000b9,0x7c00100,0x80230400,0x300000ba,0x4000000,0x44200000,0x300000ba,0x6800000,0x41329800,0x300000ba,0x7c00100,0x40230400,0x300000ba, +0x7c00900,0x40230400,0x300000bb,0x4000000,0x84500000,0x300000bb,0x6800100,0x80962540,0x300000bb,0x7c00100,0x80230400,0x300000bc,0x4000000,0x45600000,0x300000bc,0x6800000, +0x41329800,0x300000bc,0x7c00100,0x40230400,0x30000549,0x7c00100,0x80230400,0x30000d23,0x4000000,0x4200000,0x30005000,0x4000000,0x4e00000,0x30005000,0x4000000,0x6800000, +0x30005011,0x4000000,0x5200000,0x30005011,0x7c00900,0x9230400,0x30005014,0x7c00100,0xfe530000,0x30005016,0x7c00100,0xfe530c00,0x3000509a,0x7c00300,0x80e30000,0x30010018, +0x2806400,0xfd862460,0x3001005c,0x2802100,0x40962460,0x300100ba,0x2802400,0x40962460,0x300100bb,0x2802100,0x80962460,0x300100bb,0x2806400,0x80962460,0x300100bc,0x2802400, +0x40962460,0x3100559b,0x4000000,0xc8e0000d,0x34000000,0x4000000,0x4200000,0x34000000,0x4000400,0x4200000,0x34000000,0x6800000,0xc9329805,0x34000000,0x24000000,0x4200000, +0x34000002,0x7c00100,0xfc230400,0x34000019,0x7c00100,0x8220400,0x34000019,0x7c00100,0x8250400,0x34000019,0x7c00100,0x10220400,0x34000019,0x7c00100,0xfc220400,0x34000019, +0x7c00100,0xfc250400,0x34000019,0x7c00500,0xc822040f,0x3400001a,0x7c00100,0x18230400,0x34000076,0x7c00100,0x40230400,0x34000083,0x7c00100,0x40230400,0x34000097,0x6800100, +0x80962540,0x340000aa,0x4000010,0x44400000,0x340000aa,0x7c00100,0x40230400,0x340000bd,0x4000000,0x84200000,0x340000bd,0x7c00100,0x80230400,0x340000be,0x4000000,0x84400000, +0x340000be,0x6800000,0x82d29800,0x340000be,0x6800100,0x80962540,0x340000be,0x6800100,0x80962541,0x340000be,0x7c00100,0x82b30400,0x340000be,0x7c00100,0x82c30560,0x340000be, +0xc000010,0x84448000,0x340000c0,0x4000002,0x84400000,0x340000c0,0x7c00100,0x80230400,0x34005000,0x4000000,0x4e00000,0x34005000,0x4000000,0x6800000,0x34005005,0x7c00100, +0xfce30400,0x34005011,0x7c40300,0xfce30000,0x3400509a,0x7c00300,0x80e30000,0x340050bf,0x7c00300,0x80230000,0x34010001,0x2802100,0x10962460,0x3401001f,0x2802c00,0xfc962460, +0x34010021,0x2802100,0x10962460,0x3401003a,0x2806400,0x40962460,0x34010097,0x2802100,0x80962460,0x340100be,0x2802100,0x80962460,0x340100be,0x2802400,0x80962460,0x340100be, +0x2806400,0x80962460,0x340100be,0x2806400,0x82f62460,0x340100c0,0x2802100,0x80962460,0x34015011,0x2802500,0xfc962460,0x340150bf,0x2802200,0x80c62460,0x38000000,0x4000000, +0x5500000,0x38000000,0x4000000,0x14200000,0x38000000,0x24000000,0x5410000,0x38000000,0x24000000,0x6410000,0x38000000,0x24000002,0x4400000,0x38000000,0x2c000010,0x4b48000, +0x38000002,0x4000000,0x4200000,0x38000002,0x4000000,0x14200000,0x38000002,0x7c00100,0xfc230400,0x38000002,0x7c00500,0xfc230400,0x38000002,0xc000010,0x4b48000,0x38000002, +0x80000000,0x5329960,0x3800000b,0x7c00100,0xfc230400,0x38000015,0x7c00100,0xfc230400,0x38000019,0x7c00100,0xc822040f,0x38000019,0x7c00100,0xfc220400,0x38000019,0x7c00100, +0xfc230400,0x38000019,0x7c00100,0xfc250400,0x38000019,0x7c00500,0x20220400,0x38000019,0x7c00500,0xc822040f,0x38000019,0x7c00d00,0xc823040f,0x38000024,0x7c00100,0xfc230400, +0x38000028,0x7c00100,0x40230400,0x3800002a,0x7c00100,0x80230400,0x38000038,0x7c00100,0x80220400,0x38000038,0x7c00100,0x80250400,0x3800003e,0x7c00100,0x42b30400,0x3800003e, +0xc000010,0x44448000,0x38000041,0x7c00100,0x82b30400,0x38000099,0x4000000,0x84200000,0x380000a1,0x7c00100,0x81830000,0x380000c1,0x4000000,0x84200000,0x380000c1,0x7c00100, +0x80230400,0x380000c2,0x7c00100,0x80230400,0x380000c2,0xc000010,0x84248000,0x380000c3,0x6800000,0x81329800,0x380000c3,0x7c00100,0x80230400,0x380000c4,0x7c00100,0x80230400, +0x380000c5,0x7c00100,0x80220400,0x380000c5,0x7c00100,0x80250400,0x38005000,0x4000000,0x4e00000,0x38005000,0x4000000,0x6800000,0x38005011,0x7c40300,0xfce30000,0x38005014, +0x7c00100,0xfce30000,0x38005016,0x7c00100,0xfce30c00,0x38005016,0x7c00500,0x20230c00,0x38010001,0x2802100,0x20962460,0x38010001,0x2802400,0x10962460,0x38010001,0x2802400, +0x20962460,0x38010002,0x2802400,0x20962460,0x3801001b,0x12882000,0xc4962460,0x38010024,0x2802400,0xfc962460,0x3801002a,0x2806400,0x80962460,0x38010041,0x2802100,0x80962460, +0x38010041,0x2806400,0x80962460,0x38010078,0x2802100,0x80962460,0x380100c2,0x2802400,0x80962460,0x380100c4,0x2802400,0x80962460,0x38010874,0x2802400,0x50962460,0x3c000000, +0x4000000,0x4200000,0x3c000000,0x4000000,0x4e00000,0x3c000008,0x7c00500,0xc822040e,0x3c000008,0x7c00500,0xc822040f,0x3c00000a,0x4000000,0x4500000,0x3c000015,0x6800100, +0xfc962540,0x3c000019,0x7c00100,0xfc220400,0x3c000047,0,0x84818820,0x3c000047,0,0x84c18820,0x3c000047,0,0x85418820,0x3c000047,0x7c00100,0x80230400, +0x3c000047,0x7c00100,0x81430400,0x3c00009d,0x7c00100,0x80230400,0x3c0000c6,0x4000000,0x84e00000,0x3c0000c6,0x6800000,0x82d29800,0x3c0000c6,0x6800100,0x80962540,0x3c0000c6, +0x7c00100,0x82b30400,0x3c0000c6,0x7c00100,0x82c30560,0x3c0000c6,0xc000010,0x84448000,0x3c0000c7,0x6800000,0x81329800,0x3c0000c7,0x7c00100,0x80230400,0x3c005000,0x4000000, +0x4e00000,0x3c005000,0x4000000,0x6800000,0x3c005011,0x7c40300,0xfce30000,0x3c005014,0x7c00100,0xfe530000,0x3c005016,0x7c00100,0xfe530c00,0x3c010002,0x2802400,0x20962460, +0x3c010008,0x2802100,0xfc962460,0x3c010018,0x2802000,0xfd862460,0x3c010047,0x2802000,0x80962460,0x3c010047,0x2802400,0x80962460,0x3c01009d,0x2802100,0x80962460,0x3c0100c6, +0x2802100,0x80962460,0x3c0100c6,0x2806400,0x80962460,0x3c0100c6,0x2806400,0x82f62460,0x3c0100c7,0x2802000,0x80962460,0x3d005011,0x7c40300,0xfce30000,0x3d00557f,0x4000000, +0x4e00000,0x3d00557f,0x4008000,0x4e00000,0x40000000,0x4000000,0x4200000,0x40000000,0x4000000,0xc8200005,0x40000000,0x6800000,0xc9329805,0x40000000,0x24000000,0x4200000, +0x40000002,0x7c00100,0x20230400,0x40000008,0x7c00100,0x20220400,0x40000008,0x7c00100,0x20250400,0x40000019,0x7c00100,0x20220400,0x40000019,0x7c00100,0x20250400,0x4000001c, +0x6800000,0x21329800,0x4000003e,0xc000010,0x44448000,0x40000047,0x7c00100,0x80230400,0x400000c9,0x4000002,0x84400000,0x400000c9,0x4000020,0x84200000,0x400000c9,0x6800000, +0x81329800,0x400000c9,0x7c00100,0x80220400,0x400000c9,0x7c00100,0x80230400,0x400000c9,0x7c00100,0x80250400,0x400000c9,0x7c00900,0x80230400,0x400000c9,0x7c00d00,0x80230400, +0x400000ca,0x6800000,0x82d29800,0x400000ca,0x6800100,0x80962540,0x400000ca,0x7c00100,0x82d30400,0x400000cb,0x4000000,0x84200000,0x400000cb,0x6800000,0x81329800,0x400000cb, +0x7c00100,0x80230400,0x400000cb,0x7c00100,0x80230520,0x400000cb,0x7c00100,0x80230521,0x400000cb,0x7c00500,0x80230400,0x400000cb,0xc000010,0x84448000,0x400000cc,0x4000000, +0x84200000,0x400000cc,0x6800000,0x81329800,0x400000cc,0x7c00100,0x80230400,0x400000cd,0x4000000,0x84200000,0x400000cd,0x6800000,0x81329800,0x400000cd,0x7c00100,0x80230400, +0x400000ce,0x7c00100,0x80230400,0x400000ce,0x7c00100,0x80230401,0x400000cf,0x4000000,0x84e00000,0x400000cf,0x6800100,0x80962540,0x400000cf,0x7c00100,0x80e30400,0x400000cf, +0x7c00100,0x82b30400,0x400000cf,0x7c00100,0x82c30560,0x400000cf,0x7c00100,0x82d30400,0x400000cf,0x7c00100,0x82d30401,0x400000cf,0x7c00d00,0x80e30400,0x400000cf,0xc000010, +0x84e48000,0x40005000,0x4000000,0x4e00000,0x400050bf,0x7c00300,0x80230000,0x4000559b,0x4000000,0x4e00000,0x40010002,0x2802100,0x20962460,0x400100c6,0x2802400,0x80962460, +0x400100c9,0x2802400,0x80962460,0x400100c9,0x2802500,0x80962460,0x400100c9,0x2802c00,0x80962460,0x400100ca,0x2802100,0x80962460,0x400100ca,0x2802100,0x80962461,0x400100ca, +0x2806400,0x80962460,0x400100cc,0x2802400,0x80962460,0x400100cc,0x2802c00,0x80962460,0x400100cf,0x2802100,0x80962460,0x400100cf,0x2802100,0x80962461,0x400100cf,0x2802400, +0x80962460,0x400100cf,0x2802c00,0x80962460,0x400100cf,0x2806400,0x80962460,0x400100cf,0x2806400,0x82f62460}; -static const int32_t countPropsVectors=7497; +static const int32_t countPropsVectors=6426; static const int32_t propsVectorsColumns=3; -static const uint16_t scriptExtensions[298]={ -0x800e,0x8019,8,0x8059,8,2,8,0x8038,8,6,8,0x8019,2,0x22,0x25,0x57, -0xb6,0x80c0,2,0x22,0x8025,2,0x12,2,0x22,0x25,0x57,0xa7,0xb6,0x80c0,2,0x22, -0x54,0x79,0x7b,0xa7,0xb6,0xb7,0x80c2,2,0x8022,2,0x25,0x80c0,2,0x29,2,0x80b6, -2,0x2e,4,0xa,0xf,0x10,0x15,0x19,0x1a,0x1f,0x23,0x24,0x89,0x97,0x809e,4, -0xa,0xf,0x10,0x15,0x19,0x1a,0x1f,0x23,0x24,0x89,0x809e,4,0xa,0xf,0x10,0x15, -0x1a,0x1f,0x21,0x23,0x24,0x3a,0x89,0x91,0x99,0x9e,0xa0,0xaf,0xb2,0xb3,0x80bb,4, -0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x30,0x3a,0x89,0x91,0x99,0x9e,0xa0, -0xaf,0xb2,0xb3,0x80bb,0xa,0x78,0xa0,0x80b2,0xa,0x74,4,0x3a,0x8076,4,0x7a,0x10, -0x80a4,0x10,0x7f,0xf,0x809d,0xf,0x83,0x23,0x8089,0x23,0x87,0x15,0x80bb,0x15,0x8b,0x1c, -0x34,0x8076,0x1c,0x8f,0xc,0x8019,0x2a,0x2b,0x2c,0x802d,0x1b,0x805a,0x800a,4,0xa,0x15, -0x8089,0xa,0x8089,4,0x800a,0xa,0x8097,0xa,0x15,0x1a,0x1f,0x23,0x8024,0xa,0x80bb,4, -0xa,0x15,0x1a,0x1f,0x21,0x24,0x89,0x9e,0x80bb,0x8004,8,0x8022,0x19,0x801b,0xa,0x19, -0x8089,5,0x11,0x12,0x14,0x16,0x8029,5,0x11,0x12,0x14,0x8016,0x8011,5,0x8011,0x11, +static const uint16_t scriptExtensions[526]={ +7,0xc,0xd,0xe,0x11,0x19,0x33,0x38,0x59,0x68,0x6c,0x75,0x87,0x88,0xa0,0x80b3, +4,8,0xa,0x19,0x26,0x83,0x80c4,5,0x8019,0x19,0x8083,0x19,0x8026,6,7,8, +0xe,0x19,0x34,0x59,0x80cd,6,8,0xe,0x19,0x34,0xab,0xcd,0x80ce,6,8,0x19, +0x803c,0x19,0x22,0x26,0x38,0x80cd,6,7,8,0xd,0xe,0x19,0x22,0x3c,0x9f,0xab, +0x80ce,7,0xd,0x16,0x19,0x38,0x8088,8,0xe,0x19,0x8059,7,0x13,0x19,0x22,0x34, +0x3c,0x59,0x87,0x80ce,3,8,0xd,0xe,0x13,0x19,0x22,0x34,0x59,0x8087,0x19,0x22, +0x8087,6,8,0x19,0x80ab,6,0x19,0x8034,0x19,0x80cd,0xb,0x8019,8,0x19,0x80ce,0xe, +0x19,0x59,0x80ce,0x19,0x8022,6,0x16,0x19,0x22,0x8087,6,0x19,0x22,0x8087,0x19,0x22, +0x80cd,6,0x19,0x8022,6,0xd,0x19,0x26,0x9f,0x80cd,0x800e,0x19,0x9f,0x80ce,7,0x800e, +0xe,0x8e,8,0x8059,8,0x92,8,0x8038,8,0x96,8,0x8019,3,0xc,0x8038,3, +0x9c,2,0x22,0x25,0x57,0xb6,0xc0,0x80c9,2,0x22,0x8025,2,0xa8,2,0x22,0x25, +0x57,0xa7,0xb6,0xc0,0x80c9,2,0x22,0x54,0x79,0x7b,0xa7,0xb6,0xb7,0x80c2,2,0x8022, +2,0x25,0x80c0,2,0xc0,2,0x80b6,2,0xc5,4,0xa,0xf,0x10,0x15,0x19,0x1a, +0x1f,0x23,0x24,0x89,0x97,0x809e,4,0xa,0xf,0x10,0x15,0x19,0x1a,0x1f,0x23,0x24, +0x89,0x809e,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x3a,0x89,0x91,0x99, +0x9e,0xa0,0xaf,0xb2,0xb3,0xbb,0x80cc,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23, +0x24,0x30,0x3a,0x89,0x91,0x99,0x9e,0xa0,0xaf,0xb2,0xb3,0xbb,0xca,0x80cc,0xa,0x78, +0xa0,0x80b2,0xa,0x10e,4,0x3a,0x8076,4,0x114,0x10,0x80a4,0x10,0x119,0xf,0x809d,0xf, +0x11d,0x23,0x8089,0x23,0x121,0x15,0xbb,0x80cf,0x15,0x125,0x1c,0x34,0x8076,0x1c,0x12a,0xc, +0x19,0x8038,0x8020,0x2a,0x2b,0x2c,0x802d,0x1b,0x805a,0x800a,4,0xa,0x15,0x8089,4,0x800a, +0xa,0x8097,0xa,0x15,0x1a,0x1f,0x23,0x8024,0xa,0x80bb,4,0xa,0x15,0x1a,0x1f,0x21, +0x24,0x89,0x9e,0xbb,0x80cf,0xa,0x8089,0xa,0x15,0x89,0x80cf,0x8004,8,0x19,0x8022,0x19, +0x1b,0x805a,2,0x80a7,0xc,0x38,0x4c,0x58,0x68,0x806b,0xe,0x4c,0x56,0x8068,0xa,0x19, +0x8089,7,0x8019,0x58,0x8075,0xc,0x4c,0x68,0x6c,0x75,0x78,0x807e,2,0x4c,0x80a7,0x11, +0x809a,5,0x11,0x12,0x14,0x16,0x8029,5,0x11,0x12,0x14,0x16,0x1b,0x8029,5,0x11, +0x12,0x14,0x16,0x1b,0x29,0x805a,5,0x11,0x12,0x14,0x8016,0x8011,5,0x11,0x12,0x14, +0x16,0x1b,0x27,0x8029,5,0x11,0x12,0x14,0x16,0x1b,0x27,0x29,0x8083,5,0x8011,0x11, 0x14,0x8016,0x11,0x8019,0xa,0xf,0x10,0x15,0x1a,0x78,0x91,0x97,0x99,0x9d,0x9e,0xa0, -0xa3,0xb2,0x80bb,0xa,0xf,0x10,0x15,0x78,0x91,0x97,0x99,0x9d,0x9e,0xa0,0xa3,0xb2, -0x80bb,0xa,0xf,0x10,0x78,0x91,0x99,0x9d,0x9e,0xa0,0xa3,0x80b2,0xa,0xf,0x10,0x78, -0x91,0x97,0x99,0x9d,0x9e,0xa0,0xa3,0x80b2,0xa,0xa3,0xa,0x8023,0xa,0x10a,0x19,0x1c, -0x804f,0x37,0x804e,2,0x8057,2,0x8025,2,0x115,0x2f,0x31,0x8053,0x2f,0x31,0x80c1,0x2f, -0x8031,2,0x8007,0x79,0x80c2,0x79,0x123,0x89,0x87,0x8087}; +0xa3,0xb2,0xbb,0x80cf,0xa,0xf,0x10,0x15,0x78,0x91,0x97,0x99,0x9d,0x9e,0xa0,0xa3, +0xb2,0xbb,0x80cf,0xa,0xf,0x10,0x78,0x91,0x99,0x9d,0x9e,0xa0,0xa3,0x80b2,0xa,0xf, +0x10,0x78,0x91,0x97,0x99,0x9d,0x9e,0xa0,0xa3,0x80b2,4,0xa,0x80cf,0xa,0x1ea,0xa, +0x8023,0xa,0x1ef,0x19,0x1c,0x804f,0x37,0x804e,2,0x8057,2,0x8025,2,0x1fa,0x2f,0x31, +0x8053,0x2f,0x31,0x80c1,0x2f,0x8031,2,0x8007,0x79,0x80c2,0x79,0x208,0x89,0x121}; + +static const uint16_t block_trieIndex[817]={ +0,0x40,0x80,0xc0,0x100,0x140,0x180,0x1c0,0x200,0x240,0x280,0x2c0,0x300,0x340,0x340,0x340, +0x340,0x340,0x340,0x364,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384, +0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x3c4,0x3fb,0x43b,0x47b,0x47b,0x47b,0x47b,0x47b, +0x47b,0x47b,0x47b,0x47b,0x47b,0x480,0x4c0,0x500,0x540,0x540,0x540,0x540,0x540,0x540,0x570,0x5a5, +0x2df,0x2f9,0x2f9,0x309,0x329,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90,0xa0, +0xb0,0xc0,0xd0,0xe0,0xf0,0x100,0x110,0x120,0x130,0x140,0x150,0x160,0x170,0x180,0x190,0x1a0, +0x1b0,0x1c0,0x1d0,0x1e0,0x1f0,0x200,0x210,0x220,0x230,0x240,0x250,0x260,0x270,0x280,0x290,0x2a0, +0x2b0,0x2c0,0x2d0,0x2e0,0x2f0,0x300,0x310,0x320,0x330,0x340,0x350,0x360,0x370,0x340,0x350,0x360, +0x370,0x340,0x350,0x360,0x370,0x364,0x374,0x384,0x394,0x384,0x394,0x3a4,0x3b4,0x384,0x394,0x3a4, +0x3b4,0x384,0x394,0x3a4,0x3b4,0x384,0x394,0x3a4,0x3b4,0x384,0x394,0x3a4,0x3b4,0x384,0x394,0x3a4, +0x3b4,0x384,0x394,0x3a4,0x3b4,0x384,0x394,0x3a4,0x3b4,0x3c4,0x3d4,0x3e4,0x3f4,0x3fb,0x40b,0x41b, +0x42b,0x43b,0x44b,0x45b,0x46b,0x47b,0x48b,0x49b,0x4ab,0x47b,0x48b,0x49b,0x4ab,0x47b,0x48b,0x49b, +0x4ab,0x47b,0x48b,0x49b,0x4ab,0x47b,0x48b,0x49b,0x4ab,0x480,0x490,0x4a0,0x4b0,0x4c0,0x4d0,0x4e0, +0x4f0,0x500,0x510,0x520,0x530,0x540,0x550,0x560,0x570,0x540,0x550,0x560,0x570,0x540,0x550,0x560, +0x570,0x540,0x550,0x560,0x570,0x540,0x550,0x560,0x570,0x540,0x550,0x560,0x570,0x570,0x580,0x590, +0x5a0,0x5a5,0x5b5,0x5c5,0x5d5,0x5e5,0x5f5,0x605,0x615,0x625,0x635,0x645,0x64d,0x65d,0x66d,0x67d, +0x68d,0x69d,0x6ad,0x6b7,0x6c7,0x6d7,0x6e7,0x6f7,0x707,0x717,0x725,0x735,0x745,0x755,0x765,0x775, +0x785,0x795,0x7a5,0x7b0,0x7c0,0x7d0,0x7d0,0x7d0,0x7d0,0x7e0,0x7eb,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0, +0x7f0,0x7f0,0x7f0,0x7f0,0x7f7,0x807,0x807,0x807,0x807,0x814,0x81a,0x81a,0x81a,0x81a,0x81a,0x81a, +0x81a,0x81a,0x81a,0x81a,0x81a,0x82a,0x82a,0x832,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0, +0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0, +0x7f0,0x842,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x852,0x852,0x85e,0x86e,0x7f0,0x87a,0x886,0x896, +0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6,0x8a6, +0x8b6,0x8b6,0x8b6,0x8c6,0x8c6,0x8d6,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0, +0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x8de,0x8ee,0x8fe,0x905,0x7f0,0x7f0,0x7f0,0x7f0, +0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x915,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0, +0x7f0,0x7f0,0x925,0x925,0x929,0x939,0x949,0x959,0x969,0x979,0x989,0x989,0x989,0x989,0x999,0x999, +0x99e,0x7f0,0x7f0,0x7f0,0x7f0,0x9ae,0x9be,0x9ce,0x9d5,0x7f0,0x9e5,0x9f5,0x7f0,0xa05,0xa15,0xa25, +0x7f0,0x7f0,0xa2e,0xa3e,0xa4e,0x7f0,0xa5e,0xa6e,0xa7e,0xa8e,0xa8e,0xa8e,0xa9e,0xaae,0xabe,0xace, +0xade,0xaee,0x7f0,0x7f0,0x7f0,0x7f0,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, +0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, +0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xb00,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, +0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb1c,0xb2a,0xb2c,0xb2c,0xb2c,0xb2c,0xb2c,0xb2c,0xb2c, +0xb2c,0xb2c,0xb2c,0xb2c,0xb2c,0xb2c,0xb2c,0xb31,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c, +0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3d,0xb4c,0xb4c,0xb56,0x7f0,0x7f0,0x7f0, +0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0xb66,0xb66,0xb74,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0xb84,0xb84, +0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84,0xb84, +0xb84,0xb8f,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb99,0x7f0, +0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0, +0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0xba9, +0xbb9,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0, +0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0x7f0,0xbc9, +0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9, +0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbc9,0xbd9, +0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9, +0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0x45, +0x65,0x79,0x89,0x89,0xa9,0xb5,0xd5,0xf5,0x115,0x131,0x150,0x168,0x179,0x196,0x1b6,0x1d6, +0x1d6,0x1d6,0x1d6,0x1d6,0x1f0,0x209,0x21e,0x23e,0x25b,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f, +0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f, +0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f,0x27f,0x25f,0x25f,0x25f,0x25f,0x25f,0x25f, +0x25f,0x29f,0x29f,0x29f,0x29f,0x29f,0x29f,0x29f,0x29f,0x2bf,0x2bf,0x2bf,0x2bf,0x2bf,0x2bf,0x2bf, +0x2bf +}; + +static const uint16_t block_trieData[3051]={ +1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, +3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4, +4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6, +7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8, +9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, +0x61,0x61,0x61,0xa,0xa,0xa,0xa,0xa,0xa,0xb,0xb,0xb,0xb,0xb,0xb,0xb, +0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc, +0xd,0xd,0xd,0xd,0xd,0x80,0x80,0x80,0xe,0xe,0xe,0xe,0x92,0x92,0x92,0x92, +0xac,0xac,0xac,0xac,0xc6,0xc6,0x117,0x135,0x135,0x135,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, +0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, +0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f, +0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x86,0x86,0x20,0x20,0x20,0x20,0x20,0x20, +0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, +0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, +0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,0x22,0x23,0x23,0x23,0x23,0x23,0x23, +0x62,0x62,0x63,0x63,0x64,0x64,0x65,0x65,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, +0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0xad,0xad,0xad,0xad,0xad, +0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x71,0x71, +0x81,0x81,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xe0,0xe0,0xe0,0xe0,0xe0, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x9b,0x9b,0x9b,0x9b,0xc7,0xc7,0xc7,0xc7, +0x9c,0x9c,0x9c,0x9c,0x9c,0x9d,0x9d,0x9d,0x109,0x11b,0x11b,0x11b,0xdb,0xaf,0xaf,0xaf, +0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x8d,0x8d,0x8d,0x8d,0x83,0x83,0x83,0x83, +0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, +0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27, +0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x29,0x2a,0x2a,0x2a,0x2b,0x2b,0x2b, +0x2c,0x2c,0x2c,0x2c,0x2c,0x2d,0x2d,0x2d,0x2d,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e, +0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f, +0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, +0x31,0x31,0x31,0x31,0x32,0x32,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, +0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x35,0x35,0x36,0x36,0x36,0x36,0x36,0x36, +0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37, +0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x66,0x66,0x66,0x67, +0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, +0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69, +0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a, +0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73, +0x88,0x88,0x88,0x88,0x88,0x88,0x94,0x94,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84, +0x87,0x87,0x87,0x90,0x90,0x90,0x90,0x90,0x85,0x85,0x85,0x85,0x85,0x85,0x9e,0x9e, +0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a, +0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0,0x3c, +0x3d,0x3d,0x3d,0x3d,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, +0x40,0x40,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x42,0x43,0x43,0x82,0x82,0x82,0x6b, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45, +0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46, +0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46, +0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46, +0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46, +0x74,0x74,0x74,0x74,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47, +0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47, +0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47, +0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47, +0x47,0x47,0x47,0x47,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48, +0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48, +0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48, +0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48, +0x48,0x48,0x48,0x48,0x49,0x49,0x49,0x49,0xb0,0xb0,0xb0,0x9f,0x9f,0x9f,0x9f,0x9f, +0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0xa0, +0xa0,0xa0,0xa0,0xa0,0xa0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x8a,0x8a,0x95,0x95,0x95, +0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x8f,0x8f,0x8f,0xb2,0x96, +0x96,0x96,0x96,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xb3,0xb3,0xa2,0xa2,0xa2,0xa3,0xa3, +0xa3,0xb4,0xb4,0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,0xee,0xee,0xa4,0xa4,0xa4,0xa4,0xa4, +0xa4,0xb6,0xb6,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xd5,0xd5,0xc8,0xc8,0xc8,0xe7,0xe7, +0xe7,0xe7,0xff,0xff,0xff,0xff,0xff,0xb8,0xb8,0xb8,0xb8,0x4a,0x4a,0x4a,0x4a,0x4a, +0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a, +0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a, +0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a, +0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0xb9,0xb9,0xb9,0xb9,0xb9, +0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b, +0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b, +0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b, +0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e, +0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e, +0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e, +0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e, +0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f, +0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f, +0x50,0x50,0x50,0x50,0x50,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51, +0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51, +0x51,0x51,0x51,0x51,0x51,0x6c,0x91,0x52,0x53,0x53,0x54,0x54,0x55,0x55,0x55,0x55, +0x55,0x55,0x55,0x55,0x55,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57, +0x57,0x57,0x57,0x57,0x56,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x76, +0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x7f,0x7f,0x7f,0x7f,0x7f,0xa5,0xa5, +0xa5,0xa5,0xa6,0xa6,0xa6,0,0,0,0,0,0,0,0,0xa7,0xa7,0xa8, +0xa8,0xa8,0xa8,0xdf,0xdf,0x58,0x58,0x58,0x59,0x59,0xf1,0xf1,0xf1,0x78,0x78,0x8c, +0x8c,0x8c,0x8c,0,0,0x5a,0x5a,0x5a,0x5a,0x5a,0x79,0x79,0x79,0x7a,0x7a,0x7a, +0x10f,0x10f,0x10f,0x10f,0x10f,0xe2,0xe2,0xe2,0xde,0xde,0xde,0xde,0x13f,0x13f,0x13f,0x13f, +0x13f,0x151,0x151,0x151,0x151,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8, +0xe8,0xe8,0xe8,0xe8,0xe8,0x139,0x139,0x139,0x139,0,0,0,0,0x7b,0x7b,0x7b, +0x7b,0xba,0xba,0xf4,0xf4,0xef,0xef,0xef,0,0,0,0x102,0x102,0x97,0x97,0xa9, +0xa9,0,0,0,0,0xd7,0xd7,0xd6,0xd6,0xd6,0xd6,0xd6,0xd6,0x89,0x89,0x89, +0x89,0x89,0x89,0xbb,0xbb,0xf0,0xf0,0,0,0xea,0xea,0xea,0xea,0xbc,0xbc,0xbc, +0xbc,0xbd,0xbd,0xbe,0xbe,0xf6,0xf6,0xf6,0,0,0,0,0,0xbf,0xbf,0xbf, +0xbf,0xbf,0,0,0,0x104,0x104,0x104,0x104,0x104,0x104,0x104,0x104,0x11d,0x11d,0x11d, +0x11d,0x14a,0x14a,0x14a,0x14a,0x14a,0,0,0,0,0,0,0,0xc0,0xc0,0x134, +0x134,0x134,0x134,0x141,0x141,0x141,0x141,0x122,0x122,0x122,0x123,0x123,0x123,0x123,0x13b,0x13b, +0x13b,0x13b,0x12d,0x12d,0x12d,0x125,0x125,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc1, +0xc1,0xc1,0xc1,0xc1,0xda,0xda,0xda,0xd4,0xd4,0xd4,0xd4,0xd4,0xe9,0xe9,0xe9,0xd9, +0xd9,0xd9,0xd9,0xd9,0xd9,0xf9,0xf9,0xe5,0xe5,0xe5,0xe5,0xe5,0,0,0,0x103, +0x103,0x103,0xe6,0xe6,0xe6,0xe6,0xe6,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0x152, +0x152,0x152,0x152,0x152,0x152,0x152,0x152,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0xfb, +0xfb,0xfb,0xfb,0xfb,0xfb,0,0,0,0,0,0,0,0,0xf8,0xf8,0xf8, +0xf8,0xf8,0xf8,0xf8,0xf8,0xec,0xec,0xec,0xec,0xec,0xec,0x10d,0x10d,0xdc,0xdc,0xdc, +0xdc,0xdc,0x14d,0x14d,0x14d,0xfd,0xfd,0xfd,0xfd,0xfd,0,0,0,0,0,0, +0,0,0,0,0,0x11a,0x11a,0x11a,0x11a,0x11a,0,0,0,0,0,0xfc, +0xfc,0xfc,0xfc,0xfc,0xfc,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0,0,0,0,0x126, +0x126,0x126,0x126,0x126,0x126,0x118,0x118,0x118,0x118,0x118,0x116,0x116,0x116,0x116,0x116,0x116, +0x13e,0xf5,0xf5,0xf5,0xf5,0x144,0x144,0x144,0x144,0x144,0x144,0,0,0,0,0, +0,0x14f,0x14f,0x14f,0x14f,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x10c,0x10c,0x10c,0x10c, +0x10c,0,0,0,0,0x114,0x114,0x114,0x114,0x114,0x114,0x11c,0x11c,0x11c,0x11c,0x11c, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x11f,0x11f, +0x146,0x146,0x146,0x146,0x146,0x146,0,0,0,0,0,0x131,0x12b,0x12b,0x12b,0x12b, +0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, +0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x101,0x101,0x101,0x101,0x101,0x101,0x101,0x101, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x136,0x136,0x136,0x136,0x136,0x136,0x136,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2, +0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0x124,0x124,0x124,0x149,0x149,0x149,0x149,0x149,0x149, +0x149,0x149,0x149,0x149,0x149,0x149,0x149,0x149,0x149,0x149,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0,0,0,0,0,0, +0,0,0x14b,0x14b,0x14b,0x14b,0,0,0,0,0,0,0,0,0,0, +0,0,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca, +0xca,0xca,0xed,0xed,0xed,0x13c,0x13c,0x13c,0x13c,0x13c,0x13c,0xdd,0xdd,0xdd,0xf3,0xf3, +0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0,0,0,0,0,0,0,0x14c,0x14c, +0x14c,0x14c,0,0,0,0,0,0,0,0,0x121,0x121,0x121,0x121,0x121,0x121, +0,0,0,0,0,0,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8, +0,0,0,0,0x10b,0x10b,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110, +0x110,0x110,0x110,0x110,0x110,0x110,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111, +0x111,0x111,0x111,0x111,0x111,0x111,0x130,0x130,0x130,0x130,0x130,0x130,0x130,0x130,0x130,0x130, +0x130,0x130,0x130,0x130,0x130,0x130,0x133,0x133,0x133,0x133,0x133,0x133,0x133,0x133,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x138,0xcb,0xcb, +0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0x113,0x113, +0x113,0x129,0x129,0x129,0x129,0x115,0x115,0x115,0x115,0x115,0x115,0x115,0x115,0x115,0x115,0x115, +0x115,0x115,0x115,0x115,0x115,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xf7, +0,0,0,0,0,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150, +0x150,0x150,0x150,0x150,0x150,0,0,0,0,0x140,0x140,0x140,0x140,0x140,0x140,0x140, +0x140,0x140,0x140,0x140,0x140,0x140,0,0,0,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b, +0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c, +0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x7e,0x7e,0x7e,0x7e,0x7e,0,0, +0,0,0,0,0,0x145,0x145,0x120,0x120,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x9a, +0x9a,0,0,0,0,0,0,0,0,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x106,0x106,0x106,0x106,0x106,0x106,0x106, +0x106,0x106,0x106,0x106,0x106,0x106,0x106,0x106,0x106,0,0,0,0,0,0x13a,0x13a, +0x13a,0x13a,0x13a,0x13a,0x13a,0x13a,0x13a,0x13a,0x13a,0x13a,0x13a,0x13a,0x13a,0x13a,0x10a,0x10a, +0x10a,0x143,0x143,0x143,0x143,0x143,0x143,0,0,0,0,0,0,0,0x127,0x127, +0x127,0x127,0x127,0,0,0,0,0,0,0,0,0,0,0,0x13d,0x13d, +0x13d,0x12c,0x12c,0x12c,0x12c,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x147,0x147,0x147,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x14e,0x14e,0x14e,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x137,0x137,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb, +0xeb,0xeb,0xeb,0,0,0x107,0x107,0x107,0x107,0x107,0x107,0,0,0,0,0, +0,0,0,0,0,0x11e,0x11e,0x11e,0x11e,0x11e,0,0,0,0,0x128,0x128, +0x128,0x128,0x128,0,0,0,0,0,0,0,0,0,0,0,0xd3,0xd3, +0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xaa,0xaa, +0xaa,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xc3,0xc3, +0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc4,0xc4, +0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xcd,0xcd, +0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xce,0xce, +0xce,0xce,0xce,0xf2,0xf2,0xf2,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xd0,0xd0, +0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xe3,0xe3,0xe3,0xe3,0xe3,0xe3,0xe3,0xe3,0xfa,0xfa, +0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0x105,0x105, +0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x119,0x119, +0x119,0x119,0x119,0x119,0x119,0x12a,0x12a,0x12a,0x12a,0x12a,0x12a,0x12a,0x12a,0x12a,0x132,0x132, +0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x5e,0x5e, +0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0,0, +0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5, +0xd1,0xd1,0xd1,0xd1,0xd1,0xd1,0xd1,0xd1,0xd1,0xd1,0xd1,0xd1,0x100,0x100,0x100,0x100, +0x100,0x100,0x100,0x100,0x100,0x100,0x100,0x100,0x100,0x100,0x100,0x100,0x112,0x112,0x112,0x112, +0x112,0x112,0x112,0x112,0x112,0x112,0x112,0x112,0x112,0x112,0x112,0x112,0x148,0x148,0x148,0x148, +0x148,0x148,0x148,0x148,0x148,0x148,0x148,0x148,0x148,0x148,0x148,0x148,0,0,0,0, +0,0,0,0,0,0,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f, +0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x12e,0x12e,0x12e,0x12e,0x12e,0x12e,0x12e,0x12e,0x12e,0x12e,0x12e,0x12e, +0x12e,0x12e,0x12e,0x12e,0x142,0x142,0x142,0x142,0x142,0x142,0x142,0x142,0x142,0x142,0x142,0x142, +0x142,0x142,0x142,0x142,0,0,0,0,0,0x60,0x60,0x60,0x60,0x60,0x60,0x60, +0x60,0,0,0,0,0,0,0,0,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d, +0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d, +0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0,0 +}; + +static const UCPTrie block_trie={ + block_trieIndex, + { block_trieData }, + 817, 3051, + 0x11000, 0x11, + 1, 0, + 0, 0, + 0x25f, 0x7f0, + 0x0, +}; -static const int32_t indexes[UPROPS_INDEX_COUNT]={0x2d4e,0x2d4e,0x2d4e,0x2d4e,0x6d5a,3,0x8aa3,0x8b38,0x8b38,0x8b38,0xb48c8,0x2f75a31,0,0,0,0}; +static const int32_t indexes[UPROPS_INDEX_COUNT]={0x2e8e,0x2e8e,0x2e8e,0x2e8e,0x6db4,3,0x86ce,0x87d5,0x8f67,0x8f67,0x50cf,0x2f75a31,0x152,0,0,0}; #endif // INCLUDED_FROM_UCHAR_C diff --git a/thirdparty/icu4c/common/ucharstrie.cpp b/thirdparty/icu4c/common/ucharstrie.cpp index ba9cea7ba390..4c48323c9176 100644 --- a/thirdparty/icu4c/common/ucharstrie.cpp +++ b/thirdparty/icu4c/common/ucharstrie.cpp @@ -297,7 +297,7 @@ UCharsTrie::findUniqueValueFromBranch(const char16_t *pos, int32_t length, ++pos; // ignore a comparison unit // handle its value int32_t node=*pos++; - UBool isFinal=(UBool)(node>>15); + UBool isFinal = static_cast(node >> 15); node&=0x7fff; int32_t value=readValue(pos, node); pos=skipValue(pos, node); @@ -339,7 +339,7 @@ UCharsTrie::findUniqueValue(const char16_t *pos, UBool haveUniqueValue, int32_t pos+=node-kMinLinearMatch+1; // Ignore the match units. node=*pos++; } else { - UBool isFinal=(UBool)(node>>15); + UBool isFinal = static_cast(node >> 15); int32_t value; if(isFinal) { value=readValue(pos, node&0x7fff); diff --git a/thirdparty/icu4c/common/ucharstriebuilder.cpp b/thirdparty/icu4c/common/ucharstriebuilder.cpp index 95b32711a8e2..bf3216bd1bc0 100644 --- a/thirdparty/icu4c/common/ucharstriebuilder.cpp +++ b/thirdparty/icu4c/common/ucharstriebuilder.cpp @@ -75,7 +75,7 @@ UCharsTrieElement::setTo(const UnicodeString &s, int32_t val, return; } stringOffset=strings.length(); - strings.append((char16_t)length); + strings.append(static_cast(length)); value=val; strings.append(s); } @@ -186,7 +186,7 @@ UCharsTrieBuilder::buildUChars(UStringTrieBuildOption buildOption, UErrorCode &e errorCode=U_MEMORY_ALLOCATION_ERROR; return; } - uprv_sortArray(elements, elementsLength, (int32_t)sizeof(UCharsTrieElement), + uprv_sortArray(elements, elementsLength, static_cast(sizeof(UCharsTrieElement)), compareElementStrings, &strings, false, // need not be a stable sort &errorCode); @@ -351,7 +351,7 @@ UCharsTrieBuilder::write(int32_t unit) { int32_t newLength=ucharsLength+1; if(ensureCapacity(newLength)) { ucharsLength=newLength; - uchars[ucharsCapacity-ucharsLength]=(char16_t)unit; + uchars[ucharsCapacity - ucharsLength] = static_cast(unit); } return ucharsLength; } @@ -379,19 +379,19 @@ UCharsTrieBuilder::writeValueAndFinal(int32_t i, UBool isFinal) { char16_t intUnits[3]; int32_t length; if(i<0 || i>UCharsTrie::kMaxTwoUnitValue) { - intUnits[0]=(char16_t)(UCharsTrie::kThreeUnitValueLead); - intUnits[1]=(char16_t)((uint32_t)i>>16); - intUnits[2]=(char16_t)i; + intUnits[0] = static_cast(UCharsTrie::kThreeUnitValueLead); + intUnits[1] = static_cast(static_cast(i) >> 16); + intUnits[2] = static_cast(i); length=3; // } else if(i<=UCharsTrie::kMaxOneUnitValue) { // intUnits[0]=(char16_t)(i); // length=1; } else { - intUnits[0]=(char16_t)(UCharsTrie::kMinTwoUnitValueLead+(i>>16)); - intUnits[1]=(char16_t)i; + intUnits[0] = static_cast(UCharsTrie::kMinTwoUnitValueLead + (i >> 16)); + intUnits[1] = static_cast(i); length=2; } - intUnits[0]=(char16_t)(intUnits[0]|(isFinal<<15)); + intUnits[0] = static_cast(intUnits[0] | (isFinal << 15)); return write(intUnits, length); } @@ -403,19 +403,19 @@ UCharsTrieBuilder::writeValueAndType(UBool hasValue, int32_t value, int32_t node char16_t intUnits[3]; int32_t length; if(value<0 || value>UCharsTrie::kMaxTwoUnitNodeValue) { - intUnits[0]=(char16_t)(UCharsTrie::kThreeUnitNodeValueLead); - intUnits[1]=(char16_t)((uint32_t)value>>16); - intUnits[2]=(char16_t)value; + intUnits[0] = static_cast(UCharsTrie::kThreeUnitNodeValueLead); + intUnits[1] = static_cast(static_cast(value) >> 16); + intUnits[2] = static_cast(value); length=3; } else if(value<=UCharsTrie::kMaxOneUnitNodeValue) { - intUnits[0]=(char16_t)((value+1)<<6); + intUnits[0] = static_cast((value + 1) << 6); length=1; } else { - intUnits[0]=(char16_t)(UCharsTrie::kMinTwoUnitNodeValueLead+((value>>10)&0x7fc0)); - intUnits[1]=(char16_t)value; + intUnits[0] = static_cast(UCharsTrie::kMinTwoUnitNodeValueLead + ((value >> 10) & 0x7fc0)); + intUnits[1] = static_cast(value); length=2; } - intUnits[0]|=(char16_t)node; + intUnits[0] |= static_cast(node); return write(intUnits, length); } @@ -429,14 +429,14 @@ UCharsTrieBuilder::writeDeltaTo(int32_t jumpTarget) { char16_t intUnits[3]; int32_t length; if(i<=UCharsTrie::kMaxTwoUnitDelta) { - intUnits[0]=(char16_t)(UCharsTrie::kMinTwoUnitDeltaLead+(i>>16)); + intUnits[0] = static_cast(UCharsTrie::kMinTwoUnitDeltaLead + (i >> 16)); length=1; } else { - intUnits[0]=(char16_t)(UCharsTrie::kThreeUnitDeltaLead); - intUnits[1]=(char16_t)(i>>16); + intUnits[0] = static_cast(UCharsTrie::kThreeUnitDeltaLead); + intUnits[1] = static_cast(i >> 16); length=2; } - intUnits[length++]=(char16_t)i; + intUnits[length++] = static_cast(i); return write(intUnits, length); } diff --git a/thirdparty/icu4c/common/ucharstrieiterator.cpp b/thirdparty/icu4c/common/ucharstrieiterator.cpp index 176aed68259c..8a212b8b36da 100644 --- a/thirdparty/icu4c/common/ucharstrieiterator.cpp +++ b/thirdparty/icu4c/common/ucharstrieiterator.cpp @@ -114,7 +114,7 @@ UCharsTrie::Iterator::next(UErrorCode &errorCode) { pos=uchars_+stack_->elementAti(stackSize-2); stack_->setSize(stackSize-2); str_.truncate(length&0xffff); - length=(int32_t)((uint32_t)length>>16); + length = static_cast(static_cast(length) >> 16); if(length>1) { pos=branchNext(pos, length, errorCode); if(pos==nullptr) { @@ -138,7 +138,7 @@ UCharsTrie::Iterator::next(UErrorCode &errorCode) { skipValue_=false; } else { // Deliver value for the string so far. - UBool isFinal=(UBool)(node>>15); + UBool isFinal = static_cast(node >> 15); if(isFinal) { value_=readValue(pos, node&0x7fff); } else { @@ -187,7 +187,7 @@ UCharsTrie::Iterator::branchNext(const char16_t *pos, int32_t length, UErrorCode while(length>kMaxBranchLinearSubNodeLength) { ++pos; // ignore the comparison unit // Push state for the greater-or-equal edge. - stack_->addElement((int32_t)(skipDelta(pos)-uchars_), errorCode); + stack_->addElement(static_cast(skipDelta(pos) - uchars_), errorCode); stack_->addElement(((length-(length>>1))<<16)|str_.length(), errorCode); // Follow the less-than edge. length>>=1; @@ -197,10 +197,10 @@ UCharsTrie::Iterator::branchNext(const char16_t *pos, int32_t length, UErrorCode // Read the first (key, value) pair. char16_t trieUnit=*pos++; int32_t node=*pos++; - UBool isFinal=(UBool)(node>>15); + UBool isFinal = static_cast(node >> 15); int32_t value=readValue(pos, node&=0x7fff); pos=skipValue(pos, node); - stack_->addElement((int32_t)(pos-uchars_), errorCode); + stack_->addElement(static_cast(pos - uchars_), errorCode); stack_->addElement(((length-1)<<16)|str_.length(), errorCode); str_.append(trieUnit); if(isFinal) { diff --git a/thirdparty/icu4c/common/uchriter.cpp b/thirdparty/icu4c/common/uchriter.cpp index c8b86e5d4df3..903eb46c3b34 100644 --- a/thirdparty/icu4c/common/uchriter.cpp +++ b/thirdparty/icu4c/common/uchriter.cpp @@ -172,7 +172,7 @@ UCharCharacterIterator::nextPostInc() { UBool UCharCharacterIterator::hasNext() { - return (UBool)(pos < end ? true : false); + return pos < end; } char16_t @@ -186,7 +186,7 @@ UCharCharacterIterator::previous() { UBool UCharCharacterIterator::hasPrevious() { - return (UBool)(pos > begin ? true : false); + return pos > begin; } UChar32 diff --git a/thirdparty/icu4c/common/ucmndata.cpp b/thirdparty/icu4c/common/ucmndata.cpp index 69575d4e830a..45717ffd712a 100644 --- a/thirdparty/icu4c/common/ucmndata.cpp +++ b/thirdparty/icu4c/common/ucmndata.cpp @@ -108,8 +108,8 @@ strcmpAfterPrefix(const char *s1, const char *s2, int32_t *pPrefixLength) { s1+=pl; s2+=pl; for(;;) { - int32_t c1=(uint8_t)*s1++; - int32_t c2=(uint8_t)*s2++; + int32_t c1 = static_cast(*s1++); + int32_t c2 = static_cast(*s2++); cmp=c1-c2; if(cmp!=0 || c1==0) { /* different or done */ break; @@ -271,7 +271,7 @@ offsetTOCLookupFn(const UDataMemory *pData, static uint32_t U_CALLCONV pointerTOCEntryCount(const UDataMemory *pData) { const PointerTOC *toc = (PointerTOC *)pData->toc; - return (uint32_t)((toc != nullptr) ? (toc->count) : 0); + return toc != nullptr ? toc->count : 0; } static const DataHeader * U_CALLCONV pointerTOCLookupFn(const UDataMemory *pData, diff --git a/thirdparty/icu4c/common/ucnv.cpp b/thirdparty/icu4c/common/ucnv.cpp index 34a5a203d09d..c66200b79323 100644 --- a/thirdparty/icu4c/common/ucnv.cpp +++ b/thirdparty/icu4c/common/ucnv.cpp @@ -916,7 +916,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { * s(U_SUCCESS(*err) && pArgs->flush && pArgs->source==pArgs->sourceLimit && cnv->fromUChar32==0); } else { @@ -941,7 +941,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { for(;;) { /* update offsets if we write any */ if(offsets!=nullptr) { - int32_t length=(int32_t)(pArgs->target-t); + int32_t length = static_cast(pArgs->target - t); if(length>0) { _updateOffsets(offsets, length, sourceIndex, errorInputLength); @@ -956,7 +956,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { } if(sourceIndex>=0) { - sourceIndex+=(int32_t)(pArgs->source-s); + sourceIndex += static_cast(pArgs->source - s); } } @@ -1066,10 +1066,10 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { U_ASSERT(cnv->preFromULength==0); - length=(int32_t)(pArgs->sourceLimit-pArgs->source); + length = static_cast(pArgs->sourceLimit - pArgs->source); if(length>0) { u_memcpy(cnv->preFromU, pArgs->source, length); - cnv->preFromULength=(int8_t)-length; + cnv->preFromULength = static_cast(-length); } pArgs->source=realSource; @@ -1089,7 +1089,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { codePoint=cnv->fromUChar32; errorInputLength=0; U16_APPEND_UNSAFE(cnv->invalidUCharBuffer, errorInputLength, codePoint); - cnv->invalidUCharLength=(int8_t)errorInputLength; + cnv->invalidUCharLength = static_cast(errorInputLength); /* set the converter state to deal with the next character */ cnv->fromUChar32=0; @@ -1134,7 +1134,7 @@ ucnv_outputOverflowFromUnicode(UConverter *cnv, offsets=nullptr; } - overflow=(char *)cnv->charErrorBuffer; + overflow = reinterpret_cast(cnv->charErrorBuffer); length=cnv->charErrorBufferLength; i=0; while(icharErrorBufferLength=(int8_t)j; + cnv->charErrorBufferLength = static_cast(j); *target=t; if(offsets!=nullptr) { *pOffsets=offsets; @@ -1361,7 +1361,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { * s(U_SUCCESS(*err) && pArgs->flush && pArgs->source==pArgs->sourceLimit && cnv->toULength==0); } else { @@ -1386,7 +1386,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { for(;;) { /* update offsets if we write any */ if(offsets!=nullptr) { - int32_t length=(int32_t)(pArgs->target-t); + int32_t length = static_cast(pArgs->target - t); if(length>0) { _updateOffsets(offsets, length, sourceIndex, errorInputLength); @@ -1401,7 +1401,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { } if(sourceIndex>=0) { - sourceIndex+=(int32_t)(pArgs->source-s); + sourceIndex += static_cast(pArgs->source - s); } } @@ -1513,10 +1513,10 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { U_ASSERT(cnv->preToULength==0); - length=(int32_t)(pArgs->sourceLimit-pArgs->source); + length = static_cast(pArgs->sourceLimit - pArgs->source); if(length>0) { uprv_memcpy(cnv->preToU, pArgs->source, length); - cnv->preToULength=(int8_t)-length; + cnv->preToULength = static_cast(-length); } pArgs->source=realSource; @@ -1592,7 +1592,7 @@ ucnv_outputOverflowToUnicode(UConverter *cnv, overflow[j++]=overflow[i++]; } while(iUCharErrorBufferLength=(int8_t)j; + cnv->UCharErrorBufferLength = static_cast(j); *target=t; if(offsets!=nullptr) { *pOffsets=offsets; @@ -2437,7 +2437,7 @@ ucnv_internalConvert(UConverter *outConverter, UConverter *inConverter, false, true, pErrorCode); - targetLength=(int32_t)(myTarget-target); + targetLength = static_cast(myTarget - target); } /* @@ -2460,7 +2460,7 @@ ucnv_internalConvert(UConverter *outConverter, UConverter *inConverter, false, true, pErrorCode); - targetLength+=(int32_t)(myTarget-targetBuffer); + targetLength += static_cast(myTarget - targetBuffer); } while(*pErrorCode==U_BUFFER_OVERFLOW_ERROR); /* done with preflighting, set warnings and errors as appropriate */ @@ -2684,7 +2684,7 @@ ucnv_fixFileSeparator(const UConverter *cnv, U_CAPI UBool U_EXPORT2 ucnv_isAmbiguous(const UConverter *cnv) { - return (UBool)(ucnv_getAmbiguous(cnv)!=nullptr); + return ucnv_getAmbiguous(cnv)!=nullptr; } U_CAPI void U_EXPORT2 diff --git a/thirdparty/icu4c/common/ucnv2022.cpp b/thirdparty/icu4c/common/ucnv2022.cpp index 5989c1b405a7..7572ce477afd 100644 --- a/thirdparty/icu4c/common/ucnv2022.cpp +++ b/thirdparty/icu4c/common/ucnv2022.cpp @@ -436,10 +436,10 @@ fromUWriteUInt8(UConverter *cnv, int32_t sourceIndex, UErrorCode *pErrorCode) { - char *targetChars = (char *)*target; + char* targetChars = reinterpret_cast(*target); ucnv_fromUWriteBytes(cnv, bytes, length, &targetChars, targetLimit, offsets, sourceIndex, pErrorCode); - *target = (uint8_t*)targetChars; + *target = reinterpret_cast(targetChars); } @@ -484,7 +484,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ if(cnv->extraInfo != nullptr) { UConverterNamePieces stackPieces; UConverterLoadArgs stackArgs=UCNV_LOAD_ARGS_INITIALIZER; - UConverterDataISO2022 *myConverterData=(UConverterDataISO2022 *) cnv->extraInfo; + UConverterDataISO2022* myConverterData = static_cast(cnv->extraInfo); uint32_t version; stackArgs.onlyTestIsLoadable = pArgs->onlyTestIsLoadable; @@ -528,12 +528,12 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ } /* set the function pointers to appropriate functions */ - cnv->sharedData=(UConverterSharedData*)(&_ISO2022JPData); + cnv->sharedData = const_cast(&_ISO2022JPData); uprv_strcpy(myConverterData->locale,"ja"); (void)uprv_strcpy(myConverterData->name,"ISO_2022,locale=ja,version="); size_t len = uprv_strlen(myConverterData->name); - myConverterData->name[len]=(char)(myConverterData->version+(int)'0'); + myConverterData->name[len] = static_cast(myConverterData->version + static_cast('0')); myConverterData->name[len+1]='\0'; } #if !UCONFIG_ONLY_HTML_CONVERSION @@ -579,7 +579,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ setInitialStateFromUnicodeKR(cnv, myConverterData); /* set the function pointers to appropriate functions */ - cnv->sharedData=(UConverterSharedData*)&_ISO2022KRData; + cnv->sharedData = const_cast(&_ISO2022KRData); uprv_strcpy(myConverterData->locale,"ko"); } } @@ -606,7 +606,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ /* set the function pointers to appropriate functions */ - cnv->sharedData=(UConverterSharedData*)&_ISO2022CNData; + cnv->sharedData = const_cast(&_ISO2022CNData); uprv_strcpy(myConverterData->locale,"cn"); if (version==0){ @@ -655,7 +655,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ static void U_CALLCONV _ISO2022Close(UConverter *converter) { - UConverterDataISO2022* myData =(UConverterDataISO2022 *) (converter->extraInfo); + UConverterDataISO2022* myData = static_cast(converter->extraInfo); UConverterSharedData **array = myData->myConverterArray; int32_t i; @@ -678,7 +678,7 @@ _ISO2022Close(UConverter *converter) { static void U_CALLCONV _ISO2022Reset(UConverter *converter, UConverterResetChoice choice) { - UConverterDataISO2022 *myConverterData=(UConverterDataISO2022 *) (converter->extraInfo); + UConverterDataISO2022* myConverterData = static_cast(converter->extraInfo); if(choice<=UCNV_RESET_TO_UNICODE) { uprv_memset(&myConverterData->toU2022State, 0, sizeof(ISO2022State)); myConverterData->key = 0; @@ -784,7 +784,7 @@ getKey_2022(char c,int32_t* key,int32_t* offset){ int32_t hi = MAX_STATES_2022; int32_t oldmid=0; - togo = normalize_esq_chars_2022[(uint8_t)c]; + togo = normalize_esq_chars_2022[static_cast(c)]; if(togo == 0) { /* not a valid character anywhere in an escape sequence */ *key = 0; @@ -809,7 +809,7 @@ getKey_2022(char c,int32_t* key,int32_t* offset){ else /*we found it*/{ *key = togo; *offset = mid; - return (UCNV_TableStates_2022)escSeqStateTable_Value_2022[mid]; + return static_cast(escSeqStateTable_Value_2022[mid]); } oldmid = mid; @@ -829,7 +829,7 @@ changeState_2022(UConverter* _this, Variant2022 var, UErrorCode* err){ UCNV_TableStates_2022 value; - UConverterDataISO2022* myData2022 = ((UConverterDataISO2022*)_this->extraInfo); + UConverterDataISO2022* myData2022 = static_cast(_this->extraInfo); uint32_t key = myData2022->key; int32_t offset = 0; int8_t initialToULength = _this->toULength; @@ -838,8 +838,8 @@ changeState_2022(UConverter* _this, value = VALID_NON_TERMINAL_2022; while (*source < sourceLimit) { c = *(*source)++; - _this->toUBytes[_this->toULength++]=(uint8_t)c; - value = getKey_2022(c,(int32_t *) &key, &offset); + _this->toUBytes[_this->toULength++] = static_cast(c); + value = getKey_2022(c, reinterpret_cast(&key), &offset); switch (value){ @@ -910,7 +910,7 @@ changeState_2022(UConverter* _this, #endif case ISO_2022_JP: { - StateEnum tempState=(StateEnum)nextStateToUnicodeJP[offset]; + StateEnum tempState = static_cast(nextStateToUnicodeJP[offset]); switch(tempState) { case INVALID_STATE: *err = U_UNSUPPORTED_ESCAPE_SEQUENCE; @@ -933,7 +933,7 @@ changeState_2022(UConverter* _this, *err = U_UNSUPPORTED_ESCAPE_SEQUENCE; } else { /* G2 charset for SS2 */ - myData2022->toU2022State.cs[2]=(int8_t)tempState; + myData2022->toU2022State.cs[2] = static_cast(tempState); } break; default: @@ -941,7 +941,7 @@ changeState_2022(UConverter* _this, *err = U_UNSUPPORTED_ESCAPE_SEQUENCE; } else { /* G0 charset */ - myData2022->toU2022State.cs[0]=(int8_t)tempState; + myData2022->toU2022State.cs[0] = static_cast(tempState); } break; } @@ -950,7 +950,7 @@ changeState_2022(UConverter* _this, #if !UCONFIG_ONLY_HTML_CONVERSION case ISO_2022_CN: { - StateEnum tempState=(StateEnum)nextStateToUnicodeCN[offset]; + StateEnum tempState = static_cast(nextStateToUnicodeCN[offset]); switch(tempState) { case INVALID_STATE: *err = U_UNSUPPORTED_ESCAPE_SEQUENCE; @@ -986,17 +986,17 @@ changeState_2022(UConverter* _this, case GB2312_1: U_FALLTHROUGH; case CNS_11643_1: - myData2022->toU2022State.cs[1]=(int8_t)tempState; + myData2022->toU2022State.cs[1] = static_cast(tempState); break; case CNS_11643_2: - myData2022->toU2022State.cs[2]=(int8_t)tempState; + myData2022->toU2022State.cs[2] = static_cast(tempState); break; default: /* other CNS 11643 planes */ if(myData2022->version==0) { *err = U_UNSUPPORTED_ESCAPE_SEQUENCE; } else { - myData2022->toU2022State.cs[3]=(int8_t)tempState; + myData2022->toU2022State.cs[3] = static_cast(tempState); } break; } @@ -1039,7 +1039,7 @@ changeState_2022(UConverter* _this, *source-=backOutDistance; } else { /* Back out bytes from the previous buffer: Need to replay them. */ - _this->preToULength=(int8_t)(bytesFromThisBuffer-backOutDistance); + _this->preToULength = static_cast(bytesFromThisBuffer - backOutDistance); /* same as -(initialToULength-1) */ /* preToULength is negative! */ uprv_memcpy(_this->preToU, _this->toUBytes+1, -_this->preToULength); @@ -1145,7 +1145,7 @@ MBCS_FROM_UCHAR32_ISO2022(UConverterSharedData* sharedData, } } else /* outputType==MBCS_OUTPUT_3 */ { p=MBCS_POINTER_3_FROM_STAGE_2(sharedData->mbcs.fromUnicodeBytes, stage2Entry, c); - myValue=((uint32_t)*p<<16)|((uint32_t)p[1]<<8)|p[2]; + myValue = (static_cast(*p) << 16) | (static_cast(p[1]) << 8) | p[2]; if(myValue<=0xff) { length=1; } else if(myValue<=0xffff) { @@ -1201,7 +1201,7 @@ MBCS_SINGLE_FROM_UCHAR32(UConverterSharedData* sharedData, /* get the byte for the output */ value=MBCS_SINGLE_RESULT_FROM_U(table, (uint16_t *)sharedData->mbcs.fromUnicodeBytes, c); /* is this code point assigned, or do we use fallbacks? */ - *retval=(uint32_t)(value&0xff); + *retval = static_cast(value & 0xff); if(value>=0xf00) { return 1; /* roundtrip */ } else if(useFallback ? value>=0x800 : value>=0xc00) { @@ -1219,8 +1219,8 @@ MBCS_SINGLE_FROM_UCHAR32(UConverterSharedData* sharedData, */ static inline uint32_t _2022FromGR94DBCS(uint32_t value) { - if( (uint16_t)(value - 0xa1a1) <= (0xfefe - 0xa1a1) && - (uint8_t)(value - 0xa1) <= (0xfe - 0xa1) + if (static_cast(value - 0xa1a1) <= (0xfefe - 0xa1a1) && + static_cast(value - 0xa1) <= (0xfe - 0xa1) ) { return value - 0x8080; /* shift down to 21..7e byte range */ } else { @@ -1368,12 +1368,12 @@ toUnicodeCallback(UConverter *cnv, const uint32_t sourceChar, const uint32_t targetUniChar, UErrorCode* err){ if(sourceChar>0xff){ - cnv->toUBytes[0] = (uint8_t)(sourceChar>>8); - cnv->toUBytes[1] = (uint8_t)sourceChar; + cnv->toUBytes[0] = static_cast(sourceChar >> 8); + cnv->toUBytes[1] = static_cast(sourceChar); cnv->toULength = 2; } else{ - cnv->toUBytes[0] =(char) sourceChar; + cnv->toUBytes[0] = static_cast(sourceChar); cnv->toULength = 1; } @@ -1527,7 +1527,7 @@ _2022FromSJIS(uint32_t value) { return 0; /* beyond JIS X 0208 */ } - trail = (uint8_t)value; + trail = static_cast(value); value &= 0xff00; /* lead byte */ if(value <= 0x9f00) { @@ -1569,7 +1569,7 @@ _2022ToSJIS(uint8_t c1, uint8_t c2, char bytes[2]) { c2 = 0; /* invalid */ } } else { - if((uint8_t)(c2-0x21) <= ((0x7e)-0x21)) { + if (static_cast(c2 - 0x21) <= ((0x7e) - 0x21)) { c2 += 0x7e; } else { c2 = 0; /* invalid */ @@ -1583,8 +1583,8 @@ _2022ToSJIS(uint8_t c1, uint8_t c2, char bytes[2]) { } else { c1 = 0; /* invalid */ } - bytes[0] = (char)c1; - bytes[1] = (char)c2; + bytes[0] = static_cast(c1); + bytes[1] = static_cast(c2); } /* @@ -1665,8 +1665,8 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args UConverter *cnv = args->converter; UConverterDataISO2022 *converterData; ISO2022State *pFromU2022State; - uint8_t *target = (uint8_t *) args->target; - const uint8_t *targetLimit = (const uint8_t *) args->targetLimit; + uint8_t* target = reinterpret_cast(args->target); + const uint8_t* targetLimit = reinterpret_cast(args->targetLimit); const char16_t* source = args->source; const char16_t* sourceLimit = args->sourceLimit; int32_t* offsets = args->offsets; @@ -1682,7 +1682,7 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args int8_t cs, g; /* set up the state */ - converterData = (UConverterDataISO2022*)cnv->extraInfo; + converterData = static_cast(cnv->extraInfo); pFromU2022State = &converterData->fromU2022State; choiceCount = 0; @@ -1703,7 +1703,7 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /*look ahead to find the trail surrogate*/ if(source < sourceLimit) { /* test the following code unit */ - char16_t trail=(char16_t) *source; + char16_t trail = *source; if(U16_IS_TRAIL(trail)) { source++; sourceChar=U16_GET_SUPPLEMENTARY(sourceChar, trail); @@ -1753,7 +1753,7 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /* JIS7/8: try single-byte half-width Katakana before JISX208 */ if(converterData->version == 3 || converterData->version == 4) { - choices[choiceCount++] = (int8_t)HWKANA_7BIT; + choices[choiceCount++] = static_cast(HWKANA_7BIT); } /* Do not try single-byte half-width Katakana for other versions. */ csm &= ~CSM(HWKANA_7BIT); @@ -1770,7 +1770,7 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /* try all the other possible charsets */ for(i = 0; i < UPRV_LENGTHOF(jpCharsetPref); ++i) { - cs = (int8_t)jpCharsetPref[i]; + cs = static_cast(jpCharsetPref[i]); if(CSM(cs) & csm) { choices[choiceCount++] = cs; csm &= ~CSM(cs); @@ -1800,7 +1800,7 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args switch(cs0) { case ASCII: if(sourceChar <= 0x7f) { - targetValue = (uint32_t)sourceChar; + targetValue = static_cast(sourceChar); len = 1; cs = cs0; g = 0; @@ -1808,31 +1808,31 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args break; case ISO8859_1: if(GR96_START <= sourceChar && sourceChar <= GR96_END) { - targetValue = (uint32_t)sourceChar - 0x80; + targetValue = static_cast(sourceChar) - 0x80; len = 1; cs = cs0; g = 2; } break; case HWKANA_7BIT: - if((uint32_t)(sourceChar - HWKANA_START) <= (HWKANA_END - HWKANA_START)) { + if (static_cast(sourceChar - HWKANA_START) <= (HWKANA_END - HWKANA_START)) { if(converterData->version==3) { /* JIS7: use G1 (SO) */ /* Shift U+FF61..U+FF9F to bytes 21..5F. */ - targetValue = (uint32_t)(sourceChar - (HWKANA_START - 0x21)); + targetValue = static_cast(sourceChar - (HWKANA_START - 0x21)); len = 1; pFromU2022State->cs[1] = cs = cs0; /* do not output an escape sequence */ g = 1; } else if(converterData->version==4) { /* JIS8: use 8-bit bytes with any single-byte charset, see escape sequence output below */ /* Shift U+FF61..U+FF9F to bytes A1..DF. */ - targetValue = (uint32_t)(sourceChar - (HWKANA_START - 0xa1)); + targetValue = static_cast(sourceChar - (HWKANA_START - 0xa1)); len = 1; cs = pFromU2022State->cs[0]; if(IS_JP_DBCS(cs)) { /* switch from a DBCS charset to JISX201 */ - cs = (int8_t)JISX201; + cs = static_cast(JISX201); } /* else stay in the current G0 charset */ g = 0; @@ -1867,7 +1867,7 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args useFallback = false; } } else if(len == 0 && useFallback && - (uint32_t)(sourceChar - HWKANA_START) <= (HWKANA_END - HWKANA_START)) { + static_cast(sourceChar - HWKANA_START) <= (HWKANA_END - HWKANA_START)) { targetValue = hwkana_fb[sourceChar - HWKANA_START]; len = -2; cs = cs0; @@ -1958,10 +1958,10 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /* write the output bytes */ if(len == 1) { - buffer[outLen++] = (char)targetValue; + buffer[outLen++] = static_cast(targetValue); } else /* len == 2 */ { - buffer[outLen++] = (char)(targetValue >> 8); - buffer[outLen++] = (char)targetValue; + buffer[outLen++] = static_cast(targetValue >> 8); + buffer[outLen++] = static_cast(targetValue); } } else { /* @@ -1983,13 +1983,13 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args if(outLen == 1) { *target++ = buffer[0]; if(offsets) { - *offsets++ = (int32_t)(source - args->source - 1); /* -1: known to be ASCII */ + *offsets++ = static_cast(source - args->source - 1); /* -1: known to be ASCII */ } } else if(outLen == 2 && (target + 2) <= targetLimit) { *target++ = buffer[0]; *target++ = buffer[1]; if(offsets) { - int32_t sourceIndex = (int32_t)(source - args->source - U16_LENGTH(sourceChar)); + int32_t sourceIndex = static_cast(source - args->source - U16_LENGTH(sourceChar)); *offsets++ = sourceIndex; *offsets++ = sourceIndex; } @@ -1997,8 +1997,8 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args fromUWriteUInt8( cnv, buffer, outLen, - &target, (const char *)targetLimit, - &offsets, (int32_t)(source - args->source - U16_LENGTH(sourceChar)), + &target, reinterpret_cast(targetLimit), + &offsets, static_cast(source - args->source - U16_LENGTH(sourceChar)), err); if(U_FAILURE(*err)) { break; @@ -2039,7 +2039,7 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args int32_t escLen = escSeqCharsLen[ASCII]; uprv_memcpy(buffer + outLen, escSeqChars[ASCII], escLen); outLen += escLen; - pFromU2022State->cs[0] = (int8_t)ASCII; + pFromU2022State->cs[0] = static_cast(ASCII); } /* get the source index of the last input character */ @@ -2050,7 +2050,7 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args * this code gives an incorrect result for the rare case of an unmatched * trail surrogate that is alone in the last buffer of the text stream */ - sourceIndex=(int32_t)(source-args->source); + sourceIndex = static_cast(source - args->source); if(sourceIndex>0) { --sourceIndex; if( U16_IS_TRAIL(args->source[sourceIndex]) && @@ -2065,14 +2065,14 @@ UConverter_fromUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args fromUWriteUInt8( cnv, buffer, outLen, - &target, (const char *)targetLimit, + &target, reinterpret_cast(targetLimit), &offsets, sourceIndex, err); } /*save the state and return */ args->source = source; - args->target = (char*)target; + args->target = reinterpret_cast(target); } /*************** to unicode *******************/ @@ -2081,7 +2081,7 @@ static void U_CALLCONV UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCode* err){ char tempBuf[2]; - const char *mySource = (char *) args->source; + const char* mySource = const_cast(args->source); char16_t *myTarget = args->target; const char *mySourceLimit = args->sourceLimit; uint32_t targetUniChar = 0x0000; @@ -2091,7 +2091,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, ISO2022State *pToU2022State; StateEnum cs; - myData=(UConverterDataISO2022*)(args->converter->extraInfo); + myData = static_cast(args->converter->extraInfo); pToU2022State = &myData->toU2022State; if(myData->key != 0) { @@ -2101,7 +2101,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, /* continue with a partial double-byte character */ mySourceChar = args->converter->toUBytes[0]; args->converter->toULength = 0; - cs = (StateEnum)pToU2022State->cs[pToU2022State->g]; + cs = static_cast(pToU2022State->cs[pToU2022State->g]); targetUniChar = missingCharMarker; goto getTrailByte; } @@ -2112,7 +2112,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, if(myTarget < args->targetLimit){ - mySourceChar= (unsigned char) *mySource++; + mySourceChar = static_cast(*mySource++); switch(mySourceChar) { case UCNV_SI: @@ -2128,7 +2128,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, case UCNV_SO: if(myData->version==3) { /* JIS7: switch to G1 half-width Katakana */ - pToU2022State->cs[1] = (int8_t)HWKANA_7BIT; + pToU2022State->cs[1] = static_cast(HWKANA_7BIT); pToU2022State->g=1; continue; } else { @@ -2151,7 +2151,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, if(myData->version==0 && myData->key==0 && U_SUCCESS(*err) && myData->isEmptySegment) { *err = U_ILLEGAL_ESCAPE_SEQUENCE; args->converter->toUCallbackReason = UCNV_IRREGULAR; - args->converter->toULength = (int8_t)(toULengthBefore + (mySource - mySourceBefore)); + args->converter->toULength = static_cast(toULengthBefore + (mySource - mySourceBefore)); } } @@ -2173,8 +2173,9 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, case CR: case LF: /* automatically reset to single-byte mode */ - if((StateEnum)pToU2022State->cs[0] != ASCII && (StateEnum)pToU2022State->cs[0] != JISX201) { - pToU2022State->cs[0] = (int8_t)ASCII; + if (static_cast(pToU2022State->cs[0]) != ASCII && + static_cast(pToU2022State->cs[0]) != JISX201) { + pToU2022State->cs[0] = static_cast(ASCII); } pToU2022State->cs[2] = 0; pToU2022State->g = 0; @@ -2182,8 +2183,8 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, default: /* convert one or two bytes */ myData->isEmptySegment = false; - cs = (StateEnum)pToU2022State->cs[pToU2022State->g]; - if( (uint8_t)(mySourceChar - 0xa1) <= (0xdf - 0xa1) && myData->version==4 && + cs = static_cast(pToU2022State->cs[pToU2022State->g]); + if (static_cast(mySourceChar - 0xa1) <= (0xdf - 0xa1) && myData->version == 4 && !IS_JP_DBCS(cs) ) { /* 8-bit halfwidth katakana in any single-byte mode for JIS8 */ @@ -2223,7 +2224,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, } break; case HWKANA_7BIT: - if((uint8_t)(mySourceChar - 0x21) <= (0x5f - 0x21)) { + if (static_cast(mySourceChar - 0x21) <= (0x5f - 0x21)) { /* 7-bit halfwidth Katakana */ targetUniChar = mySourceChar + (HWKANA_START - 0x21); } @@ -2234,7 +2235,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, int leadIsOk, trailIsOk; uint8_t trailByte; getTrailByte: - trailByte = (uint8_t)*mySource; + trailByte = static_cast(*mySource); /* * Ticket 5691: consistent illegal sequences: * - We include at least the first byte in the illegal sequence. @@ -2245,13 +2246,13 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, * an ESC/SO/SI, we report only the first byte as the illegal sequence. * Otherwise we convert or report the pair of bytes. */ - leadIsOk = (uint8_t)(mySourceChar - 0x21) <= (0x7e - 0x21); - trailIsOk = (uint8_t)(trailByte - 0x21) <= (0x7e - 0x21); + leadIsOk = static_cast(mySourceChar - 0x21) <= (0x7e - 0x21); + trailIsOk = static_cast(trailByte - 0x21) <= (0x7e - 0x21); if (leadIsOk && trailIsOk) { ++mySource; tmpSourceChar = (mySourceChar << 8) | trailByte; if(cs == JISX208) { - _2022ToSJIS((uint8_t)mySourceChar, trailByte, tempBuf); + _2022ToSJIS(static_cast(mySourceChar), trailByte, tempBuf); mySourceChar = tmpSourceChar; } else { /* Copy before we modify tmpSourceChar so toUnicodeCallback() sees the correct bytes. */ @@ -2259,8 +2260,8 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, if (cs == KSC5601) { tmpSourceChar += 0x8080; /* = _2022ToGR94DBCS(tmpSourceChar) */ } - tempBuf[0] = (char)(tmpSourceChar >> 8); - tempBuf[1] = (char)(tmpSourceChar); + tempBuf[0] = static_cast(tmpSourceChar >> 8); + tempBuf[1] = static_cast(tmpSourceChar); } targetUniChar = ucnv_MBCSSimpleGetNextUChar(myData->myConverterArray[cs], tempBuf, 2, false); } else if (!(trailIsOk || IS_2022_CONTROL(trailByte))) { @@ -2270,7 +2271,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, mySourceChar = 0x10000 | (mySourceChar << 8) | trailByte; } } else { - args->converter->toUBytes[0] = (uint8_t)mySourceChar; + args->converter->toUBytes[0] = static_cast(mySourceChar); args->converter->toULength = 1; goto endloop; } @@ -2279,27 +2280,27 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, } /* End of outer switch */ if(targetUniChar < (missingCharMarker-1/*0xfffe*/)){ if(args->offsets){ - args->offsets[myTarget - args->target] = (int32_t)(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); + args->offsets[myTarget - args->target] = static_cast(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); } - *(myTarget++)=(char16_t)targetUniChar; + *(myTarget++) = static_cast(targetUniChar); } else if(targetUniChar > missingCharMarker){ /* disassemble the surrogate pair and write to output*/ targetUniChar-=0x0010000; - *myTarget = (char16_t)(0xd800+(char16_t)(targetUniChar>>10)); + *myTarget = static_cast(0xd800 + static_cast(targetUniChar >> 10)); if(args->offsets){ - args->offsets[myTarget - args->target] = (int32_t)(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); + args->offsets[myTarget - args->target] = static_cast(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); } ++myTarget; if(myTarget< args->targetLimit){ - *myTarget = (char16_t)(0xdc00+(char16_t)(targetUniChar&0x3ff)); + *myTarget = static_cast(0xdc00 + static_cast(targetUniChar & 0x3ff)); if(args->offsets){ - args->offsets[myTarget - args->target] = (int32_t)(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); + args->offsets[myTarget - args->target] = static_cast(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); } ++myTarget; }else{ args->converter->UCharErrorBuffer[args->converter->UCharErrorBufferLength++]= - (char16_t)(0xdc00+(char16_t)(targetUniChar&0x3ff)); + static_cast(0xdc00 + static_cast(targetUniChar & 0x3ff)); } } @@ -2333,7 +2334,7 @@ static void U_CALLCONV UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(UConverterFromUnicodeArgs* args, UErrorCode* err){ UConverter* saveConv = args->converter; - UConverterDataISO2022 *myConverterData=(UConverterDataISO2022*)saveConv->extraInfo; + UConverterDataISO2022* myConverterData = static_cast(saveConv->extraInfo); args->converter=myConverterData->currentConverter; myConverterData->currentConverter->fromUChar32 = saveConv->fromUChar32; @@ -2358,8 +2359,8 @@ UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args const char16_t *source = args->source; const char16_t *sourceLimit = args->sourceLimit; - unsigned char *target = (unsigned char *) args->target; - unsigned char *targetLimit = (unsigned char *) args->targetLimit; + unsigned char *target = reinterpret_cast(args->target); + unsigned char *targetLimit = reinterpret_cast(const_cast(args->targetLimit)); int32_t* offsets = args->offsets; uint32_t targetByteUnit = 0x0000; UChar32 sourceChar = 0x0000; @@ -2370,7 +2371,7 @@ UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args UBool useFallback; int32_t length =0; - converterData=(UConverterDataISO2022*)args->converter->extraInfo; + converterData = static_cast(args->converter->extraInfo); /* if the version is 1 then the user is requesting * conversion with ibm-25546 pass the arguments to * MBCS converter and return @@ -2383,10 +2384,10 @@ UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /* initialize data */ sharedData = converterData->currentConverter->sharedData; useFallback = args->converter->useFallback; - isTargetByteDBCS=(UBool)args->converter->fromUnicodeStatus; + isTargetByteDBCS = static_cast(args->converter->fromUnicodeStatus); oldIsTargetByteDBCS = isTargetByteDBCS; - isTargetByteDBCS = (UBool) args->converter->fromUnicodeStatus; + isTargetByteDBCS = static_cast(args->converter->fromUnicodeStatus); if((sourceChar = args->converter->fromUChar32)!=0 && target 2 || length==0 || (length == 1 && targetByteUnit > 0x7f) || (length == 2 && - ((uint16_t)(targetByteUnit - 0xa1a1) > (0xfefe - 0xa1a1) || - (uint8_t)(targetByteUnit - 0xa1) > (0xfe - 0xa1))) + (static_cast(targetByteUnit - 0xa1a1) > (0xfefe - 0xa1a1) || + static_cast(targetByteUnit - 0xa1) > (0xfe - 0xa1))) ) { targetByteUnit=missingCharMarker; } if (targetByteUnit != missingCharMarker){ oldIsTargetByteDBCS = isTargetByteDBCS; - isTargetByteDBCS = (UBool)(targetByteUnit>0x00FF); + isTargetByteDBCS = static_cast(targetByteUnit > 0x00FF); /* append the shift sequence */ if (oldIsTargetByteDBCS != isTargetByteDBCS ){ @@ -2431,38 +2432,38 @@ UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args else *target++ = UCNV_SI; if(offsets) - *(offsets++) = (int32_t)(source - args->source-1); + *(offsets++) = static_cast(source - args->source - 1); } /* write the targetUniChar to target */ if(targetByteUnit <= 0x00FF){ if( target < targetLimit){ - *(target++) = (unsigned char) targetByteUnit; + *(target++) = static_cast(targetByteUnit); if(offsets){ - *(offsets++) = (int32_t)(source - args->source-1); + *(offsets++) = static_cast(source - args->source - 1); } }else{ - args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) (targetByteUnit); + args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = static_cast(targetByteUnit); *err = U_BUFFER_OVERFLOW_ERROR; } }else{ if(target < targetLimit){ - *(target++) =(unsigned char) ((targetByteUnit>>8) -0x80); + *(target++) = static_cast((targetByteUnit >> 8) - 0x80); if(offsets){ - *(offsets++) = (int32_t)(source - args->source-1); + *(offsets++) = static_cast(source - args->source - 1); } if(target < targetLimit){ - *(target++) =(unsigned char) (targetByteUnit -0x80); + *(target++) = static_cast(targetByteUnit - 0x80); if(offsets){ - *(offsets++) = (int32_t)(source - args->source-1); + *(offsets++) = static_cast(source - args->source - 1); } }else{ - args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) (targetByteUnit -0x80); + args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = static_cast(targetByteUnit - 0x80); *err = U_BUFFER_OVERFLOW_ERROR; } }else{ - args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) ((targetByteUnit>>8) -0x80); - args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) (targetByteUnit-0x80); + args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = static_cast((targetByteUnit >> 8) - 0x80); + args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = static_cast(targetByteUnit - 0x80); *err = U_BUFFER_OVERFLOW_ERROR; } } @@ -2480,7 +2481,7 @@ UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /*look ahead to find the trail surrogate*/ if(source < sourceLimit) { /* test the following code unit */ - char16_t trail=(char16_t) *source; + char16_t trail = *source; if(U16_IS_TRAIL(trail)) { source++; sourceChar=U16_GET_SUPPLEMENTARY(sourceChar, trail); @@ -2544,7 +2545,7 @@ UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args * this code gives an incorrect result for the rare case of an unmatched * trail surrogate that is alone in the last buffer of the text stream */ - sourceIndex=(int32_t)(source-args->source); + sourceIndex = static_cast(source - args->source); if(sourceIndex>0) { --sourceIndex; if( U16_IS_TRAIL(args->source[sourceIndex]) && @@ -2559,15 +2560,15 @@ UConverter_fromUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args fromUWriteUInt8( args->converter, SHIFT_IN_STR, 1, - &target, (const char *)targetLimit, + &target, reinterpret_cast(targetLimit), &offsets, sourceIndex, err); } /*save the state and return */ args->source = source; - args->target = (char*)target; - args->converter->fromUnicodeStatus = (uint32_t)isTargetByteDBCS; + args->target = reinterpret_cast(target); + args->converter->fromUnicodeStatus = static_cast(isTargetByteDBCS); } /************************ To Unicode ***************************************/ @@ -2576,7 +2577,7 @@ static void U_CALLCONV UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(UConverterToUnicodeArgs *args, UErrorCode* err){ char const* sourceStart; - UConverterDataISO2022* myData=(UConverterDataISO2022*)(args->converter->extraInfo); + UConverterDataISO2022* myData = static_cast(args->converter->extraInfo); UConverterToUnicodeArgs subArgs; int32_t minArgsSize; @@ -2585,11 +2586,11 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(UConverterToUnicodeArgs *args if(args->sizesize; } else { - minArgsSize = (int32_t)sizeof(UConverterToUnicodeArgs); + minArgsSize = static_cast(sizeof(UConverterToUnicodeArgs)); } uprv_memcpy(&subArgs, args, minArgsSize); - subArgs.size = (uint16_t)minArgsSize; + subArgs.size = static_cast(minArgsSize); subArgs.converter = myData->currentConverter; /* remember the original start of the input for offsets */ @@ -2628,7 +2629,7 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(UConverterToUnicodeArgs *args /* update offsets to base them on the actual start of the input */ int32_t *offsets = args->offsets; char16_t *target = args->target; - int32_t delta = (int32_t)(args->source - sourceStart); + int32_t delta = static_cast(args->source - sourceStart); while(target < subArgs.target) { if(*offsets >= 0) { *offsets += delta; @@ -2674,7 +2675,7 @@ static void U_CALLCONV UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCode* err){ char tempBuf[2]; - const char *mySource = ( char *) args->source; + const char* mySource = const_cast(args->source); char16_t *myTarget = args->target; const char *mySourceLimit = args->sourceLimit; UChar32 targetUniChar = 0x0000; @@ -2683,7 +2684,7 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UConverterSharedData* sharedData ; UBool useFallback; - myData=(UConverterDataISO2022*)(args->converter->extraInfo); + myData = static_cast(args->converter->extraInfo); if(myData->version==1){ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(args,err); return; @@ -2707,7 +2708,7 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, if(myTarget < args->targetLimit){ - mySourceChar= (unsigned char) *mySource++; + mySourceChar = static_cast(*mySource++); if(mySourceChar==UCNV_SI){ myData->toU2022State.g = 0; @@ -2715,7 +2716,7 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, myData->isEmptySegment = false; /* we are handling it, reset to avoid future spurious errors */ *err = U_ILLEGAL_ESCAPE_SEQUENCE; args->converter->toUCallbackReason = UCNV_IRREGULAR; - args->converter->toUBytes[0] = (uint8_t)mySourceChar; + args->converter->toUBytes[0] = static_cast(mySourceChar); args->converter->toULength = 1; args->target = myTarget; args->source = mySource; @@ -2749,7 +2750,7 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, uint8_t trailByte; getTrailByte: targetUniChar = missingCharMarker; - trailByte = (uint8_t)*mySource; + trailByte = static_cast(*mySource); /* * Ticket 5691: consistent illegal sequences: * - We include at least the first byte in the illegal sequence. @@ -2760,12 +2761,12 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, * an ESC/SO/SI, we report only the first byte as the illegal sequence. * Otherwise we convert or report the pair of bytes. */ - leadIsOk = (uint8_t)(mySourceChar - 0x21) <= (0x7e - 0x21); - trailIsOk = (uint8_t)(trailByte - 0x21) <= (0x7e - 0x21); + leadIsOk = static_cast(mySourceChar - 0x21) <= (0x7e - 0x21); + trailIsOk = static_cast(trailByte - 0x21) <= (0x7e - 0x21); if (leadIsOk && trailIsOk) { ++mySource; - tempBuf[0] = (char)(mySourceChar + 0x80); - tempBuf[1] = (char)(trailByte + 0x80); + tempBuf[0] = static_cast(mySourceChar + 0x80); + tempBuf[1] = static_cast(trailByte + 0x80); targetUniChar = ucnv_MBCSSimpleGetNextUChar(sharedData, tempBuf, 2, useFallback); mySourceChar = (mySourceChar << 8) | trailByte; } else if (!(trailIsOk || IS_2022_CONTROL(trailByte))) { @@ -2775,7 +2776,7 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, mySourceChar = static_cast(0x10000 | (mySourceChar << 8) | trailByte); } } else { - args->converter->toUBytes[0] = (uint8_t)mySourceChar; + args->converter->toUBytes[0] = static_cast(mySourceChar); args->converter->toULength = 1; break; } @@ -2787,9 +2788,9 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, } if(targetUniChar < 0xfffe){ if(args->offsets) { - args->offsets[myTarget - args->target] = (int32_t)(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); + args->offsets[myTarget - args->target] = static_cast(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); } - *(myTarget++)=(char16_t)targetUniChar; + *(myTarget++) = static_cast(targetUniChar); } else { /* Call the callback function*/ @@ -2917,8 +2918,8 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args UConverter *cnv = args->converter; UConverterDataISO2022 *converterData; ISO2022State *pFromU2022State; - uint8_t *target = (uint8_t *) args->target; - const uint8_t *targetLimit = (const uint8_t *) args->targetLimit; + uint8_t* target = reinterpret_cast(args->target); + const uint8_t* targetLimit = reinterpret_cast(args->targetLimit); const char16_t* source = args->source; const char16_t* sourceLimit = args->sourceLimit; int32_t* offsets = args->offsets; @@ -2931,7 +2932,7 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args UBool useFallback; /* set up the state */ - converterData = (UConverterDataISO2022*)cnv->extraInfo; + converterData = static_cast(cnv->extraInfo); pFromU2022State = &converterData->fromU2022State; choiceCount = 0; @@ -2952,7 +2953,7 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /*look ahead to find the trail surrogate*/ if(source < sourceLimit) { /* test the following code unit */ - char16_t trail=(char16_t) *source; + char16_t trail = *source; if(U16_IS_TRAIL(trail)) { source++; sourceChar=U16_GET_SUPPLEMENTARY(sourceChar, trail); @@ -2992,11 +2993,11 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /* US-ASCII */ if(pFromU2022State->g == 0) { - buffer[0] = (char)sourceChar; + buffer[0] = static_cast(sourceChar); len = 1; } else { buffer[0] = UCNV_SI; - buffer[1] = (char)sourceChar; + buffer[1] = static_cast(sourceChar); len = 2; pFromU2022State->g = 0; choiceCount = 0; @@ -3026,9 +3027,9 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /* try the other SO/G1 converter; a CNS_11643_1 lookup may result in any plane */ if(choices[0] == GB2312_1) { - choices[1] = (int8_t)CNS_11643_1; + choices[1] = static_cast(CNS_11643_1); } else { - choices[1] = (int8_t)GB2312_1; + choices[1] = static_cast(GB2312_1); } choiceCount = 2; @@ -3038,23 +3039,23 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args /* try one of the other converters */ switch(choices[0]) { case GB2312_1: - choices[1] = (int8_t)CNS_11643_1; - choices[2] = (int8_t)ISO_IR_165; + choices[1] = static_cast(CNS_11643_1); + choices[2] = static_cast(ISO_IR_165); break; case ISO_IR_165: - choices[1] = (int8_t)GB2312_1; - choices[2] = (int8_t)CNS_11643_1; + choices[1] = static_cast(GB2312_1); + choices[2] = static_cast(CNS_11643_1); break; default: /* CNS_11643_x */ - choices[1] = (int8_t)GB2312_1; - choices[2] = (int8_t)ISO_IR_165; + choices[1] = static_cast(GB2312_1); + choices[2] = static_cast(ISO_IR_165); break; } choiceCount = 3; } else { - choices[0] = (int8_t)CNS_11643_1; - choices[1] = (int8_t)GB2312_1; + choices[0] = static_cast(CNS_11643_1); + choices[1] = static_cast(GB2312_1); } } @@ -3087,7 +3088,7 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args MBCS_OUTPUT_3); if(len2 == 3 || (len2 == -3 && len == 0)) { targetValue = value; - cs = (int8_t)(CNS_11643_0 + (value >> 16) - 0x80); + cs = static_cast(CNS_11643_0 + (value >> 16) - 0x80); if(len2 >= 0) { len = 2; } else { @@ -3165,8 +3166,8 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args } /* write the two output bytes */ - buffer[len++] = (char)(targetValue >> 8); - buffer[len++] = (char)targetValue; + buffer[len++] = static_cast(targetValue >> 8); + buffer[len++] = static_cast(targetValue); } else { /* if we cannot find the character after checking all codepages * then this is an error @@ -3181,13 +3182,13 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args if(len == 1) { *target++ = buffer[0]; if(offsets) { - *offsets++ = (int32_t)(source - args->source - 1); /* -1: known to be ASCII */ + *offsets++ = static_cast(source - args->source - 1); /* -1: known to be ASCII */ } } else if(len == 2 && (target + 2) <= targetLimit) { *target++ = buffer[0]; *target++ = buffer[1]; if(offsets) { - int32_t sourceIndex = (int32_t)(source - args->source - U16_LENGTH(sourceChar)); + int32_t sourceIndex = static_cast(source - args->source - U16_LENGTH(sourceChar)); *offsets++ = sourceIndex; *offsets++ = sourceIndex; } @@ -3195,8 +3196,8 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args fromUWriteUInt8( cnv, buffer, len, - &target, (const char *)targetLimit, - &offsets, (int32_t)(source - args->source - U16_LENGTH(sourceChar)), + &target, reinterpret_cast(targetLimit), + &offsets, static_cast(source - args->source - U16_LENGTH(sourceChar)), err); if(U_FAILURE(*err)) { break; @@ -3237,7 +3238,7 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args * this code gives an incorrect result for the rare case of an unmatched * trail surrogate that is alone in the last buffer of the text stream */ - sourceIndex=(int32_t)(source-args->source); + sourceIndex = static_cast(source - args->source); if(sourceIndex>0) { --sourceIndex; if( U16_IS_TRAIL(args->source[sourceIndex]) && @@ -3252,14 +3253,14 @@ UConverter_fromUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterFromUnicodeArgs* args fromUWriteUInt8( cnv, SHIFT_IN_STR, 1, - &target, (const char *)targetLimit, + &target, reinterpret_cast(targetLimit), &offsets, sourceIndex, err); } /*save the state and return */ args->source = source; - args->target = (char*)target; + args->target = reinterpret_cast(target); } @@ -3267,7 +3268,7 @@ static void U_CALLCONV UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCode* err){ char tempBuf[3]; - const char *mySource = (char *) args->source; + const char* mySource = const_cast(args->source); char16_t *myTarget = args->target; const char *mySourceLimit = args->sourceLimit; uint32_t targetUniChar = 0x0000; @@ -3275,7 +3276,7 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UConverterDataISO2022* myData; ISO2022State *pToU2022State; - myData=(UConverterDataISO2022*)(args->converter->extraInfo); + myData = static_cast(args->converter->extraInfo); pToU2022State = &myData->toU2022State; if(myData->key != 0) { @@ -3295,7 +3296,7 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, if(myTarget < args->targetLimit){ - mySourceChar= (unsigned char) *mySource++; + mySourceChar = static_cast(*mySource++); switch(mySourceChar){ case UCNV_SI: @@ -3337,7 +3338,7 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, if(myData->key==0 && U_SUCCESS(*err) && myData->isEmptySegment) { *err = U_ILLEGAL_ESCAPE_SEQUENCE; args->converter->toUCallbackReason = UCNV_IRREGULAR; - args->converter->toULength = (int8_t)(toULengthBefore + (mySource - mySourceBefore)); + args->converter->toULength = static_cast(toULengthBefore + (mySource - mySourceBefore)); } } @@ -3367,7 +3368,7 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, int leadIsOk, trailIsOk; uint8_t trailByte; getTrailByte: - trailByte = (uint8_t)*mySource; + trailByte = static_cast(*mySource); /* * Ticket 5691: consistent illegal sequences: * - We include at least the first byte in the illegal sequence. @@ -3378,23 +3379,23 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, * an ESC/SO/SI, we report only the first byte as the illegal sequence. * Otherwise we convert or report the pair of bytes. */ - leadIsOk = (uint8_t)(mySourceChar - 0x21) <= (0x7e - 0x21); - trailIsOk = (uint8_t)(trailByte - 0x21) <= (0x7e - 0x21); + leadIsOk = static_cast(mySourceChar - 0x21) <= (0x7e - 0x21); + trailIsOk = static_cast(trailByte - 0x21) <= (0x7e - 0x21); if (leadIsOk && trailIsOk) { ++mySource; - tempState = (StateEnum)pToU2022State->cs[pToU2022State->g]; + tempState = static_cast(pToU2022State->cs[pToU2022State->g]); if(tempState >= CNS_11643_0) { cnv = myData->myConverterArray[CNS_11643]; - tempBuf[0] = (char) (0x80+(tempState-CNS_11643_0)); - tempBuf[1] = (char) (mySourceChar); - tempBuf[2] = (char) trailByte; + tempBuf[0] = static_cast(0x80 + (tempState - CNS_11643_0)); + tempBuf[1] = static_cast(mySourceChar); + tempBuf[2] = static_cast(trailByte); tempBufLen = 3; }else{ U_ASSERT(tempStatemyConverterArray[tempState]; - tempBuf[0] = (char) (mySourceChar); - tempBuf[1] = (char) trailByte; + tempBuf[0] = static_cast(mySourceChar); + tempBuf[1] = static_cast(trailByte); tempBufLen = 2; } targetUniChar = ucnv_MBCSSimpleGetNextUChar(cnv, tempBuf, tempBufLen, false); @@ -3410,41 +3411,41 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, pToU2022State->g=pToU2022State->prevG; } } else { - args->converter->toUBytes[0] = (uint8_t)mySourceChar; + args->converter->toUBytes[0] = static_cast(mySourceChar); args->converter->toULength = 1; goto endloop; } } else{ if(mySourceChar <= 0x7f) { - targetUniChar = (char16_t) mySourceChar; + targetUniChar = static_cast(mySourceChar); } } break; } if(targetUniChar < (missingCharMarker-1/*0xfffe*/)){ if(args->offsets){ - args->offsets[myTarget - args->target] = (int32_t)(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); + args->offsets[myTarget - args->target] = static_cast(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); } - *(myTarget++)=(char16_t)targetUniChar; + *(myTarget++) = static_cast(targetUniChar); } else if(targetUniChar > missingCharMarker){ /* disassemble the surrogate pair and write to output*/ targetUniChar-=0x0010000; - *myTarget = (char16_t)(0xd800+(char16_t)(targetUniChar>>10)); + *myTarget = static_cast(0xd800 + static_cast(targetUniChar >> 10)); if(args->offsets){ - args->offsets[myTarget - args->target] = (int32_t)(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); + args->offsets[myTarget - args->target] = static_cast(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); } ++myTarget; if(myTarget< args->targetLimit){ - *myTarget = (char16_t)(0xdc00+(char16_t)(targetUniChar&0x3ff)); + *myTarget = static_cast(0xdc00 + static_cast(targetUniChar & 0x3ff)); if(args->offsets){ - args->offsets[myTarget - args->target] = (int32_t)(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); + args->offsets[myTarget - args->target] = static_cast(mySource - args->source - (mySourceChar <= 0xff ? 1 : 2)); } ++myTarget; }else{ args->converter->UCharErrorBuffer[args->converter->UCharErrorBufferLength++]= - (char16_t)(0xdc00+(char16_t)(targetUniChar&0x3ff)); + static_cast(0xdc00 + static_cast(targetUniChar & 0x3ff)); } } @@ -3468,13 +3469,13 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, static void U_CALLCONV _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorCode *err) { UConverter *cnv = args->converter; - UConverterDataISO2022 *myConverterData=(UConverterDataISO2022 *) cnv->extraInfo; + UConverterDataISO2022* myConverterData = static_cast(cnv->extraInfo); ISO2022State *pFromU2022State=&myConverterData->fromU2022State; char *p, *subchar; char buffer[8]; int32_t length; - subchar=(char *)cnv->subChars; + subchar = reinterpret_cast(cnv->subChars); length=cnv->subCharLen; /* assume length==1 for most variants */ p = buffer; @@ -3492,7 +3493,7 @@ _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorC cs = pFromU2022State->cs[0]; if(cs != ASCII && cs != JISX201) { /* not in ASCII or JIS X 0201: switch to ASCII */ - pFromU2022State->cs[0] = (int8_t)ASCII; + pFromU2022State->cs[0] = static_cast(ASCII); *p++ = '\x1b'; *p++ = '\x28'; *p++ = '\x42'; @@ -3534,8 +3535,8 @@ _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorC int8_t currentSubCharLen = myConverterData->currentConverter->subCharLen; /* set our substitution string into the subconverter */ - myConverterData->currentConverter->subChars = (uint8_t *)subchar; - myConverterData->currentConverter->subCharLen = (int8_t)length; + myConverterData->currentConverter->subChars = reinterpret_cast(subchar); + myConverterData->currentConverter->subCharLen = static_cast(length); /* let the subconverter write the subchar, set/retrieve fromUChar32 state */ args->converter = myConverterData->currentConverter; @@ -3565,7 +3566,7 @@ _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorC break; } ucnv_cbFromUWriteBytes(args, - buffer, (int32_t)(p - buffer), + buffer, static_cast(p - buffer), offsetIndex, err); } @@ -3656,7 +3657,7 @@ _ISO_2022_GetUnicodeSet(const UConverter *cnv, } #endif - cnvData = (UConverterDataISO2022*)cnv->extraInfo; + cnvData = static_cast(cnv->extraInfo); /* open a set and initialize it with code points that are algorithmically round-tripped */ switch(cnvData->locale[0]){ diff --git a/thirdparty/icu4c/common/ucnv_bld.cpp b/thirdparty/icu4c/common/ucnv_bld.cpp index 564b645bed76..1e768ae22411 100644 --- a/thirdparty/icu4c/common/ucnv_bld.cpp +++ b/thirdparty/icu4c/common/ucnv_bld.cpp @@ -231,7 +231,7 @@ static void ucnv_flushAvailableConverterCache() { gAvailableConverterCount = 0; if (gAvailableConverters) { - uprv_free((char **)gAvailableConverters); + uprv_free(const_cast(gAvailableConverters)); gAvailableConverters = nullptr; } gAvailableConvertersInitOnce.reset(); @@ -270,7 +270,7 @@ static UBool U_CALLCONV isCnvAcceptable(void * /*context*/, const char * /*type*/, const char * /*name*/, const UDataInfo *pInfo) { - return (UBool)( + return pInfo->size>=20 && pInfo->isBigEndian==U_IS_BIG_ENDIAN && pInfo->charsetFamily==U_CHARSET_FAMILY && @@ -279,7 +279,7 @@ isCnvAcceptable(void * /*context*/, pInfo->dataFormat[1]==0x6e && pInfo->dataFormat[2]==0x76 && pInfo->dataFormat[3]==0x74 && - pInfo->formatVersion[0]==6); /* Everything will be version 6 */ + pInfo->formatVersion[0]==6; /* Everything will be version 6 */ } /** @@ -289,15 +289,15 @@ static UConverterSharedData* ucnv_data_unFlattenClone(UConverterLoadArgs *pArgs, UDataMemory *pData, UErrorCode *status) { /* UDataInfo info; -- necessary only if some converters have different formatVersion */ - const uint8_t *raw = (const uint8_t *)udata_getMemory(pData); - const UConverterStaticData *source = (const UConverterStaticData *) raw; + const uint8_t* raw = static_cast(udata_getMemory(pData)); + const UConverterStaticData* source = reinterpret_cast(raw); UConverterSharedData *data; - UConverterType type = (UConverterType)source->conversionType; + UConverterType type = static_cast(source->conversionType); if(U_FAILURE(*status)) return nullptr; - if( (uint16_t)type >= UCNV_NUMBER_OF_SUPPORTED_CONVERTER_TYPES || + if (static_cast(type) >= UCNV_NUMBER_OF_SUPPORTED_CONVERTER_TYPES || converterData[type] == nullptr || !converterData[type]->isReferenceCounted || converterData[type]->referenceCounter != 1 || @@ -307,7 +307,7 @@ ucnv_data_unFlattenClone(UConverterLoadArgs *pArgs, UDataMemory *pData, UErrorCo return nullptr; } - data = (UConverterSharedData *)uprv_malloc(sizeof(UConverterSharedData)); + data = static_cast(uprv_malloc(sizeof(UConverterSharedData))); if(data == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; return nullptr; @@ -397,7 +397,7 @@ getAlgorithmicTypeFromName(const char *realName) lastMid = UINT32_MAX; for (;;) { - mid = (uint32_t)((start + limit) / 2); + mid = (start + limit) / 2; if (lastMid == mid) { /* Have we moved? */ break; /* We haven't moved, and it wasn't found. */ } @@ -491,7 +491,7 @@ ucnv_getSharedConverterData(const char *name) { UConverterSharedData *rc; - rc = (UConverterSharedData*)uhash_get(SHARED_DATA_HASHTABLE, name); + rc = static_cast(uhash_get(SHARED_DATA_HASHTABLE, name)); UCNV_DEBUG_LOG("get",name,rc); return rc; } @@ -682,8 +682,8 @@ parseConverterOptions(const char *inName, if(c==0) { pArgs->options=(pPieces->options&=~UCNV_OPTION_VERSION); return; - } else if((uint8_t)(c-'0')<10) { - pArgs->options=pPieces->options=(pPieces->options&~UCNV_OPTION_VERSION)|(uint32_t)(c-'0'); + } else if (static_cast(c - '0') < 10) { + pArgs->options = pPieces->options = (pPieces->options & ~UCNV_OPTION_VERSION) | static_cast(c - '0'); ++inName; } } else if(uprv_strncmp(inName, "swaplfnl", 8)==0) { @@ -909,7 +909,7 @@ ucnv_createAlgorithmicConverter(UConverter *myUConverter, stackArgs.options = options; stackArgs.locale=locale; cnv = ucnv_createConverterFromSharedData( - myUConverter, (UConverterSharedData *)sharedData, + myUConverter, const_cast(sharedData), &stackArgs, err); UTRACE_EXIT_PTR_STATUS(cnv, *err); @@ -1112,7 +1112,7 @@ static void U_CALLCONV initAvailableConvertersList(UErrorCode &errCode) { } /* We can't have more than "*converterTable" converters to open */ - gAvailableConverters = (const char **) uprv_malloc(allConverterCount * sizeof(char*)); + gAvailableConverters = static_cast(uprv_malloc(allConverterCount * sizeof(char*))); if (!gAvailableConverters) { errCode = U_MEMORY_ALLOCATION_ERROR; return; @@ -1440,7 +1440,7 @@ ucnv_swap(const UDataSwapper *ds, MBCS_OPT_UNKNOWN_INCOMPATIBLE_MASK)==0 ) { mbcsHeaderLength=mbcsHeader.options&MBCS_OPT_LENGTH_MASK; - noFromU=(UBool)((mbcsHeader.options&MBCS_OPT_NO_FROM_U)!=0); + noFromU = (mbcsHeader.options & MBCS_OPT_NO_FROM_U) != 0; } else { udata_printError(ds, "ucnv_swap(): unsupported _MBCSHeader.version %d.%d\n", inMBCSHeader->version[0], inMBCSHeader->version[1]); diff --git a/thirdparty/icu4c/common/ucnv_ct.cpp b/thirdparty/icu4c/common/ucnv_ct.cpp index 46f30e5ece6d..aa0a6a1169b4 100644 --- a/thirdparty/icu4c/common/ucnv_ct.cpp +++ b/thirdparty/icu4c/common/ucnv_ct.cpp @@ -368,7 +368,7 @@ UConverter_fromUnicode_CompoundText_OFFSETS(UConverterFromUnicodeArgs* args, UEr /*look ahead to find the trail surrogate*/ if(source < sourceLimit) { /* test the following code unit */ - char16_t trail=(char16_t) *source; + char16_t trail = *source; if(U16_IS_TRAIL(trail)) { source++; sourceChar=U16_GET_SUPPLEMENTARY(sourceChar, trail); diff --git a/thirdparty/icu4c/common/ucnv_ext.cpp b/thirdparty/icu4c/common/ucnv_ext.cpp index 10d00a62c2ce..1f12d05b265e 100644 --- a/thirdparty/icu4c/common/ucnv_ext.cpp +++ b/thirdparty/icu4c/common/ucnv_ext.cpp @@ -41,8 +41,8 @@ ucnv_extFindToU(const uint32_t *toUSection, int32_t length, uint8_t byte) { int32_t i, start, limit; /* check the input byte against the lowest and highest section bytes */ - start=(int32_t)UCNV_EXT_TO_U_GET_BYTE(toUSection[0]); - limit=(int32_t)UCNV_EXT_TO_U_GET_BYTE(toUSection[length-1]); + start = static_cast(UCNV_EXT_TO_U_GET_BYTE(toUSection[0])); + limit = static_cast(UCNV_EXT_TO_U_GET_BYTE(toUSection[length - 1])); if(byte(pre[i++]); } else if(j(src[j++]); } else { /* all input consumed, partial match */ if(flush || (length=(i+j))>UCNV_EXT_MAX_BYTES) { @@ -206,7 +206,7 @@ ucnv_extMatchToU(const int32_t *cx, int8_t sisoState, } else { if(UCNV_EXT_TO_U_IS_PARTIAL(value)) { /* partial match, continue */ - idx=(int32_t)UCNV_EXT_TO_U_GET_PARTIAL_INDEX(value); + idx = static_cast(UCNV_EXT_TO_U_GET_PARTIAL_INDEX(value)); } else { if( (UCNV_EXT_TO_U_IS_ROUNDTRIP(value) || TO_U_USE_FALLBACK(useFallback)) && @@ -572,7 +572,7 @@ ucnv_extMatchFromU(const int32_t *cx, if(UCNV_EXT_TO_U_IS_PARTIAL(value)) { /* partial match, enter the loop below */ - idx=(int32_t)UCNV_EXT_FROM_U_GET_PARTIAL_INDEX(value); + idx = static_cast(UCNV_EXT_FROM_U_GET_PARTIAL_INDEX(value)); /* initialize */ fromUTableUChars=UCNV_EXT_ARRAY(cx, UCNV_EXT_FROM_U_UCHARS_INDEX, char16_t); @@ -627,7 +627,7 @@ ucnv_extMatchFromU(const int32_t *cx, value=fromUSectionValues[idx]; if(UCNV_EXT_FROM_U_IS_PARTIAL(value)) { /* partial match, continue */ - idx=(int32_t)UCNV_EXT_FROM_U_GET_PARTIAL_INDEX(value); + idx = static_cast(UCNV_EXT_FROM_U_GET_PARTIAL_INDEX(value)); } else { if(extFromUUseMapping(useFallback, value, firstCP)) { /* full match, stop with result */ @@ -679,7 +679,7 @@ ucnv_extWriteFromU(UConverter *cnv, const int32_t *cx, int32_t length, prevLength; length=UCNV_EXT_FROM_U_GET_LENGTH(value); - value=(uint32_t)UCNV_EXT_FROM_U_GET_DATA(value); + value = UCNV_EXT_FROM_U_GET_DATA(value); /* output the result */ if(length<=UCNV_EXT_FROM_U_MAX_DIRECT_LENGTH) { @@ -692,13 +692,13 @@ ucnv_extWriteFromU(UConverter *cnv, const int32_t *cx, uint8_t *p=buffer+1; /* reserve buffer[0] for shiftByte below */ switch(length) { case 3: - *p++=(uint8_t)(value>>16); + *p++ = static_cast(value >> 16); U_FALLTHROUGH; case 2: - *p++=(uint8_t)(value>>8); + *p++ = static_cast(value >> 8); U_FALLTHROUGH; case 1: - *p++=(uint8_t)value; + *p++ = static_cast(value); U_FALLTHROUGH; default: break; /* will never occur */ @@ -716,11 +716,11 @@ ucnv_extWriteFromU(UConverter *cnv, const int32_t *cx, if(prevLength>1 && length==1) { /* change from double-byte mode to single-byte */ - shiftByte=(uint8_t)UCNV_SI; + shiftByte = static_cast(UCNV_SI); cnv->fromUnicodeStatus=1; } else if(prevLength==1 && length>1) { /* change from single-byte mode to double-byte */ - shiftByte=(uint8_t)UCNV_SO; + shiftByte = static_cast(UCNV_SO); cnv->fromUnicodeStatus=2; } else { shiftByte=0; @@ -737,7 +737,7 @@ ucnv_extWriteFromU(UConverter *cnv, const int32_t *cx, } } - ucnv_fromUWriteBytes(cnv, (const char *)result, length, + ucnv_fromUWriteBytes(cnv, reinterpret_cast(result), length, target, targetLimit, offsets, srcIndex, pErrorCode); @@ -830,7 +830,7 @@ ucnv_extSimpleMatchFromU(const int32_t *cx, isRoundtrip=UCNV_EXT_FROM_U_IS_ROUNDTRIP(value); length=UCNV_EXT_FROM_U_GET_LENGTH(value); - value=(uint32_t)UCNV_EXT_FROM_U_GET_DATA(value); + value = UCNV_EXT_FROM_U_GET_DATA(value); if(length<=UCNV_EXT_FROM_U_MAX_DIRECT_LENGTH) { *pValue=value; @@ -1018,7 +1018,7 @@ ucnv_extGetUnicodeSetString(const UConverterSharedData *sharedData, ucnv_extGetUnicodeSetString( sharedData, cx, sa, which, minLength, firstCP, s, length+1, - (int32_t)UCNV_EXT_FROM_U_GET_PARTIAL_INDEX(value), + static_cast(UCNV_EXT_FROM_U_GET_PARTIAL_INDEX(value)), pErrorCode); } else if(extSetUseMapping(which, minLength, value)) { sa->addString(sa->set, s, length+1); diff --git a/thirdparty/icu4c/common/ucnv_io.cpp b/thirdparty/icu4c/common/ucnv_io.cpp index 48bb5be42bd5..7207de397eb1 100644 --- a/thirdparty/icu4c/common/ucnv_io.cpp +++ b/thirdparty/icu4c/common/ucnv_io.cpp @@ -205,7 +205,7 @@ static UBool U_CALLCONV isAcceptable(void * /*context*/, const char * /*type*/, const char * /*name*/, const UDataInfo *pInfo) { - return (UBool)( + return pInfo->size>=20 && pInfo->isBigEndian==U_IS_BIG_ENDIAN && pInfo->charsetFamily==U_CHARSET_FAMILY && @@ -213,7 +213,7 @@ isAcceptable(void * /*context*/, pInfo->dataFormat[1]==0x76 && pInfo->dataFormat[2]==0x41 && pInfo->dataFormat[3]==0x6c && - pInfo->formatVersion[0]==3); + pInfo->formatVersion[0]==3; } static UBool U_CALLCONV ucnv_io_cleanup() @@ -244,8 +244,8 @@ static void U_CALLCONV initAliasData(UErrorCode &errCode) { return; } - sectionSizes = (const uint32_t *)udata_getMemory(data); - table = (const uint16_t *)sectionSizes; + sectionSizes = static_cast(udata_getMemory(data)); + table = reinterpret_cast(sectionSizes); tableStart = sectionSizes[0]; if (tableStart < minTocLength) { @@ -289,10 +289,10 @@ static void U_CALLCONV initAliasData(UErrorCode &errCode) { currOffset += gMainTable.taggedAliasListsSize; if (gMainTable.optionTableSize > 0 - && ((const UConverterAliasOptions *)(table + currOffset))->stringNormalizationType < UCNV_IO_NORM_TYPE_COUNT) + && reinterpret_cast(table + currOffset)->stringNormalizationType < UCNV_IO_NORM_TYPE_COUNT) { /* Faster table */ - gMainTable.optionTable = (const UConverterAliasOptions *)(table + currOffset); + gMainTable.optionTable = reinterpret_cast(table + currOffset); } else { /* Smaller table, or I can't handle this normalization mode! @@ -321,7 +321,7 @@ isAlias(const char *alias, UErrorCode *pErrorCode) { *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; return false; } - return (UBool)(*alias!=0); + return *alias != 0; } static uint32_t getTagNumber(const char *tagname) { @@ -574,7 +574,7 @@ findConverter(const char *alias, UBool *containsOption, UErrorCode *pErrorCode) lastMid = UINT32_MAX; for (;;) { - mid = (uint32_t)((start + limit) / 2); + mid = (start + limit) / 2; if (lastMid == mid) { /* Have we moved? */ break; /* We haven't moved, and it wasn't found. */ } @@ -601,8 +601,8 @@ findConverter(const char *alias, UBool *containsOption, UErrorCode *pErrorCode) /* State whether the canonical converter name contains an option. This information is contained in this list in order to maintain backward & forward compatibility. */ if (containsOption) { - UBool containsCnvOptionInfo = (UBool)gMainTable.optionTable->containsCnvOptionInfo; - *containsOption = (UBool)((containsCnvOptionInfo + UBool containsCnvOptionInfo = static_cast(gMainTable.optionTable->containsCnvOptionInfo); + *containsOption = static_cast((containsCnvOptionInfo && ((gMainTable.untaggedConvArray[mid] & UCNV_CONTAINS_OPTION_BIT) != 0)) || !containsCnvOptionInfo); } @@ -939,7 +939,7 @@ static uint16_t ucnv_io_countStandards(UErrorCode *pErrorCode) { if (haveAliasData(pErrorCode)) { /* Don't include the empty list */ - return (uint16_t)(gMainTable.tagListSize - UCNV_NUM_HIDDEN_TAGS); + return static_cast(gMainTable.tagListSize - UCNV_NUM_HIDDEN_TAGS); } return 0; @@ -1130,8 +1130,9 @@ io_compareRows(const void *context, const void *left, const void *right) { TempAliasTable *tempTable=(TempAliasTable *)context; const char *chars=tempTable->chars; - return (int32_t)uprv_strcmp(tempTable->stripForCompare(strippedLeft, chars+2*((const TempRow *)left)->strIndex), - tempTable->stripForCompare(strippedRight, chars+2*((const TempRow *)right)->strIndex)); + return static_cast(uprv_strcmp( + tempTable->stripForCompare(strippedLeft, chars + 2 * static_cast(left)->strIndex), + tempTable->stripForCompare(strippedRight, chars + 2 * static_cast(right)->strIndex))); } U_CAPI int32_t U_EXPORT2 diff --git a/thirdparty/icu4c/common/ucnv_lmb.cpp b/thirdparty/icu4c/common/ucnv_lmb.cpp index ab14a119efb8..bbcf2d579aad 100644 --- a/thirdparty/icu4c/common/ucnv_lmb.cpp +++ b/thirdparty/icu4c/common/ucnv_lmb.cpp @@ -633,7 +633,7 @@ _LMBCSOpenWorker(UConverter* _this, UErrorCode* err, ulmbcs_byte_t OptGroup) { - UConverterDataLMBCS * extraInfo = (UConverterDataLMBCS*)uprv_malloc (sizeof (UConverterDataLMBCS)); + UConverterDataLMBCS* extraInfo = static_cast(uprv_malloc(sizeof(UConverterDataLMBCS))); _this->extraInfo = extraInfo; if(extraInfo != nullptr) { diff --git a/thirdparty/icu4c/common/ucnv_u16.cpp b/thirdparty/icu4c/common/ucnv_u16.cpp index c3bcfef50cb5..a5963e1202cb 100644 --- a/thirdparty/icu4c/common/ucnv_u16.cpp +++ b/thirdparty/icu4c/common/ucnv_u16.cpp @@ -236,10 +236,10 @@ _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* output length bytes with overflow (length>targetCapacity>0) */ ucnv_fromUWriteBytes(cnv, overflow, length, - (char **)&target, pArgs->targetLimit, + &target, pArgs->targetLimit, &offsets, sourceIndex, pErrorCode); - targetCapacity=(uint32_t)(pArgs->targetLimit-(char *)target); + targetCapacity = static_cast(pArgs->targetLimit - target); } if(U_SUCCESS(*pErrorCode) && sourcesourceLimit && targetCapacity==0) { @@ -248,7 +248,7 @@ _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* write back the updated pointers */ pArgs->source=source; - pArgs->target=(char *)target; + pArgs->target = target; pArgs->offsets=offsets; } @@ -840,7 +840,7 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, &target, pArgs->targetLimit, &offsets, sourceIndex, pErrorCode); - targetCapacity=(uint32_t)(pArgs->targetLimit-(char *)target); + targetCapacity = static_cast(pArgs->targetLimit - target); } if(U_SUCCESS(*pErrorCode) && sourcesourceLimit && targetCapacity==0) { diff --git a/thirdparty/icu4c/common/ucnv_u8.cpp b/thirdparty/icu4c/common/ucnv_u8.cpp index cf3bb22a02a7..cca6e603ae32 100644 --- a/thirdparty/icu4c/common/ucnv_u8.cpp +++ b/thirdparty/icu4c/common/ucnv_u8.cpp @@ -49,8 +49,8 @@ U_CFUNC void ucnv_fromUnicode_UTF8_OFFSETS_LOGIC(UConverterFromUnicodeArgs *args #define MAXIMUM_UCS2 0x0000FFFF static const uint32_t offsetsFromUTF8[5] = {0, - (uint32_t) 0x00000000, (uint32_t) 0x00003080, (uint32_t) 0x000E2080, - (uint32_t) 0x03C82080 + static_cast(0x00000000), static_cast(0x00003080), + static_cast(0x000E2080), static_cast(0x03C82080) }; static UBool hasCESU8Data(const UConverter *cnv) @@ -58,7 +58,7 @@ static UBool hasCESU8Data(const UConverter *cnv) #if UCONFIG_ONLY_HTML_CONVERSION return false; #else - return (UBool)(cnv->sharedData == &_CESU8Data); + return cnv->sharedData == &_CESU8Data; #endif } U_CDECL_BEGIN @@ -571,7 +571,7 @@ static UChar32 U_CALLCONV ucnv_getNextUChar_UTF8(UConverterToUnicodeArgs *args, return 0xffff; } - myByte = (uint8_t)*(source++); + myByte = *(source++); if (U8_IS_SINGLE(myByte)) { args->source = (const char *)source; diff --git a/thirdparty/icu4c/common/ucnvbocu.cpp b/thirdparty/icu4c/common/ucnvbocu.cpp index 3b736aa1e908..5c9bb3ac456a 100644 --- a/thirdparty/icu4c/common/ucnvbocu.cpp +++ b/thirdparty/icu4c/common/ucnvbocu.cpp @@ -338,7 +338,7 @@ packDiff(int32_t diff) { */ result|=BOCU1_TRAIL_TO_BYTE(diff)<<16; - result|=((uint32_t)BOCU1_START_POS_4)<<24; + result |= static_cast(BOCU1_START_POS_4) << 24; } } else { /* two- to four-byte negative differences */ @@ -405,13 +405,13 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, cnv=pArgs->converter; source=pArgs->source; sourceLimit=pArgs->sourceLimit; - target=(uint8_t *)pArgs->target; - targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target); + target = reinterpret_cast(pArgs->target); + targetCapacity = static_cast(pArgs->targetLimit - pArgs->target); offsets=pArgs->offsets; /* get the converter state from UConverter */ c=cnv->fromUChar32; - prev=(int32_t)cnv->fromUnicodeStatus; + prev = static_cast(cnv->fromUnicodeStatus); if(prev==0) { prev=BOCU1_ASCII_PREV; } @@ -428,7 +428,7 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, fastSingle: /* fast loop for single-byte differences */ /* use only one loop counter variable, targetCapacity, not also source */ - diff=(int32_t)(sourceLimit-source); + diff = static_cast(sourceLimit - source); if(targetCapacity>diff) { targetCapacity=diff; } @@ -437,7 +437,7 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, if(c!=0x20) { prev=BOCU1_ASCII_PREV; } - *target++=(uint8_t)c; + *target++ = static_cast(c); *offsets++=nextSourceIndex++; ++source; --targetCapacity; @@ -445,7 +445,7 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, diff=c-prev; if(DIFF_IS_SINGLE(diff)) { prev=BOCU1_SIMPLE_PREV(c); - *target++=(uint8_t)PACK_SINGLE_DIFF(diff); + *target++ = static_cast(PACK_SINGLE_DIFF(diff)); *offsets++=nextSourceIndex++; ++source; --targetCapacity; @@ -455,7 +455,7 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, } } /* restore real values */ - targetCapacity=(int32_t)((const uint8_t *)pArgs->targetLimit-target); + targetCapacity = static_cast(reinterpret_cast(pArgs->targetLimit) - target); sourceIndex=nextSourceIndex; /* wrong if offsets==nullptr but does not matter */ /* regular loop for all cases */ @@ -473,7 +473,7 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, if(c!=0x20) { prev=BOCU1_ASCII_PREV; } - *target++=(uint8_t)c; + *target++ = static_cast(c); *offsets++=sourceIndex; --targetCapacity; @@ -510,7 +510,7 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, diff=c-prev; prev=BOCU1_PREV(c); if(DIFF_IS_SINGLE(diff)) { - *target++=(uint8_t)PACK_SINGLE_DIFF(diff); + *target++ = static_cast(PACK_SINGLE_DIFF(diff)); *offsets++=sourceIndex; --targetCapacity; sourceIndex=nextSourceIndex; @@ -531,8 +531,8 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, NEGDIVMOD(diff, BOCU1_TRAIL_COUNT, m); diff+=BOCU1_START_NEG_2; } - *target++=(uint8_t)diff; - *target++=(uint8_t)BOCU1_TRAIL_TO_BYTE(m); + *target++ = static_cast(diff); + *target++ = static_cast(BOCU1_TRAIL_TO_BYTE(m)); *offsets++=sourceIndex; *offsets++=sourceIndex; targetCapacity-=2; @@ -549,18 +549,18 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, switch(length) { /* each branch falls through to the next one */ case 4: - *target++=(uint8_t)(diff>>24); + *target++ = static_cast(diff >> 24); *offsets++=sourceIndex; U_FALLTHROUGH; case 3: - *target++=(uint8_t)(diff>>16); + *target++ = static_cast(diff >> 16); *offsets++=sourceIndex; U_FALLTHROUGH; case 2: - *target++=(uint8_t)(diff>>8); + *target++ = static_cast(diff >> 8); *offsets++=sourceIndex; /* case 1: handled above */ - *target++=(uint8_t)diff; + *target++ = static_cast(diff); *offsets++=sourceIndex; U_FALLTHROUGH; default: @@ -584,34 +584,34 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, switch(length) { /* each branch falls through to the next one */ case 3: - *charErrorBuffer++=(uint8_t)(diff>>16); + *charErrorBuffer++ = static_cast(diff >> 16); U_FALLTHROUGH; case 2: - *charErrorBuffer++=(uint8_t)(diff>>8); + *charErrorBuffer++ = static_cast(diff >> 8); U_FALLTHROUGH; case 1: - *charErrorBuffer=(uint8_t)diff; + *charErrorBuffer = static_cast(diff); U_FALLTHROUGH; default: /* will never occur */ break; } - cnv->charErrorBufferLength=(int8_t)length; + cnv->charErrorBufferLength = static_cast(length); /* now output what fits into the regular target */ diff>>=8*length; /* length was reduced by targetCapacity */ switch(targetCapacity) { /* each branch falls through to the next one */ case 3: - *target++=(uint8_t)(diff>>16); + *target++ = static_cast(diff >> 16); *offsets++=sourceIndex; U_FALLTHROUGH; case 2: - *target++=(uint8_t)(diff>>8); + *target++ = static_cast(diff >> 8); *offsets++=sourceIndex; U_FALLTHROUGH; case 1: - *target++=(uint8_t)diff; + *target++ = static_cast(diff); *offsets++=sourceIndex; U_FALLTHROUGH; default: @@ -634,11 +634,11 @@ _Bocu1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* set the converter state back into UConverter */ cnv->fromUChar32= c<0 ? -c : 0; - cnv->fromUnicodeStatus=(uint32_t)prev; + cnv->fromUnicodeStatus = static_cast(prev); /* write back the updated pointers */ pArgs->source=source; - pArgs->target=(char *)target; + pArgs->target = reinterpret_cast(target); pArgs->offsets=offsets; } @@ -663,12 +663,12 @@ _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, cnv=pArgs->converter; source=pArgs->source; sourceLimit=pArgs->sourceLimit; - target=(uint8_t *)pArgs->target; - targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target); + target = reinterpret_cast(pArgs->target); + targetCapacity = static_cast(pArgs->targetLimit - pArgs->target); /* get the converter state from UConverter */ c=cnv->fromUChar32; - prev=(int32_t)cnv->fromUnicodeStatus; + prev = static_cast(cnv->fromUnicodeStatus); if(prev==0) { prev=BOCU1_ASCII_PREV; } @@ -681,7 +681,7 @@ _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, fastSingle: /* fast loop for single-byte differences */ /* use only one loop counter variable, targetCapacity, not also source */ - diff=(int32_t)(sourceLimit-source); + diff = static_cast(sourceLimit - source); if(targetCapacity>diff) { targetCapacity=diff; } @@ -690,12 +690,12 @@ _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, if(c!=0x20) { prev=BOCU1_ASCII_PREV; } - *target++=(uint8_t)c; + *target++ = static_cast(c); } else { diff=c-prev; if(DIFF_IS_SINGLE(diff)) { prev=BOCU1_SIMPLE_PREV(c); - *target++=(uint8_t)PACK_SINGLE_DIFF(diff); + *target++ = static_cast(PACK_SINGLE_DIFF(diff)); } else { break; } @@ -704,7 +704,7 @@ _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, --targetCapacity; } /* restore real values */ - targetCapacity=(int32_t)((const uint8_t *)pArgs->targetLimit-target); + targetCapacity = static_cast(reinterpret_cast(pArgs->targetLimit) - target); /* regular loop for all cases */ while(source(c); --targetCapacity; continue; } @@ -753,7 +753,7 @@ _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, diff=c-prev; prev=BOCU1_PREV(c); if(DIFF_IS_SINGLE(diff)) { - *target++=(uint8_t)PACK_SINGLE_DIFF(diff); + *target++ = static_cast(PACK_SINGLE_DIFF(diff)); --targetCapacity; if(c<0x3000) { goto fastSingle; @@ -772,8 +772,8 @@ _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, NEGDIVMOD(diff, BOCU1_TRAIL_COUNT, m); diff+=BOCU1_START_NEG_2; } - *target++=(uint8_t)diff; - *target++=(uint8_t)BOCU1_TRAIL_TO_BYTE(m); + *target++ = static_cast(diff); + *target++ = static_cast(BOCU1_TRAIL_TO_BYTE(m)); targetCapacity-=2; } else { int32_t length; /* will be 2..4 */ @@ -787,14 +787,14 @@ _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, switch(length) { /* each branch falls through to the next one */ case 4: - *target++=(uint8_t)(diff>>24); + *target++ = static_cast(diff >> 24); U_FALLTHROUGH; case 3: - *target++=(uint8_t)(diff>>16); + *target++ = static_cast(diff >> 16); /* case 2: handled above */ - *target++=(uint8_t)(diff>>8); + *target++ = static_cast(diff >> 8); /* case 1: handled above */ - *target++=(uint8_t)diff; + *target++ = static_cast(diff); U_FALLTHROUGH; default: /* will never occur */ @@ -816,32 +816,32 @@ _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, switch(length) { /* each branch falls through to the next one */ case 3: - *charErrorBuffer++=(uint8_t)(diff>>16); + *charErrorBuffer++ = static_cast(diff >> 16); U_FALLTHROUGH; case 2: - *charErrorBuffer++=(uint8_t)(diff>>8); + *charErrorBuffer++ = static_cast(diff >> 8); U_FALLTHROUGH; case 1: - *charErrorBuffer=(uint8_t)diff; + *charErrorBuffer = static_cast(diff); U_FALLTHROUGH; default: /* will never occur */ break; } - cnv->charErrorBufferLength=(int8_t)length; + cnv->charErrorBufferLength = static_cast(length); /* now output what fits into the regular target */ diff>>=8*length; /* length was reduced by targetCapacity */ switch(targetCapacity) { /* each branch falls through to the next one */ case 3: - *target++=(uint8_t)(diff>>16); + *target++ = static_cast(diff >> 16); U_FALLTHROUGH; case 2: - *target++=(uint8_t)(diff>>8); + *target++ = static_cast(diff >> 8); U_FALLTHROUGH; case 1: - *target++=(uint8_t)diff; + *target++ = static_cast(diff); U_FALLTHROUGH; default: /* will never occur */ @@ -863,11 +863,11 @@ _Bocu1FromUnicode(UConverterFromUnicodeArgs *pArgs, /* set the converter state back into UConverter */ cnv->fromUChar32= c<0 ? -c : 0; - cnv->fromUnicodeStatus=(uint32_t)prev; + cnv->fromUnicodeStatus = static_cast(prev); /* write back the updated pointers */ pArgs->source=source; - pArgs->target=(char *)target; + pArgs->target = reinterpret_cast(target); } /* BOCU-1-to-Unicode conversion functions ----------------------------------- */ @@ -887,11 +887,11 @@ decodeBocu1LeadByte(int32_t b) { /* positive difference */ if(b=BOCU1_START_NEG_3) { /* two bytes */ - diff=((int32_t)b-BOCU1_START_NEG_2)*BOCU1_TRAIL_COUNT+BOCU1_REACH_NEG_1; + diff = (b - BOCU1_START_NEG_2) * BOCU1_TRAIL_COUNT + BOCU1_REACH_NEG_1; count=1; } else if(b>BOCU1_MIN) { /* three bytes */ - diff=((int32_t)b-BOCU1_START_NEG_3)*BOCU1_TRAIL_COUNT*BOCU1_TRAIL_COUNT+BOCU1_REACH_NEG_2; + diff = (b - BOCU1_START_NEG_3) * BOCU1_TRAIL_COUNT * BOCU1_TRAIL_COUNT + BOCU1_REACH_NEG_2; count=2; } else { /* four bytes */ @@ -916,7 +916,7 @@ decodeBocu1LeadByte(int32_t b) { } /* return the state for decoding the trail byte(s) */ - return ((uint32_t)diff<<2)|count; + return (static_cast(diff) << 2) | count; } /** @@ -970,14 +970,14 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, /* set up the local pointers */ cnv=pArgs->converter; - source=(const uint8_t *)pArgs->source; - sourceLimit=(const uint8_t *)pArgs->sourceLimit; + source = reinterpret_cast(pArgs->source); + sourceLimit = reinterpret_cast(pArgs->sourceLimit); target=pArgs->target; targetLimit=pArgs->targetLimit; offsets=pArgs->offsets; /* get the converter state from UConverter */ - prev=(int32_t)cnv->toUnicodeStatus; + prev = static_cast(cnv->toUnicodeStatus); if(prev==0) { prev=BOCU1_ASCII_PREV; } @@ -1000,8 +1000,8 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, fastSingle: /* fast loop for single-byte differences */ /* use count as the only loop counter variable */ - diff=(int32_t)(sourceLimit-source); - count=(int32_t)(pArgs->targetLimit-target); + diff = static_cast(sourceLimit - source); + count = static_cast(pArgs->targetLimit - target); if(count>diff) { count=diff; } @@ -1009,7 +1009,7 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, if(BOCU1_START_NEG_2<=(c=*source) && c(c); *offsets++=nextSourceIndex++; prev=BOCU1_SIMPLE_PREV(c); } else { @@ -1019,7 +1019,7 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, if(c!=0x20) { prev=BOCU1_ASCII_PREV; } - *target++=(char16_t)c; + *target++ = static_cast(c); *offsets++=nextSourceIndex++; } else { break; @@ -1043,7 +1043,7 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, /* Write a code point directly from a single-byte difference. */ c=prev+(c-BOCU1_MIDDLE); if(c<0x3000) { - *target++=(char16_t)c; + *target++ = static_cast(c); *offsets++=sourceIndex; prev=BOCU1_SIMPLE_PREV(c); sourceIndex=nextSourceIndex; @@ -1057,22 +1057,22 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, if(c!=0x20) { prev=BOCU1_ASCII_PREV; } - *target++=(char16_t)c; + *target++ = static_cast(c); *offsets++=sourceIndex; sourceIndex=nextSourceIndex; continue; } else if(BOCU1_START_NEG_3<=c && c=BOCU1_MIDDLE) { - diff=((int32_t)c-BOCU1_START_POS_2)*BOCU1_TRAIL_COUNT+BOCU1_REACH_POS_1+1; + diff = (c - BOCU1_START_POS_2) * BOCU1_TRAIL_COUNT + BOCU1_REACH_POS_1 + 1; } else { - diff=((int32_t)c-BOCU1_START_NEG_2)*BOCU1_TRAIL_COUNT+BOCU1_REACH_NEG_1; + diff = (c - BOCU1_START_NEG_2) * BOCU1_TRAIL_COUNT + BOCU1_REACH_NEG_1; } /* trail byte */ ++nextSourceIndex; c=decodeBocu1TrailByte(1, *source++); - if(c<0 || (uint32_t)(c=prev+diff+c)>0x10ffff) { + if (c < 0 || static_cast(c = prev + diff + c) > 0x10ffff) { bytes[0]=source[-2]; bytes[1]=source[-1]; byteIndex=2; @@ -1090,7 +1090,7 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, * with the partial difference value from the lead byte and * with the number of trail bytes. */ - bytes[0]=(uint8_t)c; + bytes[0] = static_cast(c); byteIndex=1; diff=decodeBocu1LeadByte(c); @@ -1116,7 +1116,7 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, /* final trail byte, deliver a code point */ byteIndex=0; c=prev+diff; - if((uint32_t)c>0x10ffff) { + if (static_cast(c) > 0x10ffff) { *pErrorCode=U_ILLEGAL_CHAR_FOUND; goto endloop; } @@ -1128,7 +1128,7 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, /* calculate the next prev and output c */ prev=BOCU1_PREV(c); if(c<=0xffff) { - *target++=(char16_t)c; + *target++ = static_cast(c); *offsets++=sourceIndex; } else { /* output surrogate pair */ @@ -1156,13 +1156,13 @@ _Bocu1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, cnv->mode=0; } else { /* set the converter state back into UConverter */ - cnv->toUnicodeStatus=(uint32_t)prev; - cnv->mode=(int32_t)((uint32_t)diff<<2)|count; + cnv->toUnicodeStatus = static_cast(prev); + cnv->mode = static_cast(static_cast(diff) << 2) | count; } cnv->toULength=byteIndex; /* write back the updated pointers */ - pArgs->source=(const char *)source; + pArgs->source = reinterpret_cast(source); pArgs->target=target; pArgs->offsets=offsets; } @@ -1189,13 +1189,13 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, /* set up the local pointers */ cnv=pArgs->converter; - source=(const uint8_t *)pArgs->source; - sourceLimit=(const uint8_t *)pArgs->sourceLimit; + source = reinterpret_cast(pArgs->source); + sourceLimit = reinterpret_cast(pArgs->sourceLimit); target=pArgs->target; targetLimit=pArgs->targetLimit; /* get the converter state from UConverter */ - prev=(int32_t)cnv->toUnicodeStatus; + prev = static_cast(cnv->toUnicodeStatus); if(prev==0) { prev=BOCU1_ASCII_PREV; } @@ -1214,8 +1214,8 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, fastSingle: /* fast loop for single-byte differences */ /* use count as the only loop counter variable */ - diff=(int32_t)(sourceLimit-source); - count=(int32_t)(pArgs->targetLimit-target); + diff = static_cast(sourceLimit - source); + count = static_cast(pArgs->targetLimit - target); if(count>diff) { count=diff; } @@ -1223,7 +1223,7 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, if(BOCU1_START_NEG_2<=(c=*source) && c(c); prev=BOCU1_SIMPLE_PREV(c); } else { break; @@ -1232,7 +1232,7 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, if(c!=0x20) { prev=BOCU1_ASCII_PREV; } - *target++=(char16_t)c; + *target++ = static_cast(c); } else { break; } @@ -1253,7 +1253,7 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, /* Write a code point directly from a single-byte difference. */ c=prev+(c-BOCU1_MIDDLE); if(c<0x3000) { - *target++=(char16_t)c; + *target++ = static_cast(c); prev=BOCU1_SIMPLE_PREV(c); goto fastSingle; } @@ -1265,19 +1265,19 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, if(c!=0x20) { prev=BOCU1_ASCII_PREV; } - *target++=(char16_t)c; + *target++ = static_cast(c); continue; } else if(BOCU1_START_NEG_3<=c && c=BOCU1_MIDDLE) { - diff=((int32_t)c-BOCU1_START_POS_2)*BOCU1_TRAIL_COUNT+BOCU1_REACH_POS_1+1; + diff = (c - BOCU1_START_POS_2) * BOCU1_TRAIL_COUNT + BOCU1_REACH_POS_1 + 1; } else { - diff=((int32_t)c-BOCU1_START_NEG_2)*BOCU1_TRAIL_COUNT+BOCU1_REACH_NEG_1; + diff = (c - BOCU1_START_NEG_2) * BOCU1_TRAIL_COUNT + BOCU1_REACH_NEG_1; } /* trail byte */ c=decodeBocu1TrailByte(1, *source++); - if(c<0 || (uint32_t)(c=prev+diff+c)>0x10ffff) { + if (c < 0 || static_cast(c = prev + diff + c) > 0x10ffff) { bytes[0]=source[-2]; bytes[1]=source[-1]; byteIndex=2; @@ -1294,7 +1294,7 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, * with the partial difference value from the lead byte and * with the number of trail bytes. */ - bytes[0]=(uint8_t)c; + bytes[0] = static_cast(c); byteIndex=1; diff=decodeBocu1LeadByte(c); @@ -1319,7 +1319,7 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, /* final trail byte, deliver a code point */ byteIndex=0; c=prev+diff; - if((uint32_t)c>0x10ffff) { + if (static_cast(c) > 0x10ffff) { *pErrorCode=U_ILLEGAL_CHAR_FOUND; goto endloop; } @@ -1331,7 +1331,7 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, /* calculate the next prev and output c */ prev=BOCU1_PREV(c); if(c<=0xffff) { - *target++=(char16_t)c; + *target++ = static_cast(c); } else { /* output surrogate pair */ *target++=U16_LEAD(c); @@ -1354,13 +1354,13 @@ _Bocu1ToUnicode(UConverterToUnicodeArgs *pArgs, cnv->mode=0; } else { /* set the converter state back into UConverter */ - cnv->toUnicodeStatus=(uint32_t)prev; - cnv->mode=((uint32_t)diff<<2)|count; + cnv->toUnicodeStatus = static_cast(prev); + cnv->mode = (static_cast(diff) << 2) | count; } cnv->toULength=byteIndex; /* write back the updated pointers */ - pArgs->source=(const char *)source; + pArgs->source = reinterpret_cast(source); pArgs->target=target; } diff --git a/thirdparty/icu4c/common/ucnvhz.cpp b/thirdparty/icu4c/common/ucnvhz.cpp index fa0f2b40ea71..aea5da65c1f4 100644 --- a/thirdparty/icu4c/common/ucnvhz.cpp +++ b/thirdparty/icu4c/common/ucnvhz.cpp @@ -345,7 +345,7 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, uint32_t targetUniChar = 0x0000; UChar32 mySourceChar = 0x0000; UConverterDataHZ *myConverterData=(UConverterDataHZ*)args->converter->extraInfo; - UBool isTargetUCharDBCS = (UBool) myConverterData->isTargetUCharDBCS; + UBool isTargetUCharDBCS = myConverterData->isTargetUCharDBCS; UBool oldIsTargetUCharDBCS; int len =0; const char* escSeq=nullptr; @@ -363,7 +363,7 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, targetUniChar = missingCharMarker; if (myTargetIndex < targetLength){ - mySourceChar = (char16_t) mySource[mySourceIndex++]; + mySourceChar = mySource[mySourceIndex++]; oldIsTargetUCharDBCS = isTargetUCharDBCS; @@ -389,7 +389,7 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, } } if (targetUniChar != missingCharMarker){ - myConverterData->isTargetUCharDBCS = isTargetUCharDBCS = (UBool)(targetUniChar>0x00FF); + myConverterData->isTargetUCharDBCS = isTargetUCharDBCS = targetUniChar > 0x00FF; if(oldIsTargetUCharDBCS != isTargetUCharDBCS || !myConverterData->isEscapeAppended ){ /*Shifting from a double byte to single byte mode*/ if(!isTargetUCharDBCS){ diff --git a/thirdparty/icu4c/common/ucnvisci.cpp b/thirdparty/icu4c/common/ucnvisci.cpp index c14dbaa08c66..c5f5832dcfcc 100644 --- a/thirdparty/icu4c/common/ucnvisci.cpp +++ b/thirdparty/icu4c/common/ucnvisci.cpp @@ -174,7 +174,7 @@ isPNJConsonant(UChar32 c) { if (c < 0xa00 || 0xa50 <= c) { return false; } else { - return (UBool)(pnjMap[c - 0xa00] & 1); + return pnjMap[c - 0xa00] & 1; } } @@ -183,7 +183,7 @@ isPNJBindiTippi(UChar32 c) { if (c < 0xa00 || 0xa50 <= c) { return false; } else { - return (UBool)(pnjMap[c - 0xa00] >> 1); + return pnjMap[c - 0xa00] >> 1; } } U_CDECL_BEGIN @@ -1484,7 +1484,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo */ *err = U_INVALID_CHAR_FOUND; CALLBACK: - args->converter->toUBytes[0] = (uint8_t) sourceChar; + args->converter->toUBytes[0] = sourceChar; args->converter->toULength = 1; break; } diff --git a/thirdparty/icu4c/common/ucnvlat1.cpp b/thirdparty/icu4c/common/ucnvlat1.cpp index 09206885269d..09473ef16cb9 100644 --- a/thirdparty/icu4c/common/ucnvlat1.cpp +++ b/thirdparty/icu4c/common/ucnvlat1.cpp @@ -381,7 +381,7 @@ ucnv_Latin1FromUTF8(UConverterFromUnicodeArgs *pFromUArgs, b=*source++; if(U8_IS_SINGLE(b)) { /* convert ASCII */ - *target++=(uint8_t)b; + *target++ = b; --targetCapacity; } else if( /* handle U+0080..U+00FF inline */ b>=0xc2 && b<=0xc3 && diff --git a/thirdparty/icu4c/common/ucnvmbcs.cpp b/thirdparty/icu4c/common/ucnvmbcs.cpp index d76060398002..f5507043bf35 100644 --- a/thirdparty/icu4c/common/ucnvmbcs.cpp +++ b/thirdparty/icu4c/common/ucnvmbcs.cpp @@ -665,7 +665,7 @@ enumToU(UConverterMBCSTable *mbcsTable, int8_t stateProps[], if(!enumToU( mbcsTable, stateProps, nextState, offset+MBCS_ENTRY_TRANSITION_OFFSET(entry), - value|(uint32_t)b, + value | static_cast(b), callback, context, pErrorCode)) { return false; @@ -683,7 +683,7 @@ enumToU(UConverterMBCSTable *mbcsTable, int8_t stateProps[], action=MBCS_ENTRY_FINAL_ACTION(entry); if(action==MBCS_STATE_VALID_DIRECT_16) { /* output BMP code point */ - c=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + c = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); } else if(action==MBCS_STATE_VALID_16) { int32_t finalOffset=offset+MBCS_ENTRY_FINAL_VALUE_16(entry); c=unicodeCodeUnits[finalOffset]; @@ -708,7 +708,7 @@ enumToU(UConverterMBCSTable *mbcsTable, int8_t stateProps[], } } else if(action==MBCS_STATE_VALID_DIRECT_20) { /* output supplementary code point */ - c=(UChar32)(MBCS_ENTRY_FINAL_VALUE(entry)+0x10000); + c = static_cast(MBCS_ENTRY_FINAL_VALUE(entry) + 0x10000); } else { c=U_SENTINEL; } @@ -718,7 +718,7 @@ enumToU(UConverterMBCSTable *mbcsTable, int8_t stateProps[], } if(((++b)&0x1f)==0) { if(anyCodePoints>=0) { - if(!callback(context, value|(uint32_t)(b-0x20), codePoints)) { + if (!callback(context, value | static_cast(b - 0x20), codePoints)) { return false; } anyCodePoints=-1; @@ -760,7 +760,7 @@ getStateProp(const int32_t (*stateTable)[256], int8_t stateProps[], int state) { return stateProps[state]; } } - stateProps[state]|=(int8_t)((min>>5)<<3); + stateProps[state] |= static_cast((min >> 5) << 3); /* find last non-ignorable state */ for(max=0xff; min>5); + stateProps[state] |= static_cast(max >> 5); /* recurse further and collect direct-state information */ while(min<=max) { @@ -924,7 +924,7 @@ ucnv_MBCSGetFilteredUnicodeSetForUnicode(const UConverterSharedData *sharedData, bytes=mbcsTable->fromUnicodeBytes; - useFallback=(UBool)(which==UCNV_ROUNDTRIP_AND_FALLBACK_SET); + useFallback = which == UCNV_ROUNDTRIP_AND_FALLBACK_SET; switch(mbcsTable->outputType) { case MBCS_OUTPUT_3: @@ -1117,7 +1117,7 @@ _extFromU(UConverter *cnv, const UConverterSharedData *sharedData, ucnv_extInitialMatchFromU( cnv, cx, cp, source, sourceLimit, - (char **)target, (char *)targetLimit, + reinterpret_cast(target), reinterpret_cast(targetLimit), offsets, sourceIndex, flush, pErrorCode) @@ -1132,7 +1132,7 @@ _extFromU(UConverter *cnv, const UConverterSharedData *sharedData, range=gb18030Ranges[0]; for(i=0; i(cp) && static_cast(cp) <= range[1]) { /* found the Unicode code point, output the four-byte sequence for it */ uint32_t linear; char bytes[4]; @@ -1141,17 +1141,17 @@ _extFromU(UConverter *cnv, const UConverterSharedData *sharedData, linear=range[2]-LINEAR_18030_BASE; /* add the offset from the beginning of the range */ - linear+=((uint32_t)cp-range[0]); + linear += (static_cast(cp) - range[0]); /* turn this into a four-byte sequence */ - bytes[3]=(char)(0x30+linear%10); linear/=10; - bytes[2]=(char)(0x81+linear%126); linear/=126; - bytes[1]=(char)(0x30+linear%10); linear/=10; - bytes[0]=(char)(0x81+linear); + bytes[3] = static_cast(0x30 + linear % 10); linear /= 10; + bytes[2] = static_cast(0x81 + linear % 126); linear /= 126; + bytes[1] = static_cast(0x30 + linear % 10); linear /= 10; + bytes[0] = static_cast(0x81 + linear); /* output this sequence */ ucnv_fromUWriteBytes(cnv, - bytes, 4, (char **)target, (char *)targetLimit, + bytes, 4, reinterpret_cast(target), reinterpret_cast(targetLimit), offsets, sourceIndex, pErrorCode); return 0; } @@ -1181,7 +1181,7 @@ _extToU(UConverter *cnv, const UConverterSharedData *sharedData, if( (cx=sharedData->mbcs.extIndexes)!=nullptr && ucnv_extInitialMatchToU( cnv, cx, - length, (const char **)source, (const char *)sourceLimit, + length, reinterpret_cast(source), reinterpret_cast(sourceLimit), target, targetLimit, offsets, sourceIndex, flush, @@ -1273,7 +1273,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { table=mbcsTable->fromUnicodeTable; bytes=mbcsTable->fromUnicodeBytes; - results=(const uint16_t *)bytes; + results = reinterpret_cast(bytes); /* * Check that this is an EBCDIC table with SBCS portion - @@ -1348,21 +1348,21 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { mbcsTable->countStates*1024+ sizeofFromUBytes+ UCNV_MAX_CONVERTER_NAME_LENGTH+20; - p=(uint8_t *)uprv_malloc(size); + p = static_cast(uprv_malloc(size)); if(p==nullptr) { *pErrorCode=U_MEMORY_ALLOCATION_ERROR; return false; } /* copy and modify the to-Unicode state table */ - newStateTable=(int32_t (*)[256])p; + newStateTable = reinterpret_cast(p); uprv_memcpy(newStateTable, mbcsTable->stateTable, mbcsTable->countStates*1024); newStateTable[0][EBCDIC_LF]=MBCS_ENTRY_FINAL(0, MBCS_STATE_VALID_DIRECT_16, U_NL); newStateTable[0][EBCDIC_NL]=MBCS_ENTRY_FINAL(0, MBCS_STATE_VALID_DIRECT_16, U_LF); /* copy and modify the from-Unicode result table */ - newResults=(uint16_t *)newStateTable[mbcsTable->countStates]; + newResults = reinterpret_cast(newStateTable[mbcsTable->countStates]); uprv_memcpy(newResults, bytes, sizeofFromUBytes); /* conveniently, the table access macros work on the left side of expressions */ @@ -1378,7 +1378,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { } /* set the canonical converter name */ - name=(char *)newResults+sizeofFromUBytes; + name = reinterpret_cast(newResults) + sizeofFromUBytes; uprv_strcpy(name, sharedData->staticData->name); uprv_strcat(name, UCNV_SWAP_LFNL_OPTION_STRING); @@ -1386,7 +1386,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { icu::umtx_lock(nullptr); if(mbcsTable->swapLFNLStateTable==nullptr) { mbcsTable->swapLFNLStateTable=newStateTable; - mbcsTable->swapLFNLFromUnicodeBytes=(uint8_t *)newResults; + mbcsTable->swapLFNLFromUnicodeBytes = reinterpret_cast(newResults); mbcsTable->swapLFNLName=name; newStateTable=nullptr; @@ -1413,7 +1413,7 @@ writeStage3Roundtrip(const void *context, uint32_t value, UChar32 codePoints[32] int32_t i, st3; table=mbcsTable->fromUnicodeTable; - bytes=(uint8_t *)mbcsTable->fromUnicodeBytes; + bytes = const_cast(mbcsTable->fromUnicodeBytes); /* for EUC outputTypes, modify the value like genmbcs.c's transformEUC() */ switch(mbcsTable->outputType) { @@ -1454,23 +1454,23 @@ writeStage3Roundtrip(const void *context, uint32_t value, UChar32 codePoints[32] /* locate the stage 2 & 3 data */ stage2=((uint32_t *)table)+table[c>>10]+((c>>4)&0x3f); p=bytes; - st3=(int32_t)(uint16_t)*stage2*16+(c&0xf); + st3 = static_cast(static_cast(*stage2)) * 16 + (c & 0xf); /* write the codepage bytes into stage 3 */ switch(mbcsTable->outputType) { case MBCS_OUTPUT_3: case MBCS_OUTPUT_4_EUC: p+=st3*3; - p[0]=(uint8_t)(value>>16); - p[1]=(uint8_t)(value>>8); - p[2]=(uint8_t)value; + p[0] = static_cast(value >> 16); + p[1] = static_cast(value >> 8); + p[2] = static_cast(value); break; case MBCS_OUTPUT_4: - ((uint32_t *)p)[st3]=value; + reinterpret_cast(p)[st3] = value; break; default: /* 2 bytes per character */ - ((uint16_t *)p)[st3]=(uint16_t)value; + reinterpret_cast(p)[st3] = static_cast(value); break; } @@ -1488,7 +1488,7 @@ reconstituteData(UConverterMBCSTable *mbcsTable, uint16_t *stage1; uint32_t *stage2; uint32_t dataLength=stage1Length*2+fullStage2Length*4+mbcsTable->fromUBytesLength; - mbcsTable->reconstitutedData=(uint8_t *)uprv_malloc(dataLength); + mbcsTable->reconstitutedData = static_cast(uprv_malloc(dataLength)); if(mbcsTable->reconstitutedData==nullptr) { *pErrorCode=U_MEMORY_ALLOCATION_ERROR; return; @@ -1496,29 +1496,29 @@ reconstituteData(UConverterMBCSTable *mbcsTable, uprv_memset(mbcsTable->reconstitutedData, 0, dataLength); /* copy existing data and reroute the pointers */ - stage1=(uint16_t *)mbcsTable->reconstitutedData; + stage1 = reinterpret_cast(mbcsTable->reconstitutedData); uprv_memcpy(stage1, mbcsTable->fromUnicodeTable, stage1Length*2); - stage2=(uint32_t *)(stage1+stage1Length); + stage2 = reinterpret_cast(stage1 + stage1Length); uprv_memcpy(stage2+(fullStage2Length-stage2Length), mbcsTable->fromUnicodeTable+stage1Length, stage2Length*4); mbcsTable->fromUnicodeTable=stage1; - mbcsTable->fromUnicodeBytes=(uint8_t *)(stage2+fullStage2Length); + mbcsTable->fromUnicodeBytes = reinterpret_cast(stage2 + fullStage2Length); /* indexes into stage 2 count from the bottom of the fromUnicodeTable */ - stage2=(uint32_t *)stage1; + stage2 = reinterpret_cast(stage1); /* reconstitute the initial part of stage 2 from the mbcsIndex */ { - int32_t stageUTF8Length=((int32_t)mbcsTable->maxFastUChar+1)>>6; + int32_t stageUTF8Length = (static_cast(mbcsTable->maxFastUChar) + 1) >> 6; int32_t stageUTF8Index=0; int32_t st1, st2, st3, i; for(st1=0; stageUTF8Index(stage1Length) / 2) { /* each stage 2 block has 64 entries corresponding to 16 entries in the mbcsIndex */ for(i=0; i<16; ++i) { st3=mbcsTable->mbcsIndex[stageUTF8Index++]; @@ -1568,13 +1568,13 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, } else if(header->version[0]==5 && header->version[1]>=3 && (header->options&MBCS_OPT_UNKNOWN_INCOMPATIBLE_MASK)==0) { headerLength=header->options&MBCS_OPT_LENGTH_MASK; - noFromU=(UBool)((header->options&MBCS_OPT_NO_FROM_U)!=0); + noFromU = static_cast((header->options & MBCS_OPT_NO_FROM_U) != 0); } else { *pErrorCode=U_INVALID_TABLE_FORMAT; return; } - mbcsTable->outputType=(uint8_t)header->flags; + mbcsTable->outputType = static_cast(header->flags); if(noFromU && mbcsTable->outputType==MBCS_OUTPUT_1) { *pErrorCode=U_INVALID_TABLE_FORMAT; return; @@ -1583,7 +1583,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, /* extension data, header version 4.2 and higher */ offset=header->flags>>8; if(offset!=0) { - mbcsTable->extIndexes=(const int32_t *)(raw+offset); + mbcsTable->extIndexes = reinterpret_cast(raw + offset); } if(mbcsTable->outputType==MBCS_OUTPUT_EXT_ONLY) { @@ -1606,7 +1606,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, } /* load the base table */ - baseName=(const char *)header+headerLength*4; + baseName = reinterpret_cast(header) + headerLength * 4; if(0==uprv_strcmp(baseName, sharedData->staticData->name)) { /* forbid loading this same extension-only file */ *pErrorCode=U_INVALID_TABLE_FORMAT; @@ -1685,7 +1685,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, MBCS_ENTRY_FINAL_ACTION(entry)==MBCS_STATE_CHANGE_ONLY && MBCS_ENTRY_FINAL_STATE(entry)!=0 ) { - mbcsTable->dbcsOnlyState=(uint8_t)MBCS_ENTRY_FINAL_STATE(entry); + mbcsTable->dbcsOnlyState = static_cast(MBCS_ENTRY_FINAL_STATE(entry)); mbcsTable->outputType=MBCS_OUTPUT_DBCS_ONLY; } @@ -1702,7 +1702,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, /* allocate a new state table and copy the base state table contents */ count=mbcsTable->countStates; - newStateTable=(int32_t (*)[256])uprv_malloc((count+1)*1024); + newStateTable = static_cast(uprv_malloc((count + 1) * 1024)); if(newStateTable==nullptr) { ucnv_unload(baseSharedData); *pErrorCode=U_MEMORY_ALLOCATION_ERROR; @@ -1725,7 +1725,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, state[i]=MBCS_ENTRY_FINAL(0, MBCS_STATE_ILLEGAL, 0); } mbcsTable->stateTable=(const int32_t (*)[256])newStateTable; - mbcsTable->countStates=(uint8_t)(count+1); + mbcsTable->countStates = static_cast(count + 1); mbcsTable->stateTableOwned=true; mbcsTable->outputType=MBCS_OUTPUT_DBCS_ONLY; @@ -1766,14 +1766,14 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, return; } - mbcsTable->countStates=(uint8_t)header->countStates; + mbcsTable->countStates = static_cast(header->countStates); mbcsTable->countToUFallbacks=header->countToUFallbacks; - mbcsTable->stateTable=(const int32_t (*)[256])(raw+headerLength*4); - mbcsTable->toUFallbacks=(const _MBCSToUFallback *)(mbcsTable->stateTable+header->countStates); - mbcsTable->unicodeCodeUnits=(const uint16_t *)(raw+header->offsetToUCodeUnits); + mbcsTable->stateTable = reinterpret_cast(raw + headerLength * 4); + mbcsTable->toUFallbacks = reinterpret_cast(mbcsTable->stateTable + header->countStates); + mbcsTable->unicodeCodeUnits = reinterpret_cast(raw + header->offsetToUCodeUnits); - mbcsTable->fromUnicodeTable=(const uint16_t *)(raw+header->offsetFromUTable); - mbcsTable->fromUnicodeBytes=(const uint8_t *)(raw+header->offsetFromUBytes); + mbcsTable->fromUnicodeTable = reinterpret_cast(raw + header->offsetFromUTable); + mbcsTable->fromUnicodeBytes = raw + header->offsetFromUBytes; mbcsTable->fromUBytesLength=header->fromUBytesLength; /* @@ -1784,7 +1784,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, udata_getInfo((UDataMemory *)sharedData->dataMemory, &info); if(info.formatVersion[0]>6 || (info.formatVersion[0]==6 && info.formatVersion[1]>=1)) { /* mask off possible future extensions to be safe */ - mbcsTable->unicodeMask=(uint8_t)(sharedData->staticData->unicodeMask&3); + mbcsTable->unicodeMask = static_cast(sharedData->staticData->unicodeMask & 3); } else { /* for older versions, assume worst case: contains anything possible (prevent over-optimizations) */ mbcsTable->unicodeMask=UCNV_HAS_SUPPLEMENTARY|UCNV_HAS_SURROGATES; @@ -1825,10 +1825,10 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, * The .cnv file is prebuilt with an additional stage table with indexes * to each block. */ - mbcsTable->mbcsIndex=(const uint16_t *) - (mbcsTable->fromUnicodeBytes+ + mbcsTable->mbcsIndex = reinterpret_cast( + mbcsTable->fromUnicodeBytes + (noFromU ? 0 : mbcsTable->fromUBytesLength)); - mbcsTable->maxFastUChar=(((char16_t)header->version[2])<<8)|0xff; + mbcsTable->maxFastUChar = (static_cast(header->version[2]) << 8) | 0xff; } } @@ -1839,7 +1839,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, for(i=0; i<0x80; ++i) { if(mbcsTable->stateTable[0][i]!=MBCS_ENTRY_FINAL(0, MBCS_STATE_VALID_DIRECT_16, i)) { - asciiRoundtrips&=~((uint32_t)1<<(i>>2)); + asciiRoundtrips &= ~(static_cast(1) << (i >> 2)); } } mbcsTable->asciiRoundtrips=asciiRoundtrips; @@ -1958,7 +1958,7 @@ ucnv_MBCSOpen(UConverter *cnv, extIndexes=mbcsTable->extIndexes; if(extIndexes!=nullptr) { - maxBytesPerUChar=(int8_t)UCNV_GET_MAX_BYTES_PER_UCHAR(extIndexes); + maxBytesPerUChar = static_cast(UCNV_GET_MAX_BYTES_PER_UCHAR(extIndexes)); if(outputType==MBCS_OUTPUT_2_SISO) { ++maxBytesPerUChar; /* SO + multiple DBCS */ } @@ -2048,8 +2048,8 @@ ucnv_MBCSSingleToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, /* set up the local pointers */ cnv=pArgs->converter; - source=(const uint8_t *)pArgs->source; - sourceLimit=(const uint8_t *)pArgs->sourceLimit; + source = reinterpret_cast(pArgs->source); + sourceLimit = reinterpret_cast(pArgs->sourceLimit); target=pArgs->target; targetLimit=pArgs->targetLimit; offsets=pArgs->offsets; @@ -2085,7 +2085,7 @@ ucnv_MBCSSingleToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, /* test the most common case first */ if(MBCS_ENTRY_FINAL_IS_VALID_DIRECT_16(entry)) { /* output BMP code point */ - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); if(offsets!=nullptr) { *offsets++=sourceIndex; } @@ -2099,17 +2099,17 @@ ucnv_MBCSSingleToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, * An if-else-if chain provides more reliable performance for * the most common cases compared to a switch. */ - action=(uint8_t)(MBCS_ENTRY_FINAL_ACTION(entry)); + action = static_cast(MBCS_ENTRY_FINAL_ACTION(entry)); if(action==MBCS_STATE_VALID_DIRECT_20 || (action==MBCS_STATE_FALLBACK_DIRECT_20 && UCNV_TO_U_USE_FALLBACK(cnv)) ) { entry=MBCS_ENTRY_FINAL_VALUE(entry); /* output surrogate pair */ - *target++=(char16_t)(0xd800|(char16_t)(entry>>10)); + *target++ = static_cast(0xd800 | static_cast(entry >> 10)); if(offsets!=nullptr) { *offsets++=sourceIndex; } - c=(char16_t)(0xdc00|(char16_t)(entry&0x3ff)); + c = static_cast(0xdc00 | static_cast(entry & 0x3ff)); if(target(MBCS_ENTRY_FINAL_VALUE_16(entry)); if(offsets!=nullptr) { *offsets++=sourceIndex; } @@ -2152,7 +2152,7 @@ ucnv_MBCSSingleToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, break; } else /* unassigned sequences indicated with byteIndex>0 */ { /* try an extension mapping */ - pArgs->source=(const char *)source; + pArgs->source = reinterpret_cast(source); cnv->toUBytes[0]=*(source-1); cnv->toULength=_extToU(cnv, cnv->sharedData, 1, &source, sourceLimit, @@ -2160,7 +2160,7 @@ ucnv_MBCSSingleToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, &offsets, sourceIndex, pArgs->flush, pErrorCode); - sourceIndex+=1+(int32_t)(source-(const uint8_t *)pArgs->source); + sourceIndex += 1 + static_cast(source - reinterpret_cast(pArgs->source)); if(U_FAILURE(*pErrorCode)) { /* not mappable or buffer overflow */ @@ -2170,7 +2170,7 @@ ucnv_MBCSSingleToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, } /* write back the updated pointers */ - pArgs->source=(const char *)source; + pArgs->source = reinterpret_cast(source); pArgs->target=target; pArgs->offsets=offsets; } @@ -2199,10 +2199,10 @@ ucnv_MBCSSingleToBMPWithOffsets(UConverterToUnicodeArgs *pArgs, /* set up the local pointers */ cnv=pArgs->converter; - source=(const uint8_t *)pArgs->source; - sourceLimit=(const uint8_t *)pArgs->sourceLimit; + source = reinterpret_cast(pArgs->source); + sourceLimit = reinterpret_cast(pArgs->sourceLimit); target=pArgs->target; - targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target); + targetCapacity = static_cast(pArgs->targetLimit - pArgs->target); offsets=pArgs->offsets; if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0) { @@ -2219,7 +2219,7 @@ ucnv_MBCSSingleToBMPWithOffsets(UConverterToUnicodeArgs *pArgs, * since the conversion here is 1:1 char16_t:uint8_t, we need only one counter * for the minimum of the sourceLength and targetCapacity */ - length=(int32_t)(sourceLimit-source); + length = static_cast(sourceLimit - source); if(length>4; do { oredEntries=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); oredEntries|=entry=stateTable[0][*source++]; - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); /* were all 16 entries really valid? */ if(!MBCS_ENTRY_FINAL_IS_VALID_DIRECT_16(oredEntries)) { @@ -2310,7 +2310,7 @@ ucnv_MBCSSingleToBMPWithOffsets(UConverterToUnicodeArgs *pArgs, /* test the most common case first */ if(MBCS_ENTRY_FINAL_IS_VALID_DIRECT_16(entry)) { /* output BMP code point */ - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); --targetCapacity; continue; } @@ -2319,11 +2319,11 @@ ucnv_MBCSSingleToBMPWithOffsets(UConverterToUnicodeArgs *pArgs, * An if-else-if chain provides more reliable performance for * the most common cases compared to a switch. */ - action=(uint8_t)(MBCS_ENTRY_FINAL_ACTION(entry)); + action = static_cast(MBCS_ENTRY_FINAL_ACTION(entry)); if(action==MBCS_STATE_FALLBACK_DIRECT_16) { if(UCNV_TO_U_USE_FALLBACK(cnv)) { /* output BMP code point */ - *target++=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + *target++ = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); --targetCapacity; continue; } @@ -2339,7 +2339,7 @@ ucnv_MBCSSingleToBMPWithOffsets(UConverterToUnicodeArgs *pArgs, /* set offsets since the start or the last extension */ if(offsets!=nullptr) { - int32_t count=(int32_t)(source-lastSource); + int32_t count = static_cast(source - lastSource); /* predecrement: do not set the offset for the callback-causing character */ while(--count>0) { @@ -2361,7 +2361,7 @@ ucnv_MBCSSingleToBMPWithOffsets(UConverterToUnicodeArgs *pArgs, &offsets, sourceIndex, pArgs->flush, pErrorCode); - sourceIndex+=1+(int32_t)(source-lastSource); + sourceIndex += 1 + static_cast(source - lastSource); if(U_FAILURE(*pErrorCode)) { /* not mappable or buffer overflow */ @@ -2369,8 +2369,8 @@ ucnv_MBCSSingleToBMPWithOffsets(UConverterToUnicodeArgs *pArgs, } /* recalculate the targetCapacity after an extension mapping */ - targetCapacity=(int32_t)(pArgs->targetLimit-target); - length=(int32_t)(sourceLimit-source); + targetCapacity = static_cast(pArgs->targetLimit - target); + length = static_cast(sourceLimit - source); if(lengthsource=(const char *)source; + pArgs->source = reinterpret_cast(source); pArgs->target=target; pArgs->offsets=offsets; } @@ -2432,7 +2432,7 @@ hasValidTrailBytes(const int32_t (*stateTable)[256], uint8_t state) { for(b=0; b<=0xff; ++b) { entry=row[b]; if( MBCS_ENTRY_IS_TRANSITION(entry) && - hasValidTrailBytes(stateTable, (uint8_t)MBCS_ENTRY_TRANSITION_STATE(entry)) + hasValidTrailBytes(stateTable, static_cast(MBCS_ENTRY_TRANSITION_STATE(entry))) ) { return true; } @@ -2450,9 +2450,9 @@ isSingleOrLead(const int32_t (*stateTable)[256], uint8_t state, UBool isDBCSOnly const int32_t *row=stateTable[state]; int32_t entry=row[b]; if(MBCS_ENTRY_IS_TRANSITION(entry)) { /* lead byte */ - return hasValidTrailBytes(stateTable, (uint8_t)MBCS_ENTRY_TRANSITION_STATE(entry)); + return hasValidTrailBytes(stateTable, static_cast(MBCS_ENTRY_TRANSITION_STATE(entry))); } else { - uint8_t action=(uint8_t)(MBCS_ENTRY_FINAL_ACTION(entry)); + uint8_t action = static_cast(MBCS_ENTRY_FINAL_ACTION(entry)); if(action==MBCS_STATE_CHANGE_ONLY && isDBCSOnly) { return false; /* SI/SO are illegal for DBCS-only conversion */ } else { @@ -2823,7 +2823,7 @@ ucnv_MBCSToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, * - If any of the non-initial bytes could be the start of a character, * we stop the illegal sequence before the first one of those. */ - UBool isDBCSOnly=(UBool)(cnv->sharedData->mbcs.dbcsOnlyState!=0); + UBool isDBCSOnly = cnv->sharedData->mbcs.dbcsOnlyState != 0; int8_t i; for(i=1; iconverter; - source=(const uint8_t *)pArgs->source; - sourceLimit=(const uint8_t *)pArgs->sourceLimit; + source = reinterpret_cast(pArgs->source); + sourceLimit = reinterpret_cast(pArgs->sourceLimit); if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0) { stateTable=(const int32_t (*)[256])cnv->sharedData->mbcs.swapLFNLStateTable; } else { @@ -2904,27 +2904,27 @@ ucnv_MBCSSingleGetNextUChar(UConverterToUnicodeArgs *pArgs, /* MBCS_ENTRY_IS_FINAL(entry) */ /* write back the updated pointer early so that we can return directly */ - pArgs->source=(const char *)source; + pArgs->source = reinterpret_cast(source); if(MBCS_ENTRY_FINAL_IS_VALID_DIRECT_16(entry)) { /* output BMP code point */ - return (char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + return static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); } /* * An if-else-if chain provides more reliable performance for * the most common cases compared to a switch. */ - action=(uint8_t)(MBCS_ENTRY_FINAL_ACTION(entry)); + action = static_cast(MBCS_ENTRY_FINAL_ACTION(entry)); if( action==MBCS_STATE_VALID_DIRECT_20 || (action==MBCS_STATE_FALLBACK_DIRECT_20 && UCNV_TO_U_USE_FALLBACK(cnv)) ) { /* output supplementary code point */ - return (UChar32)(MBCS_ENTRY_FINAL_VALUE(entry)+0x10000); + return static_cast(MBCS_ENTRY_FINAL_VALUE(entry) + 0x10000); } else if(action==MBCS_STATE_FALLBACK_DIRECT_16) { if(UCNV_TO_U_USE_FALLBACK(cnv)) { /* output BMP code point */ - return (char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + return static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); } } else if(action==MBCS_STATE_UNASSIGNED) { /* just fall through */ @@ -2941,7 +2941,7 @@ ucnv_MBCSSingleGetNextUChar(UConverterToUnicodeArgs *pArgs, break; } else /* unassigned sequence */ { /* defer to the generic implementation */ - pArgs->source=(const char *)source-1; + pArgs->source = reinterpret_cast(source) - 1; return UCNV_GET_NEXT_UCHAR_USE_TO_U; } } @@ -2999,8 +2999,8 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, } /* set up the local pointers */ - source=lastSource=(const uint8_t *)pArgs->source; - sourceLimit=(const uint8_t *)pArgs->sourceLimit; + source = lastSource = reinterpret_cast(pArgs->source); + sourceLimit = reinterpret_cast(pArgs->sourceLimit); if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0) { stateTable=(const int32_t (*)[256])cnv->sharedData->mbcs.swapLFNLStateTable; @@ -3017,7 +3017,7 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, * then load the DBCS state from the MBCS data * (dbcsOnlyState==0 if it is not a DBCS-only converter) */ - if((state=(uint8_t)(cnv->mode))==0) { + if ((state = static_cast(cnv->mode)) == 0) { state=cnv->sharedData->mbcs.dbcsOnlyState; } @@ -3026,7 +3026,7 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, while(source(MBCS_ENTRY_TRANSITION_STATE(entry)); offset+=MBCS_ENTRY_TRANSITION_OFFSET(entry); /* optimization for 1/2-byte input and BMP output */ @@ -3036,7 +3036,7 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, (c=unicodeCodeUnits[offset+MBCS_ENTRY_FINAL_VALUE_16(entry)])<0xfffe ) { ++source; - state=(uint8_t)MBCS_ENTRY_FINAL_STATE(entry); /* typically 0 */ + state = static_cast(MBCS_ENTRY_FINAL_STATE(entry)); /* typically 0 */ /* output BMP code point */ break; } @@ -3045,16 +3045,16 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, cnv->mode=state; /* set the next state early so that we can reuse the entry variable */ - state=(uint8_t)MBCS_ENTRY_FINAL_STATE(entry); /* typically 0 */ + state = static_cast(MBCS_ENTRY_FINAL_STATE(entry)); /* typically 0 */ /* * An if-else-if chain provides more reliable performance for * the most common cases compared to a switch. */ - action=(uint8_t)(MBCS_ENTRY_FINAL_ACTION(entry)); + action = static_cast(MBCS_ENTRY_FINAL_ACTION(entry)); if(action==MBCS_STATE_VALID_DIRECT_16) { /* output BMP code point */ - c=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + c = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); break; } else if(action==MBCS_STATE_VALID_16) { offset+=MBCS_ENTRY_FINAL_VALUE_16(entry); @@ -3092,7 +3092,7 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, (action==MBCS_STATE_FALLBACK_DIRECT_20 && UCNV_TO_U_USE_FALLBACK(cnv)) ) { /* output supplementary code point */ - c=(UChar32)(MBCS_ENTRY_FINAL_VALUE(entry)+0x10000); + c = static_cast(MBCS_ENTRY_FINAL_VALUE(entry) + 0x10000); break; } else if(action==MBCS_STATE_CHANGE_ONLY) { /* @@ -3104,7 +3104,7 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, */ if(cnv->sharedData->mbcs.dbcsOnlyState!=0) { /* SI/SO are illegal for DBCS-only conversion */ - state=(uint8_t)(cnv->mode); /* restore the previous state */ + state = static_cast(cnv->mode); /* restore the previous state */ /* callback(illegal) */ *pErrorCode=U_ILLEGAL_CHAR_FOUND; @@ -3112,7 +3112,7 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, } else if(action==MBCS_STATE_FALLBACK_DIRECT_16) { if(UCNV_TO_U_USE_FALLBACK(cnv)) { /* output BMP code point */ - c=(char16_t)MBCS_ENTRY_FINAL_VALUE_16(entry); + c = static_cast(MBCS_ENTRY_FINAL_VALUE_16(entry)); break; } } else if(action==MBCS_STATE_UNASSIGNED) { @@ -3137,7 +3137,7 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, /* defer to the generic implementation */ cnv->toUnicodeStatus=0; cnv->mode=state; - pArgs->source=(const char *)lastSource; + pArgs->source = reinterpret_cast(lastSource); return UCNV_GET_NEXT_UCHAR_USE_TO_U; } } @@ -3147,7 +3147,7 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, if(U_SUCCESS(*pErrorCode) && source==sourceLimit && lastSourcetoUBytes; - cnv->toULength=(int8_t)(source-lastSource); + cnv->toULength = static_cast(source - lastSource); do { *bytes++=*lastSource++; } while(lastSourcesharedData->mbcs.dbcsOnlyState!=0); + UBool isDBCSOnly = static_cast(cnv->sharedData->mbcs.dbcsOnlyState != 0); uint8_t *bytes=cnv->toUBytes; *bytes++=*lastSource++; /* first byte */ if(lastSource==source) { @@ -3188,7 +3188,7 @@ ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs, cnv->mode=state; /* write back the updated pointer */ - pArgs->source=(const char *)source; + pArgs->source = reinterpret_cast(source); return c; } @@ -3431,8 +3431,8 @@ ucnv_MBCSDoubleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* set up the local pointers */ source=pArgs->source; sourceLimit=pArgs->sourceLimit; - target=(uint8_t *)pArgs->target; - targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target); + target = reinterpret_cast(pArgs->target); + targetCapacity = static_cast(pArgs->targetLimit - pArgs->target); offsets=pArgs->offsets; table=cnv->sharedData->mbcs.fromUnicodeTable; @@ -3474,7 +3474,7 @@ ucnv_MBCSDoubleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, c=*source++; ++nextSourceIndex; if(c<=0x7f && IS_ASCII_ROUNDTRIP(c, asciiRoundtrips)) { - *target++=(uint8_t)c; + *target++ = static_cast(c); if(offsets!=nullptr) { *offsets++=sourceIndex; sourceIndex=nextSourceIndex; @@ -3562,7 +3562,7 @@ ucnv_MBCSDoubleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, &offsets, sourceIndex, pArgs->flush, pErrorCode); - nextSourceIndex+=(int32_t)(source-pArgs->source); + nextSourceIndex += static_cast(source - pArgs->source); if(U_FAILURE(*pErrorCode)) { /* not mappable or buffer overflow */ @@ -3571,7 +3571,7 @@ ucnv_MBCSDoubleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* a mapping was written to the target, continue */ /* recalculate the targetCapacity after an extension mapping */ - targetCapacity=(int32_t)(pArgs->targetLimit-(char *)target); + targetCapacity = static_cast(pArgs->targetLimit - reinterpret_cast(target)); /* normal end of conversion: prepare for a new character */ sourceIndex=nextSourceIndex; @@ -3584,15 +3584,15 @@ ucnv_MBCSDoubleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* from the first if in the loop we know that targetCapacity>0 */ if(value<=0xff) { /* this is easy because we know that there is enough space */ - *target++=(uint8_t)value; + *target++ = static_cast(value); if(offsets!=nullptr) { *offsets++=sourceIndex; } --targetCapacity; } else /* length==2 */ { - *target++=(uint8_t)(value>>8); + *target++ = static_cast(value >> 8); if(2<=targetCapacity) { - *target++=(uint8_t)value; + *target++ = static_cast(value); if(offsets!=nullptr) { *offsets++=sourceIndex; *offsets++=sourceIndex; @@ -3602,7 +3602,7 @@ ucnv_MBCSDoubleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, if(offsets!=nullptr) { *offsets++=sourceIndex; } - cnv->charErrorBuffer[0]=(char)value; + cnv->charErrorBuffer[0] = static_cast(value); cnv->charErrorBufferLength=1; /* target overflow */ @@ -3629,7 +3629,7 @@ ucnv_MBCSDoubleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* write back the updated pointers */ pArgs->source=source; - pArgs->target=(char *)target; + pArgs->target = reinterpret_cast(target); pArgs->offsets=offsets; } @@ -3657,13 +3657,13 @@ ucnv_MBCSSingleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, cnv=pArgs->converter; source=pArgs->source; sourceLimit=pArgs->sourceLimit; - target=(uint8_t *)pArgs->target; - targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target); + target = reinterpret_cast(pArgs->target); + targetCapacity = static_cast(pArgs->targetLimit - pArgs->target); offsets=pArgs->offsets; table=cnv->sharedData->mbcs.fromUnicodeTable; if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0) { - results=(uint16_t *)cnv->sharedData->mbcs.swapLFNLFromUnicodeBytes; + results = reinterpret_cast(cnv->sharedData->mbcs.swapLFNLFromUnicodeBytes); } else { results=(uint16_t *)cnv->sharedData->mbcs.fromUnicodeBytes; } @@ -3675,7 +3675,7 @@ ucnv_MBCSSingleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* use only roundtrips and fallbacks from private-use characters */ minValue=0xc00; } - hasSupplementary=(UBool)(cnv->sharedData->mbcs.unicodeMask&UCNV_HAS_SUPPLEMENTARY); + hasSupplementary = static_cast(cnv->sharedData->mbcs.unicodeMask & UCNV_HAS_SUPPLEMENTARY); /* get the converter state from UConverter */ c=cnv->fromUChar32; @@ -3749,7 +3749,7 @@ ucnv_MBCSSingleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* assigned, write the output character bytes from value and length */ /* length==1 */ /* this is easy because we know that there is enough space */ - *target++=(uint8_t)value; + *target++ = static_cast(value); if(offsets!=nullptr) { *offsets++=sourceIndex; } @@ -3768,7 +3768,7 @@ ucnv_MBCSSingleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, &offsets, sourceIndex, pArgs->flush, pErrorCode); - nextSourceIndex+=(int32_t)(source-pArgs->source); + nextSourceIndex += static_cast(source - pArgs->source); if(U_FAILURE(*pErrorCode)) { /* not mappable or buffer overflow */ @@ -3777,7 +3777,7 @@ ucnv_MBCSSingleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* a mapping was written to the target, continue */ /* recalculate the targetCapacity after an extension mapping */ - targetCapacity=(int32_t)(pArgs->targetLimit-(char *)target); + targetCapacity = static_cast(pArgs->targetLimit - reinterpret_cast(target)); /* normal end of conversion: prepare for a new character */ sourceIndex=nextSourceIndex; @@ -3795,7 +3795,7 @@ ucnv_MBCSSingleFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, /* write back the updated pointers */ pArgs->source=source; - pArgs->target=(char *)target; + pArgs->target = reinterpret_cast(target); pArgs->offsets=offsets; } @@ -3833,13 +3833,13 @@ ucnv_MBCSSingleFromBMPWithOffsets(UConverterFromUnicodeArgs *pArgs, cnv=pArgs->converter; source=pArgs->source; sourceLimit=pArgs->sourceLimit; - target=(uint8_t *)pArgs->target; - targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target); + target = reinterpret_cast(pArgs->target); + targetCapacity = static_cast(pArgs->targetLimit - pArgs->target); offsets=pArgs->offsets; table=cnv->sharedData->mbcs.fromUnicodeTable; if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0) { - results=(uint16_t *)cnv->sharedData->mbcs.swapLFNLFromUnicodeBytes; + results = reinterpret_cast(cnv->sharedData->mbcs.swapLFNLFromUnicodeBytes); } else { results=(uint16_t *)cnv->sharedData->mbcs.fromUnicodeBytes; } @@ -3864,7 +3864,7 @@ ucnv_MBCSSingleFromBMPWithOffsets(UConverterFromUnicodeArgs *pArgs, * since the conversion here is 1:1 char16_t:uint8_t, we need only one counter * for the minimum of the sourceLength and targetCapacity */ - length=(int32_t)(sourceLimit-source); + length = static_cast(sourceLimit - source); if(length(c); --targetCapacity; c=0; continue; @@ -3948,7 +3948,7 @@ ucnv_MBCSSingleFromBMPWithOffsets(UConverterFromUnicodeArgs *pArgs, /* assigned, write the output character bytes from value and length */ /* length==1 */ /* this is easy because we know that there is enough space */ - *target++=(uint8_t)value; + *target++ = static_cast(value); --targetCapacity; /* normal end of conversion: prepare for a new character */ @@ -3993,7 +3993,7 @@ ucnv_MBCSSingleFromBMPWithOffsets(UConverterFromUnicodeArgs *pArgs, /* set offsets since the start or the last extension */ if(offsets!=nullptr) { - int32_t count=(int32_t)(source-lastSource); + int32_t count = static_cast(source - lastSource); /* do not set the offset for this character */ count-=length; @@ -4009,11 +4009,11 @@ ucnv_MBCSSingleFromBMPWithOffsets(UConverterFromUnicodeArgs *pArgs, lastSource=source; c=_extFromU(cnv, cnv->sharedData, c, &source, sourceLimit, - &target, (const uint8_t *)(pArgs->targetLimit), + &target, reinterpret_cast(pArgs->targetLimit), &offsets, sourceIndex, pArgs->flush, pErrorCode); - sourceIndex+=length+(int32_t)(source-lastSource); + sourceIndex += length + static_cast(source - lastSource); lastSource=source; if(U_FAILURE(*pErrorCode)) { @@ -4023,8 +4023,8 @@ ucnv_MBCSSingleFromBMPWithOffsets(UConverterFromUnicodeArgs *pArgs, /* a mapping was written to the target, continue */ /* recalculate the targetCapacity after an extension mapping */ - targetCapacity=(int32_t)(pArgs->targetLimit-(char *)target); - length=(int32_t)(sourceLimit-source); + targetCapacity = static_cast(pArgs->targetLimit - reinterpret_cast(target)); + length = static_cast(sourceLimit - source); if(lengthsource=source; - pArgs->target=(char *)target; + pArgs->target = reinterpret_cast(target); pArgs->offsets=offsets; } @@ -4777,14 +4777,14 @@ ucnv_MBCSFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, ) { /* EBCDIC_STATEFUL ending with DBCS: emit an SI to return the output stream to SBCS */ if(targetCapacity>0) { - *target++=(uint8_t)siBytes[0]; + *target++ = siBytes[0]; if (siLength == 2) { if (targetCapacity<2) { - cnv->charErrorBuffer[0]=(uint8_t)siBytes[1]; + cnv->charErrorBuffer[0] = siBytes[1]; cnv->charErrorBufferLength=1; *pErrorCode=U_BUFFER_OVERFLOW_ERROR; } else { - *target++=(uint8_t)siBytes[1]; + *target++ = siBytes[1]; } } if(offsets!=nullptr) { @@ -4793,9 +4793,9 @@ ucnv_MBCSFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, } } else { /* target is full */ - cnv->charErrorBuffer[0]=(uint8_t)siBytes[0]; + cnv->charErrorBuffer[0] = siBytes[0]; if (siLength == 2) { - cnv->charErrorBuffer[1]=(uint8_t)siBytes[1]; + cnv->charErrorBuffer[1] = siBytes[1]; } cnv->charErrorBufferLength=siLength; *pErrorCode=U_BUFFER_OVERFLOW_ERROR; @@ -5042,13 +5042,13 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, cnv=pFromUArgs->converter; source=(uint8_t *)pToUArgs->source; sourceLimit=(uint8_t *)pToUArgs->sourceLimit; - target=(uint8_t *)pFromUArgs->target; - targetCapacity=(int32_t)(pFromUArgs->targetLimit-pFromUArgs->target); + target = reinterpret_cast(pFromUArgs->target); + targetCapacity = static_cast(pFromUArgs->targetLimit - pFromUArgs->target); table=cnv->sharedData->mbcs.fromUnicodeTable; sbcsIndex=cnv->sharedData->mbcs.sbcsIndex; if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0) { - results=(uint16_t *)cnv->sharedData->mbcs.swapLFNLFromUnicodeBytes; + results = reinterpret_cast(cnv->sharedData->mbcs.swapLFNLFromUnicodeBytes); } else { results=(uint16_t *)cnv->sharedData->mbcs.fromUnicodeBytes; } @@ -5061,13 +5061,13 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, /* use only roundtrips and fallbacks from private-use characters */ minValue=0xc00; } - hasSupplementary=(UBool)(cnv->sharedData->mbcs.unicodeMask&UCNV_HAS_SUPPLEMENTARY); + hasSupplementary = static_cast(cnv->sharedData->mbcs.unicodeMask & UCNV_HAS_SUPPLEMENTARY); /* get the converter state from the UTF-8 UConverter */ if(utf8->toULength > 0) { toULength=oldToULength=utf8->toULength; - toULimit=(int8_t)utf8->mode; - c=(UChar32)utf8->toUnicodeStatus; + toULimit = static_cast(utf8->mode); + c = static_cast(utf8->toUnicodeStatus); } else { toULength=oldToULength=toULimit=0; c = 0; @@ -5080,7 +5080,7 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, { // Do not go back into the bytes that will be read for finishing a partial // sequence from the previous buffer. - int32_t length=(int32_t)(sourceLimit-source) - (toULimit-oldToULength); + int32_t length = static_cast(sourceLimit - source) - (toULimit - oldToULength); if(length>0) { uint8_t b1=*(sourceLimit-1); if(U8_IS_SINGLE(b1)) { @@ -5130,7 +5130,7 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, if(U8_IS_SINGLE(b)) { /* convert ASCII */ if(IS_ASCII_ROUNDTRIP(b, asciiRoundtrips)) { - *target++=(uint8_t)b; + *target++ = b; --targetCapacity; continue; } else { @@ -5141,13 +5141,13 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, if(b<0xe0) { if( /* handle U+0080..U+07FF inline */ b>=0xc2 && - (t1=(uint8_t)(*source-0x80)) <= 0x3f + (t1 = static_cast(*source - 0x80)) <= 0x3f ) { c=b&0x1f; ++source; value=SBCS_RESULT_FROM_UTF8(sbcsIndex, results, c, t1); if(value>=minValue) { - *target++=(uint8_t)value; + *target++ = static_cast(value); --targetCapacity; continue; } else { @@ -5158,14 +5158,14 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, } } else if(b==0xe0) { if( /* handle U+0800..U+0FFF inline */ - (t1=(uint8_t)(source[0]-0x80)) <= 0x3f && t1 >= 0x20 && - (t2=(uint8_t)(source[1]-0x80)) <= 0x3f + (t1 = static_cast(source[0] - 0x80)) <= 0x3f && t1 >= 0x20 && + (t2 = static_cast(source[1] - 0x80)) <= 0x3f ) { c=t1; source+=2; value=SBCS_RESULT_FROM_UTF8(sbcsIndex, results, c, t2); if(value>=minValue) { - *target++=(uint8_t)value; + *target++ = static_cast(value); --targetCapacity; continue; } else { @@ -5212,7 +5212,7 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, utf8->toULength=toULength; utf8->mode=toULimit; pToUArgs->source=(char *)source; - pFromUArgs->target=(char *)target; + pFromUArgs->target = reinterpret_cast(target); return; } } @@ -5238,7 +5238,7 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, } utf8->toULength=toULength; pToUArgs->source=(char *)source; - pFromUArgs->target=(char *)target; + pFromUArgs->target = reinterpret_cast(target); *pErrorCode=U_ILLEGAL_CHAR_FOUND; return; } @@ -5247,7 +5247,7 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, if(value>=minValue) { /* output the mapping for c */ - *target++=(uint8_t)value; + *target++ = static_cast(value); --targetCapacity; } else { /* valuetargetLimit-(char *)target); + targetCapacity = static_cast(pFromUArgs->targetLimit - reinterpret_cast(target)); } } } else { @@ -5315,7 +5315,7 @@ ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, /* write back the updated pointers */ pToUArgs->source=(char *)source; - pFromUArgs->target=(char *)target; + pFromUArgs->target = reinterpret_cast(target); } static void U_CALLCONV @@ -5345,25 +5345,25 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, cnv=pFromUArgs->converter; source=(uint8_t *)pToUArgs->source; sourceLimit=(uint8_t *)pToUArgs->sourceLimit; - target=(uint8_t *)pFromUArgs->target; - targetCapacity=(int32_t)(pFromUArgs->targetLimit-pFromUArgs->target); + target = reinterpret_cast(pFromUArgs->target); + targetCapacity = static_cast(pFromUArgs->targetLimit - pFromUArgs->target); table=cnv->sharedData->mbcs.fromUnicodeTable; mbcsIndex=cnv->sharedData->mbcs.mbcsIndex; if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0) { - results=(uint16_t *)cnv->sharedData->mbcs.swapLFNLFromUnicodeBytes; + results = reinterpret_cast(cnv->sharedData->mbcs.swapLFNLFromUnicodeBytes); } else { results=(uint16_t *)cnv->sharedData->mbcs.fromUnicodeBytes; } asciiRoundtrips=cnv->sharedData->mbcs.asciiRoundtrips; - hasSupplementary=(UBool)(cnv->sharedData->mbcs.unicodeMask&UCNV_HAS_SUPPLEMENTARY); + hasSupplementary = static_cast(cnv->sharedData->mbcs.unicodeMask & UCNV_HAS_SUPPLEMENTARY); /* get the converter state from the UTF-8 UConverter */ if(utf8->toULength > 0) { toULength=oldToULength=utf8->toULength; - toULimit=(int8_t)utf8->mode; - c=(UChar32)utf8->toUnicodeStatus; + toULimit = static_cast(utf8->mode); + c = static_cast(utf8->toUnicodeStatus); } else { toULength=oldToULength=toULimit=0; c = 0; @@ -5376,7 +5376,7 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, { // Do not go back into the bytes that will be read for finishing a partial // sequence from the previous buffer. - int32_t length=(int32_t)(sourceLimit-source) - (toULimit-oldToULength); + int32_t length = static_cast(sourceLimit - source) - (toULimit - oldToULength); if(length>0) { uint8_t b1=*(sourceLimit-1); if(U8_IS_SINGLE(b1)) { @@ -5423,7 +5423,7 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, if( /* handle U+0800..U+D7FF inline */ b<=0xed && // do not assume maxFastUChar>0xd7ff U8_IS_VALID_LEAD3_AND_T1(b, t1=source[0]) && - (t2=(uint8_t)(source[1]-0x80)) <= 0x3f + (t2 = static_cast(source[1] - 0x80)) <= 0x3f ) { c=((b&0xf)<<6)|(t1&0x3f); source+=2; @@ -5438,7 +5438,7 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, } else { if( /* handle U+0080..U+07FF inline */ b>=0xc2 && - (t1=(uint8_t)(*source-0x80)) <= 0x3f + (t1 = static_cast(*source - 0x80)) <= 0x3f ) { c=b&0x1f; ++source; @@ -5486,7 +5486,7 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, utf8->toULength=toULength; utf8->mode=toULimit; pToUArgs->source=(char *)source; - pFromUArgs->target=(char *)target; + pFromUArgs->target = reinterpret_cast(target); return; } } @@ -5512,7 +5512,7 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, } utf8->toULength=toULength; pToUArgs->source=(char *)source; - pFromUArgs->target=(char *)target; + pFromUArgs->target = reinterpret_cast(target); *pErrorCode=U_ILLEGAL_CHAR_FOUND; return; } @@ -5534,15 +5534,15 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, /* from the first if in the loop we know that targetCapacity>0 */ if(value<=0xff) { /* this is easy because we know that there is enough space */ - *target++=(uint8_t)value; + *target++ = static_cast(value); --targetCapacity; } else /* length==2 */ { - *target++=(uint8_t)(value>>8); + *target++ = static_cast(value >> 8); if(2<=targetCapacity) { - *target++=(uint8_t)value; + *target++ = static_cast(value); targetCapacity-=2; } else { - cnv->charErrorBuffer[0]=(char)value; + cnv->charErrorBuffer[0] = static_cast(value); cnv->charErrorBufferLength=1; /* target overflow */ @@ -5586,7 +5586,7 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, /* a mapping was written to the target, continue */ /* recalculate the targetCapacity after an extension mapping */ - targetCapacity=(int32_t)(pFromUArgs->targetLimit-(char *)target); + targetCapacity = static_cast(pFromUArgs->targetLimit - reinterpret_cast(target)); continue; } } @@ -5619,7 +5619,7 @@ ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs, /* write back the updated pointers */ pToUArgs->source=(char *)source; - pFromUArgs->target=(char *)target; + pFromUArgs->target = reinterpret_cast(target); } /* miscellaneous ------------------------------------------------------------ */ @@ -5634,7 +5634,7 @@ ucnv_MBCSGetStarters(const UConverter* cnv, state0=cnv->sharedData->mbcs.stateTable[cnv->sharedData->mbcs.dbcsOnlyState]; for(i=0; i<256; ++i) { /* all bytes that cause a state transition from state 0 are lead bytes */ - starters[i]= (UBool)MBCS_ENTRY_IS_TRANSITION(state0[i]); + starters[i] = static_cast(MBCS_ENTRY_IS_TRANSITION(state0[i])); } } @@ -5644,7 +5644,7 @@ ucnv_MBCSGetStarters(const UConverter* cnv, */ U_CFUNC UBool ucnv_MBCSIsLeadByte(UConverterSharedData *sharedData, char byte) { - return (UBool)MBCS_ENTRY_IS_TRANSITION(sharedData->mbcs.stateTable[0][(uint8_t)byte]); + return MBCS_ENTRY_IS_TRANSITION(sharedData->mbcs.stateTable[0][(uint8_t)byte]); } static void U_CALLCONV @@ -5663,11 +5663,11 @@ ucnv_MBCSWriteSub(UConverterFromUnicodeArgs *pArgs, (cnv->invalidUCharBuffer[0]<=0xff)) ) { /* select subChar1 if it is set (not 0) and the unmappable Unicode code point is up to U+00ff (IBM MBCS behavior) */ - subchar=(char *)&cnv->subChar1; + subchar = reinterpret_cast(&cnv->subChar1); length=1; } else { /* select subChar in all other cases */ - subchar=(char *)cnv->subChars; + subchar = reinterpret_cast(cnv->subChars); length=cnv->subCharLen; } @@ -5701,7 +5701,7 @@ ucnv_MBCSWriteSub(UConverterFromUnicodeArgs *pArgs, return; } subchar=buffer; - length=(int32_t)(p-buffer); + length = static_cast(p - buffer); } ucnv_cbFromUWriteBytes(pArgs, subchar, length, offsetIndex, pErrorCode); diff --git a/thirdparty/icu4c/common/ucnvscsu.cpp b/thirdparty/icu4c/common/ucnvscsu.cpp index e6f8660df404..5412136a346a 100644 --- a/thirdparty/icu4c/common/ucnvscsu.cpp +++ b/thirdparty/icu4c/common/ucnvscsu.cpp @@ -883,8 +883,8 @@ static int8_t getWindow(const uint32_t offsets[8], uint32_t c) { int i; for(i=0; i<8; ++i) { - if((uint32_t)(c-offsets[i])<=0x7f) { - return (int8_t)(i); + if (c - offsets[i] <= 0x7f) { + return static_cast(i); } } return -1; @@ -893,9 +893,9 @@ getWindow(const uint32_t offsets[8], uint32_t c) { /* is the character in the dynamic window starting at the offset, or in the direct-encoded range? */ static UBool isInOffsetWindowOrDirect(uint32_t offset, uint32_t c) { - return (UBool)(c<=offset+0x7f && + return c<=offset+0x7f && (c>=offset || (c<=0x7f && - (c>=0x20 || (1UL<=0x20 || (1UL<>7); + return static_cast(c >> 7); } else if(0xe000<=c && c!=0xfeff && c<0xfff0) { /* For these characters we need to take the gapOffset into account. */ *pOffset=c&0x7fffff80; - return (int)((c-gapOffset)>>7); + return static_cast((c - gapOffset) >> 7); } else { return -1; } @@ -1208,8 +1208,8 @@ _SCSUFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, c=((uint32_t)(SD0+dynamicWindow)<<16)|((uint32_t)code<<8)|(c-currentOffset)|0x80; length=3; goto outputBytes; - } else if((uint32_t)(c-0x3400)<(0xd800-0x3400) && - (source>=sourceLimit || (uint32_t)(*source-0x3400)<(0xd800-0x3400)) + } else if ((c - 0x3400) < (0xd800 - 0x3400) && + (source >= sourceLimit || (uint32_t)(*source - 0x3400) < (0xd800 - 0x3400)) ) { /* * this character is not compressible (a BMP ideograph or similar); @@ -1248,7 +1248,7 @@ _SCSUFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, c=*source++; ++nextSourceIndex; - if((uint32_t)(c-0x3400)<(0xd800-0x3400)) { + if ((c - 0x3400) < (0xd800 - 0x3400)) { /* not compressible, write character directly */ if(targetCapacity>=2) { *target++=(uint8_t)(c>>8); @@ -1262,10 +1262,10 @@ _SCSUFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, length=2; goto outputBytes; } - } else if((uint32_t)(c-0x3400)>=(0xf300-0x3400) /* c<0x3400 || c>=0xf300 */) { + } else if (c - 0x3400 >= 0xf300 - 0x3400 /* c<0x3400 || c>=0xf300 */) { /* compress BMP character if the following one is not an uncompressible ideograph */ if(!(source=sourceLimit || (uint32_t)(*source-0x3400)<(0xd800-0x3400)) + } else if (c - 0x3400 < 0xd800 - 0x3400 && + (source >= sourceLimit || static_cast(*source - 0x3400) < 0xd800 - 0x3400) ) { /* * this character is not compressible (a BMP ideograph or similar); @@ -1729,7 +1729,7 @@ _SCSUFromUnicode(UConverterFromUnicodeArgs *pArgs, } c=*source++; - if((uint32_t)(c-0x3400)<(0xd800-0x3400)) { + if (c - 0x3400 < 0xd800 - 0x3400) { /* not compressible, write character directly */ if(targetCapacity>=2) { *target++=(uint8_t)(c>>8); @@ -1739,10 +1739,10 @@ _SCSUFromUnicode(UConverterFromUnicodeArgs *pArgs, length=2; goto outputBytes; } - } else if((uint32_t)(c-0x3400)>=(0xf300-0x3400) /* c<0x3400 || c>=0xf300 */) { + } else if (c - 0x3400 >= 0xf300 - 0x3400 /* c<0x3400 || c>=0xf300 */) { /* compress BMP character if the following one is not an uncompressible ideograph */ if(!(source(static_cast(inData) + 4); if(!( pInfo->dataFormat[0] == 0x43 && /* dataFormat="CSel" */ pInfo->dataFormat[1] == 0x53 && @@ -407,11 +407,11 @@ ucnvsel_swap(const UDataSwapper *ds, } } - const uint8_t *inBytes = (const uint8_t *)inData + headerSize; - uint8_t *outBytes = (uint8_t *)outData + headerSize; + const uint8_t* inBytes = static_cast(inData) + headerSize; + uint8_t* outBytes = static_cast(outData) + headerSize; /* read the indexes */ - const int32_t *inIndexes = (const int32_t *)inBytes; + const int32_t* inIndexes = reinterpret_cast(inBytes); int32_t indexes[16]; int32_t i; for(i = 0; i < 16; ++i) { diff --git a/thirdparty/icu4c/common/ucol_swp.cpp b/thirdparty/icu4c/common/ucol_swp.cpp index b5894a1feff8..ea72bb8b8d11 100644 --- a/thirdparty/icu4c/common/ucol_swp.cpp +++ b/thirdparty/icu4c/common/ucol_swp.cpp @@ -108,11 +108,11 @@ swapFormatVersion3(const UDataSwapper *ds, return 0; } - inBytes=(const uint8_t *)inData; - outBytes=(uint8_t *)outData; + inBytes = static_cast(inData); + outBytes = static_cast(outData); - inHeader=(const UCATableHeader *)inData; - outHeader=(UCATableHeader *)outData; + inHeader = static_cast(inData); + outHeader = static_cast(outData); /* * The collation binary must contain at least the UCATableHeader, @@ -175,7 +175,7 @@ swapFormatVersion3(const UDataSwapper *ds, header.leadByteToScript= ds->readUInt32(inHeader->leadByteToScript); /* swap the 32-bit integers in the header */ - ds->swapArray32(ds, inHeader, (int32_t)((const char *)&inHeader->jamoSpecial-(const char *)inHeader), + ds->swapArray32(ds, inHeader, static_cast(reinterpret_cast(&inHeader->jamoSpecial) - reinterpret_cast(inHeader)), outHeader, pErrorCode); ds->swapArray32(ds, &(inHeader->scriptToLeadByte), sizeof(header.scriptToLeadByte) + sizeof(header.leadByteToScript), &(outHeader->scriptToLeadByte), pErrorCode); @@ -198,7 +198,7 @@ swapFormatVersion3(const UDataSwapper *ds, /* no contractions: expansions bounded by the main trie */ count=header.mappingPosition-header.expansion; } - ds->swapArray32(ds, inBytes+header.expansion, (int32_t)count, + ds->swapArray32(ds, inBytes + header.expansion, static_cast(count), outBytes+header.expansion, pErrorCode); } @@ -216,7 +216,7 @@ swapFormatVersion3(const UDataSwapper *ds, /* swap the main trie */ if(header.mappingPosition!=0) { count=header.endExpansionCE-header.mappingPosition; - utrie_swap(ds, inBytes+header.mappingPosition, (int32_t)count, + utrie_swap(ds, inBytes + header.mappingPosition, static_cast(count), outBytes+header.mappingPosition, pErrorCode); } @@ -241,7 +241,7 @@ swapFormatVersion3(const UDataSwapper *ds, /* swap UCA contractions */ if(header.contractionUCACombosSize!=0) { count=header.contractionUCACombosSize*inHeader->contractionUCACombosWidth*U_SIZEOF_UCHAR; - ds->swapArray16(ds, inBytes+header.contractionUCACombos, (int32_t)count, + ds->swapArray16(ds, inBytes + header.contractionUCACombos, static_cast(count), outBytes+header.contractionUCACombos, pErrorCode); } @@ -306,10 +306,10 @@ swapFormatVersion4(const UDataSwapper *ds, UErrorCode &errorCode) { if(U_FAILURE(errorCode)) { return 0; } - const uint8_t *inBytes=(const uint8_t *)inData; - uint8_t *outBytes=(uint8_t *)outData; + const uint8_t* inBytes = static_cast(inData); + uint8_t* outBytes = static_cast(outData); - const int32_t *inIndexes=(const int32_t *)inBytes; + const int32_t* inIndexes = reinterpret_cast(inBytes); int32_t indexes[IX_TOTAL_SIZE+1]; // Need at least IX_INDEXES_LENGTH and IX_OPTIONS. diff --git a/thirdparty/icu4c/common/ucptrie.cpp b/thirdparty/icu4c/common/ucptrie.cpp index 0004160a238b..3e4b6a606e5e 100644 --- a/thirdparty/icu4c/common/ucptrie.cpp +++ b/thirdparty/icu4c/common/ucptrie.cpp @@ -258,11 +258,11 @@ inline uint32_t maybeFilterValue(uint32_t value, uint32_t trieNullValue, uint32_ UChar32 getRange(const void *t, UChar32 start, UCPMapValueFilter *filter, const void *context, uint32_t *pValue) { - if ((uint32_t)start > MAX_UNICODE) { + if (static_cast(start) > MAX_UNICODE) { return U_SENTINEL; } const UCPTrie *trie = reinterpret_cast(t); - UCPTrieValueWidth valueWidth = (UCPTrieValueWidth)trie->valueWidth; + UCPTrieValueWidth valueWidth = static_cast(trie->valueWidth); if (start >= trie->highStart) { if (pValue != nullptr) { int32_t di = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET; @@ -304,7 +304,7 @@ UChar32 getRange(const void *t, UChar32 start, i1 += UCPTRIE_SMALL_INDEX_LENGTH; } i3Block = trie->index[ - (int32_t)trie->index[i1] + ((c >> UCPTRIE_SHIFT_2) & UCPTRIE_INDEX_2_MASK)]; + static_cast(trie->index[i1]) + ((c >> UCPTRIE_SHIFT_2) & UCPTRIE_INDEX_2_MASK)]; if (i3Block == prevI3Block && (c - start) >= UCPTRIE_CP_PER_INDEX_2_ENTRY) { // The index-3 block is the same as the previous one, and filled with value. U_ASSERT((c & (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) == 0); @@ -341,7 +341,7 @@ UChar32 getRange(const void *t, UChar32 start, // 18-bit indexes stored in groups of 9 entries per 8 indexes. int32_t group = (i3Block & 0x7fff) + (i3 & ~7) + (i3 >> 3); int32_t gi = i3 & 7; - block = ((int32_t)index[group++] << (2 + (2 * gi))) & 0x30000; + block = (static_cast(index[group++]) << (2 + (2 * gi))) & 0x30000; block |= index[group + gi]; } if (block == prevBlock && (c - start) >= dataBlockLength) { diff --git a/thirdparty/icu4c/common/ucurr.cpp b/thirdparty/icu4c/common/ucurr.cpp index dbad1e501479..b74a80a676af 100644 --- a/thirdparty/icu4c/common/ucurr.cpp +++ b/thirdparty/icu4c/common/ucurr.cpp @@ -130,7 +130,7 @@ class EquivIterator : public icu::UMemory { const icu::UnicodeString * EquivIterator::next() { - const icu::UnicodeString* _next = (const icu::UnicodeString*) _hash.get(*_current); + const icu::UnicodeString* _next = static_cast(_hash.get(*_current)); if (_next == nullptr) { U_ASSERT(_current == _start); return nullptr; @@ -260,7 +260,7 @@ currSymbolsEquiv_cleanup() */ static void U_CALLCONV deleteIsoCodeEntry(void *obj) { - IsoCodeEntry *entry = (IsoCodeEntry*)obj; + IsoCodeEntry* entry = static_cast(obj); uprv_free(entry); } @@ -269,7 +269,7 @@ deleteIsoCodeEntry(void *obj) { */ static void U_CALLCONV deleteUnicode(void *obj) { - icu::UnicodeString *entry = (icu::UnicodeString*)obj; + icu::UnicodeString* entry = static_cast(obj); delete entry; } @@ -306,10 +306,9 @@ _findMetaData(const char16_t* currency, UErrorCode& ec) { // move out of the root locale file later; if it does, update this // code.] UResourceBundle* currencyData = ures_openDirect(U_ICUDATA_CURR, CURRENCY_DATA, &ec); - UResourceBundle* currencyMeta = ures_getByKey(currencyData, CURRENCY_META, currencyData, &ec); + LocalUResourceBundlePointer currencyMeta(ures_getByKey(currencyData, CURRENCY_META, currencyData, &ec)); if (U_FAILURE(ec)) { - ures_close(currencyMeta); // Config/build error; return hard-coded defaults return LAST_RESORT_DATA; } @@ -317,32 +316,25 @@ _findMetaData(const char16_t* currency, UErrorCode& ec) { // Look up our currency, or if that's not available, then DEFAULT char buf[ISO_CURRENCY_CODE_LENGTH+1]; UErrorCode ec2 = U_ZERO_ERROR; // local error code: soft failure - UResourceBundle* rb = ures_getByKey(currencyMeta, myUCharsToChars(buf, currency), nullptr, &ec2); + LocalUResourceBundlePointer rb(ures_getByKey(currencyMeta.getAlias(), myUCharsToChars(buf, currency), nullptr, &ec2)); if (U_FAILURE(ec2)) { - ures_close(rb); - rb = ures_getByKey(currencyMeta,DEFAULT_META, nullptr, &ec); + rb.adoptInstead(ures_getByKey(currencyMeta.getAlias(),DEFAULT_META, nullptr, &ec)); if (U_FAILURE(ec)) { - ures_close(currencyMeta); - ures_close(rb); // Config/build error; return hard-coded defaults return LAST_RESORT_DATA; } } int32_t len; - const int32_t *data = ures_getIntVector(rb, &len, &ec); + const int32_t *data = ures_getIntVector(rb.getAlias(), &len, &ec); if (U_FAILURE(ec) || len != 4) { // Config/build error; return hard-coded defaults if (U_SUCCESS(ec)) { ec = U_INVALID_FORMAT_ERROR; } - ures_close(currencyMeta); - ures_close(rb); return LAST_RESORT_DATA; } - ures_close(currencyMeta); - ures_close(rb); return data; } @@ -380,8 +372,8 @@ struct CReg : public icu::UMemory { CReg(const char16_t* _iso, const char* _id) : next(nullptr) { - int32_t len = (int32_t)uprv_strlen(_id); - if (len > (int32_t)(sizeof(id)-1)) { + int32_t len = static_cast(uprv_strlen(_id)); + if (len > static_cast(sizeof(id) - 1)) { len = (sizeof(id)-1); } uprv_strncpy(id, _id, len); @@ -565,14 +557,14 @@ ucurr_forLocale(const char* locale, localStatus = U_ZERO_ERROR; UResourceBundle *rb = ures_openDirect(U_ICUDATA_CURR, CURRENCY_DATA, &localStatus); UResourceBundle *cm = ures_getByKey(rb, CURRENCY_MAP, rb, &localStatus); - UResourceBundle *countryArray = ures_getByKey(rb, id.data(), cm, &localStatus); + LocalUResourceBundlePointer countryArray(ures_getByKey(rb, id.data(), cm, &localStatus)); // https://unicode-org.atlassian.net/browse/ICU-21997 // Prefer to use currencies that are legal tender. if (U_SUCCESS(localStatus)) { - int32_t arrayLength = ures_getSize(countryArray); + int32_t arrayLength = ures_getSize(countryArray.getAlias()); for (int32_t i = 0; i < arrayLength; ++i) { LocalUResourceBundlePointer currencyReq( - ures_getByIndex(countryArray, i, nullptr, &localStatus)); + ures_getByIndex(countryArray.getAlias(), i, nullptr, &localStatus)); // The currency is legal tender if it is *not* marked with tender{"false"}. UErrorCode tenderStatus = localStatus; const char16_t *tender = @@ -592,7 +584,6 @@ ucurr_forLocale(const char* locale, localStatus = U_MISSING_RESOURCE_ERROR; } } - ures_close(countryArray); } if ((U_FAILURE(localStatus)) && strchr(id.data(), '_') != nullptr) { @@ -805,21 +796,19 @@ ucurr_getPluralName(const char16_t* currency, rb = ures_getByKey(rb, CURRENCYPLURALS, rb, &ec2); // Fetch resource with multi-level resource inheritance fallback - rb = ures_getByKeyWithFallback(rb, buf, rb, &ec2); + LocalUResourceBundlePointer curr(ures_getByKeyWithFallback(rb, buf, rb, &ec2)); - s = ures_getStringByKeyWithFallback(rb, pluralCount, len, &ec2); + s = ures_getStringByKeyWithFallback(curr.getAlias(), pluralCount, len, &ec2); if (U_FAILURE(ec2)) { // fall back to "other" ec2 = U_ZERO_ERROR; - s = ures_getStringByKeyWithFallback(rb, "other", len, &ec2); + s = ures_getStringByKeyWithFallback(curr.getAlias(), "other", len, &ec2); if (U_FAILURE(ec2)) { - ures_close(rb); // fall back to long name in Currencies return ucurr_getName(currency, locale, UCURR_LONG_NAME, isChoiceFormat, len, ec); } } - ures_close(rb); // If we've succeeded we're done. Otherwise, try to fallback. // If that fails (because we are already at root) then exit. @@ -866,8 +855,8 @@ typedef struct { // Comparison function used in quick sort. static int U_CALLCONV currencyNameComparator(const void* a, const void* b) { - const CurrencyNameStruct* currName_1 = (const CurrencyNameStruct*)a; - const CurrencyNameStruct* currName_2 = (const CurrencyNameStruct*)b; + const CurrencyNameStruct* currName_1 = static_cast(a); + const CurrencyNameStruct* currName_2 = static_cast(b); for (int32_t i = 0; i < MIN(currName_1->currencyNameLen, currName_2->currencyNameLen); ++i) { @@ -911,34 +900,29 @@ getCurrencyNameCount(const char* loc, int32_t* total_currency_name_count, int32_ for (;;) { UErrorCode ec2 = U_ZERO_ERROR; // TODO: ures_openDirect? - UResourceBundle* rb = ures_open(U_ICUDATA_CURR, locale.data(), &ec2); - UResourceBundle* curr = ures_getByKey(rb, CURRENCIES, nullptr, &ec2); - int32_t n = ures_getSize(curr); + LocalUResourceBundlePointer rb(ures_open(U_ICUDATA_CURR, locale.data(), &ec2)); + LocalUResourceBundlePointer curr(ures_getByKey(rb.getAlias(), CURRENCIES, nullptr, &ec2)); + int32_t n = ures_getSize(curr.getAlias()); for (int32_t i=0; i(uprv_malloc(sizeof(char16_t) * MAX(destLen, len))); + if (dest == nullptr) { + return nullptr; + } u_strToUpper(dest, destLen, source, len, locale, &ec); if (U_FAILURE(ec)) { u_memcpy(dest, source, len); @@ -962,6 +949,7 @@ toUpperCase(const char16_t* source, int32_t len, const char* locale) { } +static void deleteCurrencyNames(CurrencyNameStruct* currencyNames, int32_t count); // Collect all available currency names associated with the given locale // (enable fallback chain). // Read currenc names defined in resource bundle "Currencies" and @@ -975,6 +963,11 @@ collectCurrencyNames(const char* locale, CurrencyNameStruct** currencySymbols, int32_t* total_currency_symbol_count, UErrorCode& ec) { + if (U_FAILURE(ec)) { + *currencyNames = *currencySymbols = nullptr; + *total_currency_name_count = *total_currency_symbol_count = 0; + return; + } U_NAMESPACE_USE const icu::Hashtable *currencySymbolsEquiv = getCurrSymbolsEquiv(); // Look up the Currencies resource for the given locale. @@ -983,21 +976,32 @@ collectCurrencyNames(const char* locale, CharString loc = ulocimp_getName(locale, ec2); if (U_FAILURE(ec2)) { ec = U_ILLEGAL_ARGUMENT_ERROR; + *currencyNames = *currencySymbols = nullptr; + *total_currency_name_count = *total_currency_symbol_count = 0; + return; } // Get maximum currency name count first. getCurrencyNameCount(loc.data(), total_currency_name_count, total_currency_symbol_count); - *currencyNames = (CurrencyNameStruct*)uprv_malloc - (sizeof(CurrencyNameStruct) * (*total_currency_name_count)); - *currencySymbols = (CurrencyNameStruct*)uprv_malloc - (sizeof(CurrencyNameStruct) * (*total_currency_symbol_count)); - - if(currencyNames == nullptr || currencySymbols == nullptr) { - ec = U_MEMORY_ALLOCATION_ERROR; + *currencyNames = static_cast( + uprv_malloc(sizeof(CurrencyNameStruct) * (*total_currency_name_count))); + if(*currencyNames == nullptr) { + *currencySymbols = nullptr; + *total_currency_name_count = *total_currency_symbol_count = 0; + ec = U_MEMORY_ALLOCATION_ERROR; + return; } + *currencySymbols = static_cast( + uprv_malloc(sizeof(CurrencyNameStruct) * (*total_currency_symbol_count))); - if (U_FAILURE(ec)) return; + if(*currencySymbols == nullptr) { + uprv_free(*currencyNames); + *currencyNames = nullptr; + *total_currency_name_count = *total_currency_symbol_count = 0; + ec = U_MEMORY_ALLOCATION_ERROR; + return; + } const char16_t* s = nullptr; // currency name char* iso = nullptr; // currency ISO code @@ -1009,113 +1013,91 @@ collectCurrencyNames(const char* locale, UErrorCode ec4 = U_ZERO_ERROR; // Using hash to remove duplicates caused by locale fallback - UHashtable* currencyIsoCodes = uhash_open(uhash_hashChars, uhash_compareChars, nullptr, &ec3); - UHashtable* currencyPluralIsoCodes = uhash_open(uhash_hashChars, uhash_compareChars, nullptr, &ec4); + LocalUHashtablePointer currencyIsoCodes(uhash_open(uhash_hashChars, uhash_compareChars, nullptr, &ec3)); + LocalUHashtablePointer currencyPluralIsoCodes(uhash_open(uhash_hashChars, uhash_compareChars, nullptr, &ec4)); for (int32_t localeLevel = 0; ; ++localeLevel) { ec2 = U_ZERO_ERROR; // TODO: ures_openDirect - UResourceBundle* rb = ures_open(U_ICUDATA_CURR, loc.data(), &ec2); - UResourceBundle* curr = ures_getByKey(rb, CURRENCIES, nullptr, &ec2); - int32_t n = ures_getSize(curr); + LocalUResourceBundlePointer rb(ures_open(U_ICUDATA_CURR, loc.data(), &ec2)); + LocalUResourceBundlePointer curr(ures_getByKey(rb.getAlias(), CURRENCIES, nullptr, &ec2)); + int32_t n = ures_getSize(curr.getAlias()); for (int32_t i=0; i(ures_getKey(names.getAlias())); + if (localeLevel != 0 && uhash_get(currencyIsoCodes.getAlias(), iso) != nullptr) { + continue; } + uhash_put(currencyIsoCodes.getAlias(), iso, iso, &ec3); // Add currency symbol. - (*currencySymbols)[*total_currency_symbol_count].IsoCode = iso; - (*currencySymbols)[*total_currency_symbol_count].currencyName = (char16_t*)s; - (*currencySymbols)[*total_currency_symbol_count].flag = 0; - (*currencySymbols)[(*total_currency_symbol_count)++].currencyNameLen = len; + (*currencySymbols)[(*total_currency_symbol_count)++] = {iso, const_cast(s), len, 0}; + // Add equivalent symbols if (currencySymbolsEquiv != nullptr) { UnicodeString str(true, s, len); icu::EquivIterator iter(*currencySymbolsEquiv, str); const UnicodeString *symbol; while ((symbol = iter.next()) != nullptr) { - (*currencySymbols)[*total_currency_symbol_count].IsoCode = iso; - (*currencySymbols)[*total_currency_symbol_count].currencyName = - const_cast(symbol->getBuffer()); - (*currencySymbols)[*total_currency_symbol_count].flag = 0; - (*currencySymbols)[(*total_currency_symbol_count)++].currencyNameLen = symbol->length(); + (*currencySymbols)[(*total_currency_symbol_count)++] + = {iso, const_cast(symbol->getBuffer()), symbol->length(), 0}; } } // Add currency long name. - s = ures_getStringByIndex(names, UCURR_LONG_NAME, &len, &ec2); - (*currencyNames)[*total_currency_name_count].IsoCode = iso; + s = ures_getStringByIndex(names.getAlias(), UCURR_LONG_NAME, &len, &ec2); char16_t* upperName = toUpperCase(s, len, locale); - (*currencyNames)[*total_currency_name_count].currencyName = upperName; - (*currencyNames)[*total_currency_name_count].flag = NEED_TO_BE_DELETED; - (*currencyNames)[(*total_currency_name_count)++].currencyNameLen = len; + if (upperName == nullptr) { + ec = U_MEMORY_ALLOCATION_ERROR; + goto error; + } + (*currencyNames)[(*total_currency_name_count)++] = {iso, upperName, len, NEED_TO_BE_DELETED}; // put (iso, 3, and iso) in to array // Add currency ISO code. - (*currencySymbols)[*total_currency_symbol_count].IsoCode = iso; - (*currencySymbols)[*total_currency_symbol_count].currencyName = (char16_t*)uprv_malloc(sizeof(char16_t)*3); + char16_t* isoCode = static_cast(uprv_malloc(sizeof(char16_t) * 3)); + if (isoCode == nullptr) { + ec = U_MEMORY_ALLOCATION_ERROR; + goto error; + } // Must convert iso[] into Unicode - u_charsToUChars(iso, (*currencySymbols)[*total_currency_symbol_count].currencyName, 3); - (*currencySymbols)[*total_currency_symbol_count].flag = NEED_TO_BE_DELETED; - (*currencySymbols)[(*total_currency_symbol_count)++].currencyNameLen = 3; - - ures_close(names); + u_charsToUChars(iso, isoCode, 3); + (*currencySymbols)[(*total_currency_symbol_count)++] = {iso, isoCode, 3, NEED_TO_BE_DELETED}; } // currency plurals UErrorCode ec5 = U_ZERO_ERROR; - UResourceBundle* curr_p = ures_getByKey(rb, CURRENCYPLURALS, nullptr, &ec5); - n = ures_getSize(curr_p); + LocalUResourceBundlePointer curr_p(ures_getByKey(rb.getAlias(), CURRENCYPLURALS, nullptr, &ec5)); + n = ures_getSize(curr_p.getAlias()); for (int32_t i=0; i(ures_getKey(names.getAlias())); // Using hash to remove duplicated ISO codes in fallback chain. - if (localeLevel == 0) { - uhash_put(currencyPluralIsoCodes, iso, iso, &ec4); - } else { - if (uhash_get(currencyPluralIsoCodes, iso) != nullptr) { - ures_close(names); - continue; - } else { - uhash_put(currencyPluralIsoCodes, iso, iso, &ec4); - } + if (localeLevel != 0 && uhash_get(currencyPluralIsoCodes.getAlias(), iso) != nullptr) { + continue; } - int32_t num = ures_getSize(names); + uhash_put(currencyPluralIsoCodes.getAlias(), iso, iso, &ec4); + int32_t num = ures_getSize(names.getAlias()); int32_t len; for (int32_t j = 0; j < num; ++j) { // TODO: remove duplicates between singular name and // currency long name? - s = ures_getStringByIndex(names, j, &len, &ec5); - (*currencyNames)[*total_currency_name_count].IsoCode = iso; + s = ures_getStringByIndex(names.getAlias(), j, &len, &ec5); char16_t* upperName = toUpperCase(s, len, locale); - (*currencyNames)[*total_currency_name_count].currencyName = upperName; - (*currencyNames)[*total_currency_name_count].flag = NEED_TO_BE_DELETED; - (*currencyNames)[(*total_currency_name_count)++].currencyNameLen = len; + if (upperName == nullptr) { + ec = U_MEMORY_ALLOCATION_ERROR; + goto error; + } + (*currencyNames)[(*total_currency_name_count)++] = {iso, upperName, len, NEED_TO_BE_DELETED}; } - ures_close(names); } - ures_close(curr_p); - ures_close(curr); - ures_close(rb); if (!fallback(loc)) { break; } } - uhash_close(currencyIsoCodes); - uhash_close(currencyPluralIsoCodes); - // quick sort the struct qsort(*currencyNames, *total_currency_name_count, sizeof(CurrencyNameStruct), currencyNameComparator); @@ -1147,11 +1129,17 @@ collectCurrencyNames(const char* locale, // fail on hashtable errors if (U_FAILURE(ec3)) { ec = ec3; - return; - } - if (U_FAILURE(ec4)) { + } else if (U_FAILURE(ec4)) { ec = ec4; - return; + } + + error: + // clean up if we got error + if (U_FAILURE(ec)) { + deleteCurrencyNames(*currencyNames, *total_currency_name_count); + deleteCurrencyNames(*currencySymbols, *total_currency_symbol_count); + *currencyNames = *currencySymbols = nullptr; + *total_currency_name_count = *total_currency_symbol_count = 0; } } @@ -1485,7 +1473,13 @@ getCacheEntry(const char* locale, UErrorCode& ec) { deleteCacheEntry(cacheEntry); } } - cacheEntry = (CurrencyNameCacheEntry*)uprv_malloc(sizeof(CurrencyNameCacheEntry)); + cacheEntry = static_cast(uprv_malloc(sizeof(CurrencyNameCacheEntry))); + if (cacheEntry == nullptr) { + deleteCurrencyNames(currencyNames, total_currency_name_count); + deleteCurrencyNames(currencySymbols, total_currency_symbol_count); + ec = U_MEMORY_ALLOCATION_ERROR; + return nullptr; + } currCache[currentCacheEntryIndex] = cacheEntry; uprv_strcpy(cacheEntry->locale, locale); cacheEntry->currencyNames = currencyNames; @@ -2030,6 +2024,7 @@ static const struct CurrencyList { {"ZRN", UCURR_COMMON|UCURR_DEPRECATED}, {"ZRZ", UCURR_COMMON|UCURR_DEPRECATED}, {"ZWD", UCURR_COMMON|UCURR_DEPRECATED}, + {"ZWG", UCURR_COMMON|UCURR_NON_DEPRECATED}, {"ZWL", UCURR_COMMON|UCURR_DEPRECATED}, {"ZWR", UCURR_COMMON|UCURR_DEPRECATED}, { nullptr, 0 } // Leave here to denote the end of the list. @@ -2095,18 +2090,18 @@ ucurr_createCurrencyList(UHashtable *isoCodes, UErrorCode* status){ // Look up the CurrencyMap element in the root bundle. UResourceBundle *rb = ures_openDirect(U_ICUDATA_CURR, CURRENCY_DATA, &localStatus); - UResourceBundle *currencyMapArray = ures_getByKey(rb, CURRENCY_MAP, rb, &localStatus); + LocalUResourceBundlePointer currencyMapArray(ures_getByKey(rb, CURRENCY_MAP, rb, &localStatus)); if (U_SUCCESS(localStatus)) { - // process each entry in currency map - for (int32_t i=0; iisoCode = isoCode; entry->from = fromDate; @@ -2161,13 +2151,10 @@ ucurr_createCurrencyList(UHashtable *isoCodes, UErrorCode* status){ } else { *status = localStatus; } - ures_close(currencyArray); } } else { *status = localStatus; } - - ures_close(currencyMapArray); } static const UEnumeration gEnumCurrencyList = { @@ -2186,19 +2173,18 @@ static void U_CALLCONV initIsoCodes(UErrorCode &status) { U_ASSERT(gIsoCodes == nullptr); ucln_common_registerCleanup(UCLN_COMMON_CURRENCY, currency_cleanup); - UHashtable *isoCodes = uhash_open(uhash_hashUChars, uhash_compareUChars, nullptr, &status); + LocalUHashtablePointer isoCodes(uhash_open(uhash_hashUChars, uhash_compareUChars, nullptr, &status)); if (U_FAILURE(status)) { return; } - uhash_setValueDeleter(isoCodes, deleteIsoCodeEntry); + uhash_setValueDeleter(isoCodes.getAlias(), deleteIsoCodeEntry); - ucurr_createCurrencyList(isoCodes, &status); + ucurr_createCurrencyList(isoCodes.getAlias(), &status); if (U_FAILURE(status)) { - uhash_close(isoCodes); return; } - gIsoCodes = isoCodes; // Note: gIsoCodes is const. Once set up here it is never altered, - // and read only access is safe without synchronization. + gIsoCodes = isoCodes.orphan(); // Note: gIsoCodes is const. Once set up here it is never altered, + // and read only access is safe without synchronization. } static void populateCurrSymbolsEquiv(icu::Hashtable *hash, UErrorCode &status) { @@ -2320,30 +2306,30 @@ ucurr_countCurrencies(const char* locale, UResourceBundle *cm = ures_getByKey(rb, CURRENCY_MAP, rb, &localStatus); // Using the id derived from the local, get the currency data - UResourceBundle *countryArray = ures_getByKey(rb, id.data(), cm, &localStatus); + LocalUResourceBundlePointer countryArray(ures_getByKey(rb, id.data(), cm, &localStatus)); // process each currency to see which one is valid for the given date if (U_SUCCESS(localStatus)) { - for (int32_t i=0; i 2) + if (ures_getSize(currencyRes.getAlias())> 2) { int32_t toLength = 0; - UResourceBundle *toRes = ures_getByKey(currencyRes, "to", nullptr, &localStatus); - const int32_t *toArray = ures_getIntVector(toRes, &toLength, &localStatus); + LocalUResourceBundlePointer toRes(ures_getByKey(currencyRes.getAlias(), "to", nullptr, &localStatus)); + const int32_t *toArray = ures_getIntVector(toRes.getAlias(), &toLength, &localStatus); currDate64 = (int64_t)toArray[0] << 32; currDate64 |= ((int64_t)toArray[1] & (int64_t)INT64_C(0x00000000FFFFFFFF)); @@ -2353,8 +2339,6 @@ ucurr_countCurrencies(const char* locale, { currCount++; } - - ures_close(toRes); } else { @@ -2363,16 +2347,9 @@ ucurr_countCurrencies(const char* locale, currCount++; } } - - // close open resources - ures_close(currencyRes); - ures_close(fromRes); - } // end For loop } // end if (U_SUCCESS(localStatus)) - ures_close(countryArray); - // Check for errors if (*ec == U_ZERO_ERROR || localStatus != U_ZERO_ERROR) { @@ -2386,7 +2363,6 @@ ucurr_countCurrencies(const char* locale, // no errors return currCount; } - } // If we got here, either error code is invalid or @@ -2433,39 +2409,38 @@ ucurr_forLocaleAndDate(const char* locale, UResourceBundle *cm = ures_getByKey(rb, CURRENCY_MAP, rb, &localStatus); // Using the id derived from the local, get the currency data - UResourceBundle *countryArray = ures_getByKey(rb, id.data(), cm, &localStatus); + LocalUResourceBundlePointer countryArray(ures_getByKey(rb, id.data(), cm, &localStatus)); // process each currency to see which one is valid for the given date bool matchFound = false; if (U_SUCCESS(localStatus)) { - if ((index <= 0) || (index> ures_getSize(countryArray))) + if ((index <= 0) || (index> ures_getSize(countryArray.getAlias()))) { // requested index is out of bounds - ures_close(countryArray); return 0; } - for (int32_t i=0; i 2) + if (ures_getSize(currencyRes.getAlias()) > 2) { int32_t toLength = 0; - UResourceBundle *toRes = ures_getByKey(currencyRes, "to", nullptr, &localStatus); - const int32_t *toArray = ures_getIntVector(toRes, &toLength, &localStatus); + LocalUResourceBundlePointer toRes(ures_getByKey(currencyRes.getAlias(), "to", nullptr, &localStatus)); + const int32_t *toArray = ures_getIntVector(toRes.getAlias(), &toLength, &localStatus); currDate64 = (int64_t)toArray[0] << 32; currDate64 |= ((int64_t)toArray[1] & (int64_t)INT64_C(0x00000000FFFFFFFF)); @@ -2479,8 +2454,6 @@ ucurr_forLocaleAndDate(const char* locale, matchFound = true; } } - - ures_close(toRes); } else { @@ -2493,11 +2466,6 @@ ucurr_forLocaleAndDate(const char* locale, } } } - - // close open resources - ures_close(currencyRes); - ures_close(fromRes); - // check for loop exit if (matchFound) { @@ -2507,8 +2475,6 @@ ucurr_forLocaleAndDate(const char* locale, } // end For loop } - ures_close(countryArray); - // Check for errors if (*ec == U_ZERO_ERROR || localStatus != U_ZERO_ERROR) { @@ -2578,20 +2544,16 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, memcpy(en, &defaultKeywordValues, sizeof(UEnumeration)); en->context = values; - UResourceBundle *bundle = ures_openDirect(U_ICUDATA_CURR, "supplementalData", status); - ures_getByKey(bundle, "CurrencyMap", bundle, status); - UResourceBundle bundlekey, regbndl, curbndl, to; - ures_initStackObject(&bundlekey); - ures_initStackObject(®bndl); - ures_initStackObject(&curbndl); - ures_initStackObject(&to); + UResourceBundle* rb = ures_openDirect(U_ICUDATA_CURR, "supplementalData", status); + LocalUResourceBundlePointer bundle(ures_getByKey(rb, "CurrencyMap", rb, status)); + StackUResourceBundle bundlekey, regbndl, curbndl, to; - while (U_SUCCESS(*status) && ures_hasNext(bundle)) { - ures_getNextResource(bundle, &bundlekey, status); + while (U_SUCCESS(*status) && ures_hasNext(bundle.getAlias())) { + ures_getNextResource(bundle.getAlias(), bundlekey.getAlias(), status); if (U_FAILURE(*status)) { break; } - const char *region = ures_getKey(&bundlekey); + const char *region = ures_getKey(bundlekey.getAlias()); UBool isPrefRegion = prefRegion == region; if (!isPrefRegion && commonlyUsed) { // With commonlyUsed=true, we do not put @@ -2599,29 +2561,29 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, // result list. continue; } - ures_getByKey(bundle, region, ®bndl, status); + ures_getByKey(bundle.getAlias(), region, regbndl.getAlias(), status); if (U_FAILURE(*status)) { break; } - while (U_SUCCESS(*status) && ures_hasNext(®bndl)) { - ures_getNextResource(®bndl, &curbndl, status); - if (ures_getType(&curbndl) != URES_TABLE) { + while (U_SUCCESS(*status) && ures_hasNext(regbndl.getAlias())) { + ures_getNextResource(regbndl.getAlias(), curbndl.getAlias(), status); + if (ures_getType(curbndl.getAlias()) != URES_TABLE) { // Currently, an empty ARRAY is mixed in. continue; } char *curID = (char *)uprv_malloc(sizeof(char) * ULOC_KEYWORDS_CAPACITY); - int32_t curIDLength = ULOC_KEYWORDS_CAPACITY; if (curID == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; break; } + int32_t curIDLength = ULOC_KEYWORDS_CAPACITY; #if U_CHARSET_FAMILY==U_ASCII_FAMILY - ures_getUTF8StringByKey(&curbndl, "id", curID, &curIDLength, true, status); + ures_getUTF8StringByKey(curbndl.getAlias(), "id", curID, &curIDLength, true, status); /* optimize - use the utf-8 string */ #else { - const char16_t* defString = ures_getStringByKey(&curbndl, "id", &curIDLength, status); + const char16_t* defString = ures_getStringByKey(curbndl.getAlias(), "id", &curIDLength, status); if(U_SUCCESS(*status)) { if(curIDLength+1 > ULOC_KEYWORDS_CAPACITY) { *status = U_BUFFER_OVERFLOW_ERROR; @@ -2636,7 +2598,7 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, break; } UBool hasTo = false; - ures_getByKey(&curbndl, "to", &to, status); + ures_getByKey(curbndl.getAlias(), "to", to.getAlias(), status); if (U_FAILURE(*status)) { // Do nothing here... *status = U_ZERO_ERROR; @@ -2669,6 +2631,10 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, while ((value = (char *)ulist_getNext(otherValues)) != nullptr) { if (!ulist_containsString(values, value, (int32_t)uprv_strlen(value))) { char *tmpValue = (char *)uprv_malloc(sizeof(char) * ULOC_KEYWORDS_CAPACITY); + if (tmpValue == nullptr) { + *status = U_MEMORY_ALLOCATION_ERROR; + break; + } uprv_memcpy(tmpValue, value, uprv_strlen(value) + 1); ulist_addItemEndList(values, tmpValue, true, status); if (U_FAILURE(*status)) { @@ -2677,7 +2643,6 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, } } } - ulist_resetList((UList *)(en->context)); } else { ulist_deleteList(values); @@ -2685,14 +2650,7 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, values = nullptr; en = nullptr; } - ures_close(&to); - ures_close(&curbndl); - ures_close(®bndl); - ures_close(&bundlekey); - ures_close(bundle); - ulist_deleteList(otherValues); - return en; } @@ -2703,19 +2661,18 @@ ucurr_getNumericCode(const char16_t* currency) { if (currency && u_strlen(currency) == ISO_CURRENCY_CODE_LENGTH) { UErrorCode status = U_ZERO_ERROR; - UResourceBundle *bundle = ures_openDirect(nullptr, "currencyNumericCodes", &status); - ures_getByKey(bundle, "codeMap", bundle, &status); + UResourceBundle* bundle = ures_openDirect(nullptr, "currencyNumericCodes", &status); + LocalUResourceBundlePointer codeMap(ures_getByKey(bundle, "codeMap", bundle, &status)); if (U_SUCCESS(status)) { char alphaCode[ISO_CURRENCY_CODE_LENGTH+1]; myUCharsToChars(alphaCode, currency); T_CString_toUpperCase(alphaCode); - ures_getByKey(bundle, alphaCode, bundle, &status); - int tmpCode = ures_getInt(bundle, &status); + ures_getByKey(codeMap.getAlias(), alphaCode, codeMap.getAlias(), &status); + int tmpCode = ures_getInt(codeMap.getAlias(), &status); if (U_SUCCESS(status)) { code = tmpCode; } } - ures_close(bundle); } return code; } diff --git a/thirdparty/icu4c/common/udata.cpp b/thirdparty/icu4c/common/udata.cpp index 4c2ba57303a0..68b62272901b 100644 --- a/thirdparty/icu4c/common/udata.cpp +++ b/thirdparty/icu4c/common/udata.cpp @@ -274,7 +274,7 @@ typedef struct DataCacheElement { * here for each entry. */ static void U_CALLCONV DataCacheElement_deleter(void *pDCEl) { - DataCacheElement *p = (DataCacheElement *)pDCEl; + DataCacheElement* p = static_cast(pDCEl); udata_close(p->item); /* unmaps storage */ uprv_free(p->name); /* delete the hash key string. */ uprv_free(pDCEl); /* delete 'this' */ @@ -316,7 +316,7 @@ static UDataMemory *udata_findCachedData(const char *path, UErrorCode &err) baseName = findBasename(path); /* Cache remembers only the base name, not the full path. */ umtx_lock(nullptr); - el = (DataCacheElement *)uhash_get(htable, baseName); + el = static_cast(uhash_get(htable, baseName)); umtx_unlock(nullptr); if (el != nullptr) { retVal = el->item; @@ -344,7 +344,7 @@ static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UEr /* Create a new DataCacheElement - the thingy we store in the hash table - * and copy the supplied path and UDataMemoryItems into it. */ - newElement = (DataCacheElement *)uprv_malloc(sizeof(DataCacheElement)); + newElement = static_cast(uprv_malloc(sizeof(DataCacheElement))); if (newElement == nullptr) { *pErr = U_MEMORY_ALLOCATION_ERROR; return nullptr; @@ -357,8 +357,8 @@ static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UEr UDatamemory_assign(newElement->item, item); baseName = findBasename(path); - nameLen = (int32_t)uprv_strlen(baseName); - newElement->name = (char *)uprv_malloc(nameLen+1); + nameLen = static_cast(uprv_strlen(baseName)); + newElement->name = static_cast(uprv_malloc(nameLen + 1)); if (newElement->name == nullptr) { *pErr = U_MEMORY_ALLOCATION_ERROR; uprv_free(newElement->item); @@ -370,7 +370,7 @@ static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UEr /* Stick the new DataCacheElement into the hash table. */ umtx_lock(nullptr); - oldValue = (DataCacheElement *)uhash_get(htable, path); + oldValue = static_cast(uhash_get(htable, path)); if (oldValue != nullptr) { subErr = U_USING_DEFAULT_WARNING; } @@ -469,13 +469,13 @@ UDataPathIterator::UDataPathIterator(const char *inPath, const char *pkg, /** Item **/ basename = findBasename(item); - basenameLen = (int32_t)uprv_strlen(basename); + basenameLen = static_cast(uprv_strlen(basename)); /** Item path **/ if(basename == item) { nextPath = path; } else { - itemPath.append(item, (int32_t)(basename-item), *pErrorCode); + itemPath.append(item, static_cast(basename - item), *pErrorCode); nextPath = itemPath.data(); } #ifdef UDATA_DEBUG @@ -531,16 +531,16 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode) if(nextPath == itemPath.data()) { /* we were processing item's path. */ nextPath = path; /* start with regular path next tm. */ - pathLen = (int32_t)uprv_strlen(currentPath); + pathLen = static_cast(uprv_strlen(currentPath)); } else { /* fix up next for next time */ nextPath = uprv_strchr(currentPath, U_PATH_SEP_CHAR); if(nextPath == nullptr) { /* segment: entire path */ - pathLen = (int32_t)uprv_strlen(currentPath); + pathLen = static_cast(uprv_strlen(currentPath)); } else { /* segment: until next segment */ - pathLen = (int32_t)(nextPath - currentPath); + pathLen = static_cast(nextPath - currentPath); /* skip divider */ nextPath ++; } @@ -777,17 +777,6 @@ openCommonData(const char *path, /* Path from OpenChoice? */ return nullptr; } -#if defined(OS390_STUBDATA) && defined(OS390BATCH) - if (!UDataMemory_isLoaded(&tData)) { - char ourPathBuffer[1024]; - /* One more chance, for extendCommonData() */ - uprv_strncpy(ourPathBuffer, path, 1019); - ourPathBuffer[1019]=0; - uprv_strcat(ourPathBuffer, ".dat"); - uprv_mapFile(&tData, ourPathBuffer, pErrorCode); - } -#endif - if (U_FAILURE(*pErrorCode)) { return nullptr; } @@ -1231,7 +1220,7 @@ doOpenChoice(const char *path, const char *type, const char *name, if(isICUData) { pkgName.append(U_ICUDATA_NAME, *pErrorCode); } else { - pkgName.append(path, (int32_t)(treeChar-path), *pErrorCode); + pkgName.append(path, static_cast(treeChar - path), *pErrorCode); if (first == nullptr) { /* This user data has no path, but there is a tree name. diff --git a/thirdparty/icu4c/common/udataswp.cpp b/thirdparty/icu4c/common/udataswp.cpp index 0f194f47e892..09adf9510ce1 100644 --- a/thirdparty/icu4c/common/udataswp.cpp +++ b/thirdparty/icu4c/common/udataswp.cpp @@ -47,12 +47,12 @@ uprv_swapArray16(const UDataSwapper *ds, } /* setup and swapping */ - p=(const uint16_t *)inData; - q=(uint16_t *)outData; + p = static_cast(inData); + q = static_cast(outData); count=length/2; while(count>0) { x=*p++; - *q++=(uint16_t)((x<<8)|(x>>8)); + *q++ = static_cast((x << 8) | (x >> 8)); --count; } @@ -95,12 +95,12 @@ uprv_swapArray32(const UDataSwapper *ds, } /* setup and swapping */ - p=(const uint32_t *)inData; - q=(uint32_t *)outData; + p = static_cast(inData); + q = static_cast(outData); count=length/4; while(count>0) { x=*p++; - *q++=(uint32_t)((x<<24)|((x<<8)&0xff0000)|((x>>8)&0xff00)|(x>>24)); + *q++ = (x << 24) | ((x << 8) & 0xff0000) | ((x >> 8) & 0xff00) | (x >> 24); --count; } @@ -142,8 +142,8 @@ uprv_swapArray64(const UDataSwapper *ds, } /* setup and swapping */ - p=(const uint64_t *)inData; - q=(uint64_t *)outData; + p = static_cast(inData); + q = static_cast(outData); count=length/8; while(count>0) { uint64_t x=*p++; @@ -176,7 +176,7 @@ uprv_copyArray64(const UDataSwapper *ds, static uint16_t U_CALLCONV uprv_readSwapUInt16(uint16_t x) { - return (uint16_t)((x<<8)|(x>>8)); + return static_cast((x << 8) | (x >> 8)); } static uint16_t U_CALLCONV @@ -186,7 +186,7 @@ uprv_readDirectUInt16(uint16_t x) { static uint32_t U_CALLCONV uprv_readSwapUInt32(uint32_t x) { - return (uint32_t)((x<<24)|((x<<8)&0xff0000)|((x>>8)&0xff00)|(x>>24)); + return (x << 24) | ((x << 8) & 0xff0000) | ((x >> 8) & 0xff00) | (x >> 24); } static uint32_t U_CALLCONV @@ -196,7 +196,7 @@ uprv_readDirectUInt32(uint32_t x) { static void U_CALLCONV uprv_writeSwapUInt16(uint16_t *p, uint16_t x) { - *p=(uint16_t)((x<<8)|(x>>8)); + *p = static_cast((x << 8) | (x >> 8)); } static void U_CALLCONV @@ -206,7 +206,7 @@ uprv_writeDirectUInt16(uint16_t *p, uint16_t x) { static void U_CALLCONV uprv_writeSwapUInt32(uint32_t *p, uint32_t x) { - *p=(uint32_t)((x<<24)|((x<<8)&0xff0000)|((x>>8)&0xff00)|(x>>24)); + *p = (x << 24) | ((x << 8) & 0xff0000) | ((x >> 8) & 0xff00) | (x >> 24); } static void U_CALLCONV diff --git a/thirdparty/icu4c/common/uenum.cpp b/thirdparty/icu4c/common/uenum.cpp index 7aab58c44c7f..b4a5071ae7bc 100644 --- a/thirdparty/icu4c/common/uenum.cpp +++ b/thirdparty/icu4c/common/uenum.cpp @@ -34,14 +34,14 @@ static const int32_t PAD = 8; static void* _getBuffer(UEnumeration* en, int32_t capacity) { if (en->baseContext != nullptr) { - if (((_UEnumBuffer*) en->baseContext)->len < capacity) { + if (static_cast<_UEnumBuffer*>(en->baseContext)->len < capacity) { capacity += PAD; en->baseContext = uprv_realloc(en->baseContext, sizeof(int32_t) + capacity); if (en->baseContext == nullptr) { return nullptr; } - ((_UEnumBuffer*) en->baseContext)->len = capacity; + static_cast<_UEnumBuffer*>(en->baseContext)->len = capacity; } } else { capacity += PAD; @@ -49,10 +49,10 @@ static void* _getBuffer(UEnumeration* en, int32_t capacity) { if (en->baseContext == nullptr) { return nullptr; } - ((_UEnumBuffer*) en->baseContext)->len = capacity; + static_cast<_UEnumBuffer*>(en->baseContext)->len = capacity; } - return (void*) & ((_UEnumBuffer*) en->baseContext)->data; + return static_cast(&static_cast<_UEnumBuffer*>(en->baseContext)->data); } U_CAPI void U_EXPORT2 diff --git a/thirdparty/icu4c/common/uhash.cpp b/thirdparty/icu4c/common/uhash.cpp index 4d92dfa93fe1..02dc3d047897 100644 --- a/thirdparty/icu4c/common/uhash.cpp +++ b/thirdparty/icu4c/common/uhash.cpp @@ -12,6 +12,8 @@ ****************************************************************************** */ +#include + #include "uhash.h" #include "unicode/ustring.h" #include "cstring.h" @@ -224,8 +226,8 @@ _uhash_allocate(UHashtable *hash, hash->primeIndex = static_cast(primeIndex); hash->length = PRIMES[primeIndex]; - p = hash->elements = (UHashElement*) - uprv_malloc(sizeof(UHashElement) * hash->length); + p = hash->elements = static_cast( + uprv_malloc(sizeof(UHashElement) * hash->length)); if (hash->elements == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; @@ -244,8 +246,8 @@ _uhash_allocate(UHashtable *hash, } hash->count = 0; - hash->lowWaterMark = (int32_t)(hash->length * hash->lowWaterRatio); - hash->highWaterMark = (int32_t)(hash->length * hash->highWaterRatio); + hash->lowWaterMark = static_cast(hash->length * hash->lowWaterRatio); + hash->highWaterMark = static_cast(hash->length * hash->highWaterRatio); } static UHashtable* @@ -287,7 +289,7 @@ _uhash_create(UHashFunction *keyHash, if (U_FAILURE(*status)) return nullptr; - result = (UHashtable*) uprv_malloc(sizeof(UHashtable)); + result = static_cast(uprv_malloc(sizeof(UHashtable))); if (result == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; return nullptr; @@ -944,6 +946,12 @@ uhash_hashIChars(const UHashTok key) { return s == nullptr ? 0 : ustr_hashICharsN(s, static_cast(uprv_strlen(s))); } +U_CAPI int32_t U_EXPORT2 +uhash_hashIStringView(const UHashTok key) { + const std::string_view* s = static_cast(key.pointer); + return s == nullptr ? 0 : ustr_hashICharsN(s->data(), static_cast(s->size())); +} + U_CAPI UBool U_EXPORT2 uhash_equals(const UHashtable* hash1, const UHashtable* hash2){ int32_t count1, count2, pos, i; @@ -1014,7 +1022,7 @@ uhash_compareUChars(const UHashTok key1, const UHashTok key2) { ++p1; ++p2; } - return (UBool)(*p1 == *p2); + return *p1 == *p2; } U_CAPI UBool U_EXPORT2 @@ -1031,7 +1039,7 @@ uhash_compareChars(const UHashTok key1, const UHashTok key2) { ++p1; ++p2; } - return (UBool)(*p1 == *p2); + return *p1 == *p2; } U_CAPI UBool U_EXPORT2 @@ -1048,7 +1056,30 @@ uhash_compareIChars(const UHashTok key1, const UHashTok key2) { ++p1; ++p2; } - return (UBool)(*p1 == *p2); + return *p1 == *p2; +} + +U_CAPI UBool U_EXPORT2 +uhash_compareIStringView(const UHashTok key1, const UHashTok key2) { + const std::string_view* p1 = static_cast(key1.pointer); + const std::string_view* p2 = static_cast(key2.pointer); + if (p1 == p2) { + return true; + } + if (p1 == nullptr || p2 == nullptr) { + return false; + } + const std::string_view& v1 = *p1; + const std::string_view& v2 = *p2; + if (v1.size() != v2.size()) { + return false; + } + for (size_t i = 0; i < v1.size(); ++i) { + if (uprv_tolower(v1[i]) != uprv_tolower(v2[i])) { + return false; + } + } + return true; } /******************************************************************** @@ -1062,5 +1093,5 @@ uhash_hashLong(const UHashTok key) { U_CAPI UBool U_EXPORT2 uhash_compareLong(const UHashTok key1, const UHashTok key2) { - return (UBool)(key1.integer == key2.integer); + return key1.integer == key2.integer; } diff --git a/thirdparty/icu4c/common/uhash.h b/thirdparty/icu4c/common/uhash.h index 2ce296f0ec7c..d381670b87b8 100644 --- a/thirdparty/icu4c/common/uhash.h +++ b/thirdparty/icu4c/common/uhash.h @@ -694,6 +694,15 @@ uhash_hashChars(const UHashTok key); U_CAPI int32_t U_EXPORT2 uhash_hashIChars(const UHashTok key); +/** + * Generate a case-insensitive hash code for a std::string_view. + * Use together with uhash_compareIStringView. + * @param key A pointer to the std::string_view to hash. + * @return A hash code for the key. + */ +U_CAPI int32_t U_EXPORT2 +uhash_hashIStringView(const UHashTok key); + /** * Comparator for null-terminated UChar* strings. Use together with * uhash_hashUChars. @@ -724,6 +733,16 @@ uhash_compareChars(const UHashTok key1, const UHashTok key2); U_CAPI UBool U_EXPORT2 uhash_compareIChars(const UHashTok key1, const UHashTok key2); +/** + * Case-insensitive comparator for std::string_view. + * Use together with uhash_hashIStringView. + * @param key1 A pointer to the std::string_view for comparison + * @param key2 A pointer to the std::string_view for comparison + * @return true if key1 and key2 are equal, return false otherwise. + */ +U_CAPI UBool U_EXPORT2 +uhash_compareIStringView(const UHashTok key1, const UHashTok key2); + /******************************************************************** * UnicodeString Support Functions ********************************************************************/ diff --git a/thirdparty/icu4c/common/uidna.cpp b/thirdparty/icu4c/common/uidna.cpp index 949d128f93c5..48b3d0eb7060 100644 --- a/thirdparty/icu4c/common/uidna.cpp +++ b/thirdparty/icu4c/common/uidna.cpp @@ -107,7 +107,7 @@ compareCaseInsensitiveASCII(const char16_t* s1, int32_t s1Len, /* Case-insensitive comparison */ if(c1!=c2) { - rc=(int32_t)toASCIILower(c1)-(int32_t)toASCIILower(c2); + rc = static_cast(toASCIILower(c1)) - static_cast(toASCIILower(c2)); if(rc!=0) { lengthResult=rc; break; @@ -219,7 +219,7 @@ _internal_toASCII(const char16_t* src, int32_t srcLength, int32_t j=0; //get the options - UBool useSTD3ASCIIRules = (UBool)((options & UIDNA_USE_STD3_RULES) != 0); + UBool useSTD3ASCIIRules = static_cast((options & UIDNA_USE_STD3_RULES) != 0); int32_t failPos = -1; @@ -228,7 +228,7 @@ _internal_toASCII(const char16_t* src, int32_t srcLength, } if(srcLength > b1Capacity){ - b1 = (char16_t*) uprv_malloc(srcLength * U_SIZEOF_UCHAR); + b1 = static_cast(uprv_malloc(srcLength * U_SIZEOF_UCHAR)); if(b1==nullptr){ *status = U_MEMORY_ALLOCATION_ERROR; goto CLEANUP; @@ -256,7 +256,7 @@ _internal_toASCII(const char16_t* src, int32_t srcLength, if(b1 != b1Stack){ uprv_free(b1); } - b1 = (char16_t*) uprv_malloc(b1Len * U_SIZEOF_UCHAR); + b1 = static_cast(uprv_malloc(b1Len * U_SIZEOF_UCHAR)); if(b1==nullptr){ *status = U_MEMORY_ALLOCATION_ERROR; goto CLEANUP; @@ -338,7 +338,7 @@ _internal_toASCII(const char16_t* src, int32_t srcLength, if(*status == U_BUFFER_OVERFLOW_ERROR){ // redo processing of string /* we do not have enough room so grow the buffer*/ - b2 = (char16_t*) uprv_malloc(b2Len * U_SIZEOF_UCHAR); + b2 = static_cast(uprv_malloc(b2Len * U_SIZEOF_UCHAR)); if(b2 == nullptr){ *status = U_MEMORY_ALLOCATION_ERROR; goto CLEANUP; @@ -458,7 +458,7 @@ _internal_toUnicode(const char16_t* src, int32_t srcLength, if(*status == U_BUFFER_OVERFLOW_ERROR){ // redo processing of string /* we do not have enough room so grow the buffer*/ - b1 = (char16_t*) uprv_malloc(b1Len * U_SIZEOF_UCHAR); + b1 = static_cast(uprv_malloc(b1Len * U_SIZEOF_UCHAR)); if(b1==nullptr){ *status = U_MEMORY_ALLOCATION_ERROR; goto CLEANUP; @@ -475,7 +475,7 @@ _internal_toUnicode(const char16_t* src, int32_t srcLength, }else{ //just point src to b1 - b1 = (char16_t*) src; + b1 = const_cast(src); b1Len = srcLength; } @@ -498,7 +498,7 @@ _internal_toUnicode(const char16_t* src, int32_t srcLength, if(*status == U_BUFFER_OVERFLOW_ERROR){ // redo processing of string /* we do not have enough room so grow the buffer*/ - b2 = (char16_t*) uprv_malloc(b2Len * U_SIZEOF_UCHAR); + b2 = static_cast(uprv_malloc(b2Len * U_SIZEOF_UCHAR)); if(b2==nullptr){ *status = U_MEMORY_ALLOCATION_ERROR; goto CLEANUP; @@ -516,7 +516,7 @@ _internal_toUnicode(const char16_t* src, int32_t srcLength, if(*status == U_BUFFER_OVERFLOW_ERROR){ // redo processing of string /* we do not have enough room so grow the buffer*/ - b3 = (char16_t*) uprv_malloc(b3Len * U_SIZEOF_UCHAR); + b3 = static_cast(uprv_malloc(b3Len * U_SIZEOF_UCHAR)); if(b3==nullptr){ *status = U_MEMORY_ALLOCATION_ERROR; goto CLEANUP; @@ -585,6 +585,9 @@ _internal_toUnicode(const char16_t* src, int32_t srcLength, if(b2 != b2Stack){ uprv_free(b2); } + if(b3 != b3Stack){ + uprv_free(b3); + } uprv_free(caseFlags); // The RFC states that @@ -689,9 +692,9 @@ uidna_IDNToASCII( const char16_t *src, int32_t srcLength, } //initialize pointers - char16_t *delimiter = (char16_t*)src; - char16_t *labelStart = (char16_t*)src; - char16_t *currentDest = (char16_t*) dest; + char16_t* delimiter = const_cast(src); + char16_t* labelStart = const_cast(src); + char16_t* currentDest = dest; int32_t remainingLen = srcLength; int32_t remainingDestCapacity = destCapacity; int32_t labelLen = 0, labelReqLength = 0; @@ -782,9 +785,9 @@ uidna_IDNToUnicode( const char16_t* src, int32_t srcLength, } //initialize pointers - char16_t *delimiter = (char16_t*)src; - char16_t *labelStart = (char16_t*)src; - char16_t *currentDest = (char16_t*) dest; + char16_t* delimiter = const_cast(src); + char16_t* labelStart = const_cast(src); + char16_t* currentDest = dest; int32_t remainingLen = srcLength; int32_t remainingDestCapacity = destCapacity; int32_t labelLen = 0, labelReqLength = 0; diff --git a/thirdparty/icu4c/common/uinvchar.cpp b/thirdparty/icu4c/common/uinvchar.cpp index 096a8e28d117..2ffef7b58037 100644 --- a/thirdparty/icu4c/common/uinvchar.cpp +++ b/thirdparty/icu4c/common/uinvchar.cpp @@ -446,7 +446,7 @@ uprv_copyEbcdic(const UDataSwapper *ds, return length; } -U_CFUNC UBool +U_CAPI UBool uprv_isEbcdicAtSign(char c) { static const uint8_t ebcdicAtSigns[] = { 0x7C, 0x44, 0x66, 0x80, 0xAC, 0xAE, 0xAF, 0xB5, 0xEC, 0xEF, 0x00 }; diff --git a/thirdparty/icu4c/common/uinvchar.h b/thirdparty/icu4c/common/uinvchar.h index 9b7a9bd11417..3e031ccc5a65 100644 --- a/thirdparty/icu4c/common/uinvchar.h +++ b/thirdparty/icu4c/common/uinvchar.h @@ -120,7 +120,7 @@ U_NAMESPACE_END * EBCDIC machine won't be compiled the same way on other EBCDIC based machines. * @internal */ -U_CFUNC UBool +U_CAPI UBool uprv_isEbcdicAtSign(char c); /** diff --git a/thirdparty/icu4c/common/uloc.cpp b/thirdparty/icu4c/common/uloc.cpp index 88fe7eaadce8..51887c97c3e1 100644 --- a/thirdparty/icu4c/common/uloc.cpp +++ b/thirdparty/icu4c/common/uloc.cpp @@ -30,7 +30,9 @@ l = lang, C = ctry, M = charmap, V = variant */ +#include #include +#include #include "unicode/bytestream.h" #include "unicode/errorcode.h" @@ -551,17 +553,17 @@ namespace { * @param status return status (keyword too long) * @return the keyword name */ -CharString locale_canonKeywordName(const char* keywordName, UErrorCode& status) +CharString locale_canonKeywordName(std::string_view keywordName, UErrorCode& status) { if (U_FAILURE(status)) { return {}; } CharString result; - for (; *keywordName != 0; keywordName++) { - if (!UPRV_ISALPHANUM(*keywordName)) { + for (char c : keywordName) { + if (!UPRV_ISALPHANUM(c)) { status = U_ILLEGAL_ARGUMENT_ERROR; /* malformed keyword name */ return {}; } - result.append(uprv_tolower(*keywordName), status); + result.append(uprv_tolower(c), status); } if (result.isEmpty()) { status = U_ILLEGAL_ARGUMENT_ERROR; /* empty keyword name */ @@ -580,8 +582,8 @@ typedef struct { int32_t U_CALLCONV compareKeywordStructs(const void * /*context*/, const void *left, const void *right) { - const char* leftString = ((const KeywordStruct *)left)->keyword; - const char* rightString = ((const KeywordStruct *)right)->keyword; + const char* leftString = static_cast(left)->keyword; + const char* rightString = static_cast(right)->keyword; return uprv_strcmp(leftString, rightString); } @@ -686,10 +688,10 @@ ulocimp_getKeywords(const char* localeID, while(*(pos - i - 1) == ' ') { i++; } - keywordList[numKeywords].valueLen = (int32_t)(pos - equalSign - i); + keywordList[numKeywords].valueLen = static_cast(pos - equalSign - i); pos++; } else { - i = (int32_t)uprv_strlen(equalSign); + i = static_cast(uprv_strlen(equalSign)); while(i && equalSign[i-1] == ' ') { i--; } @@ -733,6 +735,11 @@ uloc_getKeywordValue(const char* localeID, char* buffer, int32_t bufferCapacity, UErrorCode* status) { + if (U_FAILURE(*status)) { return 0; } + if (keywordName == nullptr || *keywordName == '\0') { + *status = U_ILLEGAL_ARGUMENT_ERROR; + return 0; + } return ByteSinkUtil::viaByteSinkToTerminatedChars( buffer, bufferCapacity, [&](ByteSink& sink, UErrorCode& status) { @@ -743,7 +750,7 @@ uloc_getKeywordValue(const char* localeID, U_EXPORT CharString ulocimp_getKeywordValue(const char* localeID, - const char* keywordName, + std::string_view keywordName, UErrorCode& status) { return ByteSinkUtil::viaByteSinkToCharString( @@ -755,13 +762,13 @@ ulocimp_getKeywordValue(const char* localeID, U_EXPORT void ulocimp_getKeywordValue(const char* localeID, - const char* keywordName, + std::string_view keywordName, icu::ByteSink& sink, UErrorCode& status) { if (U_FAILURE(status)) { return; } - if (localeID == nullptr || keywordName == nullptr || keywordName[0] == 0) { + if (localeID == nullptr || keywordName.empty()) { status = U_ILLEGAL_ARGUMENT_ERROR; return; } @@ -865,6 +872,11 @@ uloc_setKeywordValue(const char* keywordName, { if (U_FAILURE(*status)) { return 0; } + if (keywordName == nullptr || *keywordName == 0) { + *status = U_ILLEGAL_ARGUMENT_ERROR; + return 0; + } + if (bufferCapacity <= 1) { *status = U_ILLEGAL_ARGUMENT_ERROR; return 0; @@ -883,7 +895,11 @@ uloc_setKeywordValue(const char* keywordName, CheckedArrayByteSink sink(keywords == nullptr ? buffer + bufLen : keywords, bufferCapacity - baseLen - 1); int32_t reslen = ulocimp_setKeywordValue( - keywords, keywordName, keywordValue, sink, *status); + keywords == nullptr ? std::string_view() : keywords, + keywordName, + keywordValue == nullptr ? std::string_view() : keywordValue, + sink, + *status); if (U_FAILURE(*status)) { return *status == U_BUFFER_OVERFLOW_ERROR ? reslen + baseLen : 0; @@ -898,24 +914,29 @@ uloc_setKeywordValue(const char* keywordName, } U_EXPORT void -ulocimp_setKeywordValue(const char* keywordName, - const char* keywordValue, +ulocimp_setKeywordValue(std::string_view keywordName, + std::string_view keywordValue, CharString& localeID, UErrorCode& status) { if (U_FAILURE(status)) { return; } - // This is safe because CharString::truncate() doesn't actually erase any - // data, but simply sets the position for where new data will be written. - const char* keywords = locale_getKeywordsStart(localeID.data()); - if (keywords != nullptr) localeID.truncate(keywords - localeID.data()); + std::string_view keywords; + if (const char* start = locale_getKeywordsStart(localeID.data()); start != nullptr) { + // This is safe because CharString::truncate() doesn't actually erase any + // data, but simply sets the position for where new data will be written. + int32_t size = start - localeID.data(); + keywords = localeID.toStringPiece(); + keywords.remove_prefix(size); + localeID.truncate(size); + } CharStringByteSink sink(&localeID); ulocimp_setKeywordValue(keywords, keywordName, keywordValue, sink, status); } U_EXPORT int32_t -ulocimp_setKeywordValue(const char* keywords, - const char* keywordName, - const char* keywordValue, +ulocimp_setKeywordValue(std::string_view keywords, + std::string_view keywordName, + std::string_view keywordValue, ByteSink& sink, UErrorCode& status) { @@ -924,9 +945,6 @@ ulocimp_setKeywordValue(const char* keywords, /* TODO: sorting. removal. */ int32_t needLen = 0; int32_t rc; - const char* nextSeparator = nullptr; - const char* nextEqualsign = nullptr; - const char* keywordStart = nullptr; CharString updatedKeysAndValues; bool handledInputKeyAndValue = false; char keyValuePrefix = '@'; @@ -934,7 +952,7 @@ ulocimp_setKeywordValue(const char* keywords, if (status == U_STRING_NOT_TERMINATED_WARNING) { status = U_ZERO_ERROR; } - if (keywordName == nullptr || keywordName[0] == 0) { + if (keywordName.empty()) { status = U_ILLEGAL_ARGUMENT_ERROR; return 0; } @@ -944,21 +962,19 @@ ulocimp_setKeywordValue(const char* keywords, } CharString canonKeywordValue; - if(keywordValue) { - while (*keywordValue != 0) { - if (!UPRV_ISALPHANUM(*keywordValue) && !UPRV_OK_VALUE_PUNCTUATION(*keywordValue)) { - status = U_ILLEGAL_ARGUMENT_ERROR; /* malformed key value */ - return 0; - } - /* Should we force lowercase in value to set? */ - canonKeywordValue.append(*keywordValue++, status); + for (char c : keywordValue) { + if (!UPRV_ISALPHANUM(c) && !UPRV_OK_VALUE_PUNCTUATION(c)) { + status = U_ILLEGAL_ARGUMENT_ERROR; /* malformed key value */ + return 0; } + /* Should we force lowercase in value to set? */ + canonKeywordValue.append(c, status); } if (U_FAILURE(status)) { return 0; } - if (keywords == nullptr || keywords[1] == '\0') { + if (keywords.size() <= 1) { if (canonKeywordValue.isEmpty()) { /* no keywords = nothing to remove */ U_ASSERT(status != U_STRING_NOT_TERMINATED_WARNING); return 0; @@ -984,23 +1000,20 @@ ulocimp_setKeywordValue(const char* keywords, return needLen; } /* end shortcut - no @ */ - keywordStart = keywords; /* search for keyword */ - while(keywordStart) { - const char* keyValueTail; - + for (size_t keywordStart = 0; keywordStart != std::string_view::npos;) { keywordStart++; /* skip @ or ; */ - nextEqualsign = uprv_strchr(keywordStart, '='); - if (!nextEqualsign) { + size_t nextEqualsign = keywords.find('=', keywordStart); + if (nextEqualsign == std::string_view::npos) { status = U_ILLEGAL_ARGUMENT_ERROR; /* key must have =value */ return 0; } /* strip leading & trailing spaces (TC decided to tolerate these) */ - while(*keywordStart == ' ') { + while (keywordStart < keywords.size() && keywords[keywordStart] == ' ') { keywordStart++; } - keyValueTail = nextEqualsign; - while (keyValueTail > keywordStart && *(keyValueTail-1) == ' ') { + size_t keyValueTail = nextEqualsign; + while (keyValueTail > keywordStart && keywords[keyValueTail - 1] == ' ') { keyValueTail--; } /* now keyValueTail points to first char after the keyName */ @@ -1011,26 +1024,26 @@ ulocimp_setKeywordValue(const char* keywords, } CharString localeKeywordName; while (keywordStart < keyValueTail) { - if (!UPRV_ISALPHANUM(*keywordStart)) { + if (!UPRV_ISALPHANUM(keywords[keywordStart])) { status = U_ILLEGAL_ARGUMENT_ERROR; /* malformed keyword name */ return 0; } - localeKeywordName.append(uprv_tolower(*keywordStart++), status); + localeKeywordName.append(uprv_tolower(keywords[keywordStart++]), status); } if (U_FAILURE(status)) { return 0; } - nextSeparator = uprv_strchr(nextEqualsign, ';'); + size_t nextSeparator = keywords.find(';', nextEqualsign); /* start processing the value part */ nextEqualsign++; /* skip '=' */ /* First strip leading & trailing spaces (TC decided to tolerate these) */ - while(*nextEqualsign == ' ') { + while (nextEqualsign < keywords.size() && keywords[nextEqualsign] == ' ') { nextEqualsign++; } - keyValueTail = (nextSeparator)? nextSeparator: nextEqualsign + uprv_strlen(nextEqualsign); - while(keyValueTail > nextEqualsign && *(keyValueTail-1) == ' ') { + keyValueTail = nextSeparator == std::string_view::npos ? keywords.size() : nextSeparator; + while (keyValueTail > nextEqualsign && keywords[keyValueTail - 1] == ' ') { keyValueTail--; } if (nextEqualsign == keyValueTail) { @@ -1065,9 +1078,10 @@ ulocimp_setKeywordValue(const char* keywords, keyValuePrefix = ';'; /* for any subsequent key-value pair */ updatedKeysAndValues.append(localeKeywordName, status); updatedKeysAndValues.append('=', status); - updatedKeysAndValues.append(nextEqualsign, static_cast(keyValueTail-nextEqualsign), status); + updatedKeysAndValues.append(keywords.data() + nextEqualsign, + static_cast(keyValueTail - nextEqualsign), status); } - if (!nextSeparator && !canonKeywordValue.isEmpty() && !handledInputKeyAndValue) { + if (nextSeparator == std::string_view::npos && !canonKeywordValue.isEmpty() && !handledInputKeyAndValue) { /* append new entry at the end, it sorts later than existing entries */ updatedKeysAndValues.append(keyValuePrefix, status); /* skip keyValuePrefix update, no subsequent key-value pair */ @@ -1091,7 +1105,7 @@ ulocimp_setKeywordValue(const char* keywords, /* if input key/value specified removal of a keyword not present in locale, or * there was an error in CharString.append, leave original locale alone. */ U_ASSERT(status != U_STRING_NOT_TERMINATED_WARNING); - return (int32_t)uprv_strlen(keywords); + return static_cast(keywords.size()); } needLen = updatedKeysAndValues.length(); @@ -1155,7 +1169,7 @@ std::optional _findIndex(const char* const* list, const char* key) while (pass++ < 2) { while (*list) { if (uprv_strcmp(key, *list) == 0) { - return (int16_t)(list - anchor); + return static_cast(list - anchor); } list++; } @@ -1241,7 +1255,7 @@ _getLanguage(const char* localeID, std::optional offset = _findIndex(LANGUAGES_3, buffer); if (offset.has_value()) { const char* const alias = LANGUAGES[*offset]; - sink->Append(alias, (int32_t)uprv_strlen(alias)); + sink->Append(alias, static_cast(uprv_strlen(alias))); return; } } @@ -1322,7 +1336,7 @@ _getRegion(const char* localeID, std::optional offset = _findIndex(COUNTRIES_3, buffer); if (offset.has_value()) { const char* const alias = COUNTRIES[*offset]; - sink->Append(alias, (int32_t)uprv_strlen(alias)); + sink->Append(alias, static_cast(uprv_strlen(alias))); return; } } @@ -1370,7 +1384,7 @@ _getVariant(const char* localeID, needSeparator = false; } if (sink != nullptr) { - char c = (char)uprv_toupper(localeID[index]); + char c = uprv_toupper(localeID[index]); if (c == '-') c = '_'; sink->Append(&c, 1); } @@ -1399,7 +1413,7 @@ _getVariant(const char* localeID, needSeparator = false; } if (sink != nullptr) { - char c = (char)uprv_toupper(localeID[index]); + char c = uprv_toupper(localeID[index]); if (c == '-' || c == ',') c = '_'; sink->Append(&c, 1); } @@ -1955,7 +1969,7 @@ ulocimp_getParent(const char* localeID, lastUnderscore=uprv_strrchr(localeID, '_'); if(lastUnderscore!=nullptr) { - i=(int32_t)(lastUnderscore-localeID); + i = static_cast(lastUnderscore - localeID); } else { i=0; } @@ -2218,7 +2232,7 @@ uloc_getLCID(const char* localeID) CharString collVal = ulocimp_getKeywordValue(localeID, "collation", status); if (U_SUCCESS(status) && !collVal.isEmpty()) { CharString tmpLocaleID = ulocimp_getBaseName(localeID, status); - ulocimp_setKeywordValue("collation", collVal.data(), tmpLocaleID, status); + ulocimp_setKeywordValue("collation", collVal.toStringPiece(), tmpLocaleID, status); if (U_SUCCESS(status)) { return uprv_convertToLCID(langID.data(), tmpLocaleID.data(), &status); } @@ -2285,8 +2299,17 @@ uloc_getISOCountries() U_CAPI const char* U_EXPORT2 uloc_toUnicodeLocaleKey(const char* keyword) { - const char* bcpKey = ulocimp_toBcpKey(keyword); - if (bcpKey == nullptr && ultag_isUnicodeLocaleKey(keyword, -1)) { + if (keyword == nullptr || *keyword == '\0') { return nullptr; } + std::optional result = ulocimp_toBcpKeyWithFallback(keyword); + return result.has_value() ? result->data() : nullptr; // Known to be NUL terminated. +} + +U_EXPORT std::optional +ulocimp_toBcpKeyWithFallback(std::string_view keyword) +{ + std::optional bcpKey = ulocimp_toBcpKey(keyword); + if (!bcpKey.has_value() && + ultag_isUnicodeLocaleKey(keyword.data(), static_cast(keyword.size()))) { // unknown keyword, but syntax is fine.. return keyword; } @@ -2296,8 +2319,18 @@ uloc_toUnicodeLocaleKey(const char* keyword) U_CAPI const char* U_EXPORT2 uloc_toUnicodeLocaleType(const char* keyword, const char* value) { - const char* bcpType = ulocimp_toBcpType(keyword, value, nullptr, nullptr); - if (bcpType == nullptr && ultag_isUnicodeLocaleType(value, -1)) { + if (keyword == nullptr || *keyword == '\0' || + value == nullptr || *value == '\0') { return nullptr; } + std::optional result = ulocimp_toBcpTypeWithFallback(keyword, value); + return result.has_value() ? result->data() : nullptr; // Known to be NUL terminated. +} + +U_EXPORT std::optional +ulocimp_toBcpTypeWithFallback(std::string_view keyword, std::string_view value) +{ + std::optional bcpType = ulocimp_toBcpType(keyword, value); + if (!bcpType.has_value() && + ultag_isUnicodeLocaleType(value.data(), static_cast(value.size()))) { // unknown keyword, but syntax is fine.. return value; } @@ -2307,37 +2340,28 @@ uloc_toUnicodeLocaleType(const char* keyword, const char* value) namespace { bool -isWellFormedLegacyKey(const char* legacyKey) +isWellFormedLegacyKey(std::string_view key) { - const char* p = legacyKey; - while (*p) { - if (!UPRV_ISALPHANUM(*p)) { - return false; - } - p++; - } - return true; + return std::all_of(key.begin(), key.end(), UPRV_ISALPHANUM); } bool -isWellFormedLegacyType(const char* legacyType) +isWellFormedLegacyType(std::string_view legacyType) { - const char* p = legacyType; int32_t alphaNumLen = 0; - while (*p) { - if (*p == '_' || *p == '/' || *p == '-') { + for (char c : legacyType) { + if (c == '_' || c == '/' || c == '-') { if (alphaNumLen == 0) { return false; } alphaNumLen = 0; - } else if (UPRV_ISALPHANUM(*p)) { + } else if (UPRV_ISALPHANUM(c)) { alphaNumLen++; } else { return false; } - p++; } - return (alphaNumLen != 0); + return alphaNumLen != 0; } } // namespace @@ -2345,8 +2369,16 @@ isWellFormedLegacyType(const char* legacyType) U_CAPI const char* U_EXPORT2 uloc_toLegacyKey(const char* keyword) { - const char* legacyKey = ulocimp_toLegacyKey(keyword); - if (legacyKey == nullptr) { + if (keyword == nullptr || *keyword == '\0') { return nullptr; } + std::optional result = ulocimp_toLegacyKeyWithFallback(keyword); + return result.has_value() ? result->data() : nullptr; // Known to be NUL terminated. +} + +U_EXPORT std::optional +ulocimp_toLegacyKeyWithFallback(std::string_view keyword) +{ + std::optional legacyKey = ulocimp_toLegacyKey(keyword); + if (!legacyKey.has_value() && isWellFormedLegacyKey(keyword)) { // Checks if the specified locale key is well-formed with the legacy locale syntax. // // Note: @@ -2354,9 +2386,7 @@ uloc_toLegacyKey(const char* keyword) // * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier and // * http://www.unicode.org/reports/tr35/#Old_Locale_Extension_Syntax // Keys can only consist of [0-9a-zA-Z]. - if (isWellFormedLegacyKey(keyword)) { - return keyword; - } + return keyword; } return legacyKey; } @@ -2364,8 +2394,17 @@ uloc_toLegacyKey(const char* keyword) U_CAPI const char* U_EXPORT2 uloc_toLegacyType(const char* keyword, const char* value) { - const char* legacyType = ulocimp_toLegacyType(keyword, value, nullptr, nullptr); - if (legacyType == nullptr) { + if (keyword == nullptr || *keyword == '\0' || + value == nullptr || *value == '\0') { return nullptr; } + std::optional result = ulocimp_toLegacyTypeWithFallback(keyword, value); + return result.has_value() ? result->data() : nullptr; // Known to be NUL terminated. +} + +U_EXPORT std::optional +ulocimp_toLegacyTypeWithFallback(std::string_view keyword, std::string_view value) +{ + std::optional legacyType = ulocimp_toLegacyType(keyword, value); + if (!legacyType.has_value() && isWellFormedLegacyType(value)) { // Checks if the specified locale type is well-formed with the legacy locale syntax. // // Note: @@ -2374,9 +2413,7 @@ uloc_toLegacyType(const char* keyword, const char* value) // * http://www.unicode.org/reports/tr35/#Old_Locale_Extension_Syntax // Values (types) can only consist of [0-9a-zA-Z], plus for legacy values // we allow [/_-+] in the middle (e.g. "Etc/GMT+1", "Asia/Tel_Aviv") - if (isWellFormedLegacyType(value)) { - return value; - } + return value; } return legacyType; } diff --git a/thirdparty/icu4c/common/uloc_keytype.cpp b/thirdparty/icu4c/common/uloc_keytype.cpp index 38694d4a185d..9dc392126ef3 100644 --- a/thirdparty/icu4c/common/uloc_keytype.cpp +++ b/thirdparty/icu4c/common/uloc_keytype.cpp @@ -7,6 +7,8 @@ ********************************************************************** */ #include +#include +#include #include "unicode/utypes.h" #include "unicode/unistr.h" @@ -18,6 +20,7 @@ #include "uassert.h" #include "ucln_cmn.h" #include "uhash.h" +#include "ulocimp.h" #include "umutex.h" #include "uresimp.h" #include "uvector.h" @@ -35,20 +38,25 @@ typedef enum { } SpecialType; struct LocExtKeyData : public icu::UMemory { - const char* legacyId; - const char* bcpId; + std::string_view legacyId; + std::string_view bcpId; icu::LocalUHashtablePointer typeMap; uint32_t specialTypes; }; struct LocExtType : public icu::UMemory { - const char* legacyId; - const char* bcpId; + std::string_view legacyId; + std::string_view bcpId; +}; + +struct TypeAlias : public icu::UMemory { + std::string_view from; }; static icu::MemoryPool* gKeyTypeStringPool = nullptr; static icu::MemoryPool* gLocExtKeyDataEntries = nullptr; static icu::MemoryPool* gLocExtTypeEntries = nullptr; +static icu::MemoryPool* gTypeAliasEntries = nullptr; U_CDECL_BEGIN @@ -65,6 +73,9 @@ uloc_key_type_cleanup() { delete gLocExtTypeEntries; gLocExtTypeEntries = nullptr; + delete gTypeAliasEntries; + gTypeAliasEntries = nullptr; + delete gKeyTypeStringPool; gKeyTypeStringPool = nullptr; @@ -81,7 +92,7 @@ initFromResourceBundle(UErrorCode& sts) { U_NAMESPACE_USE ucln_common_registerCleanup(UCLN_COMMON_LOCALE_KEY_TYPE, uloc_key_type_cleanup); - gLocExtKeyMap = uhash_open(uhash_hashIChars, uhash_compareIChars, nullptr, &sts); + gLocExtKeyMap = uhash_open(uhash_hashIStringView, uhash_compareIStringView, nullptr, &sts); LocalUResourceBundlePointer keyTypeDataRes(ures_openDirect(nullptr, "keyTypeData", &sts)); LocalUResourceBundlePointer keyMapRes(ures_getByKey(keyTypeDataRes.getAlias(), "keyMap", nullptr, &sts)); @@ -112,6 +123,11 @@ initFromResourceBundle(UErrorCode& sts) { sts = U_MEMORY_ALLOCATION_ERROR; return; } + gTypeAliasEntries = new icu::MemoryPool; + if (gTypeAliasEntries == nullptr) { + sts = U_MEMORY_ALLOCATION_ERROR; + return; + } // iterate through keyMap resource LocalUResourceBundlePointer keyMapEntry; @@ -144,7 +160,7 @@ initFromResourceBundle(UErrorCode& sts) { bool isTZ = uprv_strcmp(legacyKeyId, "timezone") == 0; - UHashtable* typeDataMap = uhash_open(uhash_hashIChars, uhash_compareIChars, nullptr, &sts); + UHashtable* typeDataMap = uhash_open(uhash_hashIStringView, uhash_compareIStringView, nullptr, &sts); if (U_FAILURE(sts)) { break; } @@ -253,10 +269,10 @@ initFromResourceBundle(UErrorCode& sts) { t->bcpId = bcpTypeId; t->legacyId = legacyTypeId; - uhash_put(typeDataMap, (void*)legacyTypeId, t, &sts); + uhash_put(typeDataMap, &t->legacyId, t, &sts); if (bcpTypeId != legacyTypeId) { // different type value - uhash_put(typeDataMap, (void*)bcpTypeId, t, &sts); + uhash_put(typeDataMap, &t->bcpId, t, &sts); } if (U_FAILURE(sts)) { break; @@ -275,8 +291,14 @@ initFromResourceBundle(UErrorCode& sts) { break; } // check if this is an alias of canonical legacy type - if (uprv_compareInvWithUChar(nullptr, legacyTypeId, -1, to, toLen) == 0) { + if (uprv_compareInvWithUChar( + nullptr, + t->legacyId.data(), + static_cast(t->legacyId.size()), + to, + toLen) == 0) { const char* from = ures_getKey(typeAliasDataEntry.getAlias()); + TypeAlias* alias = gTypeAliasEntries->create(TypeAlias{{}, from}); if (isTZ) { // replace colon with slash if necessary if (uprv_strchr(from, ':') != nullptr) { @@ -293,10 +315,10 @@ initFromResourceBundle(UErrorCode& sts) { fromBuf->data(), fromBuf->data() + fromBuf->length(), ':', '/'); - from = fromBuf->data(); + alias->from = fromBuf->toStringPiece(); } } - uhash_put(typeDataMap, (void*)from, t, &sts); + uhash_put(typeDataMap, &alias->from, t, &sts); } } if (U_FAILURE(sts)) { @@ -316,9 +338,15 @@ initFromResourceBundle(UErrorCode& sts) { break; } // check if this is an alias of bcp type - if (uprv_compareInvWithUChar(nullptr, bcpTypeId, -1, to, toLen) == 0) { + if (uprv_compareInvWithUChar( + nullptr, + t->bcpId.data(), + static_cast(t->bcpId.size()), + to, + toLen) == 0) { const char* from = ures_getKey(bcpTypeAliasDataEntry.getAlias()); - uhash_put(typeDataMap, (void*)from, t, &sts); + TypeAlias* alias = gTypeAliasEntries->create(TypeAlias{{}, from}); + uhash_put(typeDataMap, &alias->from, t, &sts); } } if (U_FAILURE(sts)) { @@ -341,10 +369,10 @@ initFromResourceBundle(UErrorCode& sts) { keyData->specialTypes = specialTypes; keyData->typeMap.adoptInstead(typeDataMap); - uhash_put(gLocExtKeyMap, (void*)legacyKeyId, keyData, &sts); + uhash_put(gLocExtKeyMap, &keyData->legacyId, keyData, &sts); if (legacyKeyId != bcpKeyId) { // different key value - uhash_put(gLocExtKeyMap, (void*)bcpKeyId, keyData, &sts); + uhash_put(gLocExtKeyMap, &keyData->bcpId, keyData, &sts); } if (U_FAILURE(sts)) { break; @@ -363,110 +391,96 @@ init() { } bool -isSpecialTypeCodepoints(const char* val) { +isSpecialTypeCodepoints(std::string_view val) { int32_t subtagLen = 0; - const char* p = val; - while (*p) { - if (*p == '-') { + for (char c : val) { + if (c == '-') { if (subtagLen < 4 || subtagLen > 6) { return false; } subtagLen = 0; - } else if ((*p >= '0' && *p <= '9') || - (*p >= 'A' && *p <= 'F') || // A-F/a-f are contiguous - (*p >= 'a' && *p <= 'f')) { // also in EBCDIC + } else if ((c >= '0' && c <= '9') || + (c >= 'A' && c <= 'F') || // A-F/a-f are contiguous + (c >= 'a' && c <= 'f')) { // also in EBCDIC subtagLen++; } else { return false; } - p++; } - return (subtagLen >= 4 && subtagLen <= 6); + return subtagLen >= 4 && subtagLen <= 6; } bool -isSpecialTypeReorderCode(const char* val) { +isSpecialTypeReorderCode(std::string_view val) { int32_t subtagLen = 0; - const char* p = val; - while (*p) { - if (*p == '-') { + for (char c : val) { + if (c == '-') { if (subtagLen < 3 || subtagLen > 8) { return false; } subtagLen = 0; - } else if (uprv_isASCIILetter(*p)) { + } else if (uprv_isASCIILetter(c)) { subtagLen++; } else { return false; } - p++; } - return (subtagLen >=3 && subtagLen <=8); + return subtagLen >= 3 && subtagLen <= 8; } bool -isSpecialTypeRgKeyValue(const char* val) { +isSpecialTypeRgKeyValue(std::string_view val) { int32_t subtagLen = 0; - const char* p = val; - while (*p) { - if ( (subtagLen < 2 && uprv_isASCIILetter(*p)) || - (subtagLen >= 2 && (*p == 'Z' || *p == 'z')) ) { + for (char c : val) { + if ((subtagLen < 2 && uprv_isASCIILetter(c)) || + (subtagLen >= 2 && (c == 'Z' || c == 'z'))) { subtagLen++; } else { return false; } - p++; } - return (subtagLen == 6); + return subtagLen == 6; } } // namespace -U_EXPORT const char* -ulocimp_toBcpKey(const char* key) { +U_EXPORT std::optional +ulocimp_toBcpKey(std::string_view key) { if (!init()) { - return nullptr; + return std::nullopt; } - LocExtKeyData* keyData = (LocExtKeyData*)uhash_get(gLocExtKeyMap, key); + LocExtKeyData* keyData = static_cast(uhash_get(gLocExtKeyMap, &key)); if (keyData != nullptr) { return keyData->bcpId; } - return nullptr; + + return std::nullopt; } -U_EXPORT const char* -ulocimp_toLegacyKey(const char* key) { +U_EXPORT std::optional +ulocimp_toLegacyKey(std::string_view key) { if (!init()) { - return nullptr; + return std::nullopt; } - LocExtKeyData* keyData = (LocExtKeyData*)uhash_get(gLocExtKeyMap, key); + LocExtKeyData* keyData = static_cast(uhash_get(gLocExtKeyMap, &key)); if (keyData != nullptr) { return keyData->legacyId; } - return nullptr; -} -U_EXPORT const char* -ulocimp_toBcpType(const char* key, const char* type, bool* isKnownKey, bool* isSpecialType) { - if (isKnownKey != nullptr) { - *isKnownKey = false; - } - if (isSpecialType != nullptr) { - *isSpecialType = false; - } + return std::nullopt; +} +U_EXPORT std::optional +ulocimp_toBcpType(std::string_view key, std::string_view type) { if (!init()) { - return nullptr; + return std::nullopt; } - LocExtKeyData* keyData = (LocExtKeyData*)uhash_get(gLocExtKeyMap, key); + LocExtKeyData* keyData = static_cast(uhash_get(gLocExtKeyMap, &key)); if (keyData != nullptr) { - if (isKnownKey != nullptr) { - *isKnownKey = true; - } - LocExtType* t = (LocExtType*)uhash_get(keyData->typeMap.getAlias(), type); + LocExtType* t = static_cast(uhash_get(keyData->typeMap.getAlias(), &type)); if (t != nullptr) { return t->bcpId; } @@ -482,36 +496,24 @@ ulocimp_toBcpType(const char* key, const char* type, bool* isKnownKey, bool* isS matched = isSpecialTypeRgKeyValue(type); } if (matched) { - if (isSpecialType != nullptr) { - *isSpecialType = true; - } return type; } } } - return nullptr; -} + return std::nullopt; +} -U_EXPORT const char* -ulocimp_toLegacyType(const char* key, const char* type, bool* isKnownKey, bool* isSpecialType) { - if (isKnownKey != nullptr) { - *isKnownKey = false; - } - if (isSpecialType != nullptr) { - *isSpecialType = false; - } +U_EXPORT std::optional +ulocimp_toLegacyType(std::string_view key, std::string_view type) { if (!init()) { - return nullptr; + return std::nullopt; } - LocExtKeyData* keyData = (LocExtKeyData*)uhash_get(gLocExtKeyMap, key); + LocExtKeyData* keyData = static_cast(uhash_get(gLocExtKeyMap, &key)); if (keyData != nullptr) { - if (isKnownKey != nullptr) { - *isKnownKey = true; - } - LocExtType* t = (LocExtType*)uhash_get(keyData->typeMap.getAlias(), type); + LocExtType* t = static_cast(uhash_get(keyData->typeMap.getAlias(), &type)); if (t != nullptr) { return t->legacyId; } @@ -527,12 +529,10 @@ ulocimp_toLegacyType(const char* key, const char* type, bool* isKnownKey, bool* matched = isSpecialTypeRgKeyValue(type); } if (matched) { - if (isSpecialType != nullptr) { - *isSpecialType = true; - } return type; } } } - return nullptr; + + return std::nullopt; } diff --git a/thirdparty/icu4c/common/uloc_tag.cpp b/thirdparty/icu4c/common/uloc_tag.cpp index f5ab0c36a627..7b3b1e73a37c 100644 --- a/thirdparty/icu4c/common/uloc_tag.cpp +++ b/thirdparty/icu4c/common/uloc_tag.cpp @@ -7,6 +7,8 @@ ********************************************************************** */ +#include +#include #include #include "unicode/bytestream.h" @@ -415,7 +417,7 @@ _isAlphaNumericString(const char* s, int32_t len) { bool _isAlphaNumericStringLimitedLength(const char* s, int32_t len, int32_t min, int32_t max) { if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } if (len >= min && len <= max && _isAlphaNumericString(s, len)) { return true; @@ -433,7 +435,7 @@ ultag_isLanguageSubtag(const char* s, int32_t len) { * See ICU-20372 */ if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } if (len >= 2 && len <= 8 && _isAlphaString(s, len)) { return true; @@ -450,7 +452,7 @@ _isExtlangSubtag(const char* s, int32_t len) { * *2("-" 3ALPHA) ; permanently reserved */ if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } if (len == 3 && _isAlphaString(s, len)) { return true; @@ -466,7 +468,7 @@ ultag_isScriptSubtag(const char* s, int32_t len) { * script = 4ALPHA ; ISO 15924 code */ if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } if (len == 4 && _isAlphaString(s, len)) { return true; @@ -481,7 +483,7 @@ ultag_isRegionSubtag(const char* s, int32_t len) { * / 3DIGIT ; UN M.49 code */ if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } if (len == 2 && _isAlphaString(s, len)) { return true; @@ -501,7 +503,7 @@ _isVariantSubtag(const char* s, int32_t len) { * / (DIGIT 3alphanum) */ if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } if (_isAlphaNumericStringLimitedLength(s, len, 5, 8)) { return true; @@ -518,7 +520,7 @@ _isSepListOf(bool (*test)(const char*, int32_t), const char* s, int32_t len) { const char *pSubtag = nullptr; if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } while ((p - s) < len) { @@ -526,7 +528,7 @@ _isSepListOf(bool (*test)(const char*, int32_t), const char* s, int32_t len) { if (pSubtag == nullptr) { return false; } - if (!test(pSubtag, (int32_t)(p - pSubtag))) { + if (!test(pSubtag, static_cast(p - pSubtag))) { return false; } pSubtag = nullptr; @@ -538,7 +540,7 @@ _isSepListOf(bool (*test)(const char*, int32_t), const char* s, int32_t len) { if (pSubtag == nullptr) { return false; } - return test(pSubtag, (int32_t)(p - pSubtag)); + return test(pSubtag, static_cast(p - pSubtag)); } } // namespace @@ -572,7 +574,7 @@ _isExtensionSingleton(const char* s, int32_t len) { * / %x79-7A ; y - z */ if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } if (len == 1 && (ISALPHA(*s) || ISNUMERIC(*s)) && (uprv_tolower(*s) != PRIVATEUSE)) { return true; @@ -631,7 +633,7 @@ ultag_isUnicodeLocaleKey(const char* s, int32_t len) { * key = alphanum alpha ; */ if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } if (len == 2 && (ISALPHA(*s) || ISNUMERIC(*s)) && ISALPHA(s[1])) { return true; @@ -664,7 +666,7 @@ _isTKey(const char* s, int32_t len) * tkey = alpha digit ; */ if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } if (len == 2 && ISALPHA(*s) && ISNUMERIC(*(s + 1))) { return true; @@ -718,7 +720,7 @@ _isTransformedExtensionSubtag(int32_t& state, const char* s, int32_t len) if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } switch (state) { case kStart: @@ -822,7 +824,7 @@ _isStatefulSepListOf(bool (*test)(int32_t&, const char*, int32_t), const char* s int32_t subtagLen = 0; if (len < 0) { - len = (int32_t)uprv_strlen(s); + len = static_cast(uprv_strlen(s)); } for (p = s; len > 0; p++, len--) { @@ -966,8 +968,8 @@ _addExtensionToList(ExtensionListEntry **first, ExtensionListEntry *ext, bool lo /* special handling for locale to bcp conversion */ int32_t len, curlen; - len = (int32_t)uprv_strlen(ext->key); - curlen = (int32_t)uprv_strlen(cur->key); + len = static_cast(uprv_strlen(ext->key)); + curlen = static_cast(uprv_strlen(cur->key)); if (len == 1 && curlen == 1) { if (*(ext->key) == *(cur->key)) { @@ -1074,10 +1076,10 @@ _appendLanguageToLanguageTag(const char* localeID, icu::ByteSink& sink, bool str // ones in DEPRECATEDLANGS[]. Get out of loop on coming // across the 1st 3-letter subtag, if the input is a 2-letter code. // to avoid continuing to try when there's no match. - if (buf.length() < (int32_t)uprv_strlen(DEPRECATEDLANGS[i])) break; + if (buf.length() < static_cast(uprv_strlen(DEPRECATEDLANGS[i]))) break; if (uprv_compareInvCharsAsAscii(buf.data(), DEPRECATEDLANGS[i]) == 0) { const char* const resolved = DEPRECATEDLANGS[i + 1]; - sink.Append(resolved, (int32_t)uprv_strlen(resolved)); + sink.Append(resolved, static_cast(uprv_strlen(resolved))); return; } } @@ -1144,7 +1146,7 @@ _appendRegionToLanguageTag(const char* localeID, icu::ByteSink& sink, bool stric for (int32_t i = 0; i < UPRV_LENGTHOF(DEPRECATEDREGIONS); i += 2) { if (uprv_compareInvCharsAsAscii(buf.data(), DEPRECATEDREGIONS[i]) == 0) { const char* const resolved = DEPRECATEDREGIONS[i + 1]; - sink.Append(resolved, (int32_t)uprv_strlen(resolved)); + sink.Append(resolved, static_cast(uprv_strlen(resolved))); return; } } @@ -1208,7 +1210,7 @@ _appendVariantsToLanguageTag(const char* localeID, icu::ByteSink& sink, bool str /* validate */ if (_isVariantSubtag(pVar, -1)) { - if (uprv_strcmp(pVar,POSIX_VALUE) || buf.length() != (int32_t)uprv_strlen(POSIX_VALUE)) { + if (uprv_strcmp(pVar, POSIX_VALUE) || buf.length() != static_cast(uprv_strlen(POSIX_VALUE))) { /* emit the variant to the list */ icu::LocalPointer var(new VariantListEntry, status); if (U_FAILURE(status)) { @@ -1254,7 +1256,7 @@ _appendVariantsToLanguageTag(const char* localeID, icu::ByteSink& sink, bool str VariantListEntry* var = varFirst; while (var != nullptr) { sink.Append("-", 1); - varLen = (int32_t)uprv_strlen(var->variant); + varLen = static_cast(uprv_strlen(var->variant)); sink.Append(var->variant, varLen); var = var->next; } @@ -1323,7 +1325,7 @@ _appendKeywordsToLanguageTag(const char* localeID, icu::ByteSink& sink, bool str continue; } - keylen = (int32_t)uprv_strlen(key); + keylen = static_cast(uprv_strlen(key)); isBcpUExt = (keylen > 1); /* special keyword used for representing Unicode locale attributes */ @@ -1374,27 +1376,28 @@ _appendKeywordsToLanguageTag(const char* localeID, icu::ByteSink& sink, bool str bcpValue = nullptr; } } else if (isBcpUExt) { - bcpKey = uloc_toUnicodeLocaleKey(key); - if (bcpKey == nullptr) { + std::optional optBcpKey = ulocimp_toBcpKeyWithFallback(key); + if (!optBcpKey.has_value()) { if (strict) { status = U_ILLEGAL_ARGUMENT_ERROR; break; } continue; } + bcpKey = optBcpKey->data(); - /* we've checked buf is null-terminated above */ - bcpValue = uloc_toUnicodeLocaleType(key, buf.data()); - if (bcpValue == nullptr) { + std::optional optBcpValue = + ulocimp_toBcpTypeWithFallback(key, buf.toStringPiece()); + if (!optBcpValue.has_value()) { if (strict) { status = U_ILLEGAL_ARGUMENT_ERROR; break; } continue; } - if (bcpValue == buf.data()) { + if (optBcpValue->data() == buf.data()) { /* - When uloc_toUnicodeLocaleType(key, buf) returns the + When ulocimp_toBcpTypeWithFallback(key, buf) returns the input value as is, the value is well-formed, but has no known mapping. This implementation normalizes the value to lower case @@ -1412,6 +1415,8 @@ _appendKeywordsToLanguageTag(const char* localeID, icu::ByteSink& sink, bool str T_CString_toLowerCase(extBuf->data()); bcpValue = extBuf->data(); + } else { + bcpValue = optBcpValue->data(); } } else { if (*key == PRIVATEUSE) { @@ -1669,33 +1674,28 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT const char *pKey = nullptr; /* LDML key */ const char *pType = nullptr; /* LDML type */ - char bcpKeyBuf[3]; /* BCP key length is always 2 for now */ - U_ASSERT(pBcpKey != nullptr); - if (bcpKeyLen >= (int32_t)sizeof(bcpKeyBuf)) { + /* BCP key length is always 2 for now */ + if (bcpKeyLen != 2) { /* the BCP key is invalid */ status = U_ILLEGAL_ARGUMENT_ERROR; return; } - U_ASSERT(bcpKeyLen <= 2); - - uprv_strncpy(bcpKeyBuf, pBcpKey, bcpKeyLen); - bcpKeyBuf[bcpKeyLen] = 0; /* u extension key to LDML key */ - pKey = uloc_toLegacyKey(bcpKeyBuf); - if (pKey == nullptr) { + std::optional legacyKey = ulocimp_toLegacyKeyWithFallback( + {pBcpKey, static_cast(bcpKeyLen)}); + if (!legacyKey.has_value()) { status = U_ILLEGAL_ARGUMENT_ERROR; return; } - if (pKey == bcpKeyBuf) { + if (legacyKey->data() == pBcpKey) { /* The key returned by toLegacyKey points to the input buffer. We normalize the result key to lower case. */ - T_CString_toLowerCase(bcpKeyBuf); - icu::CharString* key = kwdBuf.create(bcpKeyBuf, bcpKeyLen, status); + icu::CharString* key = kwdBuf.create(pBcpKey, bcpKeyLen, status); if (key == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; return; @@ -1703,36 +1703,37 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT if (U_FAILURE(status)) { return; } + T_CString_toLowerCase(key->data()); pKey = key->data(); + } else { + pKey = legacyKey->data(); } if (pBcpType) { - icu::CharString bcpTypeBuf(pBcpType, bcpTypeLen, status); - if (U_FAILURE(status)) { - return; - } - /* BCP type to locale type */ - pType = uloc_toLegacyType(pKey, bcpTypeBuf.data()); - if (pType == nullptr) { + std::optional legacyType = ulocimp_toLegacyTypeWithFallback( + pKey, {pBcpType, static_cast(bcpTypeLen)}); + if (!legacyType.has_value()) { status = U_ILLEGAL_ARGUMENT_ERROR; return; } - if (pType == bcpTypeBuf.data()) { + if (legacyType->data() == pBcpType) { /* The type returned by toLegacyType points to the input buffer. We normalize the result type to lower case. */ - /* normalize to lower case */ - T_CString_toLowerCase(bcpTypeBuf.data()); - if (icu::CharString* type = - kwdBuf.create(std::move(bcpTypeBuf), status)) { - if (U_FAILURE(status)) { return; } - pType = type->data(); - } else { + icu::CharString* type = kwdBuf.create(pBcpType, bcpTypeLen, status); + if (type == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; return; } + if (U_FAILURE(status)) { + return; + } + T_CString_toLowerCase(type->data()); + pType = type->data(); + } else { + pType = legacyType->data(); } } else { /* typeless - default type value is "yes" */ @@ -1822,7 +1823,7 @@ _appendKeywords(ULanguageTag* langtag, icu::ByteSink& sink, UErrorCode& status) if (U_SUCCESS(status)) { type = ultag_getPrivateUse(langtag); - if ((int32_t)uprv_strlen(type) > 0) { + if (static_cast(uprv_strlen(type)) > 0) { /* add private use as a keyword */ kwd = extPool.create(); if (kwd == nullptr) { @@ -1840,7 +1841,7 @@ _appendKeywords(ULanguageTag* langtag, icu::ByteSink& sink, UErrorCode& status) /* If a POSIX variant was in the extensions, write it out before writing the keywords. */ if (U_SUCCESS(status) && posixVariant) { - len = (int32_t) uprv_strlen(_POSIX); + len = static_cast(uprv_strlen(_POSIX)); sink.Append(_POSIX, len); } @@ -1857,12 +1858,12 @@ _appendKeywords(ULanguageTag* langtag, icu::ByteSink& sink, UErrorCode& status) } /* key */ - len = (int32_t)uprv_strlen(kwd->key); + len = static_cast(uprv_strlen(kwd->key)); sink.Append(kwd->key, len); sink.Append("=", 1); /* type */ - len = (int32_t)uprv_strlen(kwd->value); + len = static_cast(uprv_strlen(kwd->value)); sink.Append(kwd->value, len); kwd = kwd->next; @@ -1932,7 +1933,7 @@ _appendPrivateuseToLanguageTag(const char* localeID, icu::ByteSink& sink, bool s firstValue = false; } - int32_t len = (int32_t)uprv_strlen(pPriv); + int32_t len = static_cast(uprv_strlen(pPriv)); sink.Append(pPriv, len); } } @@ -1994,11 +1995,11 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode& sta } if (tagLen < 0) { - tagLen = (int32_t)uprv_strlen(tag); + tagLen = static_cast(uprv_strlen(tag)); } /* copy the entire string */ - tagBuf = (char*)uprv_malloc(tagLen + 1); + tagBuf = static_cast(uprv_malloc(tagLen + 1)); if (tagBuf == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; return nullptr; @@ -2011,7 +2012,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode& sta /* create a ULanguageTag */ icu::LocalULanguageTagPointer t( - (ULanguageTag*)uprv_malloc(sizeof(ULanguageTag))); + static_cast(uprv_malloc(sizeof(ULanguageTag)))); if (t.isNull()) { uprv_free(tagBuf); status = U_MEMORY_ALLOCATION_ERROR; @@ -2050,7 +2051,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode& sta uprv_free(tagBuf); // Change t->buf after the free and before return to avoid the second double free in // the destructor of t when t is out of scope. - t->buf = tagBuf = (char*)uprv_malloc(newTagLength + 1); + t->buf = tagBuf = static_cast(uprv_malloc(newTagLength + 1)); if (tagBuf == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; return nullptr; @@ -2133,7 +2134,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode& sta } else { pNext = pSep + 1; } - subtagLen = (int32_t)(pSep - pSubtag); + subtagLen = static_cast(pSep - pSubtag); if (next & LANG) { if (ultag_isLanguageSubtag(pSubtag, subtagLen)) { @@ -2321,7 +2322,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode& sta } else { pNext = pSep + 1; } - subtagLen = (int32_t)(pSep - pSubtag); + subtagLen = static_cast(pSep - pSubtag); if (uprv_strncmp(pSubtag, PRIVUSE_VARIANT_PREFIX, uprv_strlen(PRIVUSE_VARIANT_PREFIX)) == 0) { *pSep = 0; @@ -2373,7 +2374,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode& sta } if (parsedLen != nullptr) { - *parsedLen = (int32_t)(pLastGoodPosition - t->buf + parsedLenDelta); + *parsedLen = static_cast(pLastGoodPosition - t->buf + parsedLenDelta); } return t.orphan(); @@ -2698,7 +2699,7 @@ ulocimp_forLanguageTag(const char* langtag, /* language */ subtag = ultag_getExtlangSize(lt.getAlias()) > 0 ? ultag_getExtlang(lt.getAlias(), 0) : ultag_getLanguage(lt.getAlias()); if (uprv_compareInvCharsAsAscii(subtag, LANG_UND) != 0) { - len = (int32_t)uprv_strlen(subtag); + len = static_cast(uprv_strlen(subtag)); if (len > 0) { sink.Append(subtag, len); isEmpty = false; @@ -2707,7 +2708,7 @@ ulocimp_forLanguageTag(const char* langtag, /* script */ subtag = ultag_getScript(lt.getAlias()); - len = (int32_t)uprv_strlen(subtag); + len = static_cast(uprv_strlen(subtag)); if (len > 0) { sink.Append("_", 1); isEmpty = false; @@ -2720,7 +2721,7 @@ ulocimp_forLanguageTag(const char* langtag, /* region */ subtag = ultag_getRegion(lt.getAlias()); - len = (int32_t)uprv_strlen(subtag); + len = static_cast(uprv_strlen(subtag)); if (len > 0) { sink.Append("_", 1); isEmpty = false; diff --git a/thirdparty/icu4c/common/ulocale.cpp b/thirdparty/icu4c/common/ulocale.cpp index aaa17954a393..f2f81bc97109 100644 --- a/thirdparty/icu4c/common/ulocale.cpp +++ b/thirdparty/icu4c/common/ulocale.cpp @@ -21,7 +21,10 @@ U_NAMESPACE_USE ULocale* ulocale_openForLocaleID(const char* localeID, int32_t length, UErrorCode* err) { if (U_FAILURE(*err)) { return nullptr; } - CharString str(length < 0 ? StringPiece(localeID) : StringPiece(localeID, length), *err); + if (length < 0) { + return EXTERNAL(icu::Locale::createFromName(localeID).clone()); + } + CharString str(localeID, length, *err); // Make a NUL terminated copy. if (U_FAILURE(*err)) { return nullptr; } return EXTERNAL(icu::Locale::createFromName(str.data()).clone()); } diff --git a/thirdparty/icu4c/common/ulocbuilder.cpp b/thirdparty/icu4c/common/ulocbuilder.cpp index 3b466473624f..b8b6ce8c1869 100644 --- a/thirdparty/icu4c/common/ulocbuilder.cpp +++ b/thirdparty/icu4c/common/ulocbuilder.cpp @@ -119,7 +119,7 @@ int32_t ulocbld_buildLocaleID(ULocaleBuilder* builder, } icu::Locale l = INTERNAL(builder)->build(*err); if (U_FAILURE(*err)) { return 0; } - int32_t length = (int32_t)(uprv_strlen(l.getName())); + int32_t length = static_cast(uprv_strlen(l.getName())); if (0 < length && length <= bufferCapacity) { uprv_memcpy(buffer, l.getName(), length); } diff --git a/thirdparty/icu4c/common/ulocimp.h b/thirdparty/icu4c/common/ulocimp.h index 7fb64062884c..1887e2a849ab 100644 --- a/thirdparty/icu4c/common/ulocimp.h +++ b/thirdparty/icu4c/common/ulocimp.h @@ -11,6 +11,8 @@ #define ULOCIMP_H #include +#include +#include #include "unicode/bytestream.h" #include "unicode/uloc.h" @@ -53,6 +55,18 @@ uloc_getCurrentCountryID(const char* oldID); U_CFUNC const char* uloc_getCurrentLanguageID(const char* oldID); +U_EXPORT std::optional +ulocimp_toBcpKeyWithFallback(std::string_view keyword); + +U_EXPORT std::optional +ulocimp_toBcpTypeWithFallback(std::string_view keyword, std::string_view value); + +U_EXPORT std::optional +ulocimp_toLegacyKeyWithFallback(std::string_view keyword); + +U_EXPORT std::optional +ulocimp_toLegacyTypeWithFallback(std::string_view keyword, std::string_view value); + U_EXPORT icu::CharString ulocimp_getKeywords(const char* localeID, char prev, @@ -95,12 +109,12 @@ ulocimp_canonicalize(const char* localeID, U_EXPORT icu::CharString ulocimp_getKeywordValue(const char* localeID, - const char* keywordName, + std::string_view keywordName, UErrorCode& status); U_EXPORT void ulocimp_getKeywordValue(const char* localeID, - const char* keywordName, + std::string_view keywordName, icu::ByteSink& sink, UErrorCode& status); @@ -117,15 +131,15 @@ U_EXPORT icu::CharString ulocimp_getVariant(const char* localeID, UErrorCode& status); U_EXPORT void -ulocimp_setKeywordValue(const char* keywordName, - const char* keywordValue, +ulocimp_setKeywordValue(std::string_view keywordName, + std::string_view keywordValue, icu::CharString& localeID, UErrorCode& status); U_EXPORT int32_t -ulocimp_setKeywordValue(const char* keywords, - const char* keywordName, - const char* keywordValue, +ulocimp_setKeywordValue(std::string_view keywords, + std::string_view keywordName, + std::string_view keywordValue, icu::ByteSink& sink, UErrorCode& status); @@ -391,17 +405,17 @@ ultag_isVariantSubtags(const char* s, int32_t len); const char* ultag_getTKeyStart(const char* localeID); -U_EXPORT const char* -ulocimp_toBcpKey(const char* key); +U_EXPORT std::optional +ulocimp_toBcpKey(std::string_view key); -U_EXPORT const char* -ulocimp_toLegacyKey(const char* key); +U_EXPORT std::optional +ulocimp_toLegacyKey(std::string_view key); -U_EXPORT const char* -ulocimp_toBcpType(const char* key, const char* type, bool* isKnownKey, bool* isSpecialType); +U_EXPORT std::optional +ulocimp_toBcpType(std::string_view key, std::string_view type); -U_EXPORT const char* -ulocimp_toLegacyType(const char* key, const char* type, bool* isKnownKey, bool* isSpecialType); +U_EXPORT std::optional +ulocimp_toLegacyType(std::string_view key, std::string_view type); /* Function for testing purpose */ U_EXPORT const char* const* @@ -411,4 +425,19 @@ ulocimp_getKnownCanonicalizedLocaleForTest(int32_t& length); U_EXPORT bool ulocimp_isCanonicalizedLocaleForTest(const char* localeName); +#ifdef __cplusplus +U_NAMESPACE_BEGIN +class U_COMMON_API RegionValidateMap : public UObject { + public: + RegionValidateMap(); + virtual ~RegionValidateMap(); + bool isSet(const char* region) const; + bool equals(const RegionValidateMap& that) const; + protected: + int32_t value(const char* region) const; + uint32_t map[22]; // 26x26/32 = 22; +}; +U_NAMESPACE_END +#endif /* __cplusplus */ + #endif diff --git a/thirdparty/icu4c/common/umapfile.cpp b/thirdparty/icu4c/common/umapfile.cpp index 8dddf0e78dcc..b58ac37f4d45 100644 --- a/thirdparty/icu4c/common/umapfile.cpp +++ b/thirdparty/icu4c/common/umapfile.cpp @@ -63,7 +63,7 @@ typedef HANDLE MemoryMap; # define IS_MAP(map) ((map)!=nullptr) -#elif MAP_IMPLEMENTATION==MAP_POSIX || MAP_IMPLEMENTATION==MAP_390DLL +#elif MAP_IMPLEMENTATION==MAP_POSIX typedef size_t MemoryMap; # define IS_MAP(map) ((map)!=0) @@ -76,18 +76,6 @@ typedef HANDLE MemoryMap; # ifndef MAP_FAILED # define MAP_FAILED ((void*)-1) # endif - -# if MAP_IMPLEMENTATION==MAP_390DLL - /* No memory mapping for 390 batch mode. Fake it using dll loading. */ -# include -# include "cstring.h" -# include "cmemory.h" -# include "unicode/udata.h" -# define LIB_PREFIX "lib" -# define LIB_SUFFIX ".dll" - /* This is inconvenient until we figure out what to do with U_ICUDATA_NAME in utypes.h */ -# define U_ICUDATA_ENTRY_NAME "icudt" U_ICU_VERSION_SHORT U_LIB_SUFFIX_C_NAME_STRING "_dat" -# endif #elif MAP_IMPLEMENTATION==MAP_STDIO # include # include "cmemory.h" @@ -339,192 +327,6 @@ typedef HANDLE MemoryMap; pData->pHeader = nullptr; } } - - -#elif MAP_IMPLEMENTATION==MAP_390DLL - /* 390 specific Library Loading. - * This is the only platform left that dynamically loads an ICU Data Library. - * All other platforms use .data files when dynamic loading is required, but - * this turn out to be awkward to support in 390 batch mode. - * - * The idea here is to hide the fact that 390 is using dll loading from the - * rest of ICU, and make it look like there is file loading happening. - * - */ - - static char *strcpy_returnEnd(char *dest, const char *src) - { - while((*dest=*src)!=0) { - ++dest; - ++src; - } - return dest; - } - - /*------------------------------------------------------------------------------ - * - * computeDirPath given a user-supplied path of an item to be opened, - * compute and return - * - the full directory path to be used - * when opening the file. - * - Pointer to null at end of above returned path - * - * Parameters: - * path: input path. Buffer is not altered. - * pathBuffer: Output buffer. Any contents are overwritten. - * - * Returns: - * Pointer to null termination in returned pathBuffer. - * - * TODO: This works the way ICU historically has, but the - * whole data fallback search path is so complicated that - * probably almost no one will ever really understand it, - * the potential for confusion is large. (It's not just - * this one function, but the whole scheme.) - * - *------------------------------------------------------------------------------*/ - static char *uprv_computeDirPath(const char *path, char *pathBuffer) - { - char *finalSlash; /* Ptr to last dir separator in input path, or null if none. */ - int32_t pathLen; /* Length of the returned directory path */ - - finalSlash = 0; - if (path != 0) { - finalSlash = uprv_strrchr(path, U_FILE_SEP_CHAR); - } - - *pathBuffer = 0; - if (finalSlash == 0) { - /* No user-supplied path. - * Copy the ICU_DATA path to the path buffer and return that*/ - const char *icuDataDir; - icuDataDir=u_getDataDirectory(); - if(icuDataDir!=nullptr && *icuDataDir!=0) { - return strcpy_returnEnd(pathBuffer, icuDataDir); - } else { - /* there is no icuDataDir either. Just return the empty pathBuffer. */ - return pathBuffer; - } - } - - /* User supplied path did contain a directory portion. - * Copy it to the output path buffer */ - pathLen = (int32_t)(finalSlash - path + 1); - uprv_memcpy(pathBuffer, path, pathLen); - *(pathBuffer+pathLen) = 0; - return pathBuffer+pathLen; - } - - -# define DATA_TYPE "dat" - - U_CFUNC UBool uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) { - const char *inBasename; - char *basename; - char pathBuffer[1024]; - const DataHeader *pHeader; - dllhandle *handle; - void *val=0; - - if (U_FAILURE(*status)) { - return false; - } - - inBasename=uprv_strrchr(path, U_FILE_SEP_CHAR); - if(inBasename==nullptr) { - inBasename = path; - } else { - inBasename++; - } - basename=uprv_computeDirPath(path, pathBuffer); - if(uprv_strcmp(inBasename, U_ICUDATA_NAME".dat") != 0) { - /* must mmap file... for build */ - int fd; - int length; - struct stat mystat; - void *data; - UDataMemory_init(pData); /* Clear the output struct. */ - - /* determine the length of the file */ - if(stat(path, &mystat)!=0 || mystat.st_size<=0) { - return false; - } - length=mystat.st_size; - - /* open the file */ - fd=open(path, O_RDONLY); - if(fd==-1) { - return false; - } - - /* get a view of the mapping */ - data=mmap(0, length, PROT_READ, MAP_PRIVATE, fd, 0); - close(fd); /* no longer needed */ - if(data==MAP_FAILED) { - // Possibly check the errorno value for ENOMEM, and report U_MEMORY_ALLOCATION_ERROR? - return false; - } - pData->map = (char *)data + length; - pData->pHeader=(const DataHeader *)data; - pData->mapAddr = data; - return true; - } - -# ifdef OS390BATCH - /* ### hack: we still need to get u_getDataDirectory() fixed - for OS/390 (batch mode - always return "//"? ) - and this here straightened out with LIB_PREFIX and LIB_SUFFIX (both empty?!) - This is probably due to the strange file system on OS/390. It's more like - a database with short entry names than a typical file system. */ - /* U_ICUDATA_NAME should always have the correct name */ - /* BUT FOR BATCH MODE IT IS AN EXCEPTION BECAUSE */ - /* THE FIRST THREE LETTERS ARE PREASSIGNED TO THE */ - /* PROJECT!!!!! */ - uprv_strcpy(pathBuffer, "IXMI" U_ICU_VERSION_SHORT "DA"); -# else - /* set up the library name */ - uprv_strcpy(basename, LIB_PREFIX U_LIBICUDATA_NAME U_ICU_VERSION_SHORT LIB_SUFFIX); -# endif - -# ifdef UDATA_DEBUG - fprintf(stderr, "dllload: %s ", pathBuffer); -# endif - - handle=dllload(pathBuffer); - -# ifdef UDATA_DEBUG - fprintf(stderr, " -> %08X\n", handle ); -# endif - - if(handle != nullptr) { - /* we have a data DLL - what kind of lookup do we need here? */ - /* try to find the Table of Contents */ - UDataMemory_init(pData); /* Clear the output struct. */ - val=dllqueryvar((dllhandle*)handle, U_ICUDATA_ENTRY_NAME); - if(val == 0) { - /* failed... so keep looking */ - return false; - } -# ifdef UDATA_DEBUG - fprintf(stderr, "dllqueryvar(%08X, %s) -> %08X\n", handle, U_ICUDATA_ENTRY_NAME, val); -# endif - - pData->pHeader=(const DataHeader *)val; - return true; - } else { - return false; /* no handle */ - } - } - - U_CFUNC void uprv_unmapFile(UDataMemory *pData) { - if(pData!=nullptr && pData->map!=nullptr) { - uprv_free(pData->map); - pData->map = nullptr; - pData->mapAddr = nullptr; - pData->pHeader = nullptr; - } - } - #else # error MAP_IMPLEMENTATION is set incorrectly #endif diff --git a/thirdparty/icu4c/common/umapfile.h b/thirdparty/icu4c/common/umapfile.h index 042e71374c1f..bacd10e70d80 100644 --- a/thirdparty/icu4c/common/umapfile.h +++ b/thirdparty/icu4c/common/umapfile.h @@ -37,19 +37,13 @@ U_CFUNC void uprv_unmapFile(UDataMemory *pData); #define MAP_WIN32 1 #define MAP_POSIX 2 #define MAP_STDIO 3 -#define MAP_390DLL 4 #if UCONFIG_NO_FILE_IO # define MAP_IMPLEMENTATION MAP_NONE #elif U_PLATFORM_USES_ONLY_WIN32_API # define MAP_IMPLEMENTATION MAP_WIN32 #elif U_HAVE_MMAP || U_PLATFORM == U_PF_OS390 -# if U_PLATFORM == U_PF_OS390 && defined (OS390_STUBDATA) - /* No memory mapping for 390 batch mode. Fake it using dll loading. */ -# define MAP_IMPLEMENTATION MAP_390DLL -# else -# define MAP_IMPLEMENTATION MAP_POSIX -# endif +# define MAP_IMPLEMENTATION MAP_POSIX #else /* unknown platform, no memory map implementation: use stdio.h and uprv_malloc() instead */ # define MAP_IMPLEMENTATION MAP_STDIO #endif diff --git a/thirdparty/icu4c/common/umutablecptrie.cpp b/thirdparty/icu4c/common/umutablecptrie.cpp index cdbe27080b49..40ea57f14919 100644 --- a/thirdparty/icu4c/common/umutablecptrie.cpp +++ b/thirdparty/icu4c/common/umutablecptrie.cpp @@ -45,10 +45,10 @@ constexpr uint8_t MIXED = 1; constexpr uint8_t SAME_AS = 2; /** Start with allocation of 16k data entries. */ -constexpr int32_t INITIAL_DATA_LENGTH = ((int32_t)1 << 14); +constexpr int32_t INITIAL_DATA_LENGTH = static_cast(1) << 14; /** Grow about 8x each time. */ -constexpr int32_t MEDIUM_DATA_LENGTH = ((int32_t)1 << 17); +constexpr int32_t MEDIUM_DATA_LENGTH = static_cast(1) << 17; /** * Maximum length of the build-time data array. @@ -135,8 +135,8 @@ MutableCodePointTrie::MutableCodePointTrie(uint32_t iniValue, uint32_t errValue, #endif { if (U_FAILURE(errorCode)) { return; } - index = (uint32_t *)uprv_malloc(BMP_I_LIMIT * 4); - data = (uint32_t *)uprv_malloc(INITIAL_DATA_LENGTH * 4); + index = static_cast(uprv_malloc(BMP_I_LIMIT * 4)); + data = static_cast(uprv_malloc(INITIAL_DATA_LENGTH * 4)); if (index == nullptr || data == nullptr) { errorCode = U_MEMORY_ALLOCATION_ERROR; return; @@ -157,8 +157,8 @@ MutableCodePointTrie::MutableCodePointTrie(const MutableCodePointTrie &other, UE { if (U_FAILURE(errorCode)) { return; } int32_t iCapacity = highStart <= BMP_LIMIT ? BMP_I_LIMIT : I_LIMIT; - index = (uint32_t *)uprv_malloc(iCapacity * 4); - data = (uint32_t *)uprv_malloc(other.dataCapacity * 4); + index = static_cast(uprv_malloc(iCapacity * 4)); + data = static_cast(uprv_malloc(other.dataCapacity * 4)); if (index == nullptr || data == nullptr) { errorCode = U_MEMORY_ALLOCATION_ERROR; return; @@ -268,7 +268,7 @@ void MutableCodePointTrie::clear() { } uint32_t MutableCodePointTrie::get(UChar32 c) const { - if ((uint32_t)c > MAX_UNICODE) { + if (static_cast(c) > MAX_UNICODE) { return errorValue; } if (c >= highStart) { @@ -295,7 +295,7 @@ inline uint32_t maybeFilterValue(uint32_t value, uint32_t initialValue, uint32_t UChar32 MutableCodePointTrie::getRange( UChar32 start, UCPMapValueFilter *filter, const void *context, uint32_t *pValue) const { - if ((uint32_t)start > MAX_UNICODE) { + if (static_cast(start) > MAX_UNICODE) { return U_SENTINEL; } if (start >= highStart) { @@ -387,7 +387,7 @@ bool MutableCodePointTrie::ensureHighStart(UChar32 c) { int32_t i = highStart >> UCPTRIE_SHIFT_3; int32_t iLimit = c >> UCPTRIE_SHIFT_3; if (iLimit > indexCapacity) { - uint32_t *newIndex = (uint32_t *)uprv_malloc(I_LIMIT * 4); + uint32_t* newIndex = static_cast(uprv_malloc(I_LIMIT * 4)); if (newIndex == nullptr) { return false; } uprv_memcpy(newIndex, index, i * 4); uprv_free(index); @@ -418,7 +418,7 @@ int32_t MutableCodePointTrie::allocDataBlock(int32_t blockLength) { // or the code writes more values than should be possible. return -1; } - uint32_t *newData = (uint32_t *)uprv_malloc(capacity * 4); + uint32_t* newData = static_cast(uprv_malloc(capacity * 4)); if (newData == nullptr) { return -1; } @@ -468,7 +468,7 @@ void MutableCodePointTrie::set(UChar32 c, uint32_t value, UErrorCode &errorCode) if (U_FAILURE(errorCode)) { return; } - if ((uint32_t)c > MAX_UNICODE) { + if (static_cast(c) > MAX_UNICODE) { errorCode = U_ILLEGAL_ARGUMENT_ERROR; return; } @@ -495,7 +495,7 @@ void MutableCodePointTrie::setRange(UChar32 start, UChar32 end, uint32_t value, if (U_FAILURE(errorCode)) { return; } - if ((uint32_t)start > MAX_UNICODE || (uint32_t)end > MAX_UNICODE || start > end) { + if (static_cast(start) > MAX_UNICODE || static_cast(end) > MAX_UNICODE || start > end) { errorCode = U_ILLEGAL_ARGUMENT_ERROR; return; } @@ -792,7 +792,7 @@ class MixedBlocks { } if (newLength > capacity) { uprv_free(table); - table = (uint32_t *)uprv_malloc(newLength * 4); + table = static_cast(uprv_malloc(newLength * 4)); if (table == nullptr) { return false; } @@ -1207,8 +1207,8 @@ int32_t MutableCodePointTrie::compactIndex(int32_t fastILimit, MixedBlocks &mixe int32_t i3FirstNull = -1; for (int32_t i = 0, j = 0; i < fastILimit; ++j) { uint32_t i3 = index[i]; - fastIndex[j] = (uint16_t)i3; - if (i3 == (uint32_t)dataNullOffset) { + fastIndex[j] = static_cast(i3); + if (i3 == static_cast(dataNullOffset)) { if (i3FirstNull < 0) { i3FirstNull = j; } else if (index3NullOffset < 0 && @@ -1257,7 +1257,7 @@ int32_t MutableCodePointTrie::compactIndex(int32_t fastILimit, MixedBlocks &mixe do { uint32_t i3 = index[j]; oredI3 |= i3; - if (i3 != (uint32_t)dataNullOffset) { + if (i3 != static_cast(dataNullOffset)) { isNull = false; } } while (++j < jLimit); @@ -1299,7 +1299,7 @@ int32_t MutableCodePointTrie::compactIndex(int32_t fastILimit, MixedBlocks &mixe // Index table: Fast index, index-1, index-3, index-2. // +1 for possible index table padding. int32_t index16Capacity = fastIndexLength + index1Length + index3Capacity + index2Capacity + 1; - index16 = (uint16_t *)uprv_malloc(index16Capacity * 2); + index16 = static_cast(uprv_malloc(index16Capacity * 2)); if (index16 == nullptr) { errorCode = U_MEMORY_ALLOCATION_ERROR; return 0; @@ -1531,7 +1531,7 @@ int32_t MutableCodePointTrie::compactTrie(int32_t fastILimit, UErrorCode &errorC errorCode = U_MEMORY_ALLOCATION_ERROR; return 0; } - uint32_t *newData = (uint32_t *)uprv_malloc(newDataCapacity * 4); + uint32_t* newData = static_cast(uprv_malloc(newDataCapacity * 4)); if (newData == nullptr) { errorCode = U_MEMORY_ALLOCATION_ERROR; return 0; @@ -1654,7 +1654,7 @@ UCPTrie *MutableCodePointTrie::build(UCPTrieType type, UCPTrieValueWidth valueWi length += sizeof(UCPTrie); U_ASSERT((length & 3) == 0); - uint8_t *bytes = (uint8_t *)uprv_malloc(length); + uint8_t* bytes = static_cast(uprv_malloc(length)); if (bytes == nullptr) { errorCode = U_MEMORY_ALLOCATION_ERROR; clear(); @@ -1679,13 +1679,13 @@ UCPTrie *MutableCodePointTrie::build(UCPTrieType type, UCPTrieValueWidth valueWi bytes += sizeof(UCPTrie); // Fill the index and data arrays. - uint16_t *dest16 = (uint16_t *)bytes; + uint16_t* dest16 = reinterpret_cast(bytes); trie->index = dest16; if (highStart <= fastLimit) { // Condense only the fast index from the mutable-trie index. for (int32_t i = 0, j = 0; j < indexLength; i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK, ++j) { - *dest16++ = (uint16_t)index[i]; // dest16[j] + *dest16++ = static_cast(index[i]); // dest16[j] } } else { uprv_memcpy(dest16, index16, indexLength * 2); @@ -1700,19 +1700,19 @@ UCPTrie *MutableCodePointTrie::build(UCPTrieType type, UCPTrieValueWidth valueWi // Write 16-bit data values. trie->data.ptr16 = dest16; for (int32_t i = dataLength; i > 0; --i) { - *dest16++ = (uint16_t)*p++; + *dest16++ = static_cast(*p++); } break; case UCPTRIE_VALUE_BITS_32: // Write 32-bit data values. - trie->data.ptr32 = (uint32_t *)bytes; + trie->data.ptr32 = reinterpret_cast(bytes); uprv_memcpy(bytes, p, (size_t)dataLength * 4); break; case UCPTRIE_VALUE_BITS_8: // Write 8-bit data values. trie->data.ptr8 = bytes; for (int32_t i = dataLength; i > 0; --i) { - *bytes++ = (uint8_t)*p++; + *bytes++ = static_cast(*p++); } break; default: diff --git a/thirdparty/icu4c/common/unames.cpp b/thirdparty/icu4c/common/unames.cpp index 1b3192bf25ef..71b2baff6c19 100644 --- a/thirdparty/icu4c/common/unames.cpp +++ b/thirdparty/icu4c/common/unames.cpp @@ -180,7 +180,7 @@ static UBool U_CALLCONV isAcceptable(void * /*context*/, const char * /*type*/, const char * /*name*/, const UDataInfo *pInfo) { - return (UBool)( + return pInfo->size>=20 && pInfo->isBigEndian==U_IS_BIG_ENDIAN && pInfo->charsetFamily==U_CHARSET_FAMILY && @@ -188,7 +188,7 @@ isAcceptable(void * /*context*/, pInfo->dataFormat[1]==0x6e && pInfo->dataFormat[2]==0x61 && pInfo->dataFormat[3]==0x6d && - pInfo->formatVersion[0]==1); + pInfo->formatVersion[0]==1; } static void U_CALLCONV @@ -238,9 +238,9 @@ static uint16_t expandName(UCharNames *names, const uint8_t *name, uint16_t nameLength, UCharNameChoice nameChoice, char *buffer, uint16_t bufferLength) { - uint16_t *tokens=(uint16_t *)names+8; + uint16_t* tokens = reinterpret_cast(names) + 8; uint16_t token, tokenCount=*tokens++, bufferPos=0; - uint8_t *tokenStrings=(uint8_t *)names+names->tokenStringOffset; + uint8_t* tokenStrings = reinterpret_cast(names) + names->tokenStringOffset; uint8_t c; if(nameChoice!=U_UNICODE_CHAR_NAME && nameChoice!=U_EXTENDED_CHAR_NAME) { @@ -248,7 +248,7 @@ expandName(UCharNames *names, * skip the modern name if it is not requested _and_ * if the semicolon byte value is a character, not a token number */ - if((uint8_t)';'>=tokenCount || tokens[(uint8_t)';']==(uint16_t)(-1)) { + if (static_cast(';') >= tokenCount || tokens[static_cast(';')] == static_cast(-1)) { int fieldIndex= nameChoice==U_ISO_COMMENT ? 2 : nameChoice; do { while(nameLength>0) { @@ -283,12 +283,12 @@ expandName(UCharNames *names, } } else { token=tokens[c]; - if(token==(uint16_t)(-2)) { + if (token == static_cast(-2)) { /* this is a lead byte for a double-byte token */ token=tokens[c<<8|*name++]; --nameLength; } - if(token==(uint16_t)(-1)) { + if (token == static_cast(-1)) { if(c!=';') { /* explicit letter */ WRITE_CHAR(buffer, bufferLength, bufferPos, c); @@ -297,7 +297,7 @@ expandName(UCharNames *names, extended names and there was no 2.0 name but there is a 1.0 name. */ if(!bufferPos && nameChoice == U_EXTENDED_CHAR_NAME) { - if ((uint8_t)';'>=tokenCount || tokens[(uint8_t)';']==(uint16_t)(-1)) { + if (static_cast(';') >= tokenCount || tokens[static_cast(';')] == static_cast(-1)) { continue; } } @@ -331,9 +331,9 @@ static UBool compareName(UCharNames *names, const uint8_t *name, uint16_t nameLength, UCharNameChoice nameChoice, const char *otherName) { - uint16_t *tokens=(uint16_t *)names+8; + uint16_t* tokens = reinterpret_cast(names) + 8; uint16_t token, tokenCount=*tokens++; - uint8_t *tokenStrings=(uint8_t *)names+names->tokenStringOffset; + uint8_t* tokenStrings = reinterpret_cast(names) + names->tokenStringOffset; uint8_t c; const char *origOtherName = otherName; @@ -342,7 +342,7 @@ compareName(UCharNames *names, * skip the modern name if it is not requested _and_ * if the semicolon byte value is a character, not a token number */ - if((uint8_t)';'>=tokenCount || tokens[(uint8_t)';']==(uint16_t)(-1)) { + if (static_cast(';') >= tokenCount || tokens[static_cast(';')] == static_cast(-1)) { int fieldIndex= nameChoice==U_ISO_COMMENT ? 2 : nameChoice; do { while(nameLength>0) { @@ -370,7 +370,7 @@ compareName(UCharNames *names, if(c>=tokenCount) { if(c!=';') { /* implicit letter */ - if((char)c!=*otherName++) { + if (static_cast(c) != *otherName++) { return false; } } else { @@ -379,15 +379,15 @@ compareName(UCharNames *names, } } else { token=tokens[c]; - if(token==(uint16_t)(-2)) { + if (token == static_cast(-2)) { /* this is a lead byte for a double-byte token */ token=tokens[c<<8|*name++]; --nameLength; } - if(token==(uint16_t)(-1)) { + if (token == static_cast(-1)) { if(c!=';') { /* explicit letter */ - if((char)c!=*otherName++) { + if (static_cast(c) != *otherName++) { return false; } } else { @@ -395,7 +395,7 @@ compareName(UCharNames *names, extended names and there was no 2.0 name but there is a 1.0 name. */ if(otherName == origOtherName && nameChoice == U_EXTENDED_CHAR_NAME) { - if ((uint8_t)';'>=tokenCount || tokens[(uint8_t)';']==(uint16_t)(-1)) { + if (static_cast(';') >= tokenCount || tokens[static_cast(';')] == static_cast(-1)) { continue; } } @@ -406,7 +406,7 @@ compareName(UCharNames *names, /* write token word */ uint8_t *tokenString=tokenStrings+token; while((c=*tokenString++)!=0) { - if((char)c!=*otherName++) { + if (static_cast(c) != *otherName++) { return false; } } @@ -415,7 +415,7 @@ compareName(UCharNames *names, } /* complete match? */ - return (UBool)(*otherName==0); + return *otherName == 0; } static uint8_t getCharCat(UChar32 cp) { @@ -462,7 +462,7 @@ static uint16_t getExtName(uint32_t code, char *buffer, uint16_t bufferLength) { if (ndigits < 4) ndigits = 4; for (cp = code, i = ndigits; (cp || i > 0) && bufferLength; cp >>= 4, bufferLength--) { - uint8_t v = (uint8_t)(cp & 0xf); + uint8_t v = static_cast(cp & 0xf); buffer[--i] = (v < 10 ? '0' + v : 'A' + v - 10); } buffer += ndigits; @@ -482,14 +482,14 @@ static uint16_t getExtName(uint32_t code, char *buffer, uint16_t bufferLength) { static const uint16_t * getGroup(UCharNames *names, uint32_t code) { const uint16_t *groups=GET_GROUPS(names); - uint16_t groupMSB=(uint16_t)(code>>GROUP_SHIFT), + uint16_t groupMSB = static_cast(code >> GROUP_SHIFT), start=0, limit=*groups++, number; /* binary search for the group of names that contains the one for code */ while(start((start + limit) / 2); if(groupMSB=12) { /* double-nibble length spread across two bytes */ - length=(uint16_t)(((length&0x3)<<4|lengthByte>>4)+12); + length = static_cast(((length & 0x3) << 4 | lengthByte >> 4) + 12); lengthByte&=0xf; } else if((lengthByte /* &0xf0 */)>=0xc0) { /* double-nibble length spread across this one byte */ - length=(uint16_t)((lengthByte&0x3f)+12); + length = static_cast((lengthByte & 0x3f) + 12); } else { /* single-nibble length in MSBs */ - length=(uint16_t)(lengthByte>>4); + length = static_cast(lengthByte >> 4); lengthByte&=0xf; } @@ -568,7 +568,7 @@ expandGroupName(UCharNames *names, const uint16_t *group, uint16_t lineNumber, UCharNameChoice nameChoice, char *buffer, uint16_t bufferLength) { uint16_t offsets[LINES_PER_GROUP+2], lengths[LINES_PER_GROUP+2]; - const uint8_t *s=(uint8_t *)names+names->groupStringOffset+GET_GROUP_OFFSET(group); + const uint8_t* s = reinterpret_cast(names) + names->groupStringOffset + GET_GROUP_OFFSET(group); s=expandGroupLengths(s, offsets, lengths); return expandName(names, s+offsets[lineNumber], lengths[lineNumber], nameChoice, buffer, bufferLength); @@ -578,8 +578,8 @@ static uint16_t getName(UCharNames *names, uint32_t code, UCharNameChoice nameChoice, char *buffer, uint16_t bufferLength) { const uint16_t *group=getGroup(names, code); - if((uint16_t)(code>>GROUP_SHIFT)==group[GROUP_MSB]) { - return expandGroupName(names, group, (uint16_t)(code&GROUP_MASK), nameChoice, + if (static_cast(code >> GROUP_SHIFT) == group[GROUP_MSB]) { + return expandGroupName(names, group, static_cast(code & GROUP_MASK), nameChoice, buffer, bufferLength); } else { /* group not found */ @@ -601,7 +601,7 @@ enumGroupNames(UCharNames *names, const uint16_t *group, UEnumCharNamesFn *fn, void *context, UCharNameChoice nameChoice) { uint16_t offsets[LINES_PER_GROUP+2], lengths[LINES_PER_GROUP+2]; - const uint8_t *s=(uint8_t *)names+names->groupStringOffset+GET_GROUP_OFFSET(group); + const uint8_t* s = reinterpret_cast(names) + names->groupStringOffset + GET_GROUP_OFFSET(group); s=expandGroupLengths(s, offsets, lengths); if(fn!=DO_FIND_NAME) { @@ -622,10 +622,10 @@ enumGroupNames(UCharNames *names, const uint16_t *group, ++start; } } else { - const char *otherName=((FindName *)context)->otherName; + const char* otherName = static_cast(context)->otherName; while(start<=end) { if(compareName(names, s+offsets[start&GROUP_MASK], lengths[start&GROUP_MASK], nameChoice, otherName)) { - ((FindName *)context)->code=start; + static_cast(context)->code = start; return false; } ++start; @@ -671,15 +671,15 @@ enumNames(UCharNames *names, uint16_t startGroupMSB, endGroupMSB, groupCount; const uint16_t *group, *groupLimit; - startGroupMSB=(uint16_t)(start>>GROUP_SHIFT); - endGroupMSB=(uint16_t)((limit-1)>>GROUP_SHIFT); + startGroupMSB = static_cast(start >> GROUP_SHIFT); + endGroupMSB = static_cast((limit - 1) >> GROUP_SHIFT); /* find the group that contains start, or the highest before it */ group=getGroup(names, start); if(startGroupMSB(group[GROUP_MSB]) << GROUP_SHIFT; if(extLimit>limit) { extLimit=limit; } @@ -703,7 +703,7 @@ enumNames(UCharNames *names, /* enumerate characters in the partial start group */ if((start&GROUP_MASK)!=0) { if(!enumGroupNames(names, group, - start, ((UChar32)startGroupMSB<(startGroupMSB) << GROUP_SHIFT) + LINES_PER_GROUP - 1, fn, context, nameChoice)) { return false; } @@ -727,7 +727,7 @@ enumNames(UCharNames *names, /* enumerate entire groups between the start- and end-groups */ while(group(group[GROUP_MSB]) << GROUP_SHIFT; if(!enumGroupNames(names, group, start, start+LINES_PER_GROUP-1, fn, context, nameChoice)) { return false; } @@ -790,14 +790,14 @@ writeFactorSuffix(const uint16_t *factors, uint16_t count, --count; for(i=count; i>0; --i) { factor=factors[i]; - indexes[i]=(uint16_t)(code%factor); + indexes[i] = static_cast(code % factor); code/=factor; } /* * we don't need to calculate the last modulus because start<=code<=end * guarantees here that code<=factors[0] */ - indexes[0]=(uint16_t)code; + indexes[0] = static_cast(code); /* write each element */ for(;;) { @@ -826,7 +826,7 @@ writeFactorSuffix(const uint16_t *factors, uint16_t count, } /* skip the rest of the strings for this factors[i] */ - factor=(uint16_t)(factors[i]-indexes[i]-1); + factor = static_cast(factors[i] - indexes[i] - 1); while(factor>0) { while(*s++!=0) {} --factor; @@ -865,7 +865,7 @@ getAlgName(AlgorithmicRange *range, uint32_t code, UCharNameChoice nameChoice, switch(range->type) { case 0: { /* name = prefix hex-digits */ - const char *s=(const char *)(range+1); + const char* s = reinterpret_cast(range + 1); char c; uint16_t i, count; @@ -885,7 +885,7 @@ getAlgName(AlgorithmicRange *range, uint32_t code, UCharNameChoice nameChoice, for(i=count; i>0;) { if(--i(code & 0xf); if(c<10) { c+='0'; } else { @@ -902,9 +902,9 @@ getAlgName(AlgorithmicRange *range, uint32_t code, UCharNameChoice nameChoice, case 1: { /* name = prefix factorized-elements */ uint16_t indexes[8]; - const uint16_t *factors=(const uint16_t *)(range+1); + const uint16_t* factors = reinterpret_cast(range + 1); uint16_t count=range->variant; - const char *s=(const char *)(factors+count); + const char* s = reinterpret_cast(factors + count); char c; /* copy prefix */ @@ -950,7 +950,7 @@ enumAlgNames(AlgorithmicRange *range, char c; /* get the full name of the start character */ - length=getAlgName(range, (uint32_t)start, nameChoice, buffer, sizeof(buffer)); + length = getAlgName(range, static_cast(start), nameChoice, buffer, sizeof(buffer)); if(length<=0) { return true; } @@ -973,7 +973,7 @@ enumAlgNames(AlgorithmicRange *range, for (;;) { c=*--s; if(('0'<=c && c<'9') || ('A'<=c && c<'F')) { - *s=(char)(c+1); + *s = static_cast(c + 1); break; } else if(c=='9') { *s='A'; @@ -992,9 +992,9 @@ enumAlgNames(AlgorithmicRange *range, case 1: { uint16_t indexes[8]; const char *elementBases[8], *elements[8]; - const uint16_t *factors=(const uint16_t *)(range+1); + const uint16_t* factors = reinterpret_cast(range + 1); uint16_t count=range->variant; - const char *s=(const char *)(factors+count); + const char* s = reinterpret_cast(factors + count); char *suffix, *t; uint16_t prefixLength, i, idx; @@ -1011,10 +1011,10 @@ enumAlgNames(AlgorithmicRange *range, } /* append the suffix of the start character */ - length=(uint16_t)(prefixLength+writeFactorSuffix(factors, count, - s, (uint32_t)start-range->start, + length = static_cast(prefixLength + writeFactorSuffix(factors, count, + s, static_cast(start) - range->start, indexes, elementBases, elements, - suffix, (uint16_t)(sizeof(buffer)-prefixLength))); + suffix, static_cast(sizeof(buffer) - prefixLength))); /* call the enumerator function with this first character */ if(!fn(context, start, nameChoice, buffer, length)) { @@ -1026,7 +1026,7 @@ enumAlgNames(AlgorithmicRange *range, /* increment the indexes in lexical order bound by the factors */ i=count; for (;;) { - idx=(uint16_t)(indexes[--i]+1); + idx = static_cast(indexes[--i] + 1); if(idxtype) { case 0: { /* name = prefix hex-digits */ - const char *s=(const char *)(range+1); + const char* s = reinterpret_cast(range + 1); char c; uint16_t i, count; /* compare prefix */ while((c=*s++)!=0) { - if((char)c!=*otherName++) { + if (c != *otherName++) { return 0xffff; } } @@ -1112,7 +1112,7 @@ findAlgName(AlgorithmicRange *range, UCharNameChoice nameChoice, const char *oth } /* does it fit into the range? */ - if(*otherName==0 && range->start<=(uint32_t)code && (uint32_t)code<=range->end) { + if (*otherName == 0 && range->start <= static_cast(code) && static_cast(code) <= range->end) { return code; } break; @@ -1121,9 +1121,9 @@ findAlgName(AlgorithmicRange *range, UCharNameChoice nameChoice, const char *oth char buffer[64]; uint16_t indexes[8]; const char *elementBases[8], *elements[8]; - const uint16_t *factors=(const uint16_t *)(range+1); + const uint16_t* factors = reinterpret_cast(range + 1); uint16_t count=range->variant; - const char *s=(const char *)(factors+count), *t; + const char *s = reinterpret_cast(factors + count), *t; UChar32 start, limit; uint16_t i, idx; @@ -1133,13 +1133,13 @@ findAlgName(AlgorithmicRange *range, UCharNameChoice nameChoice, const char *oth /* compare prefix */ while((c=*s++)!=0) { - if((char)c!=*otherName++) { + if (c != *otherName++) { return 0xffff; } } - start=(UChar32)range->start; - limit=(UChar32)(range->end+1); + start = static_cast(range->start); + limit = static_cast(range->end + 1); /* initialize the suffix elements for enumeration; indexes should all be set to 0 */ writeFactorSuffix(factors, count, s, 0, @@ -1155,7 +1155,7 @@ findAlgName(AlgorithmicRange *range, UCharNameChoice nameChoice, const char *oth /* increment the indexes in lexical order bound by the factors */ i=count; for (;;) { - idx=(uint16_t)(indexes[--i]+1); + idx = static_cast(indexes[--i] + 1); if(idxalgNamesOffset); + p = reinterpret_cast(reinterpret_cast(uCharNames) + uCharNames->algNamesOffset); rangeCount=*p; - range=(AlgorithmicRange *)(p+1); + range = reinterpret_cast(p + 1); while(rangeCount>0) { switch(range->type) { case 0: /* name = prefix + (range->variant times) hex-digits */ /* prefix */ - length=calcStringSetLength(gNameSet, (const char *)(range+1))+range->variant; + length = calcStringSetLength(gNameSet, reinterpret_cast(range + 1)) + range->variant; if(length>maxNameLength) { maxNameLength=length; } break; case 1: { /* name = prefix factorized-elements */ - const uint16_t *factors=(const uint16_t *)(range+1); + const uint16_t* factors = reinterpret_cast(range + 1); const char *s; int32_t i, count=range->variant, factor, factorLength, maxFactorLength; /* prefix length */ - s=(const char *)(factors+count); + s = reinterpret_cast(factors + count); length=calcStringSetLength(gNameSet, s); s+=length+1; /* start of factor suffixes */ @@ -1267,7 +1267,7 @@ calcAlgNameSetsLengths(int32_t maxNameLength) { break; } - range=(AlgorithmicRange *)((uint8_t *)range+range->size); + range = reinterpret_cast(reinterpret_cast(range) + range->size); --rangeCount; } return maxNameLength; @@ -1301,19 +1301,19 @@ calcNameSetLength(const uint16_t *tokens, uint16_t tokenCount, const uint8_t *to int32_t length=0, tokenLength; uint16_t c, token; - while(line!=lineLimit && (c=*line++)!=(uint8_t)';') { + while (line != lineLimit && (c = *line++) != static_cast(';')) { if(c>=tokenCount) { /* implicit letter */ SET_ADD(set, c); ++length; } else { token=tokens[c]; - if(token==(uint16_t)(-2)) { + if (token == static_cast(-2)) { /* this is a lead byte for a double-byte token */ c=c<<8|*line++; token=tokens[c]; } - if(token==(uint16_t)(-1)) { + if (token == static_cast(-1)) { /* explicit letter */ SET_ADD(set, c); ++length; @@ -1323,11 +1323,11 @@ calcNameSetLength(const uint16_t *tokens, uint16_t tokenCount, const uint8_t *to /* use cached token length */ tokenLength=tokenLengths[c]; if(tokenLength==0) { - tokenLength=calcStringSetLength(set, (const char *)tokenStrings+token); - tokenLengths[c]=(int8_t)tokenLength; + tokenLength = calcStringSetLength(set, reinterpret_cast(tokenStrings) + token); + tokenLengths[c] = static_cast(tokenLength); } } else { - tokenLength=calcStringSetLength(set, (const char *)tokenStrings+token); + tokenLength = calcStringSetLength(set, reinterpret_cast(tokenStrings) + token); } length+=tokenLength; } @@ -1342,9 +1342,9 @@ static void calcGroupNameSetsLengths(int32_t maxNameLength) { uint16_t offsets[LINES_PER_GROUP+2], lengths[LINES_PER_GROUP+2]; - uint16_t *tokens=(uint16_t *)uCharNames+8; + uint16_t* tokens = reinterpret_cast(uCharNames) + 8; uint16_t tokenCount=*tokens++; - uint8_t *tokenStrings=(uint8_t *)uCharNames+uCharNames->tokenStringOffset; + uint8_t* tokenStrings = reinterpret_cast(uCharNames) + uCharNames->tokenStringOffset; int8_t *tokenLengths; @@ -1353,7 +1353,7 @@ calcGroupNameSetsLengths(int32_t maxNameLength) { int32_t groupCount, lineNumber, length; - tokenLengths=(int8_t *)uprv_malloc(tokenCount); + tokenLengths = static_cast(uprv_malloc(tokenCount)); if(tokenLengths!=nullptr) { uprv_memset(tokenLengths, 0, tokenCount); } @@ -1363,7 +1363,7 @@ calcGroupNameSetsLengths(int32_t maxNameLength) { /* enumerate all groups */ while(groupCount>0) { - s=(uint8_t *)uCharNames+uCharNames->groupStringOffset+GET_GROUP_OFFSET(group); + s = reinterpret_cast(uCharNames) + uCharNames->groupStringOffset + GET_GROUP_OFFSET(group); s=expandGroupLengths(s, offsets, lengths); /* enumerate all lines in each group */ @@ -1424,7 +1424,7 @@ calcNameSetsLengths(UErrorCode *pErrorCode) { } /* set hex digits, used in various names, and <>-, used in extended names */ - for(i=0; i<(int32_t)sizeof(extChars)-1; ++i) { + for (i = 0; i < static_cast(sizeof(extChars)) - 1; ++i) { SET_ADD(gNameSet, extChars[i]); } @@ -1732,7 +1732,7 @@ charSetToUSet(uint32_t cset[8], const USetAdder *sa) { length=0; for(i=0; i<256; ++i) { if(SET_CONTAINS(cset, i)) { - cs[length++]=(char)i; + cs[length++] = static_cast(i); } } @@ -1785,7 +1785,7 @@ makeTokenMap(const UDataSwapper *ds, if(ds->inCharset==ds->outCharset) { /* Same charset family: identity permutation */ for(i=0; i<256; ++i) { - map[i]=(uint8_t)i; + map[i] = static_cast(i); } } else { uprv_memset(map, 0, 256); @@ -1799,7 +1799,7 @@ makeTokenMap(const UDataSwapper *ds, for(i=1; i(i); ds->swapInvChars(ds, &c1, 1, &c2, pErrorCode); if(U_FAILURE(*pErrorCode)) { udata_printError(ds, "unames/makeTokenMap() finds variant character 0x%02x used (input charset family %d)\n", @@ -1821,7 +1821,7 @@ makeTokenMap(const UDataSwapper *ds, while(usedOutChar[j]) { ++j; } - map[i]=(uint8_t)j++; + map[i] = static_cast(j++); } } diff --git a/thirdparty/icu4c/common/unicode/brkiter.h b/thirdparty/icu4c/common/unicode/brkiter.h index bd96629285bc..30c59c4a94ac 100644 --- a/thirdparty/icu4c/common/unicode/brkiter.h +++ b/thirdparty/icu4c/common/unicode/brkiter.h @@ -219,7 +219,7 @@ class U_COMMON_API BreakIterator : public UObject { * boundaries have been returned. * @stable ICU 2.0 */ - DONE = (int32_t)-1 + DONE = static_cast(-1) }; /** diff --git a/thirdparty/icu4c/common/unicode/bytestream.h b/thirdparty/icu4c/common/unicode/bytestream.h index 997746e42804..bea41461bc64 100644 --- a/thirdparty/icu4c/common/unicode/bytestream.h +++ b/thirdparty/icu4c/common/unicode/bytestream.h @@ -281,7 +281,7 @@ class StringByteSink : public ByteSink { */ StringByteSink(StringClass* dest, int32_t initialAppendCapacity) : dest_(dest) { if (initialAppendCapacity > 0 && - (uint32_t)initialAppendCapacity > (dest->capacity() - dest->length())) { + static_cast(initialAppendCapacity) > dest->capacity() - dest->length()) { dest->reserve(dest->length() + initialAppendCapacity); } } diff --git a/thirdparty/icu4c/common/unicode/bytestrie.h b/thirdparty/icu4c/common/unicode/bytestrie.h index 1719a6bb83ed..c07dfada941e 100644 --- a/thirdparty/icu4c/common/unicode/bytestrie.h +++ b/thirdparty/icu4c/common/unicode/bytestrie.h @@ -109,7 +109,7 @@ class U_COMMON_API BytesTrie : public UMemory { */ uint64_t getState64() const { return (static_cast(remainingMatchLength_ + 2) << kState64RemainingShift) | - (uint64_t)(pos_ - bytes_); + static_cast(pos_ - bytes_); } /** @@ -439,7 +439,7 @@ class U_COMMON_API BytesTrie : public UMemory { } static inline UStringTrieResult valueResult(int32_t node) { - return (UStringTrieResult)(USTRINGTRIE_INTERMEDIATE_VALUE-(node&kValueIsFinal)); + return static_cast(USTRINGTRIE_INTERMEDIATE_VALUE - (node & kValueIsFinal)); } // Handles a branch node for both next(byte) and next(string). diff --git a/thirdparty/icu4c/common/unicode/char16ptr.h b/thirdparty/icu4c/common/unicode/char16ptr.h index de8182c7ada4..daf35cd43ba2 100644 --- a/thirdparty/icu4c/common/unicode/char16ptr.h +++ b/thirdparty/icu4c/common/unicode/char16ptr.h @@ -12,6 +12,7 @@ #if U_SHOW_CPLUSPLUS_API #include +#include /** * \file @@ -306,6 +307,76 @@ inline OldUChar *toOldUCharPtr(char16_t *p) { return reinterpret_cast(p); } +#ifndef U_FORCE_HIDE_INTERNAL_API +/** + * Is T convertible to a std::u16string_view or some other 16-bit string view? + * @internal + */ +template +constexpr bool ConvertibleToU16StringView = + std::is_convertible_v +#if !U_CHAR16_IS_TYPEDEF && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION < 180000) + || std::is_convertible_v> +#endif +#if U_SIZEOF_WCHAR_T==2 + || std::is_convertible_v +#endif + ; + +namespace internal { +/** + * Pass-through overload. + * @internal + */ +inline std::u16string_view toU16StringView(std::u16string_view sv) { return sv; } + +#if !U_CHAR16_IS_TYPEDEF && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION < 180000) +/** + * Basically undefined behavior but sometimes necessary conversion + * from std::basic_string_view to std::u16string_view. + * @internal + */ +inline std::u16string_view toU16StringView(std::basic_string_view sv) { + return { ConstChar16Ptr(sv.data()), sv.length() }; +} +#endif + +#if U_SIZEOF_WCHAR_T==2 +/** + * Basically undefined behavior but sometimes necessary conversion + * from std::wstring_view to std::u16string_view. + * @internal + */ +inline std::u16string_view toU16StringView(std::wstring_view sv) { + return { ConstChar16Ptr(sv.data()), sv.length() }; +} +#endif + +/** + * Pass-through overload. + * @internal + */ +template >>> +inline std::u16string_view toU16StringViewNullable(const T& text) { + return toU16StringView(text); +} + +/** + * In case of nullptr, return an empty view. + * @internal + */ +template >>, + typename = void> +inline std::u16string_view toU16StringViewNullable(const T& text) { + if (text == nullptr) return {}; // For backward compatibility. + return toU16StringView(text); +} + +} // internal +#endif // U_FORCE_HIDE_INTERNAL_API + U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ diff --git a/thirdparty/icu4c/common/unicode/docmain.h b/thirdparty/icu4c/common/unicode/docmain.h index fa4dbbc05223..676e868e7c44 100644 --- a/thirdparty/icu4c/common/unicode/docmain.h +++ b/thirdparty/icu4c/common/unicode/docmain.h @@ -138,6 +138,11 @@ * icu::DateFormat * * + * Relative Date and Time Formatting + * ureldatefmt.h + * icu::RelativeDateTimeFormatter + * + * * Message Formatting * umsg.h * icu::MessageFormat diff --git a/thirdparty/icu4c/common/unicode/edits.h b/thirdparty/icu4c/common/unicode/edits.h index dda9d3ca759c..bc3c9438222d 100644 --- a/thirdparty/icu4c/common/unicode/edits.h +++ b/thirdparty/icu4c/common/unicode/edits.h @@ -508,7 +508,7 @@ class U_COMMON_API Edits final : public UMemory { Edits ©Array(const Edits &other); Edits &moveArray(Edits &src) noexcept; - void setLastUnit(int32_t last) { array[length - 1] = (uint16_t)last; } + void setLastUnit(int32_t last) { array[length - 1] = static_cast(last); } int32_t lastUnit() const { return length > 0 ? array[length - 1] : 0xffff; } void append(int32_t r); diff --git a/thirdparty/icu4c/common/unicode/idna.h b/thirdparty/icu4c/common/unicode/idna.h index 1c57205bae2e..1e36fa771f06 100644 --- a/thirdparty/icu4c/common/unicode/idna.h +++ b/thirdparty/icu4c/common/unicode/idna.h @@ -70,6 +70,7 @@ class U_COMMON_API IDNA : public UObject { * The worker functions use transitional processing, including deviation mappings, * unless UIDNA_NONTRANSITIONAL_TO_ASCII or UIDNA_NONTRANSITIONAL_TO_UNICODE * is used in which case the deviation characters are passed through without change. + * Unicode 15.1 UTS #46 deprecated transitional processing. * * Disallowed characters are mapped to U+FFFD. * @@ -82,6 +83,8 @@ class U_COMMON_API IDNA : public UObject { * letters, digits, hyphen (LDH) and dot/full stop are disallowed and mapped to U+FFFD. * * @param options Bit set to modify the processing and error checking. + * These should include UIDNA_DEFAULT, or + * UIDNA_NONTRANSITIONAL_TO_ASCII | UIDNA_NONTRANSITIONAL_TO_UNICODE. * See option bit set values in uidna.h. * @param errorCode Standard ICU error code. Its input value must * pass the U_SUCCESS() test, or else the function returns diff --git a/thirdparty/icu4c/common/unicode/locid.h b/thirdparty/icu4c/common/unicode/locid.h index 60282d623dc9..e1afd598cf9b 100644 --- a/thirdparty/icu4c/common/unicode/locid.h +++ b/thirdparty/icu4c/common/unicode/locid.h @@ -727,7 +727,9 @@ class U_COMMON_API Locale : public UObject { * * @stable ICU 49 */ - void setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status); + void setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status) { + setKeywordValue(StringPiece{keywordName}, StringPiece{keywordValue}, status); + } /** * Sets or removes the value for a keyword. diff --git a/thirdparty/icu4c/common/unicode/messagepattern.h b/thirdparty/icu4c/common/unicode/messagepattern.h index 55b09bfbd4b5..db36ede7274c 100644 --- a/thirdparty/icu4c/common/unicode/messagepattern.h +++ b/thirdparty/icu4c/common/unicode/messagepattern.h @@ -775,7 +775,7 @@ class U_COMMON_API MessagePattern : public UObject { UMessagePatternArgType getArgType() const { UMessagePatternPartType msgType=getType(); if(msgType ==UMSGPAT_PART_TYPE_ARG_START || msgType ==UMSGPAT_PART_TYPE_ARG_LIMIT) { - return (UMessagePatternArgType)value; + return static_cast(value); } else { return UMSGPAT_ARG_TYPE_NONE; } @@ -821,6 +821,7 @@ class U_COMMON_API MessagePattern : public UObject { static const int32_t MAX_LENGTH=0xffff; static const int32_t MAX_VALUE=0x7fff; + static const int32_t MAX_NESTED_LEVELS=0x03ff; // Some fields are not final because they are modified during pattern parsing. // After pattern parsing, the parts are effectively immutable. diff --git a/thirdparty/icu4c/common/unicode/normalizer2.h b/thirdparty/icu4c/common/unicode/normalizer2.h index 6856ff8720bf..01271623f3b9 100644 --- a/thirdparty/icu4c/common/unicode/normalizer2.h +++ b/thirdparty/icu4c/common/unicode/normalizer2.h @@ -163,7 +163,6 @@ class U_COMMON_API Normalizer2 : public UObject { static const Normalizer2 * getNFKCCasefoldInstance(UErrorCode &errorCode); -#ifndef U_HIDE_DRAFT_API /** * Returns a Normalizer2 instance for a variant of Unicode toNFKC_Casefold() normalization * which is equivalent to applying the NFKC_Simple_Casefold mappings and then NFC. @@ -176,11 +175,10 @@ class U_COMMON_API Normalizer2 : public UObject { * immediately. Check for U_FAILURE() on output or use with * function chaining. (See User Guide for details.) * @return the requested Normalizer2, if successful - * @draft ICU 74 + * @stable ICU 74 */ static const Normalizer2 * getNFKCSimpleCasefoldInstance(UErrorCode &errorCode); -#endif // U_HIDE_DRAFT_API /** * Returns a Normalizer2 instance which uses the specified data file diff --git a/thirdparty/icu4c/common/unicode/platform.h b/thirdparty/icu4c/common/unicode/platform.h index 7aca76c67db8..b2fcb21ef130 100644 --- a/thirdparty/icu4c/common/unicode/platform.h +++ b/thirdparty/icu4c/common/unicode/platform.h @@ -132,6 +132,8 @@ #define U_PF_BROWSER_NATIVE_CLIENT 4020 /** Android is based on Linux. @internal */ #define U_PF_ANDROID 4050 +/** Haiku is a POSIX-ish platform. @internal */ +#define U_PF_HAIKU 4080 /** Fuchsia is a POSIX-ish platform. @internal */ #define U_PF_FUCHSIA 4100 /* Maximum value for Linux-based platform is 4499 */ @@ -154,6 +156,8 @@ # define U_PLATFORM U_PF_MINGW #elif defined(__CYGWIN__) # define U_PLATFORM U_PF_CYGWIN + /* Cygwin uchar.h doesn't exist until Cygwin 3.5. */ +# include #elif defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) # define U_PLATFORM U_PF_WINDOWS #elif defined(__ANDROID__) @@ -200,6 +204,8 @@ # define U_PLATFORM U_PF_OS390 #elif defined(__OS400__) || defined(__TOS_OS400__) # define U_PLATFORM U_PF_OS400 +#elif defined(__HAIKU__) +# define U_PLATFORM U_PF_HAIKU #elif defined(__EMSCRIPTEN__) # define U_PLATFORM U_PF_EMSCRIPTEN #else @@ -235,7 +241,7 @@ /** * \def U_PLATFORM_USES_ONLY_WIN32_API * Defines whether the platform uses only the Win32 API. - * Set to 1 for Windows/MSVC and MinGW but not Cygwin. + * Set to 1 for Windows/MSVC, ClangCL and MinGW but not Cygwin. * @internal */ #ifdef U_PLATFORM_USES_ONLY_WIN32_API @@ -250,7 +256,7 @@ /** * \def U_PLATFORM_HAS_WIN32_API * Defines whether the Win32 API is available on the platform. - * Set to 1 for Windows/MSVC, MinGW and Cygwin. + * Set to 1 for Windows/MSVC, ClangCL, MinGW and Cygwin. * @internal */ #ifdef U_PLATFORM_HAS_WIN32_API @@ -722,12 +728,16 @@ /* * Notes: * C++11 and C11 require support for UTF-16 literals - * Doesn't work on Mac C11 (see workaround in ptypes.h). + * Doesn't work on Mac C11 (see workaround in ptypes.h) + * or Cygwin less than 3.5. */ -# if defined(__cplusplus) || !U_PLATFORM_IS_DARWIN_BASED +# if defined(__cplusplus) # define U_HAVE_CHAR16_T 1 -# else +# elif U_PLATFORM_IS_DARWIN_BASED || (U_PLATFORM == U_PF_CYGWIN && CYGWIN_VERSION_DLL_MAJOR < 3005) # define U_HAVE_CHAR16_T 0 +# else + // conformant C11 +# define U_HAVE_CHAR16_T 1 # endif #endif @@ -735,7 +745,9 @@ * @{ * \def U_DECLARE_UTF16 * Do not use this macro because it is not defined on all platforms. - * Use the UNICODE_STRING or U_STRING_DECL macros instead. + * In C++, use std::u16string_view literals, see the UNICODE_STRING docs. + * In C, use u"UTF-16 literals". + * See also the public U_STRING_DECL macro. * @internal */ #ifdef U_DECLARE_UTF16 @@ -766,7 +778,7 @@ #elif defined(_MSC_VER) || (UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllexport__) && \ UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllimport__)) # define U_EXPORT __declspec(dllexport) -#elif defined(__GNUC__) +#elif defined(__GNUC__) || defined(__open_xl__) # define U_EXPORT __attribute__((visibility("default"))) #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \ || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x550) @@ -805,7 +817,7 @@ */ #ifdef U_HIDDEN /* Use the predefined value. */ -#elif defined(__GNUC__) +#elif defined(__GNUC__) || defined(__open_xl__) # define U_HIDDEN __attribute__((visibility("hidden"))) #else # define U_HIDDEN diff --git a/thirdparty/icu4c/common/unicode/simpleformatter.h b/thirdparty/icu4c/common/unicode/simpleformatter.h index 33bdd6d48fc8..62c75d08bbc0 100644 --- a/thirdparty/icu4c/common/unicode/simpleformatter.h +++ b/thirdparty/icu4c/common/unicode/simpleformatter.h @@ -63,7 +63,7 @@ class U_COMMON_API SimpleFormatter final : public UMemory { * Default constructor. * @stable ICU 57 */ - SimpleFormatter() : compiledPattern((char16_t)0) {} + SimpleFormatter() : compiledPattern(static_cast(0)) {} /** * Constructs a formatter from the pattern string. diff --git a/thirdparty/icu4c/common/unicode/stringpiece.h b/thirdparty/icu4c/common/unicode/stringpiece.h index 6f2a50eafca5..74919d7222db 100644 --- a/thirdparty/icu4c/common/unicode/stringpiece.h +++ b/thirdparty/icu4c/common/unicode/stringpiece.h @@ -32,6 +32,7 @@ #if U_SHOW_CPLUSPLUS_API #include +#include #include #include "unicode/uobject.h" @@ -176,6 +177,16 @@ class U_COMMON_API StringPiece : public UMemory { */ StringPiece(const StringPiece& x, int32_t pos, int32_t len); +#ifndef U_HIDE_INTERNAL_API + /** + * Converts to a std::string_view(). + * @internal + */ + inline operator std::string_view() const { + return {data(), static_cast(size())}; + } +#endif // U_HIDE_INTERNAL_API + /** * Returns the string pointer. May be nullptr if it is empty. * diff --git a/thirdparty/icu4c/common/unicode/stringtriebuilder.h b/thirdparty/icu4c/common/unicode/stringtriebuilder.h index 429d7883f15c..62108dfe3ea1 100644 --- a/thirdparty/icu4c/common/unicode/stringtriebuilder.h +++ b/thirdparty/icu4c/common/unicode/stringtriebuilder.h @@ -346,7 +346,7 @@ class U_COMMON_API StringTrieBuilder : public UObject { virtual void write(StringTrieBuilder &builder) override; // Adds a unit with a final value. void add(int32_t c, int32_t value) { - units[length]=(char16_t)c; + units[length] = static_cast(c); equal[length]=nullptr; values[length]=value; ++length; @@ -354,7 +354,7 @@ class U_COMMON_API StringTrieBuilder : public UObject { } // Adds a unit which leads to another match node. void add(int32_t c, Node *node) { - units[length]=(char16_t)c; + units[length] = static_cast(c); equal[length]=node; values[length]=0; ++length; diff --git a/thirdparty/icu4c/common/unicode/ucasemap.h b/thirdparty/icu4c/common/unicode/ucasemap.h index d1c1b483ab33..4b623e691071 100644 --- a/thirdparty/icu4c/common/unicode/ucasemap.h +++ b/thirdparty/icu4c/common/unicode/ucasemap.h @@ -202,8 +202,8 @@ ucasemap_setBreakIterator(UCaseMap *csm, UBreakIterator *iterToAdopt, UErrorCode * * The titlecase break iterator can be provided to customize for arbitrary * styles, using rules and dictionaries beyond the standard iterators. - * The standard titlecase iterator for the root locale implements the - * algorithm of Unicode TR 21. + * If the break iterator passed in is null, the default Unicode algorithm + * will be used to determine the titlecase positions. * * This function uses only the setText(), first() and next() methods of the * provided break iterator. @@ -312,8 +312,8 @@ ucasemap_utf8ToUpper(const UCaseMap *csm, * * The titlecase break iterator can be provided to customize for arbitrary * styles, using rules and dictionaries beyond the standard iterators. - * The standard titlecase iterator for the root locale implements the - * algorithm of Unicode TR 21. + * If the break iterator passed in is null, the default Unicode algorithm + * will be used to determine the titlecase positions. * * This function uses only the setUText(), first(), next() and close() methods of the * provided break iterator. diff --git a/thirdparty/icu4c/common/unicode/uchar.h b/thirdparty/icu4c/common/unicode/uchar.h index 4572230d9fe2..0daa7dd2141c 100644 --- a/thirdparty/icu4c/common/unicode/uchar.h +++ b/thirdparty/icu4c/common/unicode/uchar.h @@ -54,14 +54,14 @@ U_CDECL_BEGIN /*==========================================================================*/ /** * Unicode version number, default for the current ICU version. - * The actual Unicode Character Database (UCD) data is stored in uprops.dat + * The actual Unicode Character Database (UCD) data is stored in uprops.icu * and may be generated from UCD files from a different Unicode version. * Call u_getUnicodeVersion to get the actual Unicode version of the data. * * @see u_getUnicodeVersion * @stable ICU 2.0 */ -#define U_UNICODE_VERSION "15.1" +#define U_UNICODE_VERSION "16.0" /** * \file @@ -533,33 +533,39 @@ typedef enum UProperty { * @stable ICU 70 */ UCHAR_RGI_EMOJI=71, -#ifndef U_HIDE_DRAFT_API /** * Binary property IDS_Unary_Operator. * For programmatic determination of Ideographic Description Sequences. * - * @draft ICU 74 + * @stable ICU 74 */ UCHAR_IDS_UNARY_OPERATOR=72, /** * Binary property ID_Compat_Math_Start. * Used in mathematical identifier profile in UAX #31. - * @draft ICU 74 + * @stable ICU 74 */ UCHAR_ID_COMPAT_MATH_START=73, /** * Binary property ID_Compat_Math_Continue. * Used in mathematical identifier profile in UAX #31. - * @draft ICU 74 + * @stable ICU 74 */ UCHAR_ID_COMPAT_MATH_CONTINUE=74, +#ifndef U_HIDE_DRAFT_API + /** + * Binary property Modifier_Combining_Mark. + * Used by the AMTRA algorithm in UAX #53. + * @draft ICU 76 + */ + UCHAR_MODIFIER_COMBINING_MARK=75, #endif // U_HIDE_DRAFT_API #ifndef U_HIDE_DEPRECATED_API /** * One more than the last constant for binary Unicode properties. * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ - UCHAR_BINARY_LIMIT=75, + UCHAR_BINARY_LIMIT=76, #endif // U_HIDE_DEPRECATED_API /** Enumerated property Bidi_Class. @@ -677,13 +683,19 @@ typedef enum UProperty { * @draft ICU 75 */ UCHAR_IDENTIFIER_STATUS=0x1019, + /** + * Enumerated property Indic_Conjunct_Break. + * Used in the grapheme cluster break algorithm in UAX #29. + * @draft ICU 76 + */ + UCHAR_INDIC_CONJUNCT_BREAK=0x101A, #endif // U_HIDE_DRAFT_API #ifndef U_HIDE_DEPRECATED_API /** * One more than the last constant for enumerated/integer Unicode properties. * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ - UCHAR_INT_LIMIT=0x101A, + UCHAR_INT_LIMIT=0x101B, #endif // U_HIDE_DEPRECATED_API /** Bitmask property General_Category_Mask. @@ -1952,6 +1964,29 @@ enum UBlockCode { /** @stable ICU 74 */ UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I = 328, /*[2EBF0]*/ + // New blocks in Unicode 16.0 + + /** @stable ICU 76 */ + UBLOCK_EGYPTIAN_HIEROGLYPHS_EXTENDED_A = 329, /*[13460]*/ + /** @stable ICU 76 */ + UBLOCK_GARAY = 330, /*[10D40]*/ + /** @stable ICU 76 */ + UBLOCK_GURUNG_KHEMA = 331, /*[16100]*/ + /** @stable ICU 76 */ + UBLOCK_KIRAT_RAI = 332, /*[16D40]*/ + /** @stable ICU 76 */ + UBLOCK_MYANMAR_EXTENDED_C = 333, /*[116D0]*/ + /** @stable ICU 76 */ + UBLOCK_OL_ONAL = 334, /*[1E5D0]*/ + /** @stable ICU 76 */ + UBLOCK_SUNUWAR = 335, /*[11BC0]*/ + /** @stable ICU 76 */ + UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT = 336, /*[1CC00]*/ + /** @stable ICU 76 */ + UBLOCK_TODHRI = 337, /*[105C0]*/ + /** @stable ICU 76 */ + UBLOCK_TULU_TIGALARI = 338, /*[11380]*/ + #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal UBlockCode value. @@ -1959,7 +1994,7 @@ enum UBlockCode { * * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ - UBLOCK_COUNT = 329, + UBLOCK_COUNT = 339, #endif // U_HIDE_DEPRECATED_API /** @stable ICU 2.0 */ @@ -2254,6 +2289,8 @@ typedef enum UJoiningGroup { U_JG_THIN_YEH, /**< @stable ICU 70 */ U_JG_VERTICAL_TAIL, /**< @stable ICU 70 */ + U_JG_KASHMIRI_YEH, /**< @stable ICU 76 */ + #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal UJoiningGroup value. @@ -2702,8 +2739,35 @@ typedef enum UIndicSyllabicCategory { U_INSC_VOWEL_DEPENDENT, /** @stable ICU 63 */ U_INSC_VOWEL_INDEPENDENT, + /** @stable ICU 76 */ + U_INSC_REORDERING_KILLER, } UIndicSyllabicCategory; +#ifndef U_HIDE_DRAFT_API +/** + * Indic Conjunct Break constants. + * + * @see UCHAR_INDIC_CONJUNCT_BREAK + * @draft ICU 76 + */ +typedef enum UIndicConjunctBreak { + /* + * Note: UIndicConjunctBreak constants are parsed by preparseucd.py. + * It matches lines like + * U_INCB_ + */ + + /** @draft ICU 76 */ + U_INCB_NONE, + /** @draft ICU 76 */ + U_INCB_CONSONANT, + /** @draft ICU 76 */ + U_INCB_EXTEND, + /** @draft ICU 76 */ + U_INCB_LINKER, +} UIndicConjunctBreak; +#endif // U_HIDE_DRAFT_API + /** * Vertical Orientation constants. * diff --git a/thirdparty/icu4c/common/unicode/ucharstrie.h b/thirdparty/icu4c/common/unicode/ucharstrie.h index fa1b55616c65..ca4b46947045 100644 --- a/thirdparty/icu4c/common/unicode/ucharstrie.h +++ b/thirdparty/icu4c/common/unicode/ucharstrie.h @@ -107,7 +107,7 @@ class U_COMMON_API UCharsTrie : public UMemory { */ uint64_t getState64() const { return (static_cast(remainingMatchLength_ + 2) << kState64RemainingShift) | - (uint64_t)(pos_ - uchars_); + static_cast(pos_ - uchars_); } /** @@ -493,7 +493,7 @@ class U_COMMON_API UCharsTrie : public UMemory { } static inline UStringTrieResult valueResult(int32_t node) { - return (UStringTrieResult)(USTRINGTRIE_INTERMEDIATE_VALUE-(node>>15)); + return static_cast(USTRINGTRIE_INTERMEDIATE_VALUE - (node >> 15)); } // Handles a branch node for both next(uchar) and next(string). diff --git a/thirdparty/icu4c/common/unicode/uidna.h b/thirdparty/icu4c/common/unicode/uidna.h index 24a81ceaddf5..362a2dcbe65a 100644 --- a/thirdparty/icu4c/common/unicode/uidna.h +++ b/thirdparty/icu4c/common/unicode/uidna.h @@ -49,11 +49,19 @@ */ enum { /** - * Default options value: None of the other options are set. + * Default options value: UTS #46 nontransitional processing. * For use in static worker and factory methods. + * + * Since ICU 76, this is the same as + * UIDNA_NONTRANSITIONAL_TO_ASCII | UIDNA_NONTRANSITIONAL_TO_UNICODE, + * corresponding to Unicode 15.1 UTS #46 deprecating transitional processing. + * (These options are ignored by the IDNA2003 implementation.) + * + * Before ICU 76, this constant did not set any of the options. + * * @stable ICU 2.6 */ - UIDNA_DEFAULT=0, + UIDNA_DEFAULT=0x30, #ifndef U_HIDE_DEPRECATED_API /** * Option to allow unassigned code points in domain names and labels. @@ -91,19 +99,27 @@ enum { /** * IDNA option for nontransitional processing in ToASCII(). * For use in static worker and factory methods. + * *

By default, ToASCII() uses transitional processing. + * Unicode 15.1 UTS #46 deprecated transitional processing. + * *

This option is ignored by the IDNA2003 implementation. * (This is only relevant for compatibility of newer IDNA implementations with IDNA2003.) * @stable ICU 4.6 + * @see UIDNA_DEFAULT */ UIDNA_NONTRANSITIONAL_TO_ASCII=0x10, /** * IDNA option for nontransitional processing in ToUnicode(). * For use in static worker and factory methods. + * *

By default, ToUnicode() uses transitional processing. + * Unicode 15.1 UTS #46 deprecated transitional processing. + * *

This option is ignored by the IDNA2003 implementation. * (This is only relevant for compatibility of newer IDNA implementations with IDNA2003.) * @stable ICU 4.6 + * @see UIDNA_DEFAULT */ UIDNA_NONTRANSITIONAL_TO_UNICODE=0x20, /** @@ -134,6 +150,8 @@ typedef struct UIDNA UIDNA; /**< C typedef for struct UIDNA. @stable ICU 4.6 */ * For details about the UTS #46 implementation see the IDNA C++ class in idna.h. * * @param options Bit set to modify the processing and error checking. + * These should include UIDNA_DEFAULT, or + * UIDNA_NONTRANSITIONAL_TO_ASCII | UIDNA_NONTRANSITIONAL_TO_UNICODE. * See option bit set values in uidna.h. * @param pErrorCode Standard ICU error code. Its input value must * pass the U_SUCCESS() test, or else the function returns diff --git a/thirdparty/icu4c/common/unicode/ulocale.h b/thirdparty/icu4c/common/unicode/ulocale.h index 33e92844bc1e..1b3af3a5f26d 100644 --- a/thirdparty/icu4c/common/unicode/ulocale.h +++ b/thirdparty/icu4c/common/unicode/ulocale.h @@ -13,16 +13,15 @@ * \brief C API: Locale ID functionality similar to C++ class Locale */ -#ifndef U_HIDE_DRAFT_API /** * Opaque C service object type for the locale API - * @draft ICU 74 + * @stable ICU 74 */ struct ULocale; /** * C typedef for struct ULocale. - * @draft ICU 74 + * @stable ICU 74 */ typedef struct ULocale ULocale; @@ -37,7 +36,7 @@ typedef struct ULocale ULocale; * @param err the error code * @return the locale. * - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI ULocale* U_EXPORT2 ulocale_openForLocaleID(const char* localeID, int32_t length, UErrorCode* err); @@ -53,7 +52,7 @@ ulocale_openForLocaleID(const char* localeID, int32_t length, UErrorCode* err); * @param err the error code * @return the locale. * - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI ULocale* U_EXPORT2 ulocale_openForLanguageTag(const char* tag, int32_t length, UErrorCode* err); @@ -62,7 +61,7 @@ ulocale_openForLanguageTag(const char* tag, int32_t length, UErrorCode* err); * Close the locale and destroy it's internal states. * * @param locale the locale - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocale_close(ULocale* locale); @@ -72,7 +71,7 @@ ulocale_close(ULocale* locale); * * @param locale the locale * @return the language code of the locale. - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI const char* U_EXPORT2 ulocale_getLanguage(const ULocale* locale); @@ -82,7 +81,7 @@ ulocale_getLanguage(const ULocale* locale); * * @param locale the locale * @return A pointer to the script. - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI const char* U_EXPORT2 ulocale_getScript(const ULocale* locale); @@ -92,7 +91,7 @@ ulocale_getScript(const ULocale* locale); * * @param locale the locale * @return A pointer to the region. - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI const char* U_EXPORT2 ulocale_getRegion(const ULocale* locale); @@ -102,7 +101,7 @@ ulocale_getRegion(const ULocale* locale); * * @param locale the locale * @return A pointer to the variant. - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI const char* U_EXPORT2 ulocale_getVariant(const ULocale* locale); @@ -115,7 +114,7 @@ ulocale_getVariant(const ULocale* locale); * * @param locale the locale * @return A pointer to "name". - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI const char* U_EXPORT2 ulocale_getLocaleID(const ULocale* locale); @@ -126,7 +125,7 @@ ulocale_getLocaleID(const ULocale* locale); * * @param locale the locale * @return A pointer to "base name". - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI const char* U_EXPORT2 ulocale_getBaseName(const ULocale* locale); @@ -136,7 +135,7 @@ ulocale_getBaseName(const ULocale* locale); * * @param locale the locale * @return false if it is a real locale, true if it is a bogus locale - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI bool U_EXPORT2 ulocale_isBogus(const ULocale* locale); @@ -148,7 +147,7 @@ ulocale_isBogus(const ULocale* locale); * @param err the error code * @return pointer to UEnumeration, or nullptr if there are no keywords. * Client must call uenum_close() to dispose the returned value. - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI UEnumeration* U_EXPORT2 ulocale_getKeywords(const ULocale* locale, UErrorCode *err); @@ -160,7 +159,7 @@ ulocale_getKeywords(const ULocale* locale, UErrorCode *err); * @param err the error code * @return pointer to UEnumeration, or nullptr if there are no keywords. * Client must call uenum_close() to dispose the returned value. - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI UEnumeration* U_EXPORT2 ulocale_getUnicodeKeywords(const ULocale* locale, UErrorCode *err); @@ -178,7 +177,7 @@ ulocale_getUnicodeKeywords(const ULocale* locale, UErrorCode *err); * @param valueBuffer The buffer to receive the value. * @param valueBufferCapacity The capacity of receiving valueBuffer. * @param err the error code - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI int32_t U_EXPORT2 ulocale_getKeywordValue( @@ -198,7 +197,7 @@ ulocale_getKeywordValue( * @param valueBuffer The buffer to receive the Unicode value. * @param valueBufferCapacity The capacity of receiving valueBuffer. * @param err the error code - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI int32_t U_EXPORT2 ulocale_getUnicodeKeywordValue( @@ -216,7 +215,7 @@ U_NAMESPACE_BEGIN * * @see LocalPointerBase * @see LocalPointer - * @draft ICU 74 + * @stable ICU 74 */ U_DEFINE_LOCAL_OPEN_POINTER(LocalULocalePointer, ULocale, ulocale_close); @@ -224,6 +223,4 @@ U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ -#endif /* U_HIDE_DRAFT_API */ - #endif /*_ULOCALE */ diff --git a/thirdparty/icu4c/common/unicode/ulocbuilder.h b/thirdparty/icu4c/common/unicode/ulocbuilder.h index 9b147292f49e..ce61995bde62 100644 --- a/thirdparty/icu4c/common/unicode/ulocbuilder.h +++ b/thirdparty/icu4c/common/unicode/ulocbuilder.h @@ -12,17 +12,15 @@ * \brief C API: Builder API for Locale */ -#ifndef U_HIDE_DRAFT_API - /** * Opaque C service object type for the locale builder API - * @draft ICU 74 + * @stable ICU 74 */ struct ULocaleBuilder; /** * C typedef for struct ULocaleBuilder. - * @draft ICU 74 + * @stable ICU 74 */ typedef struct ULocaleBuilder ULocaleBuilder; @@ -62,7 +60,7 @@ typedef struct ULocaleBuilder ULocaleBuilder; * UErrorCode, then track the error of the validation of the input parameter * into the internal UErrorCode. * - * @draft ICU 74 + * @stable ICU 74 */ /** @@ -71,7 +69,7 @@ typedef struct ULocaleBuilder ULocaleBuilder; * empty string. The created builder should be destroyed by calling * ulocbld_close(); * - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI ULocaleBuilder* U_EXPORT2 ulocbld_open(void); @@ -79,7 +77,7 @@ ulocbld_open(void); /** * Close the builder and destroy it's internal states. * @param builder the builder - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_close(ULocaleBuilder* builder); @@ -97,7 +95,7 @@ ulocbld_close(ULocaleBuilder* builder); * @param length the length of the locale; if negative, then the locale need to be * null terminated, * - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_setLocale(ULocaleBuilder* builder, const char* locale, int32_t length); @@ -113,7 +111,7 @@ ulocbld_setLocale(ULocaleBuilder* builder, const char* locale, int32_t length); * @param locale the locale, a ULocale* pointer. The builder adopts the locale * after the call and the client must not delete it. * - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_adoptULocale(ULocaleBuilder* builder, ULocale* locale); @@ -136,7 +134,7 @@ ulocbld_adoptULocale(ULocaleBuilder* builder, ULocale* locale); * the length is non-negative) * @param length the length of the tag; if negative, then the tag need to be * null terminated, - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_setLanguageTag(ULocaleBuilder* builder, const char* tag, int32_t length); @@ -156,7 +154,7 @@ ulocbld_setLanguageTag(ULocaleBuilder* builder, const char* tag, int32_t length) * the length is non-negative) * @param length the length of the language; if negative, then the language need to be * null terminated, - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_setLanguage(ULocaleBuilder* builder, const char* language, int32_t length); @@ -177,7 +175,7 @@ ulocbld_setLanguage(ULocaleBuilder* builder, const char* language, int32_t lengt * the length is non-negative) * @param length the length of the script; if negative, then the script need to be * null terminated, - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_setScript(ULocaleBuilder* builder, const char* script, int32_t length); @@ -201,7 +199,7 @@ ulocbld_setScript(ULocaleBuilder* builder, const char* script, int32_t length); * the length is non-negative) * @param length the length of the region; if negative, then the region need to be * null terminated, - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_setRegion(ULocaleBuilder* builder, const char* region, int32_t length); @@ -227,7 +225,7 @@ ulocbld_setRegion(ULocaleBuilder* builder, const char* region, int32_t length); * the length is non-negative) * @param length the length of the variant; if negative, then the variant need to be * null terminated, - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_setVariant(ULocaleBuilder* builder, const char* variant, int32_t length); @@ -253,7 +251,7 @@ ulocbld_setVariant(ULocaleBuilder* builder, const char* variant, int32_t length) * the length is non-negative) * @param length the length of the value; if negative, then the value need to be * null terminated, - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_setExtension(ULocaleBuilder* builder, char key, const char* value, int32_t length); @@ -282,7 +280,7 @@ ulocbld_setExtension(ULocaleBuilder* builder, char key, const char* value, int32 * @param typeLength the length of the type; if negative, then the type need to * be null terminated, * @return This builder. - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_setUnicodeLocaleKeyword(ULocaleBuilder* builder, @@ -299,7 +297,7 @@ ulocbld_setUnicodeLocaleKeyword(ULocaleBuilder* builder, * terminated when the length is non-negative) * @param length the length of the attribute; if negative, then the attribute * need to be null terminated, - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_addUnicodeLocaleAttribute( @@ -318,7 +316,7 @@ ulocbld_addUnicodeLocaleAttribute( * terminated when the length is non-negative) * @param length the length of the attribute; if negative, then the attribute * need to be null terminated, - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_removeUnicodeLocaleAttribute( @@ -329,7 +327,7 @@ ulocbld_removeUnicodeLocaleAttribute( *

This method clears the internal UErrorCode. * * @param builder the builder - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_clear(ULocaleBuilder* builder); @@ -339,7 +337,7 @@ ulocbld_clear(ULocaleBuilder* builder); * Language, script, region and variant are unchanged. * * @param builder the builder - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI void U_EXPORT2 ulocbld_clearExtensions(ULocaleBuilder* builder); @@ -358,7 +356,7 @@ ulocbld_clearExtensions(ULocaleBuilder* builder); * @param localeCapacity the size of the locale buffer to store the locale id * @param err the error code * @return the length of the locale id in buffer - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI int32_t U_EXPORT2 ulocbld_buildLocaleID(ULocaleBuilder* builder, char* locale, @@ -377,7 +375,7 @@ ulocbld_buildLocaleID(ULocaleBuilder* builder, char* locale, * @param err the error code. * @return the locale, a ULocale* pointer. The created ULocale must be * destroyed by calling {@link ulocale_close}. - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI ULocale* U_EXPORT2 ulocbld_buildULocale(ULocaleBuilder* builder, UErrorCode* err); @@ -397,7 +395,7 @@ ulocbld_buildULocale(ULocaleBuilder* builder, UErrorCode* err); * tag * @param err the error code * @return the length of the language tag in buffer - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI int32_t U_EXPORT2 ulocbld_buildLanguageTag(ULocaleBuilder* builder, char* language, @@ -412,7 +410,7 @@ ulocbld_buildLanguageTag(ULocaleBuilder* builder, char* language, * Unchanged if there is no such error or if outErrorCode * already contained an error. * @return true if U_FAILURE(*outErrorCode) - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI UBool U_EXPORT2 ulocbld_copyErrorTo(const ULocaleBuilder* builder, UErrorCode *outErrorCode); @@ -428,7 +426,7 @@ U_NAMESPACE_BEGIN * * @see LocalPointerBase * @see LocalPointer - * @draft ICU 74 + * @stable ICU 74 */ U_DEFINE_LOCAL_OPEN_POINTER(LocalULocaleBuilderPointer, ULocaleBuilder, ulocbld_close); @@ -436,6 +434,4 @@ U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ -#endif /* U_HIDE_DRAFT_API */ - #endif // __ULOCBUILDER_H__ diff --git a/thirdparty/icu4c/common/unicode/uniset.h b/thirdparty/icu4c/common/unicode/uniset.h index 127e4ce063b3..d070fd631a22 100644 --- a/thirdparty/icu4c/common/unicode/uniset.h +++ b/thirdparty/icu4c/common/unicode/uniset.h @@ -313,7 +313,7 @@ class U_COMMON_API UnicodeSet final : public UnicodeFilter { char16_t *pat = nullptr; int32_t patLen = 0; - UVector* strings = nullptr; // maintained in sorted order + UVector* strings_ = nullptr; // maintained in sorted order UnicodeSetStringSpan *stringSpan = nullptr; /** @@ -1102,6 +1102,118 @@ class U_COMMON_API UnicodeSet final : public UnicodeFilter { */ UChar32 charAt(int32_t index) const; +#ifndef U_HIDE_DRAFT_API + /** + * Returns a C++ "range" for iterating over the code points of this set. + * + * \code + * UnicodeSet set(u"[abcçカ🚴]", errorCode); + * for (UChar32 c : set.codePoints()) { + * printf("set.codePoint U+%04lx\n", (long)c); + * } + * \endcode + * + * @return a "range" object for iterating over the code points of this set. + * @draft ICU 76 + * @see ranges + * @see strings + * @see begin + * @see end + */ + inline U_HEADER_NESTED_NAMESPACE::USetCodePoints codePoints() const { + return U_HEADER_NESTED_NAMESPACE::USetCodePoints(toUSet()); + } + + /** + * Returns a C++ "range" for iterating over the code point ranges of this set. + * + * \code + * UnicodeSet set(u"[abcçカ🚴]", errorCode); + * for (auto [start, end] : set.ranges()) { + * printf("set.range U+%04lx..U+%04lx\n", (long)start, (long)end); + * } + * for (auto range : set.ranges()) { + * for (UChar32 c : range) { + * printf("set.range.c U+%04lx\n", (long)c); + * } + * } + * \endcode + * + * @return a "range" object for iterating over the code point ranges of this set. + * @draft ICU 76 + * @see codePoints + * @see strings + * @see begin + * @see end + */ + inline U_HEADER_NESTED_NAMESPACE::USetRanges ranges() const { + return U_HEADER_NESTED_NAMESPACE::USetRanges(toUSet()); + } + + /** + * Returns a C++ "range" for iterating over the empty and multi-character strings of this set. + * Returns each string as a std::u16string_view without copying its contents. + * + * \code + * UnicodeSet set(u"[abcçカ🚴{}{abc}{de}]", errorCode); + * for (auto s : set.strings()) { + * UnicodeString us(s); + * std::string u8; + * printf("set.string length %ld \"%s\"\n", (long)s.length(), us.toUTF8String(u8).c_str()); + * } + * \endcode + * + * @return a "range" object for iterating over the strings of this set. + * @draft ICU 76 + * @see codePoints + * @see ranges + * @see begin + * @see end + */ + inline U_HEADER_NESTED_NAMESPACE::USetStrings strings() const { + return U_HEADER_NESTED_NAMESPACE::USetStrings(toUSet()); + } + + /** + * Returns a C++ iterator for iterating over all of the elements of this set. + * Convenient all-in one iteration, but creates a UnicodeString for each + * code point or string. + * (Similar to how Java UnicodeSet *is an* Iterable<String>.) + * + * Code points are returned first, then empty and multi-character strings. + * + * \code + * UnicodeSet set(u"[abcçカ🚴{}{abc}{de}]", errorCode); + * for (auto el : set) { + * std::string u8; + * printf("set.string length %ld \"%s\"\n", (long)el.length(), el.toUTF8String(u8).c_str()); + * } + * \endcode + * + * @return an all-elements iterator. + * @draft ICU 76 + * @see end + * @see codePoints + * @see ranges + * @see strings + */ + inline U_HEADER_NESTED_NAMESPACE::USetElementIterator begin() const { + return U_HEADER_NESTED_NAMESPACE::USetElements(toUSet()).begin(); + } + + /** + * @return an exclusive-end sentinel for iterating over all of the elements of this set. + * @draft ICU 76 + * @see begin + * @see codePoints + * @see ranges + * @see strings + */ + inline U_HEADER_NESTED_NAMESPACE::USetElementIterator end() const { + return U_HEADER_NESTED_NAMESPACE::USetElements(toUSet()).end(); + } +#endif // U_HIDE_DRAFT_API + /** * Adds the specified range to this set if it is not already * present. If this set already contains the specified range, @@ -1731,7 +1843,7 @@ inline bool UnicodeSet::operator!=(const UnicodeSet& o) const { } inline UBool UnicodeSet::isFrozen() const { - return (UBool)(bmpSet!=nullptr || stringSpan!=nullptr); + return bmpSet != nullptr || stringSpan != nullptr; } inline UBool UnicodeSet::containsSome(UChar32 start, UChar32 end) const { @@ -1747,7 +1859,7 @@ inline UBool UnicodeSet::containsSome(const UnicodeString& s) const { } inline UBool UnicodeSet::isBogus() const { - return (UBool)(fFlags & kIsBogus); + return fFlags & kIsBogus; } inline UnicodeSet *UnicodeSet::fromUSet(USet *uset) { diff --git a/thirdparty/icu4c/common/unicode/unistr.h b/thirdparty/icu4c/common/unicode/unistr.h index a41e6358facd..39d789fd6ef7 100644 --- a/thirdparty/icu4c/common/unicode/unistr.h +++ b/thirdparty/icu4c/common/unicode/unistr.h @@ -33,6 +33,7 @@ #if U_SHOW_CPLUSPLUS_API #include +#include #include "unicode/char16ptr.h" #include "unicode/rep.h" #include "unicode/std_string.h" @@ -97,16 +98,19 @@ class UnicodeStringAppendable; // unicode/appendable.h #define US_INV icu::UnicodeString::kInvariant /** - * Unicode String literals in C++. + * \def UNICODE_STRING + * Obsolete macro approximating UnicodeString literals. * - * Note: these macros are not recommended for new code. - * Prior to the availability of C++11 and u"unicode string literals", - * these macros were provided for portability and efficiency when + * Prior to the availability of C++11 and u"UTF-16 string literals", + * this macro was provided for portability and efficiency when * initializing UnicodeStrings from literals. * - * They work only for strings that contain "invariant characters", i.e., - * only latin letters, digits, and some punctuation. - * See utypes.h for details. + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str(u"literal"); + * if (str == u"other literal") { ... } + * \endcode * * The string parameter must be a C string literal. * The length of the string, not including the terminating @@ -121,16 +125,12 @@ class UnicodeStringAppendable; // unicode/appendable.h /** * Unicode String literals in C++. - * Dependent on the platform properties, different UnicodeString - * constructors should be used to create a UnicodeString object from - * a string literal. - * The macros are defined for improved performance. - * They work only for strings that contain "invariant characters", i.e., - * only latin letters, digits, and some punctuation. - * See utypes.h for details. + * Obsolete macro approximating UnicodeString literals. + * See UNICODE_STRING. * * The string parameter must be a C string literal. * @stable ICU 2.0 + * @see UNICODE_STRING */ #define UNICODE_STRING_SIMPLE(cs) UNICODE_STRING(cs, -1) @@ -327,6 +327,30 @@ class U_COMMON_API UnicodeString : public Replaceable */ inline bool operator== (const UnicodeString& text) const; +#ifndef U_HIDE_DRAFT_API + /** + * Equality operator. Performs only bitwise comparison with `text` + * which is, or which is implicitly convertible to, + * a std::u16string_view or (if U_SIZEOF_WCHAR_T==2) std::wstring_view. + * + * For performance, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str = ...; + * if (str == u"literal") { ... } + * \endcode + * @param text The string view to compare to this string. + * @return true if `text` contains the same characters as this one, false otherwise. + * @draft ICU 76 + */ + template>> + inline bool operator==(const S &text) const { + std::u16string_view sv(internal::toU16StringView(text)); + uint32_t len; // unsigned to avoid a compiler warning + return !isBogus() && (len = length()) == sv.length() && doEquals(sv.data(), len); + } +#endif // U_HIDE_DRAFT_API + /** * Inequality operator. Performs only bitwise comparison. * @param text The UnicodeString to compare to this one. @@ -336,6 +360,30 @@ class U_COMMON_API UnicodeString : public Replaceable */ inline bool operator!= (const UnicodeString& text) const; +#ifndef U_HIDE_DRAFT_API + /** + * Inequality operator. Performs only bitwise comparison with `text` + * which is, or which is implicitly convertible to, + * a std::u16string_view or (if U_SIZEOF_WCHAR_T==2) std::wstring_view. + * + * For performance, you can use std::u16string_view literals with compile-time + * length determination: + * \code + * #include <string_view> + * using namespace std::string_view_literals; + * UnicodeString str = ...; + * if (str != u"literal"sv) { ... } + * \endcode + * @param text The string view to compare to this string. + * @return false if `text` contains the same characters as this one, true otherwise. + * @draft ICU 76 + */ + template>> + inline bool operator!=(const S &text) const { + return !operator==(text); + } +#endif // U_HIDE_DRAFT_API + /** * Greater than operator. Performs only bitwise comparison. * @param text The UnicodeString to compare to this one. @@ -1897,6 +1945,24 @@ class U_COMMON_API UnicodeString : public Replaceable */ UnicodeString &fastCopyFrom(const UnicodeString &src); +#ifndef U_HIDE_DRAFT_API + /** + * Assignment operator. Replaces the characters in this UnicodeString + * with a copy of the characters from the `src` + * which is, or which is implicitly convertible to, + * a std::u16string_view or (if U_SIZEOF_WCHAR_T==2) std::wstring_view. + * + * @param src The string view containing the characters to copy. + * @return a reference to this + * @draft ICU 76 + */ + template>> + inline UnicodeString &operator=(const S &src) { + unBogus(); + return doReplace(0, length(), internal::toU16StringView(src)); + } +#endif // U_HIDE_DRAFT_API + /** * Move assignment operator; might leave src in bogus state. * This string will have the same contents and state that the source string had. @@ -2146,6 +2212,23 @@ class U_COMMON_API UnicodeString : public Replaceable */ inline UnicodeString& operator+= (const UnicodeString& srcText); +#ifndef U_HIDE_DRAFT_API + /** + * Append operator. Appends the characters in `src` + * which is, or which is implicitly convertible to, + * a std::u16string_view or (if U_SIZEOF_WCHAR_T==2) std::wstring_view, + * to the UnicodeString object. + * + * @param src the source for the new characters + * @return a reference to this + * @draft ICU 76 + */ + template>> + inline UnicodeString& operator+=(const S &src) { + return doAppend(internal::toU16StringView(src)); + } +#endif // U_HIDE_DRAFT_API + /** * Append the characters * in `srcText` in the range @@ -2191,8 +2274,8 @@ class U_COMMON_API UnicodeString : public Replaceable int32_t srcLength); /** - * Append the characters in `srcChars` to the UnicodeString object - * at offset `start`. `srcChars` is not modified. + * Append the characters in `srcChars` to the UnicodeString object. + * `srcChars` is not modified. * @param srcChars the source for the new characters * @param srcLength the number of Unicode characters in `srcChars`; * can be -1 if `srcChars` is NUL-terminated @@ -2202,6 +2285,23 @@ class U_COMMON_API UnicodeString : public Replaceable inline UnicodeString& append(ConstChar16Ptr srcChars, int32_t srcLength); +#ifndef U_HIDE_DRAFT_API + /** + * Appends the characters in `src` + * which is, or which is implicitly convertible to, + * a std::u16string_view or (if U_SIZEOF_WCHAR_T==2) std::wstring_view, + * to the UnicodeString object. + * + * @param src the source for the new characters + * @return a reference to this + * @draft ICU 76 + */ + template>> + inline UnicodeString& append(const S &src) { + return doAppend(internal::toU16StringView(src)); + } +#endif // U_HIDE_DRAFT_API + /** * Append the code unit `srcChar` to the UnicodeString object. * @param srcChar the code unit to append @@ -2556,7 +2656,7 @@ class U_COMMON_API UnicodeString : public Replaceable * @stable ICU 2.0 */ inline UnicodeString& remove(int32_t start, - int32_t length = (int32_t)INT32_MAX); + int32_t length = static_cast(INT32_MAX)); /** * Remove the characters in the range @@ -2567,7 +2667,7 @@ class U_COMMON_API UnicodeString : public Replaceable * @stable ICU 2.0 */ inline UnicodeString& removeBetween(int32_t start, - int32_t limit = (int32_t)INT32_MAX); + int32_t limit = static_cast(INT32_MAX)); /** * Retain only the characters in the range @@ -2693,8 +2793,8 @@ class U_COMMON_API UnicodeString : public Replaceable * styles, using rules and dictionaries beyond the standard iterators. * It may be more efficient to always provide an iterator to avoid * opening and closing one for each string. - * The standard titlecase iterator for the root locale implements the - * algorithm of Unicode TR 21. + * If the break iterator passed in is null, the default Unicode algorithm + * will be used to determine the titlecase positions. * * This function uses only the setText(), first() and next() methods of the * provided break iterator. @@ -2721,8 +2821,8 @@ class U_COMMON_API UnicodeString : public Replaceable * styles, using rules and dictionaries beyond the standard iterators. * It may be more efficient to always provide an iterator to avoid * opening and closing one for each string. - * The standard titlecase iterator for the root locale implements the - * algorithm of Unicode TR 21. + * If the break iterator passed in is null, the default Unicode algorithm + * will be used to determine the titlecase positions. * * This function uses only the setText(), first() and next() methods of the * provided break iterator. @@ -2750,8 +2850,8 @@ class U_COMMON_API UnicodeString : public Replaceable * styles, using rules and dictionaries beyond the standard iterators. * It may be more efficient to always provide an iterator to avoid * opening and closing one for each string. - * The standard titlecase iterator for the root locale implements the - * algorithm of Unicode TR 21. + * If the break iterator passed in is null, the default Unicode algorithm + * will be used to determine the titlecase positions. * * This function uses only the setText(), first() and next() methods of the * provided break iterator. @@ -2925,6 +3025,37 @@ class U_COMMON_API UnicodeString : public Replaceable */ const char16_t *getTerminatedBuffer(); +#ifndef U_HIDE_DRAFT_API + /** + * Converts to a std::u16string_view. + * + * @return a string view of the contents of this string + * @draft ICU 76 + */ + inline operator std::u16string_view() const { + return {getBuffer(), static_cast(length())}; + } + +#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN) + /** + * Converts to a std::wstring_view. + * + * Note: This should remain draft until C++ standard plans + * about char16_t vs. wchar_t become clearer. + * + * @return a string view of the contents of this string + * @draft ICU 76 + */ + inline operator std::wstring_view() const { + const char16_t *p = getBuffer(); +#ifdef U_ALIASING_BARRIER + U_ALIASING_BARRIER(p); +#endif + return { reinterpret_cast(p), (std::wstring_view::size_type)length() }; + } +#endif // U_SIZEOF_WCHAR_T +#endif // U_HIDE_DRAFT_API + //======================================== // Constructors //======================================== @@ -2969,19 +3100,32 @@ class U_COMMON_API UnicodeString : public Replaceable */ UNISTR_FROM_CHAR_EXPLICIT UnicodeString(UChar32 ch); +#ifdef U_HIDE_DRAFT_API /** * char16_t* constructor. * * It is recommended to mark this constructor "explicit" by * `-DUNISTR_FROM_STRING_EXPLICIT=explicit` * on the compiler command line or similar. + * + * Note, for string literals: + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str(u"literal"); + * if (str == u"other literal") { ... } + * \endcode + * * @param text The characters to place in the UnicodeString. `text` * must be NUL (U+0000) terminated. * @stable ICU 2.0 */ - UNISTR_FROM_STRING_EXPLICIT UnicodeString(const char16_t *text); + UNISTR_FROM_STRING_EXPLICIT UnicodeString(const char16_t *text) : + UnicodeString(text, -1) {} +#endif // U_HIDE_DRAFT_API -#if !U_CHAR16_IS_TYPEDEF +#if !U_CHAR16_IS_TYPEDEF && \ + (defined(U_HIDE_DRAFT_API) || (defined(_LIBCPP_VERSION) && _LIBCPP_VERSION >= 180000)) /** * uint16_t * constructor. * Delegates to UnicodeString(const char16_t *). @@ -2989,14 +3133,23 @@ class U_COMMON_API UnicodeString : public Replaceable * It is recommended to mark this constructor "explicit" by * `-DUNISTR_FROM_STRING_EXPLICIT=explicit` * on the compiler command line or similar. + * + * Note, for string literals: + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str(u"literal"); + * if (str == u"other literal") { ... } + * \endcode + * * @param text NUL-terminated UTF-16 string * @stable ICU 59 */ UNISTR_FROM_STRING_EXPLICIT UnicodeString(const uint16_t *text) : - UnicodeString(ConstChar16Ptr(text)) {} + UnicodeString(ConstChar16Ptr(text), -1) {} #endif -#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN) +#if defined(U_HIDE_DRAFT_API) && (U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)) /** * wchar_t * constructor. * (Only defined if U_SIZEOF_WCHAR_T==2.) @@ -3005,11 +3158,20 @@ class U_COMMON_API UnicodeString : public Replaceable * It is recommended to mark this constructor "explicit" by * `-DUNISTR_FROM_STRING_EXPLICIT=explicit` * on the compiler command line or similar. + * + * Note, for string literals: + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str(u"literal"); + * if (str == u"other literal") { ... } + * \endcode + * * @param text NUL-terminated UTF-16 string * @stable ICU 59 */ UNISTR_FROM_STRING_EXPLICIT UnicodeString(const wchar_t *text) : - UnicodeString(ConstChar16Ptr(text)) {} + UnicodeString(ConstChar16Ptr(text), -1) {} #endif /** @@ -3026,6 +3188,15 @@ class U_COMMON_API UnicodeString : public Replaceable /** * char16_t* constructor. + * + * Note, for string literals: + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str(u"literal"); + * if (str == u"other literal") { ... } + * \endcode + * * @param text The characters to place in the UnicodeString. * @param textLength The number of Unicode characters in `text` * to copy. @@ -3038,6 +3209,15 @@ class U_COMMON_API UnicodeString : public Replaceable /** * uint16_t * constructor. * Delegates to UnicodeString(const char16_t *, int32_t). + * + * Note, for string literals: + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str(u"literal"); + * if (str == u"other literal") { ... } + * \endcode + * * @param text UTF-16 string * @param textLength string length * @stable ICU 59 @@ -3051,7 +3231,16 @@ class U_COMMON_API UnicodeString : public Replaceable * wchar_t * constructor. * (Only defined if U_SIZEOF_WCHAR_T==2.) * Delegates to UnicodeString(const char16_t *, int32_t). - * @param text NUL-terminated UTF-16 string + * + * Note, for string literals: + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str(u"literal"); + * if (str == u"other literal") { ... } + * \endcode + * + * @param text UTF-16 string * @param textLength string length * @stable ICU 59 */ @@ -3068,6 +3257,26 @@ class U_COMMON_API UnicodeString : public Replaceable */ inline UnicodeString(const std::nullptr_t text, int32_t textLength); +#ifndef U_HIDE_DRAFT_API + /** + * Constructor from `text` + * which is, or which is implicitly convertible to, + * a std::u16string_view or (if U_SIZEOF_WCHAR_T==2) std::wstring_view. + * The string is bogus if the string view is too long. + * + * If you need a UnicodeString but need not copy the string view contents, + * then you can call the UnicodeString::readOnlyAlias() function instead of this constructor. + * + * @param text UTF-16 string + * @draft ICU 76 + */ + template>> + UNISTR_FROM_STRING_EXPLICIT UnicodeString(const S &text) { + fUnion.fFields.fLengthAndFlags = kShortString; + doAppend(internal::toU16StringViewNullable(text)); + } +#endif // U_HIDE_DRAFT_API + /** * Readonly-aliasing char16_t* constructor. * The text will be used for the UnicodeString object, but @@ -3082,6 +3291,14 @@ class U_COMMON_API UnicodeString : public Replaceable * When using fastCopyFrom(), the text will be aliased again, * so that both strings then alias the same readonly-text. * + * Note, for string literals: + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString alias = UnicodeString::readOnlyAlias(u"literal"); + * if (str == u"other literal") { ... } + * \endcode + * * @param isTerminated specifies if `text` is `NUL`-terminated. * This must be true if `textLength==-1`. * @param text The characters to alias for the UnicodeString. @@ -3160,8 +3377,14 @@ class U_COMMON_API UnicodeString : public Replaceable * * For ASCII (really "invariant character") strings it is more efficient to use * the constructor that takes a US_INV (for its enum EInvariant). - * For ASCII (invariant-character) string literals, see UNICODE_STRING and - * UNICODE_STRING_SIMPLE. + * + * Note, for string literals: + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str(u"literal"); + * if (str == u"other literal") { ... } + * \endcode * * It is recommended to mark this constructor "explicit" by * `-DUNISTR_FROM_STRING_EXPLICIT=explicit` @@ -3169,8 +3392,6 @@ class U_COMMON_API UnicodeString : public Replaceable * @param codepageData an array of bytes, null-terminated, * in the platform's default codepage. * @stable ICU 2.0 - * @see UNICODE_STRING - * @see UNICODE_STRING_SIMPLE */ UNISTR_FROM_STRING_EXPLICIT UnicodeString(const char *codepageData); @@ -3270,6 +3491,15 @@ class U_COMMON_API UnicodeString : public Replaceable * // use ustr ... * } * \endcode + * + * Note, for string literals: + * Since C++17 and ICU 76, you can use UTF-16 string literals with compile-time + * length determination: + * \code + * UnicodeString str(u"literal"); + * if (str == u"other literal") { ... } + * \endcode + * * @param src String using only invariant characters. * @param textLength Length of src, or -1 if NUL-terminated. * @param inv Signature-distinguishing parameter, use US_INV. @@ -3343,6 +3573,58 @@ class U_COMMON_API UnicodeString : public Replaceable */ virtual ~UnicodeString(); +#ifndef U_HIDE_DRAFT_API + /** + * Readonly-aliasing factory method. + * Aliases the same buffer as the input `text` + * which is, or which is implicitly convertible to, + * a std::u16string_view or (if U_SIZEOF_WCHAR_T==2) std::wstring_view. + * The string is bogus if the string view is too long. + * + * The text will be used for the UnicodeString object, but + * it will not be released when the UnicodeString is destroyed. + * This has copy-on-write semantics: + * When the string is modified, then the buffer is first copied into + * newly allocated memory. + * The aliased buffer is never modified. + * + * In an assignment to another UnicodeString, when using the copy constructor + * or the assignment operator, the text will be copied. + * When using fastCopyFrom(), the text will be aliased again, + * so that both strings then alias the same readonly-text. + * + * @param text The string view to alias for the UnicodeString. + * @draft ICU 76 + */ + template>> + static inline UnicodeString readOnlyAlias(const S &text) { + return readOnlyAliasFromU16StringView(internal::toU16StringView(text)); + } + + /** + * Readonly-aliasing factory method. + * Aliases the same buffer as the input `text`. + * + * The text will be used for the UnicodeString object, but + * it will not be released when the UnicodeString is destroyed. + * This has copy-on-write semantics: + * When the string is modified, then the buffer is first copied into + * newly allocated memory. + * The aliased buffer is never modified. + * + * In an assignment to another UnicodeString, when using the copy constructor + * or the assignment operator, the text will be copied. + * When using fastCopyFrom(), the text will be aliased again, + * so that both strings then alias the same readonly-text. + * + * @param text The UnicodeString to alias. + * @draft ICU 76 + */ + static inline UnicodeString readOnlyAlias(const UnicodeString &text) { + return readOnlyAliasFromUnicodeString(text); + } +#endif // U_HIDE_DRAFT_API + /** * Create a UnicodeString from a UTF-8 string. * Illegal input is replaced with U+FFFD. Otherwise, errors result in a bogus string. @@ -3470,6 +3752,9 @@ class U_COMMON_API UnicodeString : public Replaceable virtual UChar32 getChar32At(int32_t offset) const override; private: + static UnicodeString readOnlyAliasFromU16StringView(std::u16string_view text); + static UnicodeString readOnlyAliasFromUnicodeString(const UnicodeString &text); + // For char* constructors. Could be made public. UnicodeString &setToUTF8(StringPiece utf8); // For extract(char*). @@ -3485,7 +3770,10 @@ class U_COMMON_API UnicodeString : public Replaceable * Internal string contents comparison, called by operator==. * Requires: this & text not bogus and have same lengths. */ - UBool doEquals(const UnicodeString &text, int32_t len) const; + inline UBool doEquals(const UnicodeString &text, int32_t len) const { + return doEquals(text.getArrayStart(), len); + } + UBool doEquals(const char16_t *text, int32_t len) const; inline UBool doEqualsSubstring(int32_t start, @@ -3580,9 +3868,11 @@ class U_COMMON_API UnicodeString : public Replaceable const char16_t *srcChars, int32_t srcStart, int32_t srcLength); + UnicodeString& doReplace(int32_t start, int32_t length, std::u16string_view src); UnicodeString& doAppend(const UnicodeString& src, int32_t srcStart, int32_t srcLength); UnicodeString& doAppend(const char16_t *srcChars, int32_t srcStart, int32_t srcLength); + UnicodeString& doAppend(std::u16string_view src); UnicodeString& doReverse(int32_t start, int32_t length); @@ -3711,7 +4001,7 @@ class U_COMMON_API UnicodeString : public Replaceable * Must be at least U16_MAX_LENGTH for the single-code point constructor to work. * @see UNISTR_OBJECT_SIZE */ - US_STACKBUF_SIZE=(int32_t)(UNISTR_OBJECT_SIZE-sizeof(void *)-2)/U_SIZEOF_UCHAR, + US_STACKBUF_SIZE = static_cast(UNISTR_OBJECT_SIZE - sizeof(void*) - 2) / U_SIZEOF_UCHAR, kInvalidUChar=0xffff, // U+FFFF returned by charAt(invalid index) kInvalidHashCode=0, // invalid hash code kEmptyHashCode=1, // hash code for empty string @@ -3802,7 +4092,7 @@ class U_COMMON_API UnicodeString : public Replaceable }; /** - * Create a new UnicodeString with the concatenation of two others. + * Creates a new UnicodeString from the concatenation of two others. * * @param s1 The first string to be copied to the new one. * @param s2 The second string to be copied to the new one, after s1. @@ -3812,6 +4102,29 @@ class U_COMMON_API UnicodeString : public Replaceable U_COMMON_API UnicodeString U_EXPORT2 operator+ (const UnicodeString &s1, const UnicodeString &s2); +#ifndef U_HIDE_DRAFT_API +/** + * Creates a new UnicodeString from the concatenation of a UnicodeString and `s2` + * which is, or which is implicitly convertible to, + * a std::u16string_view or (if U_SIZEOF_WCHAR_T==2) std::wstring_view. + * + * @param s1 The string to be copied to the new one. + * @param s2 The string view to be copied to the new string, after s1. + * @return UnicodeString(s1).append(s2) + * @draft ICU 76 + */ +template>> +inline UnicodeString operator+(const UnicodeString &s1, const S &s2) { + return unistr_internalConcat(s1, internal::toU16StringView(s2)); +} +#endif // U_HIDE_DRAFT_API + +#ifndef U_FORCE_HIDE_INTERNAL_API +/** @internal */ +U_COMMON_API UnicodeString U_EXPORT2 +unistr_internalConcat(const UnicodeString &s1, std::u16string_view s2); +#endif + //======================================== // Inline members //======================================== @@ -3914,18 +4227,18 @@ UnicodeString::hashCode() const inline UBool UnicodeString::isBogus() const -{ return (UBool)(fUnion.fFields.fLengthAndFlags & kIsBogus); } +{ return fUnion.fFields.fLengthAndFlags & kIsBogus; } inline UBool UnicodeString::isWritable() const -{ return (UBool)!(fUnion.fFields.fLengthAndFlags&(kOpenGetBuffer|kIsBogus)); } +{ return !(fUnion.fFields.fLengthAndFlags & (kOpenGetBuffer | kIsBogus)); } inline UBool UnicodeString::isBufferWritable() const { - return (UBool)( + return !(fUnion.fFields.fLengthAndFlags&(kOpenGetBuffer|kIsBogus|kBufferIsReadonly)) && - (!(fUnion.fFields.fLengthAndFlags&kRefCounted) || refCount()==1)); + (!(fUnion.fFields.fLengthAndFlags&kRefCounted) || refCount()==1); } inline const char16_t * @@ -3950,7 +4263,7 @@ UnicodeString::doCompare(int32_t start, int32_t srcLength) const { if(srcText.isBogus()) { - return (int8_t)!isBogus(); // 0 if both are bogus, 1 otherwise + return static_cast(!isBogus()); // 0 if both are bogus, 1 otherwise } else { srcText.pinIndices(srcStart, srcLength); return doCompare(start, thisLength, srcText.getArrayStart(), srcStart, srcLength); @@ -4057,7 +4370,7 @@ UnicodeString::doCompareCodePointOrder(int32_t start, int32_t srcLength) const { if(srcText.isBogus()) { - return (int8_t)!isBogus(); // 0 if both are bogus, 1 otherwise + return static_cast(!isBogus()); // 0 if both are bogus, 1 otherwise } else { srcText.pinIndices(srcStart, srcLength); return doCompareCodePointOrder(start, thisLength, srcText.getArrayStart(), srcStart, srcLength); @@ -4119,7 +4432,7 @@ UnicodeString::doCaseCompare(int32_t start, uint32_t options) const { if(srcText.isBogus()) { - return (int8_t)!isBogus(); // 0 if both are bogus, 1 otherwise + return static_cast(!isBogus()); // 0 if both are bogus, 1 otherwise } else { srcText.pinIndices(srcStart, srcLength); return doCaseCompare(start, thisLength, srcText.getArrayStart(), srcStart, srcLength, options); @@ -4531,7 +4844,7 @@ UnicodeString::tempSubStringBetween(int32_t start, int32_t limit) const { inline char16_t UnicodeString::doCharAt(int32_t offset) const { - if((uint32_t)offset < (uint32_t)length()) { + if (static_cast(offset) < static_cast(length())) { return getArrayStart()[offset]; } else { return kInvalidUChar; @@ -4564,7 +4877,7 @@ inline void UnicodeString::setShortLength(int32_t len) { // requires 0 <= len <= kMaxShortLength fUnion.fFields.fLengthAndFlags = - (int16_t)((fUnion.fFields.fLengthAndFlags & kAllStorageFlags) | (len << kLengthShift)); + static_cast((fUnion.fFields.fLengthAndFlags & kAllStorageFlags) | (len << kLengthShift)); } inline void @@ -4758,7 +5071,7 @@ UnicodeString::truncate(int32_t targetLength) // truncate(0) of a bogus string makes the string empty and non-bogus unBogus(); return false; - } else if((uint32_t)targetLength < (uint32_t)length()) { + } else if (static_cast(targetLength) < static_cast(length())) { setLength(targetLength); return true; } else { diff --git a/thirdparty/icu4c/common/unicode/unorm2.h b/thirdparty/icu4c/common/unicode/unorm2.h index 3844041f1704..48f614d74fbf 100644 --- a/thirdparty/icu4c/common/unicode/unorm2.h +++ b/thirdparty/icu4c/common/unicode/unorm2.h @@ -197,7 +197,6 @@ unorm2_getNFKDInstance(UErrorCode *pErrorCode); U_CAPI const UNormalizer2 * U_EXPORT2 unorm2_getNFKCCasefoldInstance(UErrorCode *pErrorCode); -#ifndef U_HIDE_DRAFT_API /** * Returns a UNormalizer2 instance for a variant of Unicode toNFKC_Casefold() normalization * which is equivalent to applying the NFKC_Simple_Casefold mappings and then NFC. @@ -210,11 +209,10 @@ unorm2_getNFKCCasefoldInstance(UErrorCode *pErrorCode); * immediately. Check for U_FAILURE() on output or use with * function chaining. (See User Guide for details.) * @return the requested Normalizer2, if successful - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI const UNormalizer2 * U_EXPORT2 unorm2_getNFKCSimpleCasefoldInstance(UErrorCode *pErrorCode); -#endif // U_HIDE_DRAFT_API /** * Returns a UNormalizer2 instance which uses the specified data file diff --git a/thirdparty/icu4c/common/unicode/urename.h b/thirdparty/icu4c/common/unicode/urename.h index c94592ec0348..e39c779e81ef 100644 --- a/thirdparty/icu4c/common/unicode/urename.h +++ b/thirdparty/icu4c/common/unicode/urename.h @@ -490,6 +490,7 @@ #define ubiditransform_close U_ICU_ENTRY_POINT_RENAME(ubiditransform_close) #define ubiditransform_open U_ICU_ENTRY_POINT_RENAME(ubiditransform_open) #define ubiditransform_transform U_ICU_ENTRY_POINT_RENAME(ubiditransform_transform) +#define ublock_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(ublock_addPropertyStarts) #define ublock_getCode U_ICU_ENTRY_POINT_RENAME(ublock_getCode) #define ubrk_clone U_ICU_ENTRY_POINT_RENAME(ubrk_clone) #define ubrk_close U_ICU_ENTRY_POINT_RENAME(ubrk_close) @@ -991,6 +992,7 @@ #define uhash_compareCaselessUnicodeString U_ICU_ENTRY_POINT_RENAME(uhash_compareCaselessUnicodeString) #define uhash_compareChars U_ICU_ENTRY_POINT_RENAME(uhash_compareChars) #define uhash_compareIChars U_ICU_ENTRY_POINT_RENAME(uhash_compareIChars) +#define uhash_compareIStringView U_ICU_ENTRY_POINT_RENAME(uhash_compareIStringView) #define uhash_compareLong U_ICU_ENTRY_POINT_RENAME(uhash_compareLong) #define uhash_compareScriptSet U_ICU_ENTRY_POINT_RENAME(uhash_compareScriptSet) #define uhash_compareUChars U_ICU_ENTRY_POINT_RENAME(uhash_compareUChars) @@ -1008,6 +1010,7 @@ #define uhash_hashCaselessUnicodeString U_ICU_ENTRY_POINT_RENAME(uhash_hashCaselessUnicodeString) #define uhash_hashChars U_ICU_ENTRY_POINT_RENAME(uhash_hashChars) #define uhash_hashIChars U_ICU_ENTRY_POINT_RENAME(uhash_hashIChars) +#define uhash_hashIStringView U_ICU_ENTRY_POINT_RENAME(uhash_hashIStringView) #define uhash_hashLong U_ICU_ENTRY_POINT_RENAME(uhash_hashLong) #define uhash_hashScriptSet U_ICU_ENTRY_POINT_RENAME(uhash_hashScriptSet) #define uhash_hashUChars U_ICU_ENTRY_POINT_RENAME(uhash_hashUChars) @@ -1209,10 +1212,14 @@ #define ulocimp_minimizeSubtags U_ICU_ENTRY_POINT_RENAME(ulocimp_minimizeSubtags) #define ulocimp_setKeywordValue U_ICU_ENTRY_POINT_RENAME(ulocimp_setKeywordValue) #define ulocimp_toBcpKey U_ICU_ENTRY_POINT_RENAME(ulocimp_toBcpKey) +#define ulocimp_toBcpKeyWithFallback U_ICU_ENTRY_POINT_RENAME(ulocimp_toBcpKeyWithFallback) #define ulocimp_toBcpType U_ICU_ENTRY_POINT_RENAME(ulocimp_toBcpType) +#define ulocimp_toBcpTypeWithFallback U_ICU_ENTRY_POINT_RENAME(ulocimp_toBcpTypeWithFallback) #define ulocimp_toLanguageTag U_ICU_ENTRY_POINT_RENAME(ulocimp_toLanguageTag) #define ulocimp_toLegacyKey U_ICU_ENTRY_POINT_RENAME(ulocimp_toLegacyKey) +#define ulocimp_toLegacyKeyWithFallback U_ICU_ENTRY_POINT_RENAME(ulocimp_toLegacyKeyWithFallback) #define ulocimp_toLegacyType U_ICU_ENTRY_POINT_RENAME(ulocimp_toLegacyType) +#define ulocimp_toLegacyTypeWithFallback U_ICU_ENTRY_POINT_RENAME(ulocimp_toLegacyTypeWithFallback) #define ultag_getTKeyStart U_ICU_ENTRY_POINT_RENAME(ultag_getTKeyStart) #define ultag_isExtensionSubtags U_ICU_ENTRY_POINT_RENAME(ultag_isExtensionSubtags) #define ultag_isLanguageSubtag U_ICU_ENTRY_POINT_RENAME(ultag_isLanguageSubtag) @@ -1773,6 +1780,8 @@ #define uset_getSerializedRange U_ICU_ENTRY_POINT_RENAME(uset_getSerializedRange) #define uset_getSerializedRangeCount U_ICU_ENTRY_POINT_RENAME(uset_getSerializedRangeCount) #define uset_getSerializedSet U_ICU_ENTRY_POINT_RENAME(uset_getSerializedSet) +#define uset_getString U_ICU_ENTRY_POINT_RENAME(uset_getString) +#define uset_getStringCount U_ICU_ENTRY_POINT_RENAME(uset_getStringCount) #define uset_hasStrings U_ICU_ENTRY_POINT_RENAME(uset_hasStrings) #define uset_indexOf U_ICU_ENTRY_POINT_RENAME(uset_indexOf) #define uset_isEmpty U_ICU_ENTRY_POINT_RENAME(uset_isEmpty) @@ -1811,7 +1820,6 @@ #define usnum_setMinimumIntegerDigits U_ICU_ENTRY_POINT_RENAME(usnum_setMinimumIntegerDigits) #define usnum_setSign U_ICU_ENTRY_POINT_RENAME(usnum_setSign) #define usnum_setToInt64 U_ICU_ENTRY_POINT_RENAME(usnum_setToInt64) -#define usnum_truncateStart U_ICU_ENTRY_POINT_RENAME(usnum_truncateStart) #define usnumf_close U_ICU_ENTRY_POINT_RENAME(usnumf_close) #define usnumf_format U_ICU_ENTRY_POINT_RENAME(usnumf_format) #define usnumf_formatInt64 U_ICU_ENTRY_POINT_RENAME(usnumf_formatInt64) diff --git a/thirdparty/icu4c/common/unicode/uscript.h b/thirdparty/icu4c/common/unicode/uscript.h index 2c9cee1bfa44..d983c40901fb 100644 --- a/thirdparty/icu4c/common/unicode/uscript.h +++ b/thirdparty/icu4c/common/unicode/uscript.h @@ -503,6 +503,21 @@ typedef enum UScriptCode { /** @stable ICU 75 */ USCRIPT_ARABIC_NASTALIQ = 200, /* Aran */ + /** @stable ICU 76 */ + USCRIPT_GARAY = 201, /* Gara */ + /** @stable ICU 76 */ + USCRIPT_GURUNG_KHEMA = 202, /* Gukh */ + /** @stable ICU 76 */ + USCRIPT_KIRAT_RAI = 203, /* Krai */ + /** @stable ICU 76 */ + USCRIPT_OL_ONAL = 204, /* Onao */ + /** @stable ICU 76 */ + USCRIPT_SUNUWAR = 205, /* Sunu */ + /** @stable ICU 76 */ + USCRIPT_TODHRI = 206, /* Todr */ + /** @stable ICU 76 */ + USCRIPT_TULU_TIGALARI = 207, /* Tutg */ + #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal UScriptCode value. @@ -510,7 +525,7 @@ typedef enum UScriptCode { * * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ - USCRIPT_CODE_LIMIT = 201 + USCRIPT_CODE_LIMIT = 208 #endif // U_HIDE_DEPRECATED_API } UScriptCode; diff --git a/thirdparty/icu4c/common/unicode/uset.h b/thirdparty/icu4c/common/unicode/uset.h index cce95ce92120..c8f9b5592df2 100644 --- a/thirdparty/icu4c/common/unicode/uset.h +++ b/thirdparty/icu4c/common/unicode/uset.h @@ -33,7 +33,10 @@ #include "unicode/uchar.h" #if U_SHOW_CPLUSPLUS_API +#include +#include "unicode/char16ptr.h" #include "unicode/localpointer.h" +#include "unicode/unistr.h" #endif // U_SHOW_CPLUSPLUS_API #ifndef USET_DEFINED @@ -955,7 +958,7 @@ uset_charAt(const USet* set, int32_t charIndex); /** * Returns the number of characters and strings contained in this set. - * The last (uset_getItemCount() - uset_getRangeCount()) items are strings. + * The last uset_getStringCount() == (uset_getItemCount() - uset_getRangeCount()) items are strings. * * This is slower than uset_getRangeCount() and uset_getItemCount() because * it counts the code points of all ranges. @@ -965,6 +968,8 @@ uset_charAt(const USet* set, int32_t charIndex); * contained in set * @stable ICU 2.4 * @see uset_getRangeCount + * @see uset_getStringCount + * @see uset_getItemCount */ U_CAPI int32_t U_EXPORT2 uset_size(const USet* set); @@ -975,11 +980,42 @@ uset_size(const USet* set); * @stable ICU 70 * @see uset_getItemCount * @see uset_getItem + * @see uset_getStringCount * @see uset_size */ U_CAPI int32_t U_EXPORT2 uset_getRangeCount(const USet *set); +#ifndef U_HIDE_DRAFT_API + +/** + * @param set the set + * @return the number of strings in this set. + * @draft ICU 76 + * @see uset_getRangeCount + * @see uset_getItemCount + * @see uset_size + */ +U_CAPI int32_t U_EXPORT2 +uset_getStringCount(const USet *set); + +/** + * Returns the index-th string (empty or multi-character) in the set. + * The string may not be NUL-terminated. + * The output length must be used, and the caller must not read more than that many UChars. + * + * @param set the set + * @param index the string index, 0 .. uset_getStringCount() - 1 + * @param pLength the output string length; must not be NULL + * @return the pointer to the string; NULL if the index is out of range or pLength is NULL + * @draft ICU 76 + * @see uset_getStringCount + */ +U_CAPI const UChar* U_EXPORT2 +uset_getString(const USet *set, int32_t index, int32_t *pLength); + +#endif // U_HIDE_DRAFT_API + /** * Returns the number of items in this set. An item is either a range * of characters or a single multicharacter string. @@ -987,6 +1023,8 @@ uset_getRangeCount(const USet *set); * @return a non-negative integer counting the character ranges * and/or strings contained in set * @stable ICU 2.4 + * @see uset_getRangeCount + * @see uset_getStringCount */ U_CAPI int32_t U_EXPORT2 uset_getItemCount(const USet* set); @@ -1001,6 +1039,7 @@ uset_getItemCount(const USet* set); * If itemIndex is at least uset_getRangeCount() and less than uset_getItemCount(), then * this function copies the string into str[strCapacity] and * returns the length of the string (0 for the empty string). + * See uset_getString() for a function that does not copy the string contents. * * If itemIndex is out of range, then this function returns -1. * @@ -1018,6 +1057,7 @@ uset_getItemCount(const USet* set); * @return the length of the string (0 or >= 2), or 0 if the item is a range, * or -1 if the itemIndex is out of range * @stable ICU 2.4 + * @see uset_getString */ U_CAPI int32_t U_EXPORT2 uset_getItem(const USet* set, int32_t itemIndex, @@ -1285,4 +1325,574 @@ U_CAPI UBool U_EXPORT2 uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, UChar32* pStart, UChar32* pEnd); -#endif +#if U_SHOW_CPLUSPLUS_API || U_SHOW_CPLUSPLUS_HEADER_API +#ifndef U_HIDE_DRAFT_API + +namespace U_HEADER_ONLY_NAMESPACE { + +// Note: Not U_COMMON_API, and not a subclass of UMemory, because this is a header-only class, +// not intended to be used via export from the ICU DLL. + +/** + * Iterator returned by USetCodePoints. + * @draft ICU 76 + */ +class USetCodePointIterator { +public: + /** @draft ICU 76 */ + USetCodePointIterator(const USetCodePointIterator &other) = default; + + /** @draft ICU 76 */ + bool operator==(const USetCodePointIterator &other) const { + // No need to compare rangeCount & end given private constructor + // and assuming we don't compare iterators across the set being modified. + // And comparing rangeIndex is redundant with comparing c. + // We might even skip comparing uset. + // Unless we want operator==() to be "correct" for more than iteration. + return uset == other.uset && c == other.c; + } + + /** @draft ICU 76 */ + bool operator!=(const USetCodePointIterator &other) const { return !operator==(other); } + + /** @draft ICU 76 */ + UChar32 operator*() const { return c; } + + /** + * Pre-increment. + * @draft ICU 76 + */ + USetCodePointIterator &operator++() { + if (c < end) { + ++c; + } else if (rangeIndex < rangeCount) { + UErrorCode errorCode = U_ZERO_ERROR; + int32_t result = uset_getItem(uset, rangeIndex, &c, &end, nullptr, 0, &errorCode); + if (U_SUCCESS(errorCode) && result == 0) { + ++rangeIndex; + } else { + c = end = U_SENTINEL; + } + } else { + c = end = U_SENTINEL; + } + return *this; + } + + /** + * Post-increment. + * @draft ICU 76 + */ + USetCodePointIterator operator++(int) { + USetCodePointIterator result(*this); + operator++(); + return result; + } + +private: + friend class USetCodePoints; + + USetCodePointIterator(const USet *uset, int32_t rangeIndex, int32_t rangeCount) + : uset(uset), rangeIndex(rangeIndex), rangeCount(rangeCount), + c(U_SENTINEL), end(U_SENTINEL) { + // Fetch the first range. + operator++(); + } + + const USet *uset; + int32_t rangeIndex; + int32_t rangeCount; + UChar32 c, end; +}; + +/** + * C++ "range" for iterating over the code points of a USet. + * + * \code + * using U_HEADER_NESTED_NAMESPACE::USetCodePoints; + * LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴]", -1, &errorCode)); + * for (UChar32 c : USetCodePoints(uset.getAlias())) { + * printf("uset.codePoint U+%04lx\n", (long)c); + * } + * \endcode + * + * C++ UnicodeSet has member functions for iteration, including codePoints(). + * + * @draft ICU 76 + * @see USetRanges + * @see USetStrings + * @see USetElements + */ +class USetCodePoints { +public: + /** + * Constructs a C++ "range" object over the code points of the USet. + * @draft ICU 76 + */ + USetCodePoints(const USet *uset) : uset(uset), rangeCount(uset_getRangeCount(uset)) {} + + /** @draft ICU 76 */ + USetCodePoints(const USetCodePoints &other) = default; + + /** @draft ICU 76 */ + USetCodePointIterator begin() const { + return USetCodePointIterator(uset, 0, rangeCount); + } + + /** @draft ICU 76 */ + USetCodePointIterator end() const { + return USetCodePointIterator(uset, rangeCount, rangeCount); + } + +private: + const USet *uset; + int32_t rangeCount; +}; + +/** + * A contiguous range of code points in a USet/UnicodeSet. + * Returned by USetRangeIterator which is returned by USetRanges. + * Both the rangeStart and rangeEnd are in the range. + * (end() returns an iterator corresponding to rangeEnd+1.) + * @draft ICU 76 + */ +struct CodePointRange { + /** @draft ICU 76 */ + struct iterator { + /** @draft ICU 76 */ + iterator(UChar32 c) : c(c) {} + + /** @draft ICU 76 */ + bool operator==(const iterator &other) const { return c == other.c; } + /** @draft ICU 76 */ + bool operator!=(const iterator &other) const { return !operator==(other); } + + /** @draft ICU 76 */ + UChar32 operator*() const { return c; } + + /** + * Pre-increment. + * @draft ICU 76 + */ + iterator &operator++() { + ++c; + return *this; + } + + /** + * Post-increment. + * @draft ICU 76 + */ + iterator operator++(int) { + return c++; + } + + /** + * The current code point in the range. + * @draft ICU 76 + */ + UChar32 c; + }; + + /** @draft ICU 76 */ + CodePointRange(UChar32 start, UChar32 end) : rangeStart(start), rangeEnd(end) {} + /** @draft ICU 76 */ + CodePointRange(const CodePointRange &other) = default; + /** @draft ICU 76 */ + size_t size() const { return (rangeEnd + 1) - rangeStart; } + /** @draft ICU 76 */ + iterator begin() const { return rangeStart; } + /** @draft ICU 76 */ + iterator end() const { return rangeEnd + 1; } + + /** + * Start of a USet/UnicodeSet range of code points. + * @draft ICU 76 + */ + UChar32 rangeStart; + /** + * Inclusive end of a USet/UnicodeSet range of code points. + * @draft ICU 76 + */ + UChar32 rangeEnd; +}; + +/** + * Iterator returned by USetRanges. + * @draft ICU 76 + */ +class USetRangeIterator { +public: + /** @draft ICU 76 */ + USetRangeIterator(const USetRangeIterator &other) = default; + + /** @draft ICU 76 */ + bool operator==(const USetRangeIterator &other) const { + // No need to compare rangeCount given private constructor + // and assuming we don't compare iterators across the set being modified. + // We might even skip comparing uset. + // Unless we want operator==() to be "correct" for more than iteration. + return uset == other.uset && rangeIndex == other.rangeIndex; + } + + /** @draft ICU 76 */ + bool operator!=(const USetRangeIterator &other) const { return !operator==(other); } + + /** @draft ICU 76 */ + CodePointRange operator*() const { + if (rangeIndex < rangeCount) { + UChar32 start, end; + UErrorCode errorCode = U_ZERO_ERROR; + int32_t result = uset_getItem(uset, rangeIndex, &start, &end, nullptr, 0, &errorCode); + if (U_SUCCESS(errorCode) && result == 0) { + return CodePointRange(start, end); + } + } + return CodePointRange(U_SENTINEL, U_SENTINEL); + } + + /** + * Pre-increment. + * @draft ICU 76 + */ + USetRangeIterator &operator++() { + ++rangeIndex; + return *this; + } + + /** + * Post-increment. + * @draft ICU 76 + */ + USetRangeIterator operator++(int) { + USetRangeIterator result(*this); + ++rangeIndex; + return result; + } + +private: + friend class USetRanges; + + USetRangeIterator(const USet *uset, int32_t rangeIndex, int32_t rangeCount) + : uset(uset), rangeIndex(rangeIndex), rangeCount(rangeCount) {} + + const USet *uset; + int32_t rangeIndex; + int32_t rangeCount; +}; + +/** + * C++ "range" for iterating over the code point ranges of a USet. + * + * \code + * using U_HEADER_NESTED_NAMESPACE::USetRanges; + * LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴]", -1, &errorCode)); + * for (auto [start, end] : USetRanges(uset.getAlias())) { + * printf("uset.range U+%04lx..U+%04lx\n", (long)start, (long)end); + * } + * for (auto range : USetRanges(uset.getAlias())) { + * for (UChar32 c : range) { + * printf("uset.range.c U+%04lx\n", (long)c); + * } + * } + * \endcode + * + * C++ UnicodeSet has member functions for iteration, including ranges(). + * + * @draft ICU 76 + * @see USetCodePoints + * @see USetStrings + * @see USetElements + */ +class USetRanges { +public: + /** + * Constructs a C++ "range" object over the code point ranges of the USet. + * @draft ICU 76 + */ + USetRanges(const USet *uset) : uset(uset), rangeCount(uset_getRangeCount(uset)) {} + + /** @draft ICU 76 */ + USetRanges(const USetRanges &other) = default; + + /** @draft ICU 76 */ + USetRangeIterator begin() const { + return USetRangeIterator(uset, 0, rangeCount); + } + + /** @draft ICU 76 */ + USetRangeIterator end() const { + return USetRangeIterator(uset, rangeCount, rangeCount); + } + +private: + const USet *uset; + int32_t rangeCount; +}; + +/** + * Iterator returned by USetStrings. + * @draft ICU 76 + */ +class USetStringIterator { +public: + /** @draft ICU 76 */ + USetStringIterator(const USetStringIterator &other) = default; + + /** @draft ICU 76 */ + bool operator==(const USetStringIterator &other) const { + // No need to compare count given private constructor + // and assuming we don't compare iterators across the set being modified. + // We might even skip comparing uset. + // Unless we want operator==() to be "correct" for more than iteration. + return uset == other.uset && index == other.index; + } + + /** @draft ICU 76 */ + bool operator!=(const USetStringIterator &other) const { return !operator==(other); } + + /** @draft ICU 76 */ + std::u16string_view operator*() const { + if (index < count) { + int32_t length; + const UChar *uchars = uset_getString(uset, index, &length); + // assert uchars != nullptr; + return {ConstChar16Ptr(uchars), static_cast(length)}; + } + return {}; + } + + /** + * Pre-increment. + * @draft ICU 76 + */ + USetStringIterator &operator++() { + ++index; + return *this; + } + + /** + * Post-increment. + * @draft ICU 76 + */ + USetStringIterator operator++(int) { + USetStringIterator result(*this); + ++index; + return result; + } + +private: + friend class USetStrings; + + USetStringIterator(const USet *uset, int32_t index, int32_t count) + : uset(uset), index(index), count(count) {} + + const USet *uset; + int32_t index; + int32_t count; +}; + +/** + * C++ "range" for iterating over the empty and multi-character strings of a USet. + * + * \code + * using U_HEADER_NESTED_NAMESPACE::USetStrings; + * LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴{}{abc}{de}]", -1, &errorCode)); + * for (auto s : USetStrings(uset.getAlias())) { + * UnicodeString us(s); + * std::string u8; + * printf("uset.string length %ld \"%s\"\n", (long)s.length(), us.toUTF8String(u8).c_str()); + * } + * \endcode + * + * C++ UnicodeSet has member functions for iteration, including strings(). + * + * @draft ICU 76 + * @see USetCodePoints + * @see USetRanges + * @see USetElements + */ +class USetStrings { +public: + /** + * Constructs a C++ "range" object over the strings of the USet. + * @draft ICU 76 + */ + USetStrings(const USet *uset) : uset(uset), count(uset_getStringCount(uset)) {} + + /** @draft ICU 76 */ + USetStrings(const USetStrings &other) = default; + + /** @draft ICU 76 */ + USetStringIterator begin() const { + return USetStringIterator(uset, 0, count); + } + + /** @draft ICU 76 */ + USetStringIterator end() const { + return USetStringIterator(uset, count, count); + } + +private: + const USet *uset; + int32_t count; +}; + +/** + * Iterator returned by USetElements. + * @draft ICU 76 + */ +class USetElementIterator { +public: + /** @draft ICU 76 */ + USetElementIterator(const USetElementIterator &other) = default; + + /** @draft ICU 76 */ + bool operator==(const USetElementIterator &other) const { + // No need to compare rangeCount & end given private constructor + // and assuming we don't compare iterators across the set being modified. + // We might even skip comparing uset. + // Unless we want operator==() to be "correct" for more than iteration. + return uset == other.uset && c == other.c && index == other.index; + } + + /** @draft ICU 76 */ + bool operator!=(const USetElementIterator &other) const { return !operator==(other); } + + /** @draft ICU 76 */ + UnicodeString operator*() const { + if (c >= 0) { + return UnicodeString(c); + } else if (index < totalCount) { + int32_t length; + const UChar *uchars = uset_getString(uset, index - rangeCount, &length); + // assert uchars != nullptr; + return UnicodeString(uchars, length); + } else { + return UnicodeString(); + } + } + + /** + * Pre-increment. + * @draft ICU 76 + */ + USetElementIterator &operator++() { + if (c < end) { + ++c; + } else if (index < rangeCount) { + UErrorCode errorCode = U_ZERO_ERROR; + int32_t result = uset_getItem(uset, index, &c, &end, nullptr, 0, &errorCode); + if (U_SUCCESS(errorCode) && result == 0) { + ++index; + } else { + c = end = U_SENTINEL; + } + } else if (c >= 0) { + // assert index == rangeCount; + // Switch from the last range to the first string. + c = end = U_SENTINEL; + } else { + ++index; + } + return *this; + } + + /** + * Post-increment. + * @draft ICU 76 + */ + USetElementIterator operator++(int) { + USetElementIterator result(*this); + operator++(); + return result; + } + +private: + friend class USetElements; + + USetElementIterator(const USet *uset, int32_t index, int32_t rangeCount, int32_t totalCount) + : uset(uset), index(index), rangeCount(rangeCount), totalCount(totalCount), + c(U_SENTINEL), end(U_SENTINEL) { + if (index < rangeCount) { + // Fetch the first range. + operator++(); + } + // Otherwise don't move beyond the (index - rangeCount)-th string. + } + + const USet *uset; + int32_t index; + /** Number of UnicodeSet/USet code point ranges. */ + int32_t rangeCount; + /** + * Number of code point ranges plus number of strings. + * index starts from 0, counts ranges while less than rangeCount, + * then counts strings while at least rangeCount and less than totalCount. + * + * Note that totalCount is the same as uset_getItemCount(), but usually + * smaller than the number of elements returned by this iterator + * because we return each code point of each range. + */ + int32_t totalCount; + UChar32 c, end; +}; + +/** + * A C++ "range" for iterating over all of the elements of a USet. + * Convenient all-in one iteration, but creates a UnicodeString for each + * code point or string. + * + * Code points are returned first, then empty and multi-character strings. + * + * \code + * using U_HEADER_NESTED_NAMESPACE::USetElements; + * LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴{}{abc}{de}]", -1, &errorCode)); + * for (auto el : USetElements(uset.getAlias())) { + * std::string u8; + * printf("uset.string length %ld \"%s\"\n", (long)el.length(), el.toUTF8String(u8).c_str()); + * } + * \endcode + * + * C++ UnicodeSet has member functions for iteration, including begin() and end(). + * + * @return an all-elements iterator. + * @draft ICU 76 + * @see USetCodePoints + * @see USetRanges + * @see USetStrings + */ +class USetElements { +public: + /** + * Constructs a C++ "range" object over all of the elements of the USet. + * @draft ICU 76 + */ + USetElements(const USet *uset) + : uset(uset), rangeCount(uset_getRangeCount(uset)), + stringCount(uset_getStringCount(uset)) {} + + /** @draft ICU 76 */ + USetElements(const USetElements &other) = default; + + /** @draft ICU 76 */ + USetElementIterator begin() const { + return USetElementIterator(uset, 0, rangeCount, rangeCount + stringCount); + } + + /** @draft ICU 76 */ + USetElementIterator end() const { + return USetElementIterator(uset, rangeCount + stringCount, rangeCount, rangeCount + stringCount); + } + +private: + const USet *uset; + int32_t rangeCount, stringCount; +}; + +} // namespace U_HEADER_ONLY_NAMESPACE + +#endif // U_HIDE_DRAFT_API +#endif // U_SHOW_CPLUSPLUS_API || U_SHOW_CPLUSPLUS_HEADER_API + +#endif // __USET_H__ diff --git a/thirdparty/icu4c/common/unicode/ustring.h b/thirdparty/icu4c/common/unicode/ustring.h index 03c697c72284..a3d08254d695 100644 --- a/thirdparty/icu4c/common/unicode/ustring.h +++ b/thirdparty/icu4c/common/unicode/ustring.h @@ -1107,8 +1107,8 @@ u_strToLower(UChar *dest, int32_t destCapacity, * styles, using rules and dictionaries beyond the standard iterators. * It may be more efficient to always provide an iterator to avoid * opening and closing one for each string. - * The standard titlecase iterator for the root locale implements the - * algorithm of Unicode TR 21. + * If the break iterator passed in is null, the default Unicode algorithm + * will be used to determine the titlecase positions. * * This function uses only the setText(), first() and next() methods of the * provided break iterator. diff --git a/thirdparty/icu4c/common/unicode/utypes.h b/thirdparty/icu4c/common/unicode/utypes.h index 6c7cc5134588..0151ebd47015 100644 --- a/thirdparty/icu4c/common/unicode/utypes.h +++ b/thirdparty/icu4c/common/unicode/utypes.h @@ -54,22 +54,37 @@ * integer and other types. */ +/** @{ API visibility control */ /** * \def U_SHOW_CPLUSPLUS_API + * When defined to 1 (=default) and compiled with a C++ compiler, both C and C++ APIs are visible. + * Otherwise, only C APIs are visible; this is for C++ users who want to + * restrict their usage to binary stable C APIs exported by ICU DLLs. + * @internal + */ +/** + * \def U_SHOW_CPLUSPLUS_HEADER_API + * When defined to 1 (=default) and compiled with a C++ compiler, C++ header-only APIs are visible. + * This is for C++ users who restrict their usage to binary stable C APIs exported by ICU DLLs + * (U_SHOW_CPLUSPLUS_API=0) + * but who still want to use C++ header-only APIs which do not rely on ICU DLL exports. * @internal */ #ifdef __cplusplus # ifndef U_SHOW_CPLUSPLUS_API # define U_SHOW_CPLUSPLUS_API 1 # endif +# ifndef U_SHOW_CPLUSPLUS_HEADER_API +# define U_SHOW_CPLUSPLUS_HEADER_API 1 +# endif #else # undef U_SHOW_CPLUSPLUS_API # define U_SHOW_CPLUSPLUS_API 0 +# undef U_SHOW_CPLUSPLUS_HEADER_API +# define U_SHOW_CPLUSPLUS_HEADER_API 0 #endif -/** @{ API visibility control */ - /** * \def U_HIDE_DRAFT_API * Define this to 1 to request that draft API be "hidden" @@ -582,14 +597,13 @@ typedef enum UErrorCode { U_MF_MISSING_SELECTOR_ANNOTATION_ERROR, /**< A selector expression evaluates to an unannotated operand. @internal ICU 75 technology preview @deprecated This API is for technology preview only. */ U_MF_DUPLICATE_DECLARATION_ERROR, /**< The same variable is declared in more than one .local or .input declaration. @internal ICU 75 technology preview @deprecated This API is for technology preview only. */ U_MF_OPERAND_MISMATCH_ERROR, /**< An operand provided to a function does not have the required form for that function @internal ICU 75 technology preview @deprecated This API is for technology preview only. */ - U_MF_UNSUPPORTED_STATEMENT_ERROR, /**< A message includes a reserved statement. @internal ICU 75 technology preview @deprecated This API is for technology preview only. */ - U_MF_UNSUPPORTED_EXPRESSION_ERROR, /**< A message includes syntax reserved for future standardization or private implementation use. @internal ICU 75 technology preview @deprecated This API is for technology preview only. */ + U_MF_DUPLICATE_VARIANT_ERROR, /**< A message includes a variant with the same key list as another variant. @internal ICU 76 technology preview @deprecated This API is for technology preview only. */ #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal formatting API error code. * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ - U_FMT_PARSE_ERROR_LIMIT = 0x10121, + U_FMT_PARSE_ERROR_LIMIT = 0x10120, #endif // U_HIDE_DEPRECATED_API /* @@ -713,13 +727,13 @@ typedef enum UErrorCode { * @stable ICU 2.0 */ static - inline UBool U_SUCCESS(UErrorCode code) { return (UBool)(code<=U_ZERO_ERROR); } + inline UBool U_SUCCESS(UErrorCode code) { return code <= U_ZERO_ERROR; } /** * Does the error code indicate a failure? * @stable ICU 2.0 */ static - inline UBool U_FAILURE(UErrorCode code) { return (UBool)(code>U_ZERO_ERROR); } + inline UBool U_FAILURE(UErrorCode code) { return code > U_ZERO_ERROR; } #else /** * Does the error code indicate success? diff --git a/thirdparty/icu4c/common/unicode/uvernum.h b/thirdparty/icu4c/common/unicode/uvernum.h index eb7c50f38560..a3cb882623be 100644 --- a/thirdparty/icu4c/common/unicode/uvernum.h +++ b/thirdparty/icu4c/common/unicode/uvernum.h @@ -53,7 +53,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION_MAJOR_NUM 75 +#define U_ICU_VERSION_MAJOR_NUM 76 /** The current ICU minor version as an integer. * This value will change in the subsequent releases of ICU @@ -79,7 +79,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.6 */ -#define U_ICU_VERSION_SUFFIX _75 +#define U_ICU_VERSION_SUFFIX _76 /** * \def U_DEF2_ICU_ENTRY_POINT_RENAME @@ -132,7 +132,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION "75.1" +#define U_ICU_VERSION "76.1" /** * The current ICU library major version number as a string, for library name suffixes. @@ -145,13 +145,13 @@ * * @stable ICU 2.6 */ -#define U_ICU_VERSION_SHORT "75" +#define U_ICU_VERSION_SHORT "76" #ifndef U_HIDE_INTERNAL_API /** Data version in ICU4C. * @internal ICU 4.4 Internal Use Only **/ -#define U_ICU_DATA_VERSION "75.1" +#define U_ICU_DATA_VERSION "76.1" #endif /* U_HIDE_INTERNAL_API */ /*=========================================================================== diff --git a/thirdparty/icu4c/common/unicode/uversion.h b/thirdparty/icu4c/common/unicode/uversion.h index 113568df8c12..25d73a3aeb54 100644 --- a/thirdparty/icu4c/common/unicode/uversion.h +++ b/thirdparty/icu4c/common/unicode/uversion.h @@ -124,6 +124,49 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]; # if U_USING_ICU_NAMESPACE U_NAMESPACE_USE # endif + +#ifndef U_HIDE_DRAFT_API +/** + * \def U_HEADER_NESTED_NAMESPACE + * Nested namespace used inside U_ICU_NAMESPACE for header-only APIs. + * Different when used inside ICU to prevent public use of internal instantiations: + * "header" when compiling calling code; "internal" when compiling ICU library code. + * + * When compiling for Windows, where DLL exports of APIs are explicit, + * this is always "header". Header-only types are not marked for export, + * which on Windows already avoids callers linking with library instantiations. + * + * @draft ICU 76 + * @see U_HEADER_ONLY_NAMESPACE + */ + +/** + * \def U_HEADER_ONLY_NAMESPACE + * Namespace used for header-only APIs. + * Different when used inside ICU to prevent public use of internal instantiations. + * "U_ICU_NAMESPACE::header" or "U_ICU_NAMESPACE::internal", + * see U_HEADER_NESTED_NAMESPACE for details. + * + * @draft ICU 76 + */ + +// The first test is the same as for defining U_EXPORT for Windows. +#if defined(_MSC_VER) || (UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllexport__) && \ + UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllimport__)) +# define U_HEADER_NESTED_NAMESPACE header +#elif defined(U_COMBINED_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) || \ + defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION) || \ + defined(U_LAYOUTEX_IMPLEMENTATION) || defined(U_TOOLUTIL_IMPLEMENTATION) +# define U_HEADER_NESTED_NAMESPACE internal +#else +# define U_HEADER_NESTED_NAMESPACE header +#endif + +#define U_HEADER_ONLY_NAMESPACE U_ICU_NAMESPACE::U_HEADER_NESTED_NAMESPACE + +namespace U_HEADER_ONLY_NAMESPACE {} +#endif // U_HIDE_DRAFT_API + #endif /* __cplusplus */ /*===========================================================================*/ diff --git a/thirdparty/icu4c/common/unifiedcache.cpp b/thirdparty/icu4c/common/unifiedcache.cpp index 1284c03813eb..68af4e04c1b4 100644 --- a/thirdparty/icu4c/common/unifiedcache.cpp +++ b/thirdparty/icu4c/common/unifiedcache.cpp @@ -47,20 +47,20 @@ U_NAMESPACE_BEGIN int32_t U_EXPORT2 ucache_hashKeys(const UHashTok key) { - const CacheKeyBase *ckey = (const CacheKeyBase *) key.pointer; + const CacheKeyBase* ckey = static_cast(key.pointer); return ckey->hashCode(); } UBool U_EXPORT2 ucache_compareKeys(const UHashTok key1, const UHashTok key2) { - const CacheKeyBase *p1 = (const CacheKeyBase *) key1.pointer; - const CacheKeyBase *p2 = (const CacheKeyBase *) key2.pointer; + const CacheKeyBase* p1 = static_cast(key1.pointer); + const CacheKeyBase* p2 = static_cast(key2.pointer); return *p1 == *p2; } void U_EXPORT2 ucache_deleteKey(void *obj) { - CacheKeyBase *p = (CacheKeyBase *) obj; + CacheKeyBase* p = static_cast(obj); delete p; } @@ -253,7 +253,7 @@ UBool UnifiedCache::_flush(UBool all) const { } if (all || _isEvictable(element)) { const SharedObject *sharedObject = - (const SharedObject *) element->value.pointer; + static_cast(element->value.pointer); U_ASSERT(sharedObject->cachePtr == this); uhash_removeElement(fHashtable, element); removeSoftRef(sharedObject); // Deletes the sharedObject when softRefCount goes to zero. @@ -269,7 +269,7 @@ int32_t UnifiedCache::_computeCountOfItemsToEvict() const { int32_t unusedLimitByPercentage = fNumValuesInUse * fMaxPercentageOfInUse / 100; int32_t unusedLimit = std::max(unusedLimitByPercentage, fMaxUnused); - int32_t countOfItemsToEvict = std::max(0, evictableItems - unusedLimit); + int32_t countOfItemsToEvict = std::max(0, evictableItems - unusedLimit); return countOfItemsToEvict; } @@ -285,7 +285,7 @@ void UnifiedCache::_runEvictionSlice() const { } if (_isEvictable(element)) { const SharedObject *sharedObject = - (const SharedObject *) element->value.pointer; + static_cast(element->value.pointer); uhash_removeElement(fHashtable, element); removeSoftRef(sharedObject); // Deletes sharedObject when SoftRefCount goes to zero. ++fAutoEvictedCount; @@ -416,8 +416,8 @@ void UnifiedCache::_put( const SharedObject *value, const UErrorCode status) const { U_ASSERT(_inProgress(element)); - const CacheKeyBase *theKey = (const CacheKeyBase *) element->key.pointer; - const SharedObject *oldValue = (const SharedObject *) element->value.pointer; + const CacheKeyBase* theKey = static_cast(element->key.pointer); + const SharedObject* oldValue = static_cast(element->value.pointer); theKey->fCreationStatus = status; if (value->softRefCount == 0) { _registerPrimary(theKey, value); @@ -437,7 +437,7 @@ void UnifiedCache::_fetch( const UHashElement *element, const SharedObject *&value, UErrorCode &status) const { - const CacheKeyBase *theKey = (const CacheKeyBase *) element->key.pointer; + const CacheKeyBase* theKey = static_cast(element->key.pointer); status = theKey->fCreationStatus; // Since we have the cache lock, calling regular SharedObject add/removeRef @@ -465,9 +465,8 @@ UBool UnifiedCache::_inProgress( UBool UnifiedCache::_isEvictable(const UHashElement *element) const { - const CacheKeyBase *theKey = (const CacheKeyBase *) element->key.pointer; - const SharedObject *theValue = - (const SharedObject *) element->value.pointer; + const CacheKeyBase* theKey = static_cast(element->key.pointer); + const SharedObject* theValue = static_cast(element->value.pointer); // Entries that are under construction are never evictable if (_inProgress(theValue, theKey->fCreationStatus)) { diff --git a/thirdparty/icu4c/common/uniset.cpp b/thirdparty/icu4c/common/uniset.cpp index 71f57fc12d46..2d6610cb355d 100644 --- a/thirdparty/icu4c/common/uniset.cpp +++ b/thirdparty/icu4c/common/uniset.cpp @@ -108,25 +108,25 @@ static inline void _dbgdt(UnicodeSet* set) { //---------------------------------------------------------------- static void U_CALLCONV cloneUnicodeString(UElement *dst, UElement *src) { - dst->pointer = new UnicodeString(*(UnicodeString*)src->pointer); + dst->pointer = new UnicodeString(*static_cast(src->pointer)); } static int32_t U_CALLCONV compareUnicodeString(UElement t1, UElement t2) { - const UnicodeString &a = *(const UnicodeString*)t1.pointer; - const UnicodeString &b = *(const UnicodeString*)t2.pointer; + const UnicodeString& a = *static_cast(t1.pointer); + const UnicodeString& b = *static_cast(t2.pointer); return a.compare(b); } UBool UnicodeSet::hasStrings() const { - return strings != nullptr && !strings->isEmpty(); + return strings_ != nullptr && !strings_->isEmpty(); } int32_t UnicodeSet::stringsSize() const { - return strings == nullptr ? 0 : strings->size(); + return strings_ == nullptr ? 0 : strings_->size(); } UBool UnicodeSet::stringsContains(const UnicodeString &s) const { - return strings != nullptr && strings->contains((void*) &s); + return strings_ != nullptr && strings_->contains((void*) &s); } //---------------------------------------------------------------- @@ -171,7 +171,7 @@ UnicodeSet::UnicodeSet(const UnicodeSet& o, UBool /* asThawed */) : UnicodeFilte if (o.hasStrings()) { UErrorCode status = U_ZERO_ERROR; if (!allocateStrings(status) || - (strings->assign(*o.strings, cloneUnicodeString, status), U_FAILURE(status))) { + (strings_->assign(*o.strings_, cloneUnicodeString, status), U_FAILURE(status))) { setToBogus(); return; } @@ -195,7 +195,7 @@ UnicodeSet::~UnicodeSet() { if (buffer != stackList) { uprv_free(buffer); } - delete strings; + delete strings_; delete stringSpan; releasePattern(); } @@ -233,16 +233,16 @@ UnicodeSet& UnicodeSet::copyFrom(const UnicodeSet& o, UBool asThawed) { } if (o.hasStrings()) { UErrorCode status = U_ZERO_ERROR; - if ((strings == nullptr && !allocateStrings(status)) || - (strings->assign(*o.strings, cloneUnicodeString, status), U_FAILURE(status))) { + if ((strings_ == nullptr && !allocateStrings(status)) || + (strings_->assign(*o.strings_, cloneUnicodeString, status), U_FAILURE(status))) { setToBogus(); return *this; } } else if (hasStrings()) { - strings->removeAllElements(); + strings_->removeAllElements(); } if (o.stringSpan != nullptr && !asThawed) { - stringSpan = new UnicodeSetStringSpan(*o.stringSpan, *strings); + stringSpan = new UnicodeSetStringSpan(*o.stringSpan, *strings_); if (stringSpan == nullptr) { // Check for memory allocation error. setToBogus(); return *this; @@ -284,7 +284,7 @@ bool UnicodeSet::operator==(const UnicodeSet& o) const { if (list[i] != o.list[i]) return false; } if (hasStrings() != o.hasStrings()) { return false; } - if (hasStrings() && *strings != *o.strings) return false; + if (hasStrings() && *strings_ != *o.strings_) return false; return true; } @@ -355,7 +355,7 @@ UBool UnicodeSet::contains(UChar32 c) const { return false; } int32_t i = findCodePoint(c); - return (UBool)(i & 1); // return true if odd + return i & 1; // return true if odd } /** @@ -430,7 +430,7 @@ UBool UnicodeSet::contains(const UnicodeString& s) const { if (cp < 0) { return stringsContains(s); } else { - return contains((UChar32) cp); + return contains(static_cast(cp)); } } @@ -450,7 +450,7 @@ UBool UnicodeSet::containsAll(const UnicodeSet& c) const { return false; } } - return !c.hasStrings() || (strings != nullptr && strings->containsAll(*c.strings)); + return !c.hasStrings() || (strings_ != nullptr && strings_->containsAll(*c.strings_)); } /** @@ -460,8 +460,7 @@ UBool UnicodeSet::containsAll(const UnicodeSet& c) const { * @return true if the test condition is met */ UBool UnicodeSet::containsAll(const UnicodeString& s) const { - return (UBool)(span(s.getBuffer(), s.length(), USET_SPAN_CONTAINED) == - s.length()); + return span(s.getBuffer(), s.length(), USET_SPAN_CONTAINED) == s.length(); } /** @@ -496,7 +495,7 @@ UBool UnicodeSet::containsNone(const UnicodeSet& c) const { return false; } } - return strings == nullptr || !c.hasStrings() || strings->containsNone(*c.strings); + return strings_ == nullptr || !c.hasStrings() || strings_->containsNone(*c.strings_); } /** @@ -506,8 +505,7 @@ UBool UnicodeSet::containsNone(const UnicodeSet& c) const { * @return true if the test condition is met */ UBool UnicodeSet::containsNone(const UnicodeString& s) const { - return (UBool)(span(s.getBuffer(), s.length(), USET_SPAN_NOT_CONTAINED) == - s.length()); + return span(s.getBuffer(), s.length(), USET_SPAN_NOT_CONTAINED) == s.length(); } /** @@ -538,8 +536,8 @@ UBool UnicodeSet::matchesIndexValue(uint8_t v) const { } } if (hasStrings()) { - for (i=0; isize(); ++i) { - const UnicodeString& s = *(const UnicodeString*)strings->elementAt(i); + for (i=0; isize(); ++i) { + const UnicodeString& s = *static_cast(strings_->elementAt(i)); if (s.isEmpty()) { continue; // skip the empty string } @@ -588,8 +586,8 @@ UMatchDegree UnicodeSet::matches(const Replaceable& text, // return the longest match. int32_t highWaterLength = 0; - for (i=0; isize(); ++i) { - const UnicodeString& trial = *(const UnicodeString*)strings->elementAt(i); + for (i=0; isize(); ++i) { + const UnicodeString& trial = *static_cast(strings_->elementAt(i)); if (trial.isEmpty()) { continue; // skip the empty string } @@ -731,12 +729,12 @@ UChar32 UnicodeSet::charAt(int32_t index) const { UChar32 start = list[i++]; int32_t count = list[i++] - start; if (index < count) { - return (UChar32)(start + index); + return static_cast(start + index); } index -= count; } } - return (UChar32)-1; + return static_cast(-1); } /** @@ -958,21 +956,21 @@ UnicodeSet& UnicodeSet::add(const UnicodeString& s) { releasePattern(); } } else { - add((UChar32)cp); + add(static_cast(cp)); } return *this; } /** - * Adds the given string, in order, to 'strings'. The given string - * must have been checked by the caller to not already be in 'strings'. + * Adds the given string, in order, to 'strings_'. The given string + * must have been checked by the caller to not already be in 'strings_'. */ void UnicodeSet::_add(const UnicodeString& s) { if (isFrozen() || isBogus()) { return; } UErrorCode ec = U_ZERO_ERROR; - if (strings == nullptr && !allocateStrings(ec)) { + if (strings_ == nullptr && !allocateStrings(ec)) { setToBogus(); return; } @@ -981,7 +979,7 @@ void UnicodeSet::_add(const UnicodeString& s) { setToBogus(); return; } - strings->sortedInsert(t, compareUnicodeString, ec); + strings_->sortedInsert(t, compareUnicodeString, ec); if (U_FAILURE(ec)) { setToBogus(); } @@ -1060,7 +1058,7 @@ UnicodeSet& UnicodeSet::removeAll(const UnicodeString& s) { UnicodeSet& UnicodeSet::removeAllStrings() { if (!isFrozen() && hasStrings()) { - strings->removeAllElements(); + strings_->removeAllElements(); releasePattern(); } return *this; @@ -1178,11 +1176,11 @@ UnicodeSet& UnicodeSet::remove(const UnicodeString& s) { if (isFrozen() || isBogus()) return *this; int32_t cp = getSingleCP(s); if (cp < 0) { - if (strings != nullptr && strings->removeElement((void*) &s)) { + if (strings_ != nullptr && strings_->removeElement((void*) &s)) { releasePattern(); } } else { - remove((UChar32)cp, (UChar32)cp); + remove(static_cast(cp), static_cast(cp)); } return *this; } @@ -1250,13 +1248,13 @@ UnicodeSet& UnicodeSet::complement(const UnicodeString& s) { int32_t cp = getSingleCP(s); if (cp < 0) { if (stringsContains(s)) { - strings->removeElement((void*) &s); + strings_->removeElement((void*) &s); } else { _add(s); } releasePattern(); } else { - complement((UChar32)cp, (UChar32)cp); + complement(static_cast(cp), static_cast(cp)); } return *this; } @@ -1277,9 +1275,9 @@ UnicodeSet& UnicodeSet::addAll(const UnicodeSet& c) { } // Add strings in order - if ( c.strings!=nullptr ) { - for (int32_t i=0; isize(); ++i) { - const UnicodeString* s = (const UnicodeString*)c.strings->elementAt(i); + if ( c.strings_!=nullptr ) { + for (int32_t i=0; isize(); ++i) { + const UnicodeString* s = static_cast(c.strings_->elementAt(i)); if (!stringsContains(*s)) { _add(*s); } @@ -1304,9 +1302,9 @@ UnicodeSet& UnicodeSet::retainAll(const UnicodeSet& c) { retain(c.list, c.len, 0); if (hasStrings()) { if (!c.hasStrings()) { - strings->removeAllElements(); + strings_->removeAllElements(); } else { - strings->retainAll(*c.strings); + strings_->retainAll(*c.strings_); } } return *this; @@ -1327,7 +1325,7 @@ UnicodeSet& UnicodeSet::removeAll(const UnicodeSet& c) { } retain(c.list, c.len, 2); if (hasStrings() && c.hasStrings()) { - strings->removeAll(*c.strings); + strings_->removeAll(*c.strings_); } return *this; } @@ -1346,11 +1344,11 @@ UnicodeSet& UnicodeSet::complementAll(const UnicodeSet& c) { } exclusiveOr(c.list, c.len, 0); - if (c.strings != nullptr) { - for (int32_t i=0; isize(); ++i) { - void* e = c.strings->elementAt(i); - if (strings == nullptr || !strings->removeElement(e)) { - _add(*(const UnicodeString*)e); + if (c.strings_ != nullptr) { + for (int32_t i=0; isize(); ++i) { + void* e = c.strings_->elementAt(i); + if (strings_ == nullptr || !strings_->removeElement(e)) { + _add(*static_cast(e)); } } } @@ -1368,8 +1366,8 @@ UnicodeSet& UnicodeSet::clear() { list[0] = UNICODESET_HIGH; len = 1; releasePattern(); - if (strings != nullptr) { - strings->removeAllElements(); + if (strings_ != nullptr) { + strings_->removeAllElements(); } // Remove bogus fFlags = 0; @@ -1407,7 +1405,7 @@ UChar32 UnicodeSet::getRangeEnd(int32_t index) const { } const UnicodeString* UnicodeSet::getString(int32_t index) const { - return (const UnicodeString*) strings->elementAt(index); + return static_cast(strings_->elementAt(index)); } /** @@ -1433,7 +1431,7 @@ UnicodeSet& UnicodeSet::compact() { capacity = INITIAL_CAPACITY; } else if ((len + 7) < capacity) { // If we have more than a little unused capacity, shrink it to len. - UChar32* temp = (UChar32*) uprv_realloc(list, sizeof(UChar32) * len); + UChar32* temp = static_cast(uprv_realloc(list, sizeof(UChar32) * len)); if (temp) { list = temp; capacity = len; @@ -1441,9 +1439,9 @@ UnicodeSet& UnicodeSet::compact() { // else what the heck happened?! We allocated less memory! // Oh well. We'll keep our original array. } - if (strings != nullptr && strings->isEmpty()) { - delete strings; - strings = nullptr; + if (strings_ != nullptr && strings_->isEmpty()) { + delete strings_; + strings_ = nullptr; } return *this; } @@ -1492,8 +1490,8 @@ UnicodeSet::UnicodeSet(const uint16_t data[], int32_t dataLen, ESerialization se } // copy smp for(i=bmpLength;i(data[headerSize + bmpLength + (i - bmpLength) * 2 + 0]) << 16) + + static_cast(data[headerSize + bmpLength + (i - bmpLength) * 2 + 1]); #ifdef DEBUG_SERIALIZE printf("<<32@%d+[%d] %lX\n", headerSize+bmpLength+i, i, list[i]); #endif @@ -1568,10 +1566,10 @@ int32_t UnicodeSet::serialize(uint16_t *dest, int32_t destCapacity, UErrorCode& #ifdef DEBUG_SERIALIZE printf("writeHdr\n"); #endif - *dest=(uint16_t)length; + *dest = static_cast(length); if (length>bmpLength) { *dest|=0x8000; - *++dest=(uint16_t)bmpLength; + *++dest = static_cast(bmpLength); } ++dest; @@ -1581,7 +1579,7 @@ int32_t UnicodeSet::serialize(uint16_t *dest, int32_t destCapacity, UErrorCode& #ifdef DEBUG_SERIALIZE printf("writebmp: %x\n", (int)*p); #endif - *dest++=(uint16_t)*p++; + *dest++ = static_cast(*p++); } /* write the supplementary part of the array */ @@ -1589,8 +1587,8 @@ int32_t UnicodeSet::serialize(uint16_t *dest, int32_t destCapacity, UErrorCode& #ifdef DEBUG_SERIALIZE printf("write32: %x\n", (int)*p); #endif - *dest++=(uint16_t)(*p>>16); - *dest++=(uint16_t)*p++; + *dest++ = static_cast(*p >> 16); + *dest++ = static_cast(*p++); } } else { ec=U_BUFFER_OVERFLOW_ERROR; @@ -1609,15 +1607,15 @@ UBool UnicodeSet::allocateStrings(UErrorCode &status) { if (U_FAILURE(status)) { return false; } - strings = new UVector(uprv_deleteUObject, + strings_ = new UVector(uprv_deleteUObject, uhash_compareUnicodeString, 1, status); - if (strings == nullptr) { // Check for memory allocation error. + if (strings_ == nullptr) { // Check for memory allocation error. status = U_MEMORY_ALLOCATION_ERROR; return false; } if (U_FAILURE(status)) { - delete strings; - strings = nullptr; + delete strings_; + strings_ = nullptr; return false; } return true; @@ -1646,7 +1644,7 @@ bool UnicodeSet::ensureCapacity(int32_t newLen) { return true; } int32_t newCapacity = nextCapacity(newLen); - UChar32* temp = (UChar32*) uprv_malloc(newCapacity * sizeof(UChar32)); + UChar32* temp = static_cast(uprv_malloc(newCapacity * sizeof(UChar32))); if (temp == nullptr) { setToBogus(); // set the object to bogus state if an OOM failure occurred. return false; @@ -1669,7 +1667,7 @@ bool UnicodeSet::ensureBufferCapacity(int32_t newLen) { return true; } int32_t newCapacity = nextCapacity(newLen); - UChar32* temp = (UChar32*) uprv_malloc(newCapacity * sizeof(UChar32)); + UChar32* temp = static_cast(uprv_malloc(newCapacity * sizeof(UChar32))); if (temp == nullptr) { setToBogus(); return false; @@ -2133,11 +2131,11 @@ UnicodeString& UnicodeSet::_generatePattern(UnicodeString& result, } } - if (strings != nullptr) { - for (int32_t i = 0; isize(); ++i) { + if (strings_ != nullptr) { + for (int32_t i = 0; isize(); ++i) { result.append(u'{'); _appendToPat(result, - *(const UnicodeString*) strings->elementAt(i), + *static_cast(strings_->elementAt(i)), escapeUnprintable); result.append(u'}'); } @@ -2161,7 +2159,7 @@ void UnicodeSet::releasePattern() { */ void UnicodeSet::setPattern(const char16_t *newPat, int32_t newPatLen) { releasePattern(); - pat = (char16_t *)uprv_malloc((newPatLen + 1) * sizeof(char16_t)); + pat = static_cast(uprv_malloc((newPatLen + 1) * sizeof(char16_t))); if (pat) { patLen = newPatLen; u_memcpy(pat, newPat, patLen); @@ -2177,7 +2175,7 @@ UnicodeSet *UnicodeSet::freeze() { // Optimize contains() and span() and similar functions. if (hasStrings()) { - stringSpan = new UnicodeSetStringSpan(*this, *strings, UnicodeSetStringSpan::ALL); + stringSpan = new UnicodeSetStringSpan(*this, *strings_, UnicodeSetStringSpan::ALL); if (stringSpan == nullptr) { setToBogus(); return this; @@ -2204,7 +2202,7 @@ UnicodeSet *UnicodeSet::freeze() { int32_t UnicodeSet::span(const char16_t *s, int32_t length, USetSpanCondition spanCondition) const { if(length>0 && bmpSet!=nullptr) { - return (int32_t)(bmpSet->span(s, s+length, spanCondition)-s); + return static_cast(bmpSet->span(s, s + length, spanCondition) - s); } if(length<0) { length=u_strlen(s); @@ -2218,7 +2216,7 @@ int32_t UnicodeSet::span(const char16_t *s, int32_t length, USetSpanCondition sp uint32_t which= spanCondition==USET_SPAN_NOT_CONTAINED ? UnicodeSetStringSpan::FWD_UTF16_NOT_CONTAINED : UnicodeSetStringSpan::FWD_UTF16_CONTAINED; - UnicodeSetStringSpan strSpan(*this, *strings, which); + UnicodeSetStringSpan strSpan(*this, *strings_, which); if(strSpan.needsStringSpanUTF16()) { return strSpan.span(s, length, spanCondition); } @@ -2241,7 +2239,7 @@ int32_t UnicodeSet::span(const char16_t *s, int32_t length, USetSpanCondition sp int32_t UnicodeSet::spanBack(const char16_t *s, int32_t length, USetSpanCondition spanCondition) const { if(length>0 && bmpSet!=nullptr) { - return (int32_t)(bmpSet->spanBack(s, s+length, spanCondition)-s); + return static_cast(bmpSet->spanBack(s, s + length, spanCondition) - s); } if(length<0) { length=u_strlen(s); @@ -2255,7 +2253,7 @@ int32_t UnicodeSet::spanBack(const char16_t *s, int32_t length, USetSpanConditio uint32_t which= spanCondition==USET_SPAN_NOT_CONTAINED ? UnicodeSetStringSpan::BACK_UTF16_NOT_CONTAINED : UnicodeSetStringSpan::BACK_UTF16_CONTAINED; - UnicodeSetStringSpan strSpan(*this, *strings, which); + UnicodeSetStringSpan strSpan(*this, *strings_, which); if(strSpan.needsStringSpanUTF16()) { return strSpan.spanBack(s, length, spanCondition); } @@ -2278,24 +2276,24 @@ int32_t UnicodeSet::spanBack(const char16_t *s, int32_t length, USetSpanConditio int32_t UnicodeSet::spanUTF8(const char *s, int32_t length, USetSpanCondition spanCondition) const { if(length>0 && bmpSet!=nullptr) { - const uint8_t *s0=(const uint8_t *)s; - return (int32_t)(bmpSet->spanUTF8(s0, length, spanCondition)-s0); + const uint8_t* s0 = reinterpret_cast(s); + return static_cast(bmpSet->spanUTF8(s0, length, spanCondition) - s0); } if(length<0) { - length=(int32_t)uprv_strlen(s); + length = static_cast(uprv_strlen(s)); } if(length==0) { return 0; } if(stringSpan!=nullptr) { - return stringSpan->spanUTF8((const uint8_t *)s, length, spanCondition); + return stringSpan->spanUTF8(reinterpret_cast(s), length, spanCondition); } else if(hasStrings()) { uint32_t which= spanCondition==USET_SPAN_NOT_CONTAINED ? UnicodeSetStringSpan::FWD_UTF8_NOT_CONTAINED : UnicodeSetStringSpan::FWD_UTF8_CONTAINED; - UnicodeSetStringSpan strSpan(*this, *strings, which); + UnicodeSetStringSpan strSpan(*this, *strings_, which); if(strSpan.needsStringSpanUTF8()) { - return strSpan.spanUTF8((const uint8_t *)s, length, spanCondition); + return strSpan.spanUTF8(reinterpret_cast(s), length, spanCondition); } } @@ -2316,24 +2314,24 @@ int32_t UnicodeSet::spanUTF8(const char *s, int32_t length, USetSpanCondition sp int32_t UnicodeSet::spanBackUTF8(const char *s, int32_t length, USetSpanCondition spanCondition) const { if(length>0 && bmpSet!=nullptr) { - const uint8_t *s0=(const uint8_t *)s; + const uint8_t* s0 = reinterpret_cast(s); return bmpSet->spanBackUTF8(s0, length, spanCondition); } if(length<0) { - length=(int32_t)uprv_strlen(s); + length = static_cast(uprv_strlen(s)); } if(length==0) { return 0; } if(stringSpan!=nullptr) { - return stringSpan->spanBackUTF8((const uint8_t *)s, length, spanCondition); + return stringSpan->spanBackUTF8(reinterpret_cast(s), length, spanCondition); } else if(hasStrings()) { uint32_t which= spanCondition==USET_SPAN_NOT_CONTAINED ? UnicodeSetStringSpan::BACK_UTF8_NOT_CONTAINED : UnicodeSetStringSpan::BACK_UTF8_CONTAINED; - UnicodeSetStringSpan strSpan(*this, *strings, which); + UnicodeSetStringSpan strSpan(*this, *strings_, which); if(strSpan.needsStringSpanUTF8()) { - return strSpan.spanBackUTF8((const uint8_t *)s, length, spanCondition); + return strSpan.spanBackUTF8(reinterpret_cast(s), length, spanCondition); } } diff --git a/thirdparty/icu4c/common/uniset_closure.cpp b/thirdparty/icu4c/common/uniset_closure.cpp index 173a5cbaaef6..ae777c5facdf 100644 --- a/thirdparty/icu4c/common/uniset_closure.cpp +++ b/thirdparty/icu4c/common/uniset_closure.cpp @@ -116,17 +116,17 @@ UnicodeSet& UnicodeSet::applyPattern(const UnicodeString& pattern, // Does not use uset.h to reduce code dependencies static void U_CALLCONV _set_add(USet *set, UChar32 c) { - ((UnicodeSet *)set)->add(c); + reinterpret_cast(set)->add(c); } static void U_CALLCONV _set_addRange(USet *set, UChar32 start, UChar32 end) { - ((UnicodeSet *)set)->add(start, end); + reinterpret_cast(set)->add(start, end); } static void U_CALLCONV _set_addString(USet *set, const char16_t *str, int32_t length) { - ((UnicodeSet *)set)->add(UnicodeString((UBool)(length<0), str, length)); + reinterpret_cast(set)->add(UnicodeString(static_cast(length < 0), str, length)); } //---------------------------------------------------------------- @@ -143,7 +143,7 @@ addCaseMapping(UnicodeSet &set, int32_t result, const char16_t *full, UnicodeStr set.add(result); } else { // add a string case mapping from full with length result - str.setTo((UBool)false, full, result); + str.setTo(static_cast(false), full, result); set.add(str); } } @@ -242,7 +242,7 @@ void UnicodeSet::closeOverCaseInsensitive(bool simple) { // therefore, start with no strings and add only those needed. // Do this before processing code points, because they may add strings. if (!simple && foldSet.hasStrings()) { - foldSet.strings->removeAllElements(); + foldSet.strings_->removeAllElements(); } USetAdder sa = { @@ -276,8 +276,8 @@ void UnicodeSet::closeOverCaseInsensitive(bool simple) { } if (hasStrings()) { UnicodeString str; - for (int32_t j=0; jsize(); ++j) { - const UnicodeString *pStr = (const UnicodeString *) strings->elementAt(j); + for (int32_t j=0; jsize(); ++j) { + const UnicodeString* pStr = static_cast(strings_->elementAt(j)); if (simple) { if (scfString(*pStr, str)) { foldSet.remove(*pStr).add(str); @@ -334,8 +334,8 @@ void UnicodeSet::closeOverAddCaseMappings() { BreakIterator *bi = BreakIterator::createWordInstance(root, status); if (U_SUCCESS(status)) { #endif - for (int32_t j=0; jsize(); ++j) { - const UnicodeString *pStr = (const UnicodeString *) strings->elementAt(j); + for (int32_t j=0; jsize(); ++j) { + const UnicodeString* pStr = static_cast(strings_->elementAt(j)); (str = *pStr).toLower(root); foldSet.add(str); #if !UCONFIG_NO_BREAK_ITERATION diff --git a/thirdparty/icu4c/common/uniset_props.cpp b/thirdparty/icu4c/common/uniset_props.cpp index e6f880c9f261..532b17f5063f 100644 --- a/thirdparty/icu4c/common/uniset_props.cpp +++ b/thirdparty/icu4c/common/uniset_props.cpp @@ -47,14 +47,17 @@ U_NAMESPACE_USE +namespace { + // Special property set IDs -static const char ANY[] = "ANY"; // [\u0000-\U0010FFFF] -static const char ASCII[] = "ASCII"; // [\u0000-\u007F] -static const char ASSIGNED[] = "Assigned"; // [:^Cn:] +constexpr char ANY[] = "ANY"; // [\u0000-\U0010FFFF] +constexpr char ASCII[] = "ASCII"; // [\u0000-\u007F] +constexpr char ASSIGNED[] = "Assigned"; // [:^Cn:] // Unicode name property alias -#define NAME_PROP "na" -#define NAME_PROP_LENGTH 2 +constexpr char16_t NAME_PROP[] = u"na"; + +} // namespace // Cached sets ------------------------------------------------------------- *** @@ -83,7 +86,7 @@ namespace { // Cache some sets for other services -------------------------------------- *** void U_CALLCONV createUni32Set(UErrorCode &errorCode) { U_ASSERT(uni32Singleton == nullptr); - uni32Singleton = new UnicodeSet(UNICODE_STRING_SIMPLE("[:age=3.2:]"), errorCode); + uni32Singleton = new UnicodeSet(UnicodeString(u"[:age=3.2:]"), errorCode); if(uni32Singleton==nullptr) { errorCode=U_MEMORY_ALLOCATION_ERROR; } else { @@ -209,7 +212,7 @@ UnicodeSet::applyPatternIgnoreSpace(const UnicodeString& pattern, */ UBool UnicodeSet::resemblesPattern(const UnicodeString& pattern, int32_t pos) { return ((pos+1) < pattern.length() && - pattern.charAt(pos) == (char16_t)91/*[*/) || + pattern.charAt(pos) == static_cast(91)/*[*/) || resemblesPropertyPattern(pattern, pos); } @@ -471,7 +474,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, case u'-': if (op == 0) { if (lastItem != 0) { - op = (char16_t) c; + op = static_cast(c); continue; } else { // Treat final trailing '-' as a literal @@ -490,7 +493,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, return; case u'&': if (lastItem == 2 && op == 0) { - op = (char16_t) c; + op = static_cast(c); continue; } // syntaxError(chars, "'&' not after set"); @@ -561,7 +564,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, } add(U_ETHER); usePat = true; - patLocal.append((char16_t) SymbolTable::SYMBOL_REF); + patLocal.append(static_cast(SymbolTable::SYMBOL_REF)); patLocal.append(u']'); mode = 2; continue; @@ -658,11 +661,11 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, namespace { UBool numericValueFilter(UChar32 ch, void* context) { - return u_getNumericValue(ch) == *(double*)context; + return u_getNumericValue(ch) == *static_cast(context); } UBool generalCategoryMaskFilter(UChar32 ch, void* context) { - int32_t value = *(int32_t*)context; + int32_t value = *static_cast(context); return (U_GET_GC_MASK((UChar32) ch) & value) != 0; } @@ -670,7 +673,7 @@ UBool versionFilter(UChar32 ch, void* context) { static const UVersionInfo none = { 0, 0, 0, 0 }; UVersionInfo v; u_charAge(ch, v); - UVersionInfo* version = (UVersionInfo*)context; + UVersionInfo* version = static_cast(context); return uprv_memcmp(&v, &none, sizeof(v)) > 0 && uprv_memcmp(&v, version, sizeof(v)) <= 0; } @@ -680,16 +683,16 @@ typedef struct { } IntPropertyContext; UBool intPropertyFilter(UChar32 ch, void* context) { - IntPropertyContext* c = (IntPropertyContext*)context; - return u_getIntPropertyValue((UChar32) ch, c->prop) == c->value; + IntPropertyContext* c = static_cast(context); + return u_getIntPropertyValue(ch, c->prop) == c->value; } UBool scriptExtensionsFilter(UChar32 ch, void* context) { - return uscript_hasScript(ch, *(UScriptCode*)context); + return uscript_hasScript(ch, *static_cast(context)); } UBool idTypeFilter(UChar32 ch, void* context) { - return u_hasIDType(ch, *(UIdentifierType*)context); + return u_hasIDType(ch, *static_cast(context)); } } // namespace @@ -738,7 +741,7 @@ void UnicodeSet::applyFilter(UnicodeSet::Filter filter, } } if (startHasProperty >= 0) { - add((UChar32)startHasProperty, (UChar32)0x10FFFF); + add(startHasProperty, static_cast(0x10FFFF)); } if (isBogus() && U_SUCCESS(status)) { // We likely ran out of memory. AHHH! @@ -784,11 +787,11 @@ UnicodeSet::applyIntPropertyValue(UProperty prop, int32_t value, UErrorCode& ec) applyFilter(generalCategoryMaskFilter, &value, inclusions, ec); } else if (prop == UCHAR_SCRIPT_EXTENSIONS) { const UnicodeSet* inclusions = CharacterProperties::getInclusionsForProperty(prop, ec); - UScriptCode script = (UScriptCode)value; + UScriptCode script = static_cast(value); applyFilter(scriptExtensionsFilter, &script, inclusions, ec); } else if (prop == UCHAR_IDENTIFIER_TYPE) { const UnicodeSet* inclusions = CharacterProperties::getInclusionsForProperty(prop, ec); - UIdentifierType idType = (UIdentifierType)value; + UIdentifierType idType = static_cast(value); applyFilter(idTypeFilter, &idType, inclusions, ec); } else if (0 <= prop && prop < UCHAR_BINARY_LIMIT) { if (value == 0 || value == 1) { @@ -862,7 +865,7 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop, // We catch NaN here because comparing it with both 0 and 255 will be false // (as are all comparisons with NaN). if (*end != 0 || !(0 <= val && val <= 255) || - (v = (int32_t)val) != val) { + (v = static_cast(val)) != val) { // non-integral value or outside 0..255, or trailing junk FAIL(ec); } @@ -1105,7 +1108,7 @@ UnicodeSet& UnicodeSet::applyPropertyPattern(const UnicodeString& pattern, // support args of (UProperty, char*) then we can remove // NAME_PROP and make this a little more efficient. valueName = propName; - propName = UnicodeString(NAME_PROP, NAME_PROP_LENGTH, US_INV); + propName = NAME_PROP; } } diff --git a/thirdparty/icu4c/common/unisetspan.cpp b/thirdparty/icu4c/common/unisetspan.cpp index b7256d8fd164..209f0a86b541 100644 --- a/thirdparty/icu4c/common/unisetspan.cpp +++ b/thirdparty/icu4c/common/unisetspan.cpp @@ -66,10 +66,10 @@ class OffsetList { // Only ever stack-allocated, does not need to inherit UMemo // Call exactly once if the list is to be used. void setMaxLength(int32_t maxLength) { - if(maxLength<=(int32_t)sizeof(staticList)) { - capacity=(int32_t)sizeof(staticList); + if (maxLength <= static_cast(sizeof(staticList))) { + capacity = static_cast(sizeof(staticList)); } else { - UBool *l=(UBool *)uprv_malloc(maxLength); + UBool* l = static_cast(uprv_malloc(maxLength)); if(l!=nullptr) { list=l; capacity=maxLength; @@ -84,7 +84,7 @@ class OffsetList { // Only ever stack-allocated, does not need to inherit UMemo } UBool isEmpty() const { - return (UBool)(length==0); + return length == 0; } // Reduce all stored offsets by delta, used when the current position @@ -183,7 +183,7 @@ static int32_t appendUTF8(const char16_t *s, int32_t length, uint8_t *t, int32_t capacity) { UErrorCode errorCode=U_ZERO_ERROR; int32_t length8=0; - u_strToUTF8((char *)t, capacity, &length8, s, length, &errorCode); + u_strToUTF8(reinterpret_cast(t), capacity, &length8, s, length, &errorCode); if(U_SUCCESS(errorCode)) { return length8; } else { @@ -196,7 +196,7 @@ appendUTF8(const char16_t *s, int32_t length, uint8_t *t, int32_t capacity) { static inline uint8_t makeSpanLengthByte(int32_t spanLength) { // 0xfe==UnicodeSetStringSpan::LONG_SPAN - return spanLength<0xfe ? (uint8_t)spanLength : (uint8_t)0xfe; + return spanLength < 0xfe ? static_cast(spanLength) : static_cast(0xfe); } // Construct for all variants of span(), or only for any one variant. @@ -208,7 +208,7 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSet &set, utf8Lengths(nullptr), spanLengths(nullptr), utf8(nullptr), utf8Length(0), maxLength16(0), maxLength8(0), - all((UBool)(which==ALL)) { + all(static_cast(which == ALL)) { spanSet.retainAll(set); if(which&NOT_CONTAINED) { // Default to the same sets. @@ -228,7 +228,7 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSet &set, int32_t i, spanLength; UBool someRelevant=false; for(i=0; i(strings.elementAt(i)); const char16_t *s16=string.getBuffer(); int32_t length16=string.length(); if (length16==0) { @@ -279,10 +279,10 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSet &set, allocSize+=stringsLength*4+utf8Length; } } - if(allocSize<=(int32_t)sizeof(staticLengths)) { + if (allocSize <= static_cast(sizeof(staticLengths))) { utf8Lengths=staticLengths; } else { - utf8Lengths=(int32_t *)uprv_malloc(allocSize); + utf8Lengths = static_cast(uprv_malloc(allocSize)); if(utf8Lengths==nullptr) { maxLength16=maxLength8=0; // Prevent usage by making needsStringSpanUTF16/8() return false. return; // Out of memory. @@ -291,7 +291,7 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSet &set, if(all) { // Store span lengths for all span() variants. - spanLengths=(uint8_t *)(utf8Lengths+stringsLength); + spanLengths = reinterpret_cast(utf8Lengths + stringsLength); spanBackLengths=spanLengths+stringsLength; spanUTF8Lengths=spanBackLengths+stringsLength; spanBackUTF8Lengths=spanUTF8Lengths+stringsLength; @@ -299,10 +299,10 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSet &set, } else { // Store span lengths for only one span() variant. if(which&UTF8) { - spanLengths=(uint8_t *)(utf8Lengths+stringsLength); + spanLengths = reinterpret_cast(utf8Lengths + stringsLength); utf8=spanLengths+stringsLength; } else { - spanLengths=(uint8_t *)utf8Lengths; + spanLengths = reinterpret_cast(utf8Lengths); } spanBackLengths=spanUTF8Lengths=spanBackUTF8Lengths=spanLengths; } @@ -311,7 +311,7 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSet &set, int32_t utf8Count=0; // Count UTF-8 bytes written so far. for(i=0; i(strings.elementAt(i)); const char16_t *s16=string.getBuffer(); int32_t length16=string.length(); spanLength=spanSet.span(s16, length16, USET_SPAN_CONTAINED); @@ -334,15 +334,15 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSet &set, int32_t length8=appendUTF8(s16, length16, s8, utf8Length-utf8Count); utf8Count+=utf8Lengths[i]=length8; if(length8==0) { // Irrelevant for UTF-8 because not representable in UTF-8. - spanUTF8Lengths[i]=spanBackUTF8Lengths[i]=(uint8_t)ALL_CP_CONTAINED; + spanUTF8Lengths[i] = spanBackUTF8Lengths[i] = static_cast(ALL_CP_CONTAINED); } else { // Relevant for UTF-8. if(which&CONTAINED) { if(which&FWD) { - spanLength=spanSet.spanUTF8((const char *)s8, length8, USET_SPAN_CONTAINED); + spanLength = spanSet.spanUTF8(reinterpret_cast(s8), length8, USET_SPAN_CONTAINED); spanUTF8Lengths[i]=makeSpanLengthByte(spanLength); } if(which&BACK) { - spanLength=length8-spanSet.spanBackUTF8((const char *)s8, length8, USET_SPAN_CONTAINED); + spanLength = length8 - spanSet.spanBackUTF8(reinterpret_cast(s8), length8, USET_SPAN_CONTAINED); spanBackUTF8Lengths[i]=makeSpanLengthByte(spanLength); } } else /* not CONTAINED, not all, but NOT_CONTAINED */ { @@ -378,10 +378,10 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSet &set, if(all) { spanLengths[i]=spanBackLengths[i]= spanUTF8Lengths[i]=spanBackUTF8Lengths[i]= - (uint8_t)ALL_CP_CONTAINED; + static_cast(ALL_CP_CONTAINED); } else { // All spanXYZLengths pointers contain the same address. - spanLengths[i]=(uint8_t)ALL_CP_CONTAINED; + spanLengths[i] = static_cast(ALL_CP_CONTAINED); } } } @@ -410,17 +410,17 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSetStringSpan &otherStri // UTF-8 lengths, 4 sets of span lengths, UTF-8 strings. int32_t stringsLength=strings.size(); int32_t allocSize=stringsLength*(4+1+1+1+1)+utf8Length; - if(allocSize<=(int32_t)sizeof(staticLengths)) { + if (allocSize <= static_cast(sizeof(staticLengths))) { utf8Lengths=staticLengths; } else { - utf8Lengths=(int32_t *)uprv_malloc(allocSize); + utf8Lengths = static_cast(uprv_malloc(allocSize)); if(utf8Lengths==nullptr) { maxLength16=maxLength8=0; // Prevent usage by making needsStringSpanUTF16/8() return false. return; // Out of memory. } } - spanLengths=(uint8_t *)(utf8Lengths+stringsLength); + spanLengths = reinterpret_cast(utf8Lengths + stringsLength); utf8=spanLengths+stringsLength*4; uprv_memcpy(utf8Lengths, otherStringSpan.utf8Lengths, allocSize); } @@ -658,7 +658,7 @@ int32_t UnicodeSetStringSpan::span(const char16_t *s, int32_t length, USetSpanCo if(overlap==ALL_CP_CONTAINED) { continue; // Irrelevant string. (Also the empty string.) } - const UnicodeString &string=*(const UnicodeString *)strings.elementAt(i); + const UnicodeString& string = *static_cast(strings.elementAt(i)); const char16_t *s16=string.getBuffer(); int32_t length16=string.length(); U_ASSERT(length>0); @@ -698,7 +698,7 @@ int32_t UnicodeSetStringSpan::span(const char16_t *s, int32_t length, USetSpanCo // For longest match, we do need to try to match even an all-contained string // to find the match from the earliest start. - const UnicodeString &string=*(const UnicodeString *)strings.elementAt(i); + const UnicodeString& string = *static_cast(strings.elementAt(i)); const char16_t *s16=string.getBuffer(); int32_t length16=string.length(); if (length16==0) { @@ -826,7 +826,7 @@ int32_t UnicodeSetStringSpan::spanBack(const char16_t *s, int32_t length, USetSp if(overlap==ALL_CP_CONTAINED) { continue; // Irrelevant string. (Also the empty string.) } - const UnicodeString &string=*(const UnicodeString *)strings.elementAt(i); + const UnicodeString& string = *static_cast(strings.elementAt(i)); const char16_t *s16=string.getBuffer(); int32_t length16=string.length(); U_ASSERT(length>0); @@ -868,7 +868,7 @@ int32_t UnicodeSetStringSpan::spanBack(const char16_t *s, int32_t length, USetSp // For longest match, we do need to try to match even an all-contained string // to find the match from the latest end. - const UnicodeString &string=*(const UnicodeString *)strings.elementAt(i); + const UnicodeString& string = *static_cast(strings.elementAt(i)); const char16_t *s16=string.getBuffer(); int32_t length16=string.length(); if (length16==0) { @@ -968,7 +968,7 @@ int32_t UnicodeSetStringSpan::spanUTF8(const uint8_t *s, int32_t length, USetSpa if(spanCondition==USET_SPAN_NOT_CONTAINED) { return spanNotUTF8(s, length); } - int32_t spanLength=spanSet.spanUTF8((const char *)s, length, USET_SPAN_CONTAINED); + int32_t spanLength = spanSet.spanUTF8(reinterpret_cast(s), length, USET_SPAN_CONTAINED); if(spanLength==length) { return length; } @@ -1104,7 +1104,7 @@ int32_t UnicodeSetStringSpan::spanUTF8(const uint8_t *s, int32_t length, USetSpa if(offsets.isEmpty()) { // No more strings matched after a previous string match. // Try another code point span from after the last string match. - spanLength=spanSet.spanUTF8((const char *)s+pos, rest, USET_SPAN_CONTAINED); + spanLength = spanSet.spanUTF8(reinterpret_cast(s) + pos, rest, USET_SPAN_CONTAINED); if( spanLength==rest || // Reached the end of the string, or spanLength==0 // neither strings nor span progressed. ) { @@ -1145,7 +1145,7 @@ int32_t UnicodeSetStringSpan::spanBackUTF8(const uint8_t *s, int32_t length, USe if(spanCondition==USET_SPAN_NOT_CONTAINED) { return spanNotBackUTF8(s, length); } - int32_t pos=spanSet.spanBackUTF8((const char *)s, length, USET_SPAN_CONTAINED); + int32_t pos = spanSet.spanBackUTF8(reinterpret_cast(s), length, USET_SPAN_CONTAINED); if(pos==0) { return 0; } @@ -1284,7 +1284,7 @@ int32_t UnicodeSetStringSpan::spanBackUTF8(const uint8_t *s, int32_t length, USe // No more strings matched before a previous string match. // Try another code point span from before the last string match. int32_t oldPos=pos; - pos=spanSet.spanBackUTF8((const char *)s, oldPos, USET_SPAN_CONTAINED); + pos = spanSet.spanBackUTF8(reinterpret_cast(s), oldPos, USET_SPAN_CONTAINED); spanLength=oldPos-pos; if( pos==0 || // Reached the start of the string, or spanLength==0 // neither strings nor span progressed. @@ -1371,7 +1371,7 @@ int32_t UnicodeSetStringSpan::spanNot(const char16_t *s, int32_t length) const { if(spanLengths[i]==ALL_CP_CONTAINED) { continue; // Irrelevant string. (Also the empty string.) } - const UnicodeString &string=*(const UnicodeString *)strings.elementAt(i); + const UnicodeString& string = *static_cast(strings.elementAt(i)); const char16_t *s16=string.getBuffer(); int32_t length16=string.length(); U_ASSERT(length>0); @@ -1415,7 +1415,7 @@ int32_t UnicodeSetStringSpan::spanNotBack(const char16_t *s, int32_t length) con if(spanLengths[i]==ALL_CP_CONTAINED) { continue; // Irrelevant string. (Also the empty string.) } - const UnicodeString &string=*(const UnicodeString *)strings.elementAt(i); + const UnicodeString& string = *static_cast(strings.elementAt(i)); const char16_t *s16=string.getBuffer(); int32_t length16=string.length(); U_ASSERT(length>0); @@ -1442,7 +1442,7 @@ int32_t UnicodeSetStringSpan::spanNotUTF8(const uint8_t *s, int32_t length) cons do { // Span until we find a code point from the set, // or a code point that starts or ends some string. - i=pSpanNotSet->spanUTF8((const char *)s+pos, rest, USET_SPAN_NOT_CONTAINED); + i = pSpanNotSet->spanUTF8(reinterpret_cast(s) + pos, rest, USET_SPAN_NOT_CONTAINED); if(i==rest) { return length; // Reached the end of the string. } @@ -1487,7 +1487,7 @@ int32_t UnicodeSetStringSpan::spanNotBackUTF8(const uint8_t *s, int32_t length) do { // Span until we find a code point from the set, // or a code point that starts or ends some string. - pos=pSpanNotSet->spanBackUTF8((const char *)s, pos, USET_SPAN_NOT_CONTAINED); + pos = pSpanNotSet->spanBackUTF8(reinterpret_cast(s), pos, USET_SPAN_NOT_CONTAINED); if(pos==0) { return 0; // Reached the start of the string. } diff --git a/thirdparty/icu4c/common/unisetspan.h b/thirdparty/icu4c/common/unisetspan.h index f1dc8e6f743a..482782ebf75e 100644 --- a/thirdparty/icu4c/common/unisetspan.h +++ b/thirdparty/icu4c/common/unisetspan.h @@ -141,11 +141,11 @@ class UnicodeSetStringSpan : public UMemory { }; UBool UnicodeSetStringSpan::needsStringSpanUTF16() { - return (UBool)(maxLength16!=0); + return maxLength16 != 0; } UBool UnicodeSetStringSpan::needsStringSpanUTF8() { - return (UBool)(maxLength8!=0); + return maxLength8 != 0; } UBool UnicodeSetStringSpan::contains(UChar32 c) const { diff --git a/thirdparty/icu4c/common/unistr.cpp b/thirdparty/icu4c/common/unistr.cpp index ce81138c2ca3..a720245772e6 100644 --- a/thirdparty/icu4c/common/unistr.cpp +++ b/thirdparty/icu4c/common/unistr.cpp @@ -20,6 +20,8 @@ ****************************************************************************** */ +#include + #include "unicode/utypes.h" #include "unicode/appendable.h" #include "unicode/putil.h" @@ -107,12 +109,34 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(UnicodeString) UnicodeString U_EXPORT2 operator+ (const UnicodeString &s1, const UnicodeString &s2) { - return - UnicodeString(s1.length()+s2.length()+1, (UChar32)0, 0). - append(s1). - append(s2); + int32_t sumLengths; + if (uprv_add32_overflow(s1.length(), s2.length(), &sumLengths)) { + UnicodeString bogus; + bogus.setToBogus(); + return bogus; + } + if (sumLengths != INT32_MAX) { + ++sumLengths; // space for a terminating NUL if we need one + } + return UnicodeString(sumLengths, static_cast(0), 0).append(s1).append(s2); +} + +U_COMMON_API UnicodeString U_EXPORT2 +unistr_internalConcat(const UnicodeString &s1, std::u16string_view s2) { + int32_t sumLengths; + if (s2.length() > INT32_MAX || + uprv_add32_overflow(s1.length(), static_cast(s2.length()), &sumLengths)) { + UnicodeString bogus; + bogus.setToBogus(); + return bogus; + } + if (sumLengths != INT32_MAX) { + ++sumLengths; // space for a terminating NUL if we need one + } + return UnicodeString(sumLengths, static_cast(0), 0).append(s1).append(s2); } + //======================================== // Reference Counting functions, put at top of file so that optimizing compilers // have a chance to automatically inline. @@ -120,23 +144,23 @@ operator+ (const UnicodeString &s1, const UnicodeString &s2) { void UnicodeString::addRef() { - umtx_atomic_inc((u_atomic_int32_t *)fUnion.fFields.fArray - 1); + umtx_atomic_inc(reinterpret_cast(fUnion.fFields.fArray) - 1); } int32_t UnicodeString::removeRef() { - return umtx_atomic_dec((u_atomic_int32_t *)fUnion.fFields.fArray - 1); + return umtx_atomic_dec(reinterpret_cast(fUnion.fFields.fArray) - 1); } int32_t UnicodeString::refCount() const { - return umtx_loadAcquire(*((u_atomic_int32_t *)fUnion.fFields.fArray - 1)); + return umtx_loadAcquire(*(reinterpret_cast(fUnion.fFields.fArray) - 1)); } void UnicodeString::releaseArray() { if((fUnion.fFields.fLengthAndFlags & kRefCounted) && removeRef() == 0) { - uprv_free((int32_t *)fUnion.fFields.fArray - 1); + uprv_free(reinterpret_cast(fUnion.fFields.fArray) - 1); } } @@ -150,7 +174,7 @@ UnicodeString::releaseArray() { UnicodeString::UnicodeString(int32_t capacity, UChar32 c, int32_t count) { fUnion.fFields.fLengthAndFlags = 0; - if(count <= 0 || (uint32_t)c > 0x10ffff) { + if (count <= 0 || static_cast(c) > 0x10ffff) { // just allocate and do not do anything else allocate(capacity); } else if(c <= 0xffff) { @@ -160,7 +184,7 @@ UnicodeString::UnicodeString(int32_t capacity, UChar32 c, int32_t count) { } if(allocate(capacity)) { char16_t *array = getArrayStart(); - char16_t unit = (char16_t)c; + char16_t unit = static_cast(c); for(int32_t i = 0; i < length; ++i) { array[i] = unit; } @@ -206,11 +230,6 @@ UnicodeString::UnicodeString(UChar32 ch) { } } -UnicodeString::UnicodeString(const char16_t *text) { - fUnion.fFields.fLengthAndFlags = kShortString; - doAppend(text, 0, -1); -} - UnicodeString::UnicodeString(const char16_t *text, int32_t textLength) { fUnion.fFields.fLengthAndFlags = kShortString; @@ -256,7 +275,7 @@ UnicodeString::UnicodeString(char16_t *buff, while(p != limit && *p != 0) { ++p; } - buffLength = (int32_t)(p - buff); + buffLength = static_cast(p - buff); } setArray(buff, buffLength, buffCapacity); } @@ -268,7 +287,7 @@ UnicodeString::UnicodeString(const char *src, int32_t length, EInvariant) { // treat as an empty string } else { if(length<0) { - length=(int32_t)uprv_strlen(src); + length = static_cast(uprv_strlen(src)); } if(cloneArrayIfNeeded(length, length, false)) { u_charsToUChars(src, getArrayStart(), length); @@ -279,6 +298,26 @@ UnicodeString::UnicodeString(const char *src, int32_t length, EInvariant) { } } +UnicodeString UnicodeString::readOnlyAliasFromU16StringView(std::u16string_view text) { + UnicodeString result; + if (text.length() <= INT32_MAX) { + result.setTo(false, text.data(), static_cast(text.length())); + } else { + result.setToBogus(); + } + return result; +} + +UnicodeString UnicodeString::readOnlyAliasFromUnicodeString(const UnicodeString &text) { + UnicodeString result; + if (text.isBogus()) { + result.setToBogus(); + } else { + result.setTo(false, text.getBuffer(), text.length()); + } + return result; +} + #if U_CHARSET_IS_UTF8 UnicodeString::UnicodeString(const char *codepageData) { @@ -295,7 +334,7 @@ UnicodeString::UnicodeString(const char *codepageData, int32_t dataLength) { return; } if(dataLength == -1) { - dataLength = (int32_t)uprv_strlen(codepageData); + dataLength = static_cast(uprv_strlen(codepageData)); } setToUTF8(StringPiece(codepageData, dataLength)); } @@ -376,18 +415,18 @@ UnicodeString::allocate(int32_t capacity) { ++capacity; // for the NUL // Switch to size_t which is unsigned so that we can allocate up to 4GB. // Reference counter + UChars. - size_t numBytes = sizeof(int32_t) + (size_t)capacity * U_SIZEOF_UCHAR; + size_t numBytes = sizeof(int32_t) + static_cast(capacity) * U_SIZEOF_UCHAR; // Round up to a multiple of 16. numBytes = (numBytes + 15) & ~15; - int32_t *array = (int32_t *) uprv_malloc(numBytes); + int32_t* array = static_cast(uprv_malloc(numBytes)); if(array != nullptr) { // set initial refCount and point behind the refCount *array++ = 1; numBytes -= sizeof(int32_t); // have fArray point to the first char16_t - fUnion.fFields.fArray = (char16_t *)array; - fUnion.fFields.fCapacity = (int32_t)(numBytes / U_SIZEOF_UCHAR); + fUnion.fFields.fArray = reinterpret_cast(array); + fUnion.fFields.fCapacity = static_cast(numBytes / U_SIZEOF_UCHAR); fUnion.fFields.fLengthAndFlags = kLongString; return true; } @@ -622,7 +661,7 @@ void UnicodeString::swap(UnicodeString &other) noexcept { //======================================== UnicodeString UnicodeString::unescape() const { - UnicodeString result(length(), (UChar32)0, (int32_t)0); // construct with capacity + UnicodeString result(length(), static_cast(0), static_cast(0)); // construct with capacity if (result.isBogus()) { return result; } @@ -656,10 +695,10 @@ UChar32 UnicodeString::unescapeAt(int32_t &offset) const { // Read-only implementation //======================================== UBool -UnicodeString::doEquals(const UnicodeString &text, int32_t len) const { - // Requires: this & text not bogus and have same lengths. +UnicodeString::doEquals(const char16_t *text, int32_t len) const { + // Requires: this not bogus and have same lengths. // Byte-wise comparison works for equality regardless of endianness. - return uprv_memcmp(getArrayStart(), text.getArrayStart(), len * U_SIZEOF_UCHAR) == 0; + return uprv_memcmp(getArrayStart(), text, len * U_SIZEOF_UCHAR) == 0; } UBool @@ -772,9 +811,9 @@ UnicodeString::doCompare( int32_t start, # else // little-endian: compare char16_t units do { - result = ((int32_t)*(chars++) - (int32_t)*(srcChars++)); + result = static_cast(*(chars++)) - static_cast(*(srcChars++)); if(result != 0) { - return (int8_t)(result >> 15 | 1); + return static_cast(result >> 15 | 1); } } while(--minLength > 0); # endif @@ -806,7 +845,7 @@ UnicodeString::doCompareCodePointOrder(int32_t start, int32_t diff = uprv_strCompare(getArrayStart() + start, length, (srcChars!=nullptr)?(srcChars + srcStart):nullptr, srcLength, false, true); /* translate the 32-bit result into an 8-bit one */ if(diff!=0) { - return (int8_t)(diff >> 15 | 1); + return static_cast(diff >> 15 | 1); } else { return 0; } @@ -831,7 +870,7 @@ UChar32 UnicodeString::char32At(int32_t offset) const { int32_t len = length(); - if((uint32_t)offset < (uint32_t)len) { + if (static_cast(offset) < static_cast(len)) { const char16_t *array = getArrayStart(); UChar32 c; U16_GET(array, 0, offset, len, c); @@ -843,7 +882,7 @@ UnicodeString::char32At(int32_t offset) const int32_t UnicodeString::getChar32Start(int32_t offset) const { - if((uint32_t)offset < (uint32_t)length()) { + if (static_cast(offset) < static_cast(length())) { const char16_t *array = getArrayStart(); U16_SET_CP_START(array, 0, offset); return offset; @@ -855,7 +894,7 @@ UnicodeString::getChar32Start(int32_t offset) const { int32_t UnicodeString::getChar32Limit(int32_t offset) const { int32_t len = length(); - if((uint32_t)offset < (uint32_t)len) { + if (static_cast(offset) < static_cast(len)) { const char16_t *array = getArrayStart(); U16_SET_CP_LIMIT(array, 0, offset, len); return offset; @@ -989,7 +1028,7 @@ UnicodeString::extract(int32_t start, int32_t len, if (/*dstSize < 0 || */(dstSize > 0 && target == nullptr)) { return 0; } - return toUTF8(start, len, target, dstSize <= 0x7fffffff ? (int32_t)dstSize : 0x7fffffff); + return toUTF8(start, len, target, dstSize <= 0x7fffffff ? static_cast(dstSize) : 0x7fffffff); } // else see unistr_cnv.cpp @@ -1013,7 +1052,7 @@ UnicodeString::toUTF8(ByteSink &sink) const { int32_t length16 = length(); if(length16 != 0) { char stackBuffer[1024]; - int32_t capacity = (int32_t)sizeof(stackBuffer); + int32_t capacity = static_cast(sizeof(stackBuffer)); UBool utf8IsOwned = false; char *utf8 = sink.GetAppendBuffer(length16 < capacity ? length16 : capacity, 3*length16, @@ -1027,7 +1066,7 @@ UnicodeString::toUTF8(ByteSink &sink) const { nullptr, // Don't care about number of substitutions. &errorCode); if(errorCode == U_BUFFER_OVERFLOW_ERROR) { - utf8 = (char *)uprv_malloc(length8); + utf8 = static_cast(uprv_malloc(length8)); if(utf8 != nullptr) { utf8IsOwned = true; errorCode = U_ZERO_ERROR; @@ -1089,7 +1128,7 @@ UnicodeString::indexOf(const char16_t *srcChars, if(match == nullptr) { return -1; } else { - return (int32_t)(match - array); + return static_cast(match - array); } } @@ -1107,7 +1146,7 @@ UnicodeString::doIndexOf(char16_t c, if(match == nullptr) { return -1; } else { - return (int32_t)(match - array); + return static_cast(match - array); } } @@ -1124,7 +1163,7 @@ UnicodeString::doIndexOf(UChar32 c, if(match == nullptr) { return -1; } else { - return (int32_t)(match - array); + return static_cast(match - array); } } @@ -1153,7 +1192,7 @@ UnicodeString::lastIndexOf(const char16_t *srcChars, if(match == nullptr) { return -1; } else { - return (int32_t)(match - array); + return static_cast(match - array); } } @@ -1175,7 +1214,7 @@ UnicodeString::doLastIndexOf(char16_t c, if(match == nullptr) { return -1; } else { - return (int32_t)(match - array); + return static_cast(match - array); } } @@ -1192,7 +1231,7 @@ UnicodeString::doLastIndexOf(UChar32 c, if(match == nullptr) { return -1; } else { - return (int32_t)(match - array); + return static_cast(match - array); } } @@ -1329,7 +1368,7 @@ UnicodeString::setTo(UBool isTerminated, textLength = u_strlen(text); } fUnion.fFields.fLengthAndFlags = kReadonlyAlias; - setArray((char16_t *)text, textLength, isTerminated ? textLength + 1 : textLength); + setArray(const_cast(text), textLength, isTerminated ? textLength + 1 : textLength); return *this; } @@ -1359,7 +1398,7 @@ UnicodeString::setTo(char16_t *buffer, while(p != limit && *p != 0) { ++p; } - buffLength = (int32_t)(p - buffer); + buffLength = static_cast(p - buffer); } releaseArray(); @@ -1574,6 +1613,18 @@ UnicodeString::doReplace(int32_t start, return *this; } +UnicodeString& +UnicodeString::doReplace(int32_t start, int32_t length, std::u16string_view src) { + if (!isWritable()) { + return *this; + } + if (src.length() > INT32_MAX) { + setToBogus(); + return *this; + } + return doReplace(start, length, src.data(), 0, static_cast(src.length())); +} + // Versions of doReplace() only for append() variants. // doReplace() and doAppend() optimize for different cases. @@ -1662,6 +1713,18 @@ UnicodeString::doAppend(const char16_t *srcChars, int32_t srcStart, int32_t srcL return *this; } +UnicodeString& +UnicodeString::doAppend(std::u16string_view src) { + if (!isWritable() || src.empty()) { + return *this; + } + if (src.length() > INT32_MAX) { + setToBogus(); + return *this; + } + return doAppend(src.data(), 0, static_cast(src.length())); +} + /** * Replaceable API */ @@ -1680,7 +1743,7 @@ UnicodeString::copy(int32_t start, int32_t limit, int32_t dest) { if (limit <= start) { return; // Nothing to do; avoid bogus malloc call } - char16_t* text = (char16_t*) uprv_malloc( sizeof(char16_t) * (limit - start) ); + char16_t* text = static_cast(uprv_malloc(sizeof(char16_t) * (limit - start))); // Check to make sure text is not null. if (text != nullptr) { extractBetween(start, limit, text, 0); @@ -1725,13 +1788,13 @@ UnicodeString::doReverse(int32_t start, int32_t length) { // Before the loop we know left=2. do { - hasSupplementary |= (UBool)U16_IS_LEAD(swap = *left); - hasSupplementary |= (UBool)U16_IS_LEAD(*left++ = *right); + hasSupplementary |= static_cast(U16_IS_LEAD(swap = *left)); + hasSupplementary |= static_cast(U16_IS_LEAD(*left++ = *right)); *right-- = swap; } while(left < right); // Make sure to test the middle code unit of an odd-length string. // Redundant if the length is even. - hasSupplementary |= (UBool)U16_IS_LEAD(*left); + hasSupplementary |= static_cast(U16_IS_LEAD(*left)); /* if there are supplementary code points in the reversed range, then re-swap their surrogates */ if(hasSupplementary) { @@ -1834,7 +1897,7 @@ UnicodeString::releaseBuffer(int32_t newLength) { while(p(p - array); } else if(newLength>capacity) { newLength=capacity; } @@ -1928,7 +1991,7 @@ UnicodeString::cloneArrayIfNeeded(int32_t newCapacity, // release the old array if(flags & kRefCounted) { // the array is refCounted; decrement and release if 0 - u_atomic_int32_t *pRefCount = ((u_atomic_int32_t *)oldArray - 1); + u_atomic_int32_t* pRefCount = reinterpret_cast(oldArray) - 1; if(umtx_atomic_dec(pRefCount) == 0) { if (pBufferToDelete == nullptr) { // Note: cast to (void *) is needed with MSVC, where u_atomic_int32_t @@ -1937,7 +2000,7 @@ UnicodeString::cloneArrayIfNeeded(int32_t newCapacity, uprv_free((void *)pRefCount); } else { // the caller requested to delete it himself - *pBufferToDelete = (int32_t *)pRefCount; + *pBufferToDelete = reinterpret_cast(pRefCount); } } } diff --git a/thirdparty/icu4c/common/unistr_case.cpp b/thirdparty/icu4c/common/unistr_case.cpp index b04d957bdcc9..40ea6b2f4d6e 100644 --- a/thirdparty/icu4c/common/unistr_case.cpp +++ b/thirdparty/icu4c/common/unistr_case.cpp @@ -72,7 +72,7 @@ UnicodeString::doCaseCompare(int32_t start, int32_t result=u_strcmpFold(chars, length, srcChars, srcLength, options|U_COMPARE_IGNORE_CASE, &errorCode); if(result!=0) { - return (int8_t)(result >> 24 | 1); + return static_cast(result >> 24 | 1); } } else { // get the srcLength if necessary @@ -80,7 +80,7 @@ UnicodeString::doCaseCompare(int32_t start, srcLength = u_strlen(srcChars + srcStart); } if(length != srcLength) { - return (int8_t)((length - srcLength) >> 24 | 1); + return static_cast((length - srcLength) >> 24 | 1); } } return 0; diff --git a/thirdparty/icu4c/common/unistr_cnv.cpp b/thirdparty/icu4c/common/unistr_cnv.cpp index e300a79ce517..bf52dd511884 100644 --- a/thirdparty/icu4c/common/unistr_cnv.cpp +++ b/thirdparty/icu4c/common/unistr_cnv.cpp @@ -63,7 +63,7 @@ UnicodeString::UnicodeString(const char *codepageData, const char *codepage) { fUnion.fFields.fLengthAndFlags = kShortString; if (codepageData != nullptr) { - doCodepageCreate(codepageData, (int32_t)uprv_strlen(codepageData), codepage); + doCodepageCreate(codepageData, static_cast(uprv_strlen(codepageData)), codepage); } } @@ -89,7 +89,7 @@ UnicodeString::UnicodeString(const char *src, int32_t srcLength, } else { // get input length if(srcLength==-1) { - srcLength=(int32_t)uprv_strlen(src); + srcLength = static_cast(uprv_strlen(src)); } if(srcLength>0) { if (cnv != nullptr) { @@ -151,13 +151,13 @@ UnicodeString::extract(int32_t start, int32_t capacity; if(dstSize < 0x7fffffff) { // Assume that the capacity is real and a limit pointer won't wrap around. - capacity = (int32_t)dstSize; + capacity = static_cast(dstSize); } else { // Pin the capacity so that a limit pointer does not wrap around. - char *targetLimit = (char *)U_MAX_PTR(target); + char* targetLimit = static_cast(U_MAX_PTR(target)); // U_MAX_PTR(target) returns a targetLimit that is at most 0x7fffffff // greater than target and does not wrap around the top of the address space. - capacity = (int32_t)(targetLimit - target); + capacity = static_cast(targetLimit - target); } // create the converter @@ -267,7 +267,7 @@ UnicodeString::doExtract(int32_t start, int32_t length, destLimit=dest=nullptr; } else if(destCapacity==-1) { // Pin the limit to U_MAX_PTR if the "magic" destCapacity is used. - destLimit=(char*)U_MAX_PTR(dest); + destLimit = static_cast(U_MAX_PTR(dest)); // for NUL-termination, translate into highest int32_t destCapacity=0x7fffffff; } else { @@ -276,7 +276,7 @@ UnicodeString::doExtract(int32_t start, int32_t length, // perform the conversion ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, nullptr, true, &errorCode); - length=(int32_t)(dest-originalDest); + length = static_cast(dest - originalDest); // if an overflow occurs, then get the preflighting length if(errorCode==U_BUFFER_OVERFLOW_ERROR) { @@ -287,7 +287,7 @@ UnicodeString::doExtract(int32_t start, int32_t length, dest=buffer; errorCode=U_ZERO_ERROR; ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, nullptr, true, &errorCode); - length+=(int32_t)(dest-buffer); + length += static_cast(dest - buffer); } while(errorCode==U_BUFFER_OVERFLOW_ERROR); } @@ -304,7 +304,7 @@ UnicodeString::doCodepageCreate(const char *codepageData, return; } if(dataLength == -1) { - dataLength = (int32_t)uprv_strlen(codepageData); + dataLength = static_cast(uprv_strlen(codepageData)); } UErrorCode status = U_ZERO_ERROR; @@ -393,7 +393,7 @@ UnicodeString::doCodepageCreate(const char *codepageData, &mySource, mySourceEnd, nullptr, true, &status); // update the conversion parameters - setLength((int32_t)(myTarget - array)); + setLength(static_cast(myTarget - array)); // allocate more space and copy data, if needed if(status == U_BUFFER_OVERFLOW_ERROR) { @@ -405,7 +405,7 @@ UnicodeString::doCodepageCreate(const char *codepageData, // estimate the new size needed, larger than before // try 2 char16_t's per remaining source byte - arraySize = (int32_t)(length() + 2 * (mySourceEnd - mySource)); + arraySize = static_cast(length() + 2 * (mySourceEnd - mySource)); } else { break; } diff --git a/thirdparty/icu4c/common/unormcmp.cpp b/thirdparty/icu4c/common/unormcmp.cpp index 028b28643c66..fa8b85cea047 100644 --- a/thirdparty/icu4c/common/unormcmp.cpp +++ b/thirdparty/icu4c/common/unormcmp.cpp @@ -313,7 +313,7 @@ unorm_cmpEquivFold(const char16_t *s1, int32_t length1, */ if( level1==0 && (options&U_COMPARE_IGNORE_CASE) && - (length=ucase_toFullFolding((UChar32)cp1, &p, options))>=0 + (length = ucase_toFullFolding(cp1, &p, options)) >= 0 ) { /* cp1 case-folds to the code point "length" or to p[length] */ if(U_IS_SURROGATE(c1)) { @@ -358,7 +358,7 @@ unorm_cmpEquivFold(const char16_t *s1, int32_t length1, } if( level2==0 && (options&U_COMPARE_IGNORE_CASE) && - (length=ucase_toFullFolding((UChar32)cp2, &p, options))>=0 + (length = ucase_toFullFolding(cp2, &p, options)) >= 0 ) { /* cp2 case-folds to the code point "length" or to p[length] */ if(U_IS_SURROGATE(c2)) { @@ -403,7 +403,7 @@ unorm_cmpEquivFold(const char16_t *s1, int32_t length1, } if( level1<2 && (options&_COMPARE_EQUIV) && - nullptr != (p = nfcImpl->getDecomposition((UChar32)cp1, decomp1, length)) + nullptr != (p = nfcImpl->getDecomposition(cp1, decomp1, length)) ) { /* cp1 decomposes into p[length] */ if(U_IS_SURROGATE(c1)) { @@ -444,7 +444,7 @@ unorm_cmpEquivFold(const char16_t *s1, int32_t length1, } if( level2<2 && (options&_COMPARE_EQUIV) && - nullptr != (p = nfcImpl->getDecomposition((UChar32)cp2, decomp2, length)) + nullptr != (p = nfcImpl->getDecomposition(cp2, decomp2, length)) ) { /* cp2 decomposes into p[length] */ if(U_IS_SURROGATE(c2)) { diff --git a/thirdparty/icu4c/common/uprops.cpp b/thirdparty/icu4c/common/uprops.cpp index c87eeff3810e..817a1fac0c01 100644 --- a/thirdparty/icu4c/common/uprops.cpp +++ b/thirdparty/icu4c/common/uprops.cpp @@ -100,8 +100,8 @@ void U_CALLCONV ulayout_load(UErrorCode &errorCode) { ulayout_isAcceptable, nullptr, &errorCode); if (U_FAILURE(errorCode)) { return; } - const uint8_t *inBytes = (const uint8_t *)udata_getMemory(gLayoutMemory); - const int32_t *inIndexes = (const int32_t *)inBytes; + const uint8_t* inBytes = static_cast(udata_getMemory(gLayoutMemory)); + const int32_t* inIndexes = reinterpret_cast(inBytes); int32_t indexesLength = inIndexes[ULAYOUT_IX_INDEXES_LENGTH]; if (indexesLength < 12) { errorCode = U_INVALID_FORMAT_ERROR; // Not enough indexes. @@ -171,7 +171,7 @@ static UBool defaultContains(const BinaryProperty &prop, UChar32 c, UProperty /* } static UBool caseBinaryPropertyContains(const BinaryProperty &/*prop*/, UChar32 c, UProperty which) { - return static_cast(ucase_hasBinaryProperty(c, which)); + return ucase_hasBinaryProperty(c, which); } static UBool isBidiControl(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) { @@ -208,7 +208,7 @@ static UBool isNormInert(const BinaryProperty &, UChar32, UProperty) { static UBool isNormInert(const BinaryProperty &/*prop*/, UChar32 c, UProperty which) { UErrorCode errorCode=U_ZERO_ERROR; const Normalizer2 *norm2=Normalizer2Factory::getInstance( - (UNormalizationMode)(which-UCHAR_NFD_INERT+UNORM_NFD), errorCode); + static_cast(which - UCHAR_NFD_INERT + UNORM_NFD), errorCode); return U_SUCCESS(errorCode) && norm2->isInert(c); } #endif @@ -242,7 +242,7 @@ static UBool changesWhenCasefolded(const BinaryProperty &/*prop*/, UChar32 c, UP if(c>=0) { /* single code point */ const char16_t *resultString; - return (UBool)(ucase_toFullFolding(c, &resultString, U_FOLD_CASE_DEFAULT)>=0); + return ucase_toFullFolding(c, &resultString, U_FOLD_CASE_DEFAULT) >= 0; } else { /* guess some large but stack-friendly capacity */ char16_t dest[2*UCASE_MAX_STRING_LENGTH]; @@ -250,9 +250,9 @@ static UBool changesWhenCasefolded(const BinaryProperty &/*prop*/, UChar32 c, UP destLength=u_strFoldCase(dest, UPRV_LENGTHOF(dest), nfd.getBuffer(), nfd.length(), U_FOLD_CASE_DEFAULT, &errorCode); - return (UBool)(U_SUCCESS(errorCode) && + return U_SUCCESS(errorCode) && 0!=u_strCompare(nfd.getBuffer(), nfd.length(), - dest, destLength, false)); + dest, destLength, false); } } #endif @@ -359,6 +359,19 @@ static constexpr UChar32 ID_COMPAT_MATH_START[] = { 0x1D7C3 }; +/** Ranges (start/limit pairs) of Modifier_Combining_mark (only), from UCD PropList.txt. */ +static constexpr UChar32 MODIFIER_COMBINING_MARK[] = { + 0x0654, 0x0655 + 1, + 0x0658, 0x0658 + 1, // U+0658 + 0x06DC, 0x06DC + 1, // U+06DC + 0x06E3, 0x06E3 + 1, // U+06E3 + 0x06E7, 0x06E8 + 1, + 0x08CA, 0x08CB + 1, + 0x08CD, 0x08CF + 1, + 0x08D3, 0x08D3 + 1, // U+08D3 + 0x08F3, 0x08F3 + 1 // U+08F3 +}; + static UBool isIDCompatMathStart(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) { if (c < ID_COMPAT_MATH_START[0]) { return false; } // fastpath for common scripts for (UChar32 startChar : ID_COMPAT_MATH_START) { @@ -375,6 +388,14 @@ static UBool isIDCompatMathContinue(const BinaryProperty &prop, UChar32 c, UProp return isIDCompatMathStart(prop, c, UCHAR_ID_COMPAT_MATH_START); } +static UBool isModifierCombiningMark(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) { + for (int32_t i = 0; i < UPRV_LENGTHOF(MODIFIER_COMBINING_MARK); i += 2) { + if (c < MODIFIER_COMBINING_MARK[i]) { return false; } // below range start + if (c < MODIFIER_COMBINING_MARK[i + 1]) { return true; } // below range limit + } + return false; +} + static const BinaryProperty binProps[UCHAR_BINARY_LIMIT]={ /* * column and mask values for binary properties from u_getUnicodeProperties(). @@ -459,6 +480,7 @@ static const BinaryProperty binProps[UCHAR_BINARY_LIMIT]={ { UPROPS_SRC_IDSU, 0, isIDSUnaryOperator }, // UCHAR_IDS_UNARY_OPERATOR { UPROPS_SRC_ID_COMPAT_MATH, 0, isIDCompatMathStart }, // UCHAR_ID_COMPAT_MATH_START { UPROPS_SRC_ID_COMPAT_MATH, 0, isIDCompatMathContinue }, // UCHAR_ID_COMPAT_MATH_CONTINUE + { UPROPS_SRC_MCM, 0 , isModifierCombiningMark }, // UCHAR_MODIFIER_COMBINING_MARK }; U_CAPI UBool U_EXPORT2 @@ -521,7 +543,7 @@ struct IntProperty { static int32_t defaultGetValue(const IntProperty &prop, UChar32 c, UProperty /*which*/) { /* systematic, directly stored properties */ - return (int32_t)(u_getUnicodeProperties(c, prop.column)&prop.mask)>>prop.shift; + return static_cast(u_getUnicodeProperties(c, prop.column) & prop.mask) >> prop.shift; } static int32_t defaultGetMaxValue(const IntProperty &prop, UProperty /*which*/) { @@ -533,17 +555,25 @@ static int32_t getMaxValueFromShift(const IntProperty &prop, UProperty /*which*/ } static int32_t getBiDiClass(const IntProperty &/*prop*/, UChar32 c, UProperty /*which*/) { - return (int32_t)u_charDirection(c); + return static_cast(u_charDirection(c)); } static int32_t getBiDiPairedBracketType(const IntProperty &/*prop*/, UChar32 c, UProperty /*which*/) { - return (int32_t)ubidi_getPairedBracketType(c); + return static_cast(ubidi_getPairedBracketType(c)); } static int32_t biDiGetMaxValue(const IntProperty &/*prop*/, UProperty which) { return ubidi_getMaxValue(which); } +static int32_t getBlock(const IntProperty &/*prop*/, UChar32 c, UProperty /*which*/) { + return static_cast(ublock_getCode(c)); +} + +static int32_t blockGetMaxValue(const IntProperty &/*prop*/, UProperty /*which*/) { + return uprv_getMaxValues(UPROPS_MAX_VALUES_OTHER_INDEX) & UPROPS_MAX_BLOCK; +} + #if UCONFIG_NO_NORMALIZATION static int32_t getCombiningClass(const IntProperty &, UChar32, UProperty) { return 0; @@ -555,7 +585,7 @@ static int32_t getCombiningClass(const IntProperty &/*prop*/, UChar32 c, UProper #endif static int32_t getGeneralCategory(const IntProperty &/*prop*/, UChar32 c, UProperty /*which*/) { - return (int32_t)u_charType(c); + return static_cast(u_charType(c)); } static int32_t getJoiningGroup(const IntProperty &/*prop*/, UChar32 c, UProperty /*which*/) { @@ -567,23 +597,26 @@ static int32_t getJoiningType(const IntProperty &/*prop*/, UChar32 c, UProperty } static int32_t getNumericType(const IntProperty &/*prop*/, UChar32 c, UProperty /*which*/) { - int32_t ntv=(int32_t)GET_NUMERIC_TYPE_VALUE(u_getMainProperties(c)); + int32_t ntv = static_cast(GET_NUMERIC_TYPE_VALUE(u_getMainProperties(c))); return UPROPS_NTV_GET_TYPE(ntv); } static int32_t getScript(const IntProperty &/*prop*/, UChar32 c, UProperty /*which*/) { UErrorCode errorCode=U_ZERO_ERROR; - return (int32_t)uscript_getScript(c, &errorCode); + return static_cast(uscript_getScript(c, &errorCode)); } static int32_t scriptGetMaxValue(const IntProperty &/*prop*/, UProperty /*which*/) { - uint32_t scriptX=uprv_getMaxValues(0)&UPROPS_SCRIPT_X_MASK; - return uprops_mergeScriptCodeOrIndex(scriptX); + return uprv_getMaxValues(0)&UPROPS_MAX_SCRIPT; } /* * Map some of the Grapheme Cluster Break values to Hangul Syllable Types. - * Hangul_Syllable_Type is fully redundant with a subset of Grapheme_Cluster_Break. + * Hangul_Syllable_Type used to be fully redundant with a subset of Grapheme_Cluster_Break. + * + * Starting with Unicode 16, this is no longer true for HST=V vs. GCB=V in some cases: + * Some Kirat Rai vowels are given GCB=V for proper grapheme clustering, but + * they are of course not related to Hangul syllables. */ static const UHangulSyllableType gcbToHst[]={ U_HST_NOT_APPLICABLE, /* U_GCB_OTHER */ @@ -603,8 +636,13 @@ static const UHangulSyllableType gcbToHst[]={ }; static int32_t getHangulSyllableType(const IntProperty &/*prop*/, UChar32 c, UProperty /*which*/) { + // Ignore supplementary code points: They all have HST=NA. + // This is a simple way to handle the GCB!=hst cases since Unicode 16 (Kirat Rai vowels). + if(c>0xffff) { + return U_HST_NOT_APPLICABLE; + } /* see comments on gcbToHst[] above */ - int32_t gcb=(int32_t)(u_getUnicodeProperties(c, 2)&UPROPS_GCB_MASK)>>UPROPS_GCB_SHIFT; + int32_t gcb = static_cast(u_getUnicodeProperties(c, 2) & UPROPS_GCB_MASK) >> UPROPS_GCB_SHIFT; if(gcb(unorm_getQuickCheck(c, static_cast(which - UCHAR_NFD_QUICK_CHECK + UNORM_NFD))); } #endif @@ -683,25 +721,25 @@ static const IntProperty intProps[UCHAR_INT_LIMIT-UCHAR_INT_START]={ * For them, column is the UPropertySource value. */ { UPROPS_SRC_BIDI, 0, 0, getBiDiClass, biDiGetMaxValue }, - { 0, UPROPS_BLOCK_MASK, UPROPS_BLOCK_SHIFT, defaultGetValue, defaultGetMaxValue }, + { UPROPS_SRC_BLOCK, 0, 0, getBlock, blockGetMaxValue }, { UPROPS_SRC_NFC, 0, 0xff, getCombiningClass, getMaxValueFromShift }, { 2, UPROPS_DT_MASK, 0, defaultGetValue, defaultGetMaxValue }, { 0, UPROPS_EA_MASK, UPROPS_EA_SHIFT, defaultGetValue, defaultGetMaxValue }, - { UPROPS_SRC_CHAR, 0, (int32_t)U_CHAR_CATEGORY_COUNT-1,getGeneralCategory, getMaxValueFromShift }, + { UPROPS_SRC_CHAR, 0, static_cast(U_CHAR_CATEGORY_COUNT) - 1, getGeneralCategory, getMaxValueFromShift }, { UPROPS_SRC_BIDI, 0, 0, getJoiningGroup, biDiGetMaxValue }, { UPROPS_SRC_BIDI, 0, 0, getJoiningType, biDiGetMaxValue }, { 2, UPROPS_LB_MASK, UPROPS_LB_SHIFT, defaultGetValue, defaultGetMaxValue }, - { UPROPS_SRC_CHAR, 0, (int32_t)U_NT_COUNT-1, getNumericType, getMaxValueFromShift }, + { UPROPS_SRC_CHAR, 0, static_cast(U_NT_COUNT) - 1, getNumericType, getMaxValueFromShift }, { UPROPS_SRC_PROPSVEC, 0, 0, getScript, scriptGetMaxValue }, - { UPROPS_SRC_PROPSVEC, 0, (int32_t)U_HST_COUNT-1, getHangulSyllableType, getMaxValueFromShift }, + { UPROPS_SRC_PROPSVEC, 0, static_cast(U_HST_COUNT) - 1, getHangulSyllableType, getMaxValueFromShift }, // UCHAR_NFD_QUICK_CHECK: max=1=YES -- never "maybe", only "no" or "yes" - { UPROPS_SRC_NFC, 0, (int32_t)UNORM_YES, getNormQuickCheck, getMaxValueFromShift }, + { UPROPS_SRC_NFC, 0, static_cast(UNORM_YES), getNormQuickCheck, getMaxValueFromShift }, // UCHAR_NFKD_QUICK_CHECK: max=1=YES -- never "maybe", only "no" or "yes" - { UPROPS_SRC_NFKC, 0, (int32_t)UNORM_YES, getNormQuickCheck, getMaxValueFromShift }, + { UPROPS_SRC_NFKC, 0, static_cast(UNORM_YES), getNormQuickCheck, getMaxValueFromShift }, // UCHAR_NFC_QUICK_CHECK: max=2=MAYBE - { UPROPS_SRC_NFC, 0, (int32_t)UNORM_MAYBE, getNormQuickCheck, getMaxValueFromShift }, + { UPROPS_SRC_NFC, 0, static_cast(UNORM_MAYBE), getNormQuickCheck, getMaxValueFromShift }, // UCHAR_NFKC_QUICK_CHECK: max=2=MAYBE - { UPROPS_SRC_NFKC, 0, (int32_t)UNORM_MAYBE, getNormQuickCheck, getMaxValueFromShift }, + { UPROPS_SRC_NFKC, 0, static_cast(UNORM_MAYBE), getNormQuickCheck, getMaxValueFromShift }, { UPROPS_SRC_NFC, 0, 0xff, getLeadCombiningClass, getMaxValueFromShift }, { UPROPS_SRC_NFC, 0, 0xff, getTrailCombiningClass, getMaxValueFromShift }, { 2, UPROPS_GCB_MASK, UPROPS_GCB_SHIFT, defaultGetValue, defaultGetMaxValue }, @@ -711,7 +749,8 @@ static const IntProperty intProps[UCHAR_INT_LIMIT-UCHAR_INT_START]={ { UPROPS_SRC_INPC, 0, 0, getInPC, layoutGetMaxValue }, { UPROPS_SRC_INSC, 0, 0, getInSC, layoutGetMaxValue }, { UPROPS_SRC_VO, 0, 0, getVo, layoutGetMaxValue }, - { UPROPS_SRC_PROPSVEC, 0, (int32_t)U_ID_STATUS_ALLOWED, getIDStatusValue, getMaxValueFromShift }, + { UPROPS_SRC_PROPSVEC, 0, static_cast(U_ID_STATUS_ALLOWED), getIDStatusValue, getMaxValueFromShift }, + { 0, UPROPS_INCB_MASK, UPROPS_INCB_SHIFT,defaultGetValue, defaultGetMaxValue }, }; U_CAPI int32_t U_EXPORT2 @@ -829,6 +868,13 @@ uprops_addPropertyStarts(UPropertySource src, const USetAdder *sa, UErrorCode *p } return; } + if (src == UPROPS_SRC_MCM) { + // range limits + for (UChar32 c : MODIFIER_COMBINING_MARK) { + sa->add(sa->set, c); + } + return; + } if (!ulayout_ensureData(*pErrorCode)) { return; } const UCPTrie *trie; switch (src) { diff --git a/thirdparty/icu4c/common/uprops.h b/thirdparty/icu4c/common/uprops.h index 93120017f0fc..022f64474a1b 100644 --- a/thirdparty/icu4c/common/uprops.h +++ b/thirdparty/icu4c/common/uprops.h @@ -39,16 +39,18 @@ enum { UPROPS_SCRIPT_EXTENSIONS_INDEX, - UPROPS_RESERVED_INDEX_7, + UPROPS_BLOCK_TRIE_INDEX, UPROPS_RESERVED_INDEX_8, - /* size of the data file (number of 32-bit units after the header) */ + /** size of the data file (number of 32-bit units after the header) */ UPROPS_DATA_TOP_INDEX, - /* maximum values for code values in vector word 0 */ + /** maximum values for code values in vector word 0 */ UPROPS_MAX_VALUES_INDEX=10, - /* maximum values for code values in vector word 2 */ + /** maximum values for code values in vector word 2 */ UPROPS_MAX_VALUES_2_INDEX, + /** maximum values for other code values */ + UPROPS_MAX_VALUES_OTHER_INDEX, UPROPS_INDEX_COUNT=16 }; @@ -117,62 +119,57 @@ enum { /* number of properties vector words */ #define UPROPS_VECTOR_WORDS 3 -/* - * Properties in vector word 0 - * Bits - * 31..24 DerivedAge version major/minor one nibble each - * 23..22 3..1: Bits 21..20 & 7..0 = Script_Extensions index - * 3: Script value from Script_Extensions - * 2: Script=Inherited - * 1: Script=Common - * 0: Script=bits 21..20 & 7..0 - * 21..20 Bits 9..8 of the UScriptCode, or index to Script_Extensions - * 19..17 East Asian Width - * 16.. 8 UBlockCode - * 7.. 0 UScriptCode, or index to Script_Extensions - */ - -/* derived age: one nibble each for major and minor version numbers */ -#define UPROPS_AGE_MASK 0xff000000 -#define UPROPS_AGE_SHIFT 24 - -/* Script_Extensions: mask includes Script */ -#define UPROPS_SCRIPT_X_MASK 0x00f000ff -#define UPROPS_SCRIPT_X_SHIFT 22 - -// The UScriptCode or Script_Extensions index is split across two bit fields. -// (Starting with Unicode 13/ICU 66/2019 due to more varied Script_Extensions.) -// Shift the high bits right by 12 to assemble the full value. -#define UPROPS_SCRIPT_HIGH_MASK 0x00300000 -#define UPROPS_SCRIPT_HIGH_SHIFT 12 -#define UPROPS_MAX_SCRIPT 0x3ff - -#define UPROPS_EA_MASK 0x000e0000 -#define UPROPS_EA_SHIFT 17 - -#define UPROPS_BLOCK_MASK 0x0001ff00 -#define UPROPS_BLOCK_SHIFT 8 - -#define UPROPS_SCRIPT_LOW_MASK 0x000000ff - -/* UPROPS_SCRIPT_X_WITH_COMMON must be the lowest value that involves Script_Extensions. */ -#define UPROPS_SCRIPT_X_WITH_COMMON 0x400000 -#define UPROPS_SCRIPT_X_WITH_INHERITED 0x800000 -#define UPROPS_SCRIPT_X_WITH_OTHER 0xc00000 - #ifdef __cplusplus namespace { -inline uint32_t uprops_mergeScriptCodeOrIndex(uint32_t scriptX) { - return - ((scriptX & UPROPS_SCRIPT_HIGH_MASK) >> UPROPS_SCRIPT_HIGH_SHIFT) | - (scriptX & UPROPS_SCRIPT_LOW_MASK); -} - -} // namespace - -#endif // __cplusplus +// Properties in vector word 0 +// Bits +// 31..26 Age major version (major=0..63) +// 25..24 Age minor version (minor=0..3) +// 23..17 reserved +// 16..15 Indic Conjunct Break +// 14..12 East Asian Width +// 11..10 3..1: Bits 9..0 = Script_Extensions index +// 3: Script value from Script_Extensions +// 2: Script=Inherited +// 1: Script=Common +// 0: Script=bits 9..0 +// 9.. 0 UScriptCode, or index to Script_Extensions + +// *Note*: If we need more than the available bits for new properties, +// then we could move the Age property out of the properties vectors. +// For example, we could store the Age property in its own trie. +// In a small, 8-bit-value-width CodePointTrie, it would be larger than +// the amount of data that we would save in the properties vectors and their trie, +// but the size increase would be a small percentage of the total uprops.icu size. +// It would certainly be a much smaller increase than widening the properties vectors. +// The savings in the properties vectors+trie from pulling out the Age property +// are partly from mediocre correlation between Age and other property values. +// (Adding new characters to existing scripts tends to split property vectors where +// new characters are similar to old ones.) +// See https://github.com/unicode-org/icu/pull/3025 for details. + +inline constexpr uint32_t UPROPS_AGE_MASK = 0xff000000; +inline constexpr int32_t UPROPS_AGE_SHIFT = 24; + +inline constexpr uint8_t UPROPS_AGE_MAJOR_MAX = 63; +inline constexpr uint8_t UPROPS_AGE_MINOR_MAX = 3; + +inline constexpr uint32_t UPROPS_EA_MASK = 0x00007000; +inline constexpr int32_t UPROPS_EA_SHIFT = 12; + +inline constexpr uint32_t UPROPS_INCB_MASK = 0x00018000; +inline constexpr int32_t UPROPS_INCB_SHIFT = 15; + +/** Script_Extensions: mask includes Script */ +inline constexpr uint32_t UPROPS_SCRIPT_X_MASK = 0x00000fff; + +// UPROPS_SCRIPT_X_WITH_COMMON must be the lowest value that involves Script_Extensions. +inline constexpr uint32_t UPROPS_SCRIPT_X_WITH_OTHER = 0xc00; +inline constexpr uint32_t UPROPS_SCRIPT_X_WITH_INHERITED = 0x800; +inline constexpr uint32_t UPROPS_SCRIPT_X_WITH_COMMON = 0x400; +inline constexpr int32_t UPROPS_MAX_SCRIPT = 0x3ff; /* * Properties in vector word 1 @@ -234,8 +231,6 @@ enum { * 4.. 0 Decomposition Type */ -#ifdef __cplusplus - // https://www.unicode.org/reports/tr39/#Identifier_Status_and_Type // The Identifier_Type maps each code point to a *set* of one or more values. // Some can be combined with others, some can only occur alone. @@ -296,6 +291,8 @@ inline constexpr uint8_t uprops_idTypeToEncoded[] = { UPROPS_ID_TYPE_RECOMMENDED }; +} // namespace + #endif // __cplusplus #define UPROPS_LB_MASK 0x03f00000 @@ -312,6 +309,17 @@ inline constexpr uint8_t uprops_idTypeToEncoded[] = { #define UPROPS_DT_MASK 0x0000001f +#ifdef __cplusplus + +namespace { + +// Bits 9..0 in UPROPS_MAX_VALUES_OTHER_INDEX +inline constexpr uint32_t UPROPS_MAX_BLOCK = 0x3ff; + +} // namespace + +#endif // __cplusplus + /** * Gets the main properties value for a code point. * Implemented in uchar.c for uprops.cpp. @@ -385,6 +393,8 @@ enum { ZWNBSP =0xfeff }; +// TODO: Move these two functions into a different header file (new unames.h?) so that uprops.h +// need not be C-compatible any more. /** * Get the maximum length of a (regular/1.0/extended) character name. * @return 0 if no character names available. @@ -438,6 +448,8 @@ enum UPropertySource { UPROPS_SRC_EMOJI, UPROPS_SRC_IDSU, UPROPS_SRC_ID_COMPAT_MATH, + UPROPS_SRC_BLOCK, + UPROPS_SRC_MCM, /** One more than the highest UPropertySource (UPROPS_SRC_) constant. */ UPROPS_SRC_COUNT }; @@ -469,6 +481,13 @@ upropsvec_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode); U_CFUNC void U_EXPORT2 uprops_addPropertyStarts(UPropertySource src, const USetAdder *sa, UErrorCode *pErrorCode); +#ifdef __cplusplus + +U_CFUNC void U_EXPORT2 +ublock_addPropertyStarts(const USetAdder *sa, UErrorCode &errorCode); + +#endif // __cplusplus + /** * Return a set of characters for property enumeration. * For each two consecutive characters (start, limit) in the set, @@ -481,6 +500,8 @@ uprops_addPropertyStarts(UPropertySource src, const USetAdder *sa, UErrorCode *p uprv_getInclusions(const USetAdder *sa, UErrorCode *pErrorCode); */ +// TODO: Move this into a different header file (udataswp.h? new unames.h?) so that uprops.h +// need not be C-compatible any more. /** * Swap the ICU Unicode character names file. See uchar.c. * @internal diff --git a/thirdparty/icu4c/common/uresbund.cpp b/thirdparty/icu4c/common/uresbund.cpp index ea4327b31489..3a09cbf3bcaa 100644 --- a/thirdparty/icu4c/common/uresbund.cpp +++ b/thirdparty/icu4c/common/uresbund.cpp @@ -56,7 +56,7 @@ static UMutex resbMutex; /* INTERNAL: hashes an entry */ static int32_t U_CALLCONV hashEntry(const UHashTok parm) { - UResourceDataEntry *b = (UResourceDataEntry *)parm.pointer; + UResourceDataEntry* b = static_cast(parm.pointer); UHashTok namekey, pathkey; namekey.pointer = b->fName; pathkey.pointer = b->fPath; @@ -65,15 +65,14 @@ static int32_t U_CALLCONV hashEntry(const UHashTok parm) { /* INTERNAL: compares two entries */ static UBool U_CALLCONV compareEntries(const UHashTok p1, const UHashTok p2) { - UResourceDataEntry *b1 = (UResourceDataEntry *)p1.pointer; - UResourceDataEntry *b2 = (UResourceDataEntry *)p2.pointer; + UResourceDataEntry* b1 = static_cast(p1.pointer); + UResourceDataEntry* b2 = static_cast(p2.pointer); UHashTok name1, name2, path1, path2; name1.pointer = b1->fName; name2.pointer = b2->fName; path1.pointer = b1->fPath; path2.pointer = b2->fPath; - return (UBool)(uhash_compareChars(name1, name2) && - uhash_compareChars(path1, path2)); + return uhash_compareChars(name1, name2) && uhash_compareChars(path1, path2); } @@ -403,7 +402,7 @@ static int32_t ures_flushCache() pos = UHASH_FIRST; while ((e = uhash_nextElement(cache, &pos)) != nullptr) { - resB = (UResourceDataEntry *) e->value.pointer; + resB = static_cast(e->value.pointer); /* Deletes only if reference counter == 0 * Don't worry about the children of this node. * Those will eventually get deleted too, if not already. @@ -488,15 +487,15 @@ static void initCache(UErrorCode *status) { /** INTERNAL: sets the name (locale) of the resource bundle to given name */ static void setEntryName(UResourceDataEntry *res, const char *name, UErrorCode *status) { - int32_t len = (int32_t)uprv_strlen(name); + int32_t len = static_cast(uprv_strlen(name)); if(res->fName != nullptr && res->fName != res->fNameBuffer) { uprv_free(res->fName); } - if (len < (int32_t)sizeof(res->fNameBuffer)) { + if (len < static_cast(sizeof(res->fNameBuffer))) { res->fName = res->fNameBuffer; } else { - res->fName = (char *)uprv_malloc(len+1); + res->fName = static_cast(uprv_malloc(len + 1)); } if(res->fName == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; @@ -535,18 +534,18 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE name = localeID; } - find.fName = (char *)name; - find.fPath = (char *)path; + find.fName = const_cast(name); + find.fPath = const_cast(path); /* calculate the hash value of the entry */ /*hashkey.pointer = (void *)&find;*/ /*hashValue = hashEntry(hashkey);*/ /* check to see if we already have this entry */ - r = (UResourceDataEntry *)uhash_get(cache, &find); + r = static_cast(uhash_get(cache, &find)); if(r == nullptr) { /* if the entry is not yet in the hash table, we'll try to construct a new one */ - r = (UResourceDataEntry *) uprv_malloc(sizeof(UResourceDataEntry)); + r = static_cast(uprv_malloc(sizeof(UResourceDataEntry))); if(r == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; return nullptr; @@ -562,7 +561,7 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE } if(path != nullptr) { - r->fPath = (char *)uprv_strdup(path); + r->fPath = uprv_strdup(path); if(r->fPath == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; uprv_free(r); @@ -589,7 +588,7 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE if (U_SUCCESS(*status)) { const int32_t *poolIndexes = r->fPool->fData.pRoot + 1; if(r->fData.pRoot[1 + URES_INDEX_POOL_CHECKSUM] == poolIndexes[URES_INDEX_POOL_CHECKSUM]) { - r->fData.poolBundleKeys = (const char *)(poolIndexes + (poolIndexes[URES_INDEX_LENGTH] & 0xff)); + r->fData.poolBundleKeys = reinterpret_cast(poolIndexes + (poolIndexes[URES_INDEX_LENGTH] & 0xff)); r->fData.poolBundleStrings = r->fPool->fData.p16BitUnits; } else { r->fBogus = *status = U_INVALID_FORMAT_ERROR; @@ -615,7 +614,7 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE { UResourceDataEntry *oldR = nullptr; - if((oldR = (UResourceDataEntry *)uhash_get(cache, r)) == nullptr) { /* if the data is not cached */ + if ((oldR = static_cast(uhash_get(cache, r))) == nullptr) { /* if the data is not cached */ /* just insert it in the cache */ UErrorCode cacheStatus = U_ZERO_ERROR; uhash_put(cache, (void *)r, r, &cacheStatus); @@ -676,8 +675,8 @@ findFirstExisting(const char* path, char* name, const char* defaultLocale, UResO if (U_FAILURE(*status)) { return nullptr; } - *isDefault = (UBool)(uprv_strncmp(name, defaultLocale, uprv_strlen(name)) == 0); - hasRealData = (UBool)(r->fBogus == U_ZERO_ERROR); + *isDefault = static_cast(uprv_strncmp(name, defaultLocale, uprv_strlen(name)) == 0); + hasRealData = static_cast(r->fBogus == U_ZERO_ERROR); if(!hasRealData) { /* this entry is not real. We will discard it. */ /* However, the parent line for this entry is */ @@ -692,7 +691,7 @@ findFirstExisting(const char* path, char* name, const char* defaultLocale, UResO uprv_strcpy(name, r->fName); /* this is needed for supporting aliases */ } - *isRoot = (UBool)(uprv_strcmp(name, kRootLocaleName) == 0); + *isRoot = static_cast(uprv_strcmp(name, kRootLocaleName) == 0); /*Fallback data stuff*/ if (!hasRealData) { @@ -1091,7 +1090,7 @@ static void ures_appendResPath(UResourceBundle *resB, const char* toAdd, int32_t resB->fResPathLen += lenToAdd; if(RES_BUFSIZE <= resB->fResPathLen+1) { if(resB->fResPath == resB->fResBuf) { - resB->fResPath = (char *)uprv_malloc((resB->fResPathLen+1)*sizeof(char)); + resB->fResPath = static_cast(uprv_malloc((resB->fResPathLen + 1) * sizeof(char))); /* Check that memory was allocated correctly. */ if (resB->fResPath == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; @@ -1099,7 +1098,7 @@ static void ures_appendResPath(UResourceBundle *resB, const char* toAdd, int32_t } uprv_strcpy(resB->fResPath, resB->fResBuf); } else { - char *temp = (char *)uprv_realloc(resB->fResPath, (resB->fResPathLen+1)*sizeof(char)); + char* temp = static_cast(uprv_realloc(resB->fResPath, (resB->fResPathLen + 1) * sizeof(char))); /* Check that memory was reallocated correctly. */ if (temp == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; @@ -1348,7 +1347,7 @@ UResourceBundle *getAliasTargetAsResourceBundle( // if the key path wasn't just a single resource ID, clear out // the bundle's key path and re-set it to be equal to keyPath. ures_freeResPath(resB); - ures_appendResPath(resB, keyPath, (int32_t)uprv_strlen(keyPath), status); + ures_appendResPath(resB, keyPath, static_cast(uprv_strlen(keyPath)), status); if(resB->fResPath[resB->fResPathLen-1] != RES_PATH_SEPARATOR) { ures_appendResPath(resB, RES_PATH_SEPARATOR_S, 1, status); } @@ -1407,7 +1406,7 @@ UResourceBundle *init_resb_result( validLocaleDataEntry, containerResPath, recursionDepth, resB, status); } if(resB == nullptr) { - resB = (UResourceBundle *)uprv_malloc(sizeof(UResourceBundle)); + resB = static_cast(uprv_malloc(sizeof(UResourceBundle))); if (resB == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; return nullptr; @@ -1449,7 +1448,7 @@ UResourceBundle *init_resb_result( resB, containerResPath, static_cast(uprv_strlen(containerResPath)), status); } if(key != nullptr) { - ures_appendResPath(resB, key, (int32_t)uprv_strlen(key), status); + ures_appendResPath(resB, key, static_cast(uprv_strlen(key)), status); if(resB->fResPath[resB->fResPathLen-1] != RES_PATH_SEPARATOR) { ures_appendResPath(resB, RES_PATH_SEPARATOR_S, 1, status); } @@ -1494,7 +1493,7 @@ UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle *origin if(original != nullptr) { if(r == nullptr) { isStackObject = false; - r = (UResourceBundle *)uprv_malloc(sizeof(UResourceBundle)); + r = static_cast(uprv_malloc(sizeof(UResourceBundle))); /* test for nullptr */ if (r == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; @@ -1730,7 +1729,7 @@ U_CAPI UBool U_EXPORT2 ures_hasNext(const UResourceBundle *resB) { if(resB == nullptr) { return false; } - return (UBool)(resB->fIndex < resB->fSize-1); + return resB->fIndex < resB->fSize-1; } U_CAPI const char16_t* U_EXPORT2 ures_getNextString(UResourceBundle *resB, int32_t* len, const char ** key, UErrorCode *status) { @@ -2064,7 +2063,7 @@ static Resource getTableItemByKeyPath(const ResourceData *pResData, Resource tab path.append(key, errorCode); if (U_FAILURE(errorCode)) { return RES_BOGUS; } char *pathPart = path.data(); /* Path from current resource to desired resource */ - UResType type = (UResType)RES_GET_TYPE(resource); /* the current resource type */ + UResType type = static_cast(RES_GET_TYPE(resource)); /* the current resource type */ while (*pathPart && resource != RES_BOGUS && URES_IS_CONTAINER(type)) { char *nextPathPart = uprv_strchr(pathPart, RES_PATH_SEPARATOR); if (nextPathPart != nullptr) { @@ -2076,7 +2075,7 @@ static Resource getTableItemByKeyPath(const ResourceData *pResData, Resource tab int32_t t; const char *pathP = pathPart; resource = res_getTableItemByKey(pResData, resource, &t, &pathP); - type = (UResType)RES_GET_TYPE(resource); + type = static_cast(RES_GET_TYPE(resource)); pathPart = nextPathPart; } if (*pathPart) { @@ -2737,7 +2736,7 @@ ures_openWithType(UResourceBundle *r, const char* path, const char* localeID, UBool isStackObject; if(r == nullptr) { - r = (UResourceBundle *)uprv_malloc(sizeof(UResourceBundle)); + r = static_cast(uprv_malloc(sizeof(UResourceBundle))); if(r == nullptr) { entryClose(entry); *status = U_MEMORY_ALLOCATION_ERROR; @@ -2924,7 +2923,7 @@ typedef struct ULocalesContext { static void U_CALLCONV ures_loc_closeLocales(UEnumeration *enumerator) { - ULocalesContext *ctx = (ULocalesContext *)enumerator->context; + ULocalesContext* ctx = static_cast(enumerator->context); ures_close(&ctx->curr); ures_close(&ctx->installed); uprv_free(ctx); @@ -2933,7 +2932,7 @@ ures_loc_closeLocales(UEnumeration *enumerator) { static int32_t U_CALLCONV ures_loc_countLocales(UEnumeration *en, UErrorCode * /*status*/) { - ULocalesContext *ctx = (ULocalesContext *)en->context; + ULocalesContext* ctx = static_cast(en->context); return ures_getSize(&ctx->installed); } @@ -3074,9 +3073,12 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, UErrorCode subStatus = U_ZERO_ERROR; int32_t length = 0; if(U_FAILURE(*status)) return 0; - CharString kwVal = ulocimp_getKeywordValue(locid, keyword, subStatus); - if(kwVal == DEFAULT_TAG) { - kwVal.clear(); + CharString kwVal; + if (keyword != nullptr && *keyword != '\0') { + kwVal = ulocimp_getKeywordValue(locid, keyword, subStatus); + if (kwVal == DEFAULT_TAG) { + kwVal.clear(); + } } CharString base = ulocimp_getBaseName(locid, subStatus); #if defined(URES_TREE_DEBUG) diff --git a/thirdparty/icu4c/common/uresdata.cpp b/thirdparty/icu4c/common/uresdata.cpp index c38e75c65b27..11faddf1ade9 100644 --- a/thirdparty/icu4c/common/uresdata.cpp +++ b/thirdparty/icu4c/common/uresdata.cpp @@ -140,7 +140,7 @@ isAcceptable(void *context, const char * /*type*/, const char * /*name*/, const UDataInfo *pInfo) { uprv_memcpy(context, pInfo->formatVersion, 4); - return (UBool)( + return pInfo->size>=20 && pInfo->isBigEndian==U_IS_BIG_ENDIAN && pInfo->charsetFamily==U_CHARSET_FAMILY && @@ -149,7 +149,7 @@ isAcceptable(void *context, pInfo->dataFormat[1]==0x65 && pInfo->dataFormat[2]==0x73 && pInfo->dataFormat[3]==0x42 && - (1<=pInfo->formatVersion[0] && pInfo->formatVersion[0]<=3)); + (1<=pInfo->formatVersion[0] && pInfo->formatVersion[0]<=3); } /* semi-public functions ---------------------------------------------------- */ @@ -161,8 +161,8 @@ res_init(ResourceData *pResData, UResType rootType; /* get the root resource */ - pResData->pRoot=(const int32_t *)inBytes; - pResData->rootRes=(Resource)*pResData->pRoot; + pResData->pRoot = static_cast(inBytes); + pResData->rootRes = static_cast(*pResData->pRoot); pResData->p16BitUnits=&gEmpty16; /* formatVersion 1.1 must have a root item and at least 5 indexes */ @@ -173,7 +173,7 @@ res_init(ResourceData *pResData, } /* currently, we accept only resources that have a Table as their roots */ - rootType=(UResType)RES_GET_TYPE(pResData->rootRes); + rootType = static_cast(RES_GET_TYPE(pResData->rootRes)); if(!URES_IS_TABLE(rootType)) { *errorCode=U_INVALID_FORMAT_ERROR; res_unload(pResData); @@ -207,15 +207,15 @@ res_init(ResourceData *pResData, // In version 2, bits 31..8 were reserved and always 0. // In version 3, they contain bits 23..0 of the poolStringIndexLimit. // Bits 27..24 are in indexes[URES_INDEX_ATTRIBUTES] bits 15..12. - pResData->poolStringIndexLimit=(int32_t)((uint32_t)indexes[URES_INDEX_LENGTH]>>8); + pResData->poolStringIndexLimit = static_cast(static_cast(indexes[URES_INDEX_LENGTH]) >> 8); } if(indexLength>URES_INDEX_ATTRIBUTES) { int32_t att=indexes[URES_INDEX_ATTRIBUTES]; - pResData->noFallback=(UBool)(att&URES_ATT_NO_FALLBACK); - pResData->isPoolBundle=(UBool)((att&URES_ATT_IS_POOL_BUNDLE)!=0); - pResData->usesPoolBundle=(UBool)((att&URES_ATT_USES_POOL_BUNDLE)!=0); + pResData->noFallback = static_cast(att & URES_ATT_NO_FALLBACK); + pResData->isPoolBundle = static_cast((att & URES_ATT_IS_POOL_BUNDLE) != 0); + pResData->usesPoolBundle = static_cast((att & URES_ATT_USES_POOL_BUNDLE) != 0); pResData->poolStringIndexLimit|=(att&0xf000)<<12; // bits 15..12 -> 27..24 - pResData->poolStringIndex16Limit=(int32_t)((uint32_t)att>>16); + pResData->poolStringIndex16Limit = static_cast(static_cast(att) >> 16); } if((pResData->isPoolBundle || pResData->usesPoolBundle) && indexLength<=URES_INDEX_POOL_CHECKSUM) { *errorCode=U_INVALID_FORMAT_ERROR; @@ -225,7 +225,7 @@ res_init(ResourceData *pResData, if( indexLength>URES_INDEX_16BIT_TOP && indexes[URES_INDEX_16BIT_TOP]>indexes[URES_INDEX_KEYS_TOP] ) { - pResData->p16BitUnits=(const uint16_t *)(pResData->pRoot+indexes[URES_INDEX_KEYS_TOP]); + pResData->p16BitUnits = reinterpret_cast(pResData->pRoot + indexes[URES_INDEX_KEYS_TOP]); } } @@ -361,14 +361,14 @@ UBool isNoInheritanceMarker(const ResourceData *pResData, Resource res) { } else if (res == offset) { const int32_t *p32=pResData->pRoot+res; int32_t length=*p32; - const char16_t *p=(const char16_t *)p32; + const char16_t* p = reinterpret_cast(p32); return length == 3 && p[2] == 0x2205 && p[3] == 0x2205 && p[4] == 0x2205; } else if (RES_GET_TYPE(res) == URES_STRING_V2) { const char16_t *p; - if((int32_t)offsetpoolStringIndexLimit) { - p=(const char16_t *)pResData->poolBundleStrings+offset; + if (static_cast(offset) < pResData->poolStringIndexLimit) { + p = reinterpret_cast(pResData->poolBundleStrings) + offset; } else { - p=(const char16_t *)pResData->p16BitUnits+(offset-pResData->poolStringIndexLimit); + p = reinterpret_cast(pResData->p16BitUnits) + (offset - pResData->poolStringIndexLimit); } int32_t first=*p; if (first == 0x2205) { // implicit length @@ -580,7 +580,7 @@ ResourceArray ResourceDataValue::getArray(UErrorCode &errorCode) const { switch(RES_GET_TYPE(res)) { case URES_ARRAY: if (offset!=0) { // empty if offset==0 - items32 = (const Resource *)getData().pRoot+offset; + items32 = reinterpret_cast(getData().pRoot) + offset; length = *items32++; } break; @@ -608,9 +608,9 @@ ResourceTable ResourceDataValue::getTable(UErrorCode &errorCode) const { switch(RES_GET_TYPE(res)) { case URES_TABLE: if (offset != 0) { // empty if offset==0 - keys16 = (const uint16_t *)(getData().pRoot+offset); + keys16 = reinterpret_cast(getData().pRoot + offset); length = *keys16++; - items32 = (const Resource *)(keys16+length+(~length&1)); + items32 = reinterpret_cast(keys16 + length + (~length & 1)); } break; case URES_TABLE16: @@ -622,7 +622,7 @@ ResourceTable ResourceDataValue::getTable(UErrorCode &errorCode) const { if (offset != 0) { // empty if offset==0 keys32 = getData().pRoot+offset; length = *keys32++; - items32 = (const Resource *)keys32 + length; + items32 = reinterpret_cast(keys32) + length; } break; default: @@ -1019,9 +1019,9 @@ typedef struct Row { static int32_t U_CALLCONV ures_compareRows(const void *context, const void *left, const void *right) { - const char *keyChars=(const char *)context; - return (int32_t)uprv_strcmp(keyChars+((const Row *)left)->keyIndex, - keyChars+((const Row *)right)->keyIndex); + const char* keyChars = static_cast(context); + return static_cast(uprv_strcmp(keyChars + static_cast(left)->keyIndex, + keyChars + static_cast(right)->keyIndex)); } typedef struct TempTable { @@ -1040,13 +1040,10 @@ enum { /* The table item key string is not locally available. */ static const char *const gUnknownKey=""; -/* resource table key for collation binaries: "%%CollationBin" */ -static const char16_t gCollationBinKey[]={ - 0x25, 0x25, - 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x69, 0x6e, - 0 -}; +#if !UCONFIG_NO_COLLATION +// resource table key for collation binaries +static const char16_t gCollationBinKey[]=u"%%CollationBin"; +#endif /* * swap one resource item @@ -1074,17 +1071,17 @@ ures_swapResource(const UDataSwapper *ds, } /* all other types use an offset to point to their data */ - offset=(int32_t)RES_GET_OFFSET(res); + offset = static_cast(RES_GET_OFFSET(res)); if(offset==0) { /* special offset indicating an empty item */ return; } - if(pTempTable->resFlags[offset>>5]&((uint32_t)1<<(offset&0x1f))) { + if (pTempTable->resFlags[offset >> 5] & (static_cast(1) << (offset & 0x1f))) { /* we already swapped this resource item */ return; } else { /* mark it as swapped now */ - pTempTable->resFlags[offset>>5]|=((uint32_t)1<<(offset&0x1f)); + pTempTable->resFlags[offset >> 5] |= static_cast(1) << (offset & 0x1f); } p=inBundle+offset; @@ -1095,14 +1092,14 @@ ures_swapResource(const UDataSwapper *ds, /* physically same value layout as string, fall through */ U_FALLTHROUGH; case URES_STRING: - count=udata_readInt32(ds, (int32_t)*p); + count = udata_readInt32(ds, static_cast(*p)); /* swap length */ ds->swapArray32(ds, p, 4, q, pErrorCode); /* swap each char16_t (the terminating NUL would not change) */ ds->swapArray16(ds, p+1, 2*count, q+1, pErrorCode); break; case URES_BINARY: - count=udata_readInt32(ds, (int32_t)*p); + count = udata_readInt32(ds, static_cast(*p)); /* swap length */ ds->swapArray32(ds, p, 4, q, pErrorCode); /* no need to swap or copy bytes - ures_swap() copied them all */ @@ -1135,8 +1132,8 @@ ures_swapResource(const UDataSwapper *ds, if(RES_GET_TYPE(res)==URES_TABLE) { /* get table item count */ - pKey16=(const uint16_t *)p; - qKey16=(uint16_t *)q; + pKey16 = reinterpret_cast(p); + qKey16 = reinterpret_cast(q); count=ds->readUInt16(*pKey16); pKey32=qKey32=nullptr; @@ -1147,8 +1144,8 @@ ures_swapResource(const UDataSwapper *ds, offset+=((1+count)+1)/2; } else { /* get table item count */ - pKey32=(const int32_t *)p; - qKey32=(int32_t *)q; + pKey32 = reinterpret_cast(p); + qKey32 = reinterpret_cast(q); count=udata_readInt32(ds, *pKey32); pKey16=qKey16=nullptr; @@ -1172,12 +1169,12 @@ ures_swapResource(const UDataSwapper *ds, if(pKey16!=nullptr) { int32_t keyOffset=ds->readUInt16(pKey16[i]); if(keyOffsetlocalKeyLimit) { - itemKey=(const char *)outBundle+keyOffset; + itemKey = reinterpret_cast(outBundle) + keyOffset; } } else { int32_t keyOffset=udata_readInt32(ds, pKey32[i]); if(keyOffset>=0) { - itemKey=(const char *)outBundle+keyOffset; + itemKey = reinterpret_cast(outBundle) + keyOffset; } } item=ds->readUInt32(p[i]); @@ -1243,7 +1240,7 @@ ures_swapResource(const UDataSwapper *ds, if(pKey16!=qKey16) { rKey16=qKey16; } else { - rKey16=(uint16_t *)pTempTable->resort; + rKey16 = reinterpret_cast(pTempTable->resort); } for(i=0; irows[i].sortIndex; @@ -1277,7 +1274,7 @@ ures_swapResource(const UDataSwapper *ds, if(p!=q) { r=q; } else { - r=(Resource *)pTempTable->resort; + r = reinterpret_cast(pTempTable->resort); } for(i=0; irows[i].sortIndex; @@ -1294,7 +1291,7 @@ ures_swapResource(const UDataSwapper *ds, Resource item; int32_t i; - count=udata_readInt32(ds, (int32_t)*p); + count = udata_readInt32(ds, static_cast(*p)); /* swap length */ ds->swapArray32(ds, p++, 4, q++, pErrorCode); @@ -1314,7 +1311,7 @@ ures_swapResource(const UDataSwapper *ds, } break; case URES_INT_VECTOR: - count=udata_readInt32(ds, (int32_t)*p); + count = udata_readInt32(ds, static_cast(*p)); /* swap length and each integer */ ds->swapArray32(ds, p, 4*(1+count), q, pErrorCode); break; @@ -1457,6 +1454,9 @@ ures_swap(const UDataSwapper *ds, outBundle+keysBottom, pErrorCode); if(U_FAILURE(*pErrorCode)) { udata_printError(ds, "ures_swap().udata_swapInvStringBlock(keys[%d]) failed\n", 4*(keysTop-keysBottom)); + if(tempTable.resFlags!=stackResFlags) { + uprv_free(tempTable.resFlags); + } return 0; } @@ -1465,6 +1465,9 @@ ures_swap(const UDataSwapper *ds, ds->swapArray16(ds, inBundle+keysTop, (resBottom-keysTop)*4, outBundle+keysTop, pErrorCode); if(U_FAILURE(*pErrorCode)) { udata_printError(ds, "ures_swap().swapArray16(16-bit units[%d]) failed\n", 2*(resBottom-keysTop)); + if(tempTable.resFlags!=stackResFlags) { + uprv_free(tempTable.resFlags); + } return 0; } } diff --git a/thirdparty/icu4c/common/uscript.cpp b/thirdparty/icu4c/common/uscript.cpp index 2e9012a982cd..c48a28fd1434 100644 --- a/thirdparty/icu4c/common/uscript.cpp +++ b/thirdparty/icu4c/common/uscript.cpp @@ -74,7 +74,7 @@ getCodesFromLocale(const char *locale, } // Explicit script code. if (!script.isEmpty()) { - UScriptCode scriptCode = (UScriptCode)u_getPropertyValueEnum(UCHAR_SCRIPT, script.data()); + UScriptCode scriptCode = static_cast(u_getPropertyValueEnum(UCHAR_SCRIPT, script.data())); if(scriptCode != USCRIPT_INVALID_CODE) { if(scriptCode == USCRIPT_SIMPLIFIED_HAN || scriptCode == USCRIPT_TRADITIONAL_HAN) { scriptCode = USCRIPT_HAN; diff --git a/thirdparty/icu4c/common/uscript_props.cpp b/thirdparty/icu4c/common/uscript_props.cpp index b26164408a42..8d36bd33930e 100644 --- a/thirdparty/icu4c/common/uscript_props.cpp +++ b/thirdparty/icu4c/common/uscript_props.cpp @@ -244,6 +244,14 @@ const int32_t SCRIPT_PROPS[] = { 0x10582 | EXCLUSION | CASED, // Vith 0x11F1B | EXCLUSION | LB_LETTERS, // Kawi 0x1E4E6 | EXCLUSION, // Nagm + 0, + 0x10D5D | EXCLUSION | RTL | CASED, // Gara + 0x1611C | EXCLUSION, // Gukh + 0x16D45 | EXCLUSION, // Krai + 0x1E5D0 | EXCLUSION, // Onao + 0x11BC4 | EXCLUSION, // Sunu + 0x105C2 | EXCLUSION, // Todr + 0x11392 | EXCLUSION, // Tutg // End copy-paste from parsescriptmetadata.py }; diff --git a/thirdparty/icu4c/common/uset.cpp b/thirdparty/icu4c/common/uset.cpp index b2d0b91d4b6a..29b8655ac965 100644 --- a/thirdparty/icu4c/common/uset.cpp +++ b/thirdparty/icu4c/common/uset.cpp @@ -21,6 +21,7 @@ */ #include "unicode/utypes.h" +#include "unicode/char16ptr.h" #include "unicode/uobject.h" #include "unicode/uset.h" #include "unicode/uniset.h" @@ -306,12 +307,32 @@ uset_getRangeCount(const USet *set) { return ((const UnicodeSet *)set)->UnicodeSet::getRangeCount(); } +U_CAPI int32_t U_EXPORT2 +uset_getStringCount(const USet *uset) { + const UnicodeSet &set = *(const UnicodeSet *)uset; + return USetAccess::getStringCount(set); +} + U_CAPI int32_t U_EXPORT2 uset_getItemCount(const USet* uset) { const UnicodeSet& set = *(const UnicodeSet*)uset; return set.getRangeCount() + USetAccess::getStringCount(set); } +U_CAPI const UChar* U_EXPORT2 +uset_getString(const USet *uset, int32_t index, int32_t *pLength) { + if (pLength == nullptr) { return nullptr; } + const UnicodeSet &set = *(const UnicodeSet *)uset; + int32_t count = USetAccess::getStringCount(set); + if (index < 0 || count <= index) { + *pLength = 0; + return nullptr; + } + const UnicodeString *s = USetAccess::getString(set, index); + *pLength = s->length(); + return toUCharPtr(s->getBuffer()); +} + U_CAPI int32_t U_EXPORT2 uset_getItem(const USet* uset, int32_t itemIndex, UChar32* start, UChar32* end, @@ -475,7 +496,7 @@ uset_serializedContains(const USerializedSet* set, UChar32 c) { } else { hi += 1; } - return (UBool)(hi&1); + return hi&1; } else { /* find c in the supplementary part */ uint16_t high=(uint16_t)(c>>16), low=(uint16_t)c; @@ -500,7 +521,7 @@ uset_serializedContains(const USerializedSet* set, UChar32 c) { hi += 2; } /* count pairs of 16-bit units even per BMP and check if the number of pairs is odd */ - return (UBool)(((hi+(base<<1))&2)!=0); + return ((hi+(base<<1))&2)!=0; } } diff --git a/thirdparty/icu4c/common/usetiter.cpp b/thirdparty/icu4c/common/usetiter.cpp index d24a15ab2df0..a79d1a26f100 100644 --- a/thirdparty/icu4c/common/usetiter.cpp +++ b/thirdparty/icu4c/common/usetiter.cpp @@ -60,8 +60,8 @@ UBool UnicodeSetIterator::next() { } if (nextString >= stringCount) return false; - codepoint = (UChar32)IS_STRING; // signal that value is actually a string - string = (const UnicodeString*) set->strings->elementAt(nextString++); + codepoint = static_cast(IS_STRING); // signal that value is actually a string + string = static_cast(set->strings_->elementAt(nextString++)); return true; } @@ -93,8 +93,8 @@ UBool UnicodeSetIterator::nextRange() { } if (nextString >= stringCount) return false; - codepoint = (UChar32)IS_STRING; // signal that value is actually a string - string = (const UnicodeString*) set->strings->elementAt(nextString++); + codepoint = static_cast(IS_STRING); // signal that value is actually a string + string = static_cast(set->strings_->elementAt(nextString++)); return true; } @@ -135,12 +135,12 @@ void UnicodeSetIterator::loadRange(int32_t iRange) { const UnicodeString& UnicodeSetIterator::getString() { - if (string==nullptr && codepoint!=(UChar32)IS_STRING) { + if (string == nullptr && codepoint != static_cast(IS_STRING)) { if (cpString == nullptr) { cpString = new UnicodeString(); } if (cpString != nullptr) { - cpString->setTo((UChar32)codepoint); + cpString->setTo(codepoint); } string = cpString; } diff --git a/thirdparty/icu4c/common/ushape.cpp b/thirdparty/icu4c/common/ushape.cpp index d0ac95e0b234..00125635cb26 100644 --- a/thirdparty/icu4c/common/ushape.cpp +++ b/thirdparty/icu4c/common/ushape.cpp @@ -360,8 +360,8 @@ _shapeToArabicDigitsWithContext(char16_t *s, int32_t length, lastStrongWasAL=true; break; case U_EUROPEAN_NUMBER: /* EN */ - if(lastStrongWasAL && (uint32_t)(c-0x30)<10) { - s[i]=(char16_t)(digitBase+c); /* digitBase+(c-0x30) - digitBase was modified above */ + if (lastStrongWasAL && static_cast(c - 0x30) < 10) { + s[i] = static_cast(digitBase + c); /* digitBase+(c-0x30) - digitBase was modified above */ } break; default : @@ -380,8 +380,8 @@ _shapeToArabicDigitsWithContext(char16_t *s, int32_t length, lastStrongWasAL=true; break; case U_EUROPEAN_NUMBER: /* EN */ - if(lastStrongWasAL && (uint32_t)(c-0x30)<10) { - s[i]=(char16_t)(digitBase+c); /* digitBase+(c-0x30) - digitBase was modified above */ + if (lastStrongWasAL && static_cast(c - 0x30) < 10) { + s[i] = static_cast(digitBase + c); /* digitBase+(c-0x30) - digitBase was modified above */ } break; default : @@ -483,7 +483,7 @@ countSpaces(char16_t *dest, int32_t size, uint32_t /*options*/, int32_t *spacesC */ static inline int32_t isTashkeelChar(char16_t ch) { - return (int32_t)( ch>=0x064B && ch<= 0x0652 ); + return static_cast(ch >= 0x064B && ch <= 0x0652); } /* @@ -492,7 +492,7 @@ isTashkeelChar(char16_t ch) { */ static inline int32_t isTashkeelCharFE(char16_t ch) { - return (int32_t)( ch>=0xFE70 && ch<= 0xFE7F ); + return static_cast(ch >= 0xFE70 && ch <= 0xFE7F); } /* @@ -501,7 +501,7 @@ isTashkeelCharFE(char16_t ch) { */ static inline int32_t isAlefChar(char16_t ch) { - return (int32_t)( (ch==0x0622)||(ch==0x0623)||(ch==0x0625)||(ch==0x0627) ); + return static_cast(ch == 0x0622 || ch == 0x0623 || ch == 0x0625 || ch == 0x0627); } /* @@ -510,7 +510,7 @@ isAlefChar(char16_t ch) { */ static inline int32_t isLamAlefChar(char16_t ch) { - return (int32_t)((ch>=0xFEF5)&&(ch<=0xFEFC) ); + return static_cast(ch >= 0xFEF5 && ch <= 0xFEFC); } /*BIDI @@ -564,7 +564,7 @@ isSeenFamilyChar(char16_t ch){ */ static inline int32_t isAlefMaksouraChar(char16_t ch) { - return (int32_t)( (ch == 0xFEEF) || ( ch == 0xFEF0) || (ch == 0x0649)); + return static_cast(ch == 0xFEEF || ch == 0xFEF0 || ch == 0x0649); } /* @@ -747,7 +747,7 @@ handleGeneratedSpaces(char16_t *dest, int32_t sourceLength, } } - tempbuffer = (char16_t *)uprv_malloc((sourceLength+1)*U_SIZEOF_UCHAR); + tempbuffer = static_cast(uprv_malloc((sourceLength + 1) * U_SIZEOF_UCHAR)); /* Test for nullptr */ if(tempbuffer == nullptr) { *pErrorCode = U_MEMORY_ALLOCATION_ERROR; @@ -905,7 +905,7 @@ expandCompositCharAtBegin(char16_t *dest, int32_t sourceLength, int32_t destSize int32_t countl = 0; char16_t *tempbuffer=nullptr; - tempbuffer = (char16_t *)uprv_malloc((sourceLength+1)*U_SIZEOF_UCHAR); + tempbuffer = static_cast(uprv_malloc((sourceLength + 1) * U_SIZEOF_UCHAR)); /* Test for nullptr */ if(tempbuffer == nullptr) { @@ -967,7 +967,7 @@ expandCompositCharAtEnd(char16_t *dest, int32_t sourceLength, int32_t destSize,U int32_t inpsize = sourceLength; char16_t *tempbuffer=nullptr; - tempbuffer = (char16_t *)uprv_malloc((sourceLength+1)*U_SIZEOF_UCHAR); + tempbuffer = static_cast(uprv_malloc((sourceLength + 1) * U_SIZEOF_UCHAR)); /* Test for nullptr */ if(tempbuffer == nullptr) { @@ -1154,7 +1154,7 @@ expandCompositChar(char16_t *dest, int32_t sourceLength, if (shapingMode == 1){ if ( (options&U_SHAPE_LAMALEF_MASK) == U_SHAPE_LAMALEF_RESIZE){ destSize = calculateSize(dest,sourceLength,destSize,options); - tempbuffer = (char16_t *)uprv_malloc((destSize+1)*U_SIZEOF_UCHAR); + tempbuffer = static_cast(uprv_malloc((destSize + 1) * U_SIZEOF_UCHAR)); /* Test for nullptr */ if(tempbuffer == nullptr) { @@ -1326,9 +1326,9 @@ shapeUnicode(char16_t *dest, int32_t sourceLength, dest[i] = 0xFE70 + IrrelevantPos[(dest[i] - 0x064B)] + static_cast(Shape); } }else if ((currLink & APRESENT) > 0) { - dest[i] = (char16_t)(0xFB50 + (currLink >> 8) + Shape); + dest[i] = static_cast(0xFB50 + (currLink >> 8) + Shape); }else if ((currLink >> 8) > 0 && (currLink & IRRELEVANT) == 0) { - dest[i] = (char16_t)(0xFE70 + (currLink >> 8) + Shape); + dest[i] = static_cast(0xFE70 + (currLink >> 8) + Shape); } } } @@ -1709,13 +1709,13 @@ u_shapeArabic(const char16_t *source, int32_t sourceLength, case U_SHAPE_DIGITS_ALEN2AN_INIT_LR: _shapeToArabicDigitsWithContext(dest, destLength, digitBase, - (UBool)((options&U_SHAPE_TEXT_DIRECTION_MASK)==U_SHAPE_TEXT_DIRECTION_LOGICAL), + (options & U_SHAPE_TEXT_DIRECTION_MASK) == U_SHAPE_TEXT_DIRECTION_LOGICAL, false); break; case U_SHAPE_DIGITS_ALEN2AN_INIT_AL: _shapeToArabicDigitsWithContext(dest, destLength, digitBase, - (UBool)((options&U_SHAPE_TEXT_DIRECTION_MASK)==U_SHAPE_TEXT_DIRECTION_LOGICAL), + (options & U_SHAPE_TEXT_DIRECTION_MASK) == U_SHAPE_TEXT_DIRECTION_LOGICAL, true); break; default: diff --git a/thirdparty/icu4c/common/usprep.cpp b/thirdparty/icu4c/common/usprep.cpp index 22ab0c24ebb8..477b8f2309db 100644 --- a/thirdparty/icu4c/common/usprep.cpp +++ b/thirdparty/icu4c/common/usprep.cpp @@ -126,8 +126,7 @@ compareEntries(const UHashTok p1, const UHashTok p2) { name2.pointer = b2->name; path1.pointer = b1->path; path2.pointer = b2->path; - return ((UBool)(uhash_compareChars(name1, name2) & - uhash_compareChars(path1, path2))); + return uhash_compareChars(name1, name2) & uhash_compareChars(path1, path2); } static void @@ -246,8 +245,8 @@ loadData(UStringPrepProfile* profile, return false; } - p=(const int32_t *)udata_getMemory(dataMemory); - pb=(const uint8_t *)(p+_SPREP_INDEX_TOP); + p = static_cast(udata_getMemory(dataMemory)); + pb = reinterpret_cast(p + _SPREP_INDEX_TOP); utrie_unserialize(&_sprepTrie, pb, p[_SPREP_INDEX_TRIE_SIZE], errorCode); _sprepTrie.getFoldingOffset=getSPrepFoldingOffset; @@ -265,11 +264,11 @@ loadData(UStringPrepProfile* profile, uprv_memcpy(&profile->indexes, p, sizeof(profile->indexes)); uprv_memcpy(&profile->sprepTrie, &_sprepTrie, sizeof(UTrie)); } else { - p=(const int32_t *)udata_getMemory(profile->sprepData); + p = static_cast(udata_getMemory(profile->sprepData)); } umtx_unlock(&usprepMutex); /* initialize some variables */ - profile->mappingData=(uint16_t *)((uint8_t *)(p+_SPREP_INDEX_TOP)+profile->indexes[_SPREP_INDEX_TRIE_SIZE]); + profile->mappingData = reinterpret_cast(reinterpret_cast(p + _SPREP_INDEX_TOP) + profile->indexes[_SPREP_INDEX_TRIE_SIZE]); u_getUnicodeVersion(normUnicodeVersion); normUniVer = (normUnicodeVersion[0] << 24) + (normUnicodeVersion[1] << 16) + @@ -320,12 +319,12 @@ usprep_getProfile(const char* path, * we use the passed in pointers for fetching the data from the * hash table which is safe */ - stackKey.name = (char*) name; - stackKey.path = (char*) path; + stackKey.name = const_cast(name); + stackKey.path = const_cast(path); /* fetch the data from the cache */ umtx_lock(&usprepMutex); - profile = (UStringPrepProfile*) (uhash_get(SHARED_DATA_HASHTABLE,&stackKey)); + profile = static_cast(uhash_get(SHARED_DATA_HASHTABLE, &stackKey)); if(profile != nullptr) { profile->refCount++; } @@ -345,8 +344,8 @@ usprep_getProfile(const char* path, } /* get the options */ - newProfile->doNFKC = (UBool)((newProfile->indexes[_SPREP_OPTIONS] & _SPREP_NORMALIZATION_ON) > 0); - newProfile->checkBiDi = (UBool)((newProfile->indexes[_SPREP_OPTIONS] & _SPREP_CHECK_BIDI_ON) > 0); + newProfile->doNFKC = static_cast((newProfile->indexes[_SPREP_OPTIONS] & _SPREP_NORMALIZATION_ON) > 0); + newProfile->checkBiDi = static_cast((newProfile->indexes[_SPREP_OPTIONS] & _SPREP_CHECK_BIDI_ON) > 0); LocalMemory key; LocalMemory keyName; @@ -363,7 +362,7 @@ usprep_getProfile(const char* path, umtx_lock(&usprepMutex); // If another thread already inserted the same key/value, refcount and cleanup our thread data - profile = (UStringPrepProfile*) (uhash_get(SHARED_DATA_HASHTABLE,&stackKey)); + profile = static_cast(uhash_get(SHARED_DATA_HASHTABLE, &stackKey)); if(profile != nullptr) { profile->refCount++; usprep_unload(newProfile.getAlias()); @@ -477,7 +476,7 @@ getValues(uint16_t trieWord, int16_t& value, UBool& isIndex){ isIndex =false; value = 0; }else if(trieWord >= _SPREP_TYPE_THRESHOLD){ - type = (UStringPrepType) (trieWord - _SPREP_TYPE_THRESHOLD); + type = static_cast(trieWord - _SPREP_TYPE_THRESHOLD); isIndex =false; value = 0; }else{ @@ -489,7 +488,7 @@ getValues(uint16_t trieWord, int16_t& value, UBool& isIndex){ value = trieWord >> 2; //mask off the lower 2 bits and shift }else{ isIndex = false; - value = (int16_t)trieWord; + value = static_cast(trieWord); value = (value >> 2); } @@ -514,7 +513,7 @@ usprep_map( const UStringPrepProfile* profile, uint16_t result; int32_t destIndex=0; int32_t srcIndex; - UBool allowUnassigned = (UBool) ((options & USPREP_ALLOW_UNASSIGNED)>0); + UBool allowUnassigned = static_cast((options & USPREP_ALLOW_UNASSIGNED) > 0); UStringPrepType type; int16_t value; UBool isIndex; @@ -581,7 +580,7 @@ usprep_map( const UStringPrepProfile* profile, //copy the code point into destination if(ch <= 0xFFFF){ if(destIndex < destCapacity ){ - dest[destIndex] = (char16_t)ch; + dest[destIndex] = static_cast(ch); } destIndex++; }else{ diff --git a/thirdparty/icu4c/common/ustr_titlecase_brkiter.cpp b/thirdparty/icu4c/common/ustr_titlecase_brkiter.cpp index 82beaca65b2c..e96af0df878d 100644 --- a/thirdparty/icu4c/common/ustr_titlecase_brkiter.cpp +++ b/thirdparty/icu4c/common/ustr_titlecase_brkiter.cpp @@ -93,7 +93,7 @@ void WholeStringBreakIterator::setText(UText *text, UErrorCode &errorCode) { if (U_SUCCESS(errorCode)) { int64_t length64 = utext_nativeLength(text); if (length64 <= INT32_MAX) { - length = (int32_t)length64; + length = static_cast(length64); } else { errorCode = U_INDEX_OUTOFBOUNDS_ERROR; } diff --git a/thirdparty/icu4c/common/ustr_wcs.cpp b/thirdparty/icu4c/common/ustr_wcs.cpp index efbbbc2f1878..8ce0855226d6 100644 --- a/thirdparty/icu4c/common/ustr_wcs.cpp +++ b/thirdparty/icu4c/common/ustr_wcs.cpp @@ -57,7 +57,7 @@ u_growAnyBufferFromStatic(void *context, } *pBuffer=newBuffer; - return (UBool)(newBuffer!=nullptr); + return newBuffer!=nullptr; } /* helper function */ diff --git a/thirdparty/icu4c/common/ustrcase.cpp b/thirdparty/icu4c/common/ustrcase.cpp index 4c726d47db12..58b5c5ef6235 100644 --- a/thirdparty/icu4c/common/ustrcase.cpp +++ b/thirdparty/icu4c/common/ustrcase.cpp @@ -77,7 +77,7 @@ appendResult(char16_t *dest, int32_t destIndex, int32_t destCapacity, } c=~result; if(destIndex(c); return destIndex; } length=cpLength; @@ -86,7 +86,7 @@ appendResult(char16_t *dest, int32_t destIndex, int32_t destCapacity, c=U_SENTINEL; length=result; } else if(destIndex(result); if(edits!=nullptr) { edits->addReplace(cpLength, 1); } @@ -171,7 +171,7 @@ appendUnchanged(char16_t *dest, int32_t destIndex, int32_t destCapacity, UChar32 U_CALLCONV utf16_caseContextIterator(void *context, int8_t dir) { - UCaseContext *csc=(UCaseContext *)context; + UCaseContext* csc = static_cast(context); UChar32 c; if(dir<0) { @@ -272,7 +272,7 @@ int32_t toLower(int32_t caseLocale, uint32_t options, } else { c = lead; } - const char16_t *s; + const char16_t *s = nullptr; if (caseLocale >= 0) { csc->cpStart = cpStart; csc->cpLimit = srcIndex; @@ -369,7 +369,7 @@ int32_t toUpper(int32_t caseLocale, uint32_t options, c = lead; } csc->cpLimit = srcIndex; - const char16_t *s; + const char16_t *s = nullptr; c = ucase_toFullUpper(c, utf16_caseContextIterator, csc, &s, caseLocale); if (c >= 0) { destIndex = appendUnchanged(dest, destIndex, destCapacity, @@ -579,8 +579,8 @@ ustrcase_internalToTitle(int32_t caseLocale, uint32_t options, BreakIterator *it } if (c == u'I' || c == u'Í') { - titleLimit = maybeTitleDutchIJ(src, c, titleStart + 1, index, - dest, destIndex, destCapacity, options, + titleLimit = maybeTitleDutchIJ(src, c, titleStart + 1, index, + dest, destIndex, destCapacity, options, edits); } } @@ -1216,7 +1216,7 @@ int32_t toUpper(uint32_t options, } if (change) { - destIndex=appendUChar(dest, destIndex, destCapacity, (char16_t)upper); + destIndex = appendUChar(dest, destIndex, destCapacity, static_cast(upper)); if (destIndex >= 0 && (data & HAS_EITHER_DIALYTIKA) != 0) { destIndex=appendUChar(dest, destIndex, destCapacity, 0x308); // restore or add a dialytika } @@ -1698,7 +1698,7 @@ static int32_t _cmpFold( */ if( level1==0 && - (length=ucase_toFullFolding((UChar32)cp1, &p, options))>=0 + (length = ucase_toFullFolding(cp1, &p, options)) >= 0 ) { /* cp1 case-folds to the code point "length" or to p[length] */ if(U_IS_SURROGATE(c1)) { @@ -1744,7 +1744,7 @@ static int32_t _cmpFold( } if( level2==0 && - (length=ucase_toFullFolding((UChar32)cp2, &p, options))>=0 + (length = ucase_toFullFolding(cp2, &p, options)) >= 0 ) { /* cp2 case-folds to the code point "length" or to p[length] */ if(U_IS_SURROGATE(c2)) { diff --git a/thirdparty/icu4c/common/ustrenum.cpp b/thirdparty/icu4c/common/ustrenum.cpp index f4fc5906ed71..c42014d617d7 100644 --- a/thirdparty/icu4c/common/ustrenum.cpp +++ b/thirdparty/icu4c/common/ustrenum.cpp @@ -89,7 +89,7 @@ StringEnumeration::ensureCharsCapacity(int32_t capacity, UErrorCode &status) { if(chars!=charsBuffer) { uprv_free(chars); } - chars=(char *)uprv_malloc(capacity); + chars = static_cast(uprv_malloc(capacity)); if(chars==nullptr) { chars=charsBuffer; charsCapacity=sizeof(charsBuffer); @@ -104,7 +104,7 @@ UnicodeString * StringEnumeration::setChars(const char *s, int32_t length, UErrorCode &status) { if(U_SUCCESS(status) && s!=nullptr) { if(length<0) { - length=(int32_t)uprv_strlen(s); + length = static_cast(uprv_strlen(s)); } char16_t *buffer=unistr.getBuffer(length+1); @@ -307,7 +307,7 @@ ucharstrenum_unext(UEnumeration* en, } const char16_t* result = ((const char16_t**)e->uenum.context)[e->index++]; if (resultLength) { - *resultLength = (int32_t)u_strlen(result); + *resultLength = u_strlen(result); } return result; } diff --git a/thirdparty/icu4c/common/ustring.cpp b/thirdparty/icu4c/common/ustring.cpp index 4f7443cc886b..8375121e2f45 100644 --- a/thirdparty/icu4c/common/ustring.cpp +++ b/thirdparty/icu4c/common/ustring.cpp @@ -1356,7 +1356,7 @@ _charPtr_charAt(int32_t offset, void *context) { char16_t c16; /* It would be more efficient to access the invariant tables * directly but there is no API for that. */ - u_charsToUChars(((char*) context) + offset, &c16, 1); + u_charsToUChars(static_cast(context) + offset, &c16, 1); return c16; } @@ -1394,7 +1394,7 @@ u_unescape(const char *src, char16_t *dest, int32_t destCapacity) { i += (int32_t)(src - segment); } ++src; /* advance past '\\' */ - c32 = (UChar32)u_unescapeAt(_charPtr_charAt, &lenParsed, (int32_t)uprv_strlen(src), (void*)src); + c32 = u_unescapeAt(_charPtr_charAt, &lenParsed, (int32_t)uprv_strlen(src), const_cast(src)); if (lenParsed == 0) { goto err; } diff --git a/thirdparty/icu4c/common/ustrtrns.cpp b/thirdparty/icu4c/common/ustrtrns.cpp index 244c111fc416..d16eabe99fd0 100644 --- a/thirdparty/icu4c/common/ustrtrns.cpp +++ b/thirdparty/icu4c/common/ustrtrns.cpp @@ -771,19 +771,19 @@ static inline uint8_t * _appendUTF8(uint8_t *pDest, UChar32 c) { /* it is 0<=c<=0x10ffff and not a surrogate if called by a validating function */ if((c)<=0x7f) { - *pDest++=(uint8_t)c; + *pDest++ = static_cast(c); } else if(c<=0x7ff) { - *pDest++=(uint8_t)((c>>6)|0xc0); - *pDest++=(uint8_t)((c&0x3f)|0x80); + *pDest++ = static_cast((c >> 6) | 0xc0); + *pDest++ = static_cast((c & 0x3f) | 0x80); } else if(c<=0xffff) { - *pDest++=(uint8_t)((c>>12)|0xe0); - *pDest++=(uint8_t)(((c>>6)&0x3f)|0x80); - *pDest++=(uint8_t)(((c)&0x3f)|0x80); + *pDest++ = static_cast((c >> 12) | 0xe0); + *pDest++ = static_cast(((c >> 6) & 0x3f) | 0x80); + *pDest++ = static_cast(((c) & 0x3f) | 0x80); } else /* if((uint32_t)(c)<=0x10ffff) */ { - *pDest++=(uint8_t)(((c)>>18)|0xf0); - *pDest++=(uint8_t)((((c)>>12)&0x3f)|0x80); - *pDest++=(uint8_t)((((c)>>6)&0x3f)|0x80); - *pDest++=(uint8_t)(((c)&0x3f)|0x80); + *pDest++ = static_cast(((c) >> 18) | 0xf0); + *pDest++ = static_cast((((c) >> 12) & 0x3f) | 0x80); + *pDest++ = static_cast((((c) >> 6) & 0x3f) | 0x80); + *pDest++ = static_cast(((c) & 0x3f) | 0x80); } return pDest; } diff --git a/thirdparty/icu4c/common/utext.cpp b/thirdparty/icu4c/common/utext.cpp index eb0a6984bd3f..0a4248c4e459 100644 --- a/thirdparty/icu4c/common/utext.cpp +++ b/thirdparty/icu4c/common/utext.cpp @@ -738,7 +738,7 @@ pinIndex(int64_t &index, int64_t limit) { } else if (index > limit) { index = limit; } - return (int32_t)index; + return static_cast(index); } @@ -1937,7 +1937,7 @@ repTextReplace(UText *ut, } // Do the actual replace operation using methods of the Replaceable class - UnicodeString replStr((UBool)(length<0), src, length); // read-only alias + UnicodeString replStr(length < 0, src, length); // read-only alias rep->handleReplaceBetween(start32, limit32, replStr); int32_t newLength = rep->length(); int32_t lengthDelta = newLength - oldLength; diff --git a/thirdparty/icu4c/common/util.cpp b/thirdparty/icu4c/common/util.cpp index f6a13aa445d2..d80ccb50ed0e 100644 --- a/thirdparty/icu4c/common/util.cpp +++ b/thirdparty/icu4c/common/util.cpp @@ -37,12 +37,12 @@ UnicodeString& ICU_Utility::appendNumber(UnicodeString& result, int32_t n, int32_t radix, int32_t minDigits) { if (radix < 2 || radix > 36) { // Bogus radix - return result.append((char16_t)63/*?*/); + return result.append(static_cast(63)/*?*/); } // Handle negatives if (n < 0) { n = -n; - result.append((char16_t)45/*-*/); + result.append(static_cast(45)/*-*/); } // First determine the number of digits int32_t nn = n; @@ -150,7 +150,7 @@ int32_t ICU_Utility::skipWhitespace(const UnicodeString& str, int32_t& pos, UBool advance) { int32_t p = pos; const char16_t* s = str.getBuffer(); - p = (int32_t)(PatternProps::skipWhiteSpace(s + p, str.length() - p) - s); + p = static_cast(PatternProps::skipWhiteSpace(s + p, str.length() - p) - s); if (advance) { pos = p; } @@ -361,7 +361,7 @@ void ICU_Utility::appendToRule(UnicodeString& rule, rule.append(BACKSLASH).append(APOSTROPHE); } } - if (c != (UChar32)-1) { + if (c != static_cast(-1)) { /* Since spaces are ignored during parsing, they are * emitted only for readability. We emit one here * only if there isn't already one at the end of the diff --git a/thirdparty/icu4c/common/util_props.cpp b/thirdparty/icu4c/common/util_props.cpp index 366a555eeebd..b1862c24e680 100644 --- a/thirdparty/icu4c/common/util_props.cpp +++ b/thirdparty/icu4c/common/util_props.cpp @@ -120,7 +120,7 @@ int32_t ICU_Utility::parsePattern(const UnicodeString& rule, int32_t pos, int32_ if (pos >= limit) { return -1; } - c = (char16_t) u_tolower(rule.charAt(pos++)); + c = static_cast(u_tolower(rule.charAt(pos++))); if (c != cpat) { return -1; } diff --git a/thirdparty/icu4c/common/utrace.cpp b/thirdparty/icu4c/common/utrace.cpp index 1f536d5643df..875bef31a295 100644 --- a/thirdparty/icu4c/common/utrace.cpp +++ b/thirdparty/icu4c/common/utrace.cpp @@ -138,7 +138,7 @@ static void outputHexBytes(int64_t val, int32_t charsToOutput, static void outputPtrBytes(void *val, char *outBuf, int32_t *outIx, int32_t capacity) { uint32_t i; int32_t incVal = 1; /* +1 for big endian, -1 for little endian */ - char *p = (char *)&val; /* point to current byte to output in the ptr val */ + char* p = reinterpret_cast(&val); /* point to current byte to output in the ptr val */ #if !U_IS_BIG_ENDIAN /* Little Endian. Move p to most significant end of the value */ @@ -233,7 +233,7 @@ utrace_vformat(char *outBuf, int32_t capacity, int32_t indent, const char *fmt, case 'S': /* char16_t * string, with length, len==-1 for NUL terminated. */ ptrArg = va_arg(args, char *); /* Ptr */ - intArg =(int32_t)va_arg(args, int32_t); /* Length */ + intArg = va_arg(args, int32_t); /* Length */ outputUString((const char16_t *)ptrArg, intArg, outBuf, &outIx, capacity, indent); break; @@ -298,7 +298,7 @@ utrace_vformat(char *outBuf, int32_t capacity, int32_t indent, const char *fmt, i32Ptr = (int32_t *)i8Ptr; i64Ptr = (int64_t *)i8Ptr; ptrPtr = (void **)i8Ptr; - vectorLen =(int32_t)va_arg(args, int32_t); + vectorLen = va_arg(args, int32_t); if (ptrPtr == nullptr) { outputString("*NULL* ", outBuf, &outIx, capacity, indent); } else { diff --git a/thirdparty/icu4c/common/utrie.cpp b/thirdparty/icu4c/common/utrie.cpp index 83be0e340714..6a2cf1a9d995 100644 --- a/thirdparty/icu4c/common/utrie.cpp +++ b/thirdparty/icu4c/common/utrie.cpp @@ -40,7 +40,7 @@ equal_uint32(const uint32_t *s, const uint32_t *t, int32_t length) { ++t; --length; } - return (UBool)(length==0); + return length == 0; } /* Building a trie ----------------------------------------------------------*/ @@ -68,7 +68,7 @@ utrie_open(UNewTrie *fillIn, } } uprv_memset(trie, 0, sizeof(UNewTrie)); - trie->isAllocated= (UBool)(fillIn==nullptr); + trie->isAllocated = fillIn == nullptr; if(aliasData!=nullptr) { trie->data=aliasData; @@ -250,7 +250,7 @@ utrie_get32(UNewTrie *trie, UChar32 c, UBool *pInBlockZero) { block=trie->index[c>>UTRIE_SHIFT]; if(pInBlockZero!=nullptr) { - *pInBlockZero= (UBool)(block==0); + *pInBlockZero = block == 0; } return trie->data[ABS(block)+(c&UTRIE_MASK)]; @@ -730,7 +730,7 @@ defaultGetFoldedValue(UNewTrie *trie, UChar32 start, int32_t offset) { if(inBlockZero) { start+=UTRIE_DATA_BLOCK_LENGTH; } else if(value!=initialValue) { - return (uint32_t)offset; + return static_cast(offset); } else { ++start; } @@ -884,7 +884,7 @@ utrie_unserialize(UTrie *trie, const void *data, int32_t length, UErrorCode *pEr *pErrorCode=U_INVALID_FORMAT_ERROR; return -1; } - trie->isLatin1Linear= (UBool)((options&UTRIE_OPTIONS_LATIN1_IS_LINEAR)!=0); + trie->isLatin1Linear = (options & UTRIE_OPTIONS_LATIN1_IS_LINEAR) != 0; /* get the length values */ trie->indexLength=header->indexLength; diff --git a/thirdparty/icu4c/common/utrie2.cpp b/thirdparty/icu4c/common/utrie2.cpp index 2c3488a4cd02..35be698fbb5d 100644 --- a/thirdparty/icu4c/common/utrie2.cpp +++ b/thirdparty/icu4c/common/utrie2.cpp @@ -389,7 +389,7 @@ utrie2_close(UTrie2 *trie) { U_CAPI UBool U_EXPORT2 utrie2_isFrozen(const UTrie2 *trie) { - return (UBool)(trie->newTrie==nullptr); + return trie->newTrie==nullptr; } U_CAPI int32_t U_EXPORT2 @@ -552,7 +552,7 @@ enumEitherTrie(const UTrie2 *trie, } for(; i2(idx[i2Block + i2]) << UTRIE2_INDEX_SHIFT; } else { block=trie->newTrie->index2[i2Block+i2]; } diff --git a/thirdparty/icu4c/common/utrie2_builder.cpp b/thirdparty/icu4c/common/utrie2_builder.cpp index 02a62e3fd4d3..4bd49c7adfa4 100644 --- a/thirdparty/icu4c/common/utrie2_builder.cpp +++ b/thirdparty/icu4c/common/utrie2_builder.cpp @@ -249,12 +249,12 @@ static UNewTrie2 * cloneBuilder(const UNewTrie2 *other) { UNewTrie2 *trie; - trie=(UNewTrie2 *)uprv_malloc(sizeof(UNewTrie2)); + trie = static_cast(uprv_malloc(sizeof(UNewTrie2))); if(trie==nullptr) { return nullptr; } - trie->data=(uint32_t *)uprv_malloc(other->dataCapacity*4); + trie->data = static_cast(uprv_malloc(other->dataCapacity * 4)); if(trie->data==nullptr) { uprv_free(trie); return nullptr; @@ -506,7 +506,7 @@ isInNullBlock(UNewTrie2 *trie, UChar32 c, UBool forLSCP) { ((c>>UTRIE2_SHIFT_2)&UTRIE2_INDEX_2_MASK); } block=trie->index2[i2]; - return (UBool)(block==trie->dataNullOffset); + return block == trie->dataNullOffset; } static int32_t @@ -577,7 +577,7 @@ allocDataBlock(UNewTrie2 *trie, int32_t copyBlock) { */ return -1; } - data=(uint32_t *)uprv_malloc(capacity*4); + data = static_cast(uprv_malloc(capacity * 4)); if(data==nullptr) { return -1; } @@ -603,7 +603,7 @@ releaseDataBlock(UNewTrie2 *trie, int32_t block) { static inline UBool isWritableBlock(UNewTrie2 *trie, int32_t block) { - return (UBool)(block!=trie->dataNullOffset && 1==trie->map[block>>UTRIE2_SHIFT_2]); + return block != trie->dataNullOffset && 1 == trie->map[block >> UTRIE2_SHIFT_2]; } static inline void @@ -891,7 +891,7 @@ equal_int32(const int32_t *s, const int32_t *t, int32_t length) { ++t; --length; } - return (UBool)(length==0); + return length == 0; } static inline UBool @@ -901,7 +901,7 @@ equal_uint32(const uint32_t *s, const uint32_t *t, int32_t length) { ++t; --length; } - return (UBool)(length==0); + return length == 0; } static int32_t @@ -1211,7 +1211,7 @@ compactIndex2(UNewTrie2 *trie) { */ while((newStart&((UTRIE2_DATA_GRANULARITY-1)|1))!=0) { /* Arbitrary value: 0x3fffc not possible for real data. */ - trie->index2[newStart++]=(int32_t)0xffff<index2[newStart++] = static_cast(0xffff) << UTRIE2_INDEX_SHIFT; } #ifdef UTRIE2_DEBUG diff --git a/thirdparty/icu4c/common/utrie_swap.cpp b/thirdparty/icu4c/common/utrie_swap.cpp index 83d183699d10..bb060203fde0 100644 --- a/thirdparty/icu4c/common/utrie_swap.cpp +++ b/thirdparty/icu4c/common/utrie_swap.cpp @@ -64,7 +64,7 @@ utrie_swap(const UDataSwapper *ds, return 0; } - dataIs32=(UBool)((trie.options&UTRIE_OPTIONS_DATA_IS_32_BIT)!=0); + dataIs32 = (trie.options & UTRIE_OPTIONS_DATA_IS_32_BIT) != 0; size=sizeof(UTrieHeader)+trie.indexLength*2+trie.dataLength*(dataIs32?4:2); if(length>=0) { @@ -305,7 +305,7 @@ getVersion(const void *data, int32_t length, UBool anyEndianOk) { if(length<16 || data==nullptr || (U_POINTER_MASK_LSB(data, 3)!=0)) { return 0; } - signature=*(const uint32_t *)data; + signature = *static_cast(data); if(signature==UCPTRIE_SIG) { return 3; } diff --git a/thirdparty/icu4c/common/uts46.cpp b/thirdparty/icu4c/common/uts46.cpp index f0e1372422da..018c0e19b778 100644 --- a/thirdparty/icu4c/common/uts46.cpp +++ b/thirdparty/icu4c/common/uts46.cpp @@ -451,10 +451,10 @@ UTS46::processUTF8(StringPiece src, return; } char c=srcArray[i]; - if((int8_t)c<0) { // (uint8_t)c>0x7f + if (static_cast(c) < 0) { // (uint8_t)c>0x7f break; } - int cData=asciiData[(int)c]; // Cast: gcc warns about indexing with a char. + int cData = asciiData[static_cast(c)]; // Cast: gcc warns about indexing with a char. if(cData>0) { destArray[i]=c+0x20; // Lowercase an uppercase ASCII letter. } else if(cData<0 && disallowNonLDHDot) { @@ -756,7 +756,12 @@ UTS46::processLabel(UnicodeString &dest, if(U_FAILURE(errorCode)) { return labelLength; } - if(!isValid) { + // Unicode 15.1 UTS #46: + // Added an additional condition in 4.1 Validity Criteria to + // disallow labels such as xn--xn---epa., which do not round-trip. + // --> Validity Criteria new criterion 4: + // If not CheckHyphens, the label must not begin with “xn--”. + if(!isValid || fromPunycode.startsWith(UnicodeString::readOnlyAlias(u"xn--"))) { info.labelErrors|=UIDNA_ERROR_INVALID_ACE_LABEL; return markBadACELabel(dest, labelStart, labelLength, toASCII, info, errorCode); } @@ -796,7 +801,7 @@ UTS46::processLabel(UnicodeString &dest, // in a non-Punycode label or U+FFFD itself in a Punycode label. // We also check for dots which can come from the input to a single-label function. // Ok to cast away const because we own the UnicodeString. - char16_t *s=(char16_t *)label; + char16_t* s = const_cast(label); const char16_t *limit=label+labelLength; char16_t oredChars=0; // If we enforce STD3 rules, then ASCII characters other than LDH and dot are disallowed. @@ -827,7 +832,7 @@ UTS46::processLabel(UnicodeString &dest, U16_NEXT_UNSAFE(label, cpLength, c); if((U_GET_GC_MASK(c)&U_GC_M_MASK)!=0) { info.labelErrors|=UIDNA_ERROR_LEADING_COMBINING_MARK; - labelString->replace(labelStart, cpLength, (char16_t)0xfffd); + labelString->replace(labelStart, cpLength, static_cast(0xfffd)); label=labelString->getBuffer()+labelStart; labelLength+=1-cpLength; if(labelString==&dest) { @@ -947,7 +952,7 @@ UTS46::markBadACELabel(UnicodeString &dest, } } if(onlyLDH) { - dest.insert(labelStart+labelLength, (char16_t)0xfffd); + dest.insert(labelStart + labelLength, static_cast(0xfffd)); if(dest.isBogus()) { errorCode=U_MEMORY_ALLOCATION_ERROR; return 0; @@ -1361,7 +1366,7 @@ uidna_labelToASCII(const UIDNA *idna, if(!checkArgs(label, length, dest, capacity, pInfo, pErrorCode)) { return 0; } - UnicodeString src((UBool)(length<0), label, length); + UnicodeString src(length < 0, label, length); UnicodeString destString(dest, 0, capacity); IDNAInfo info; reinterpret_cast(idna)->labelToASCII(src, destString, info, *pErrorCode); @@ -1377,7 +1382,7 @@ uidna_labelToUnicode(const UIDNA *idna, if(!checkArgs(label, length, dest, capacity, pInfo, pErrorCode)) { return 0; } - UnicodeString src((UBool)(length<0), label, length); + UnicodeString src(length < 0, label, length); UnicodeString destString(dest, 0, capacity); IDNAInfo info; reinterpret_cast(idna)->labelToUnicode(src, destString, info, *pErrorCode); @@ -1393,7 +1398,7 @@ uidna_nameToASCII(const UIDNA *idna, if(!checkArgs(name, length, dest, capacity, pInfo, pErrorCode)) { return 0; } - UnicodeString src((UBool)(length<0), name, length); + UnicodeString src(length < 0, name, length); UnicodeString destString(dest, 0, capacity); IDNAInfo info; reinterpret_cast(idna)->nameToASCII(src, destString, info, *pErrorCode); @@ -1409,7 +1414,7 @@ uidna_nameToUnicode(const UIDNA *idna, if(!checkArgs(name, length, dest, capacity, pInfo, pErrorCode)) { return 0; } - UnicodeString src((UBool)(length<0), name, length); + UnicodeString src(length < 0, name, length); UnicodeString destString(dest, 0, capacity); IDNAInfo info; reinterpret_cast(idna)->nameToUnicode(src, destString, info, *pErrorCode); diff --git a/thirdparty/icu4c/common/utypes.cpp b/thirdparty/icu4c/common/utypes.cpp index 715994d67f04..4602314147f1 100644 --- a/thirdparty/icu4c/common/utypes.cpp +++ b/thirdparty/icu4c/common/utypes.cpp @@ -140,8 +140,7 @@ _uFmtErrorName[U_FMT_PARSE_ERROR_LIMIT - U_FMT_PARSE_ERROR_START] = { "U_MF_MISSING_SELECTOR_ANNOTATION_ERROR", "U_MF_DUPLICATE_DECLARATION_ERROR", "U_MF_OPERAND_MISMATCH_ERROR", - "U_MF_UNSUPPORTED_STATEMENT_ERROR", - "U_MF_UNSUPPORTED_EXPRESSION_ERROR" + "U_MF_DUPLICATE_VARIANT_ERROR" }; static const char * const diff --git a/thirdparty/icu4c/common/uvector.cpp b/thirdparty/icu4c/common/uvector.cpp index 85c322cea75a..5eb89c9a56bb 100644 --- a/thirdparty/icu4c/common/uvector.cpp +++ b/thirdparty/icu4c/common/uvector.cpp @@ -49,10 +49,10 @@ UVector::UVector(UObjectDeleter *d, UElementsAreEqual *c, int32_t initialCapacit return; } // Fix bogus initialCapacity values; avoid malloc(0) and integer overflow - if ((initialCapacity < 1) || (initialCapacity > (int32_t)(INT32_MAX / sizeof(UElement)))) { + if ((initialCapacity < 1) || (initialCapacity > static_cast(INT32_MAX / sizeof(UElement)))) { initialCapacity = DEFAULT_CAPACITY; } - elements = (UElement *)uprv_malloc(sizeof(UElement)*initialCapacity); + elements = static_cast(uprv_malloc(sizeof(UElement) * initialCapacity)); if (elements == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; } else { @@ -340,12 +340,12 @@ UBool UVector::ensureCapacity(int32_t minimumCapacity, UErrorCode &status) { if (newCap < minimumCapacity) { newCap = minimumCapacity; } - if (newCap > (int32_t)(INT32_MAX / sizeof(UElement))) { // integer overflow check + if (newCap > static_cast(INT32_MAX / sizeof(UElement))) { // integer overflow check // We keep the original memory contents on bad minimumCapacity. status = U_ILLEGAL_ARGUMENT_ERROR; return false; } - UElement* newElems = (UElement *)uprv_realloc(elements, sizeof(UElement)*newCap); + UElement* newElems = static_cast(uprv_realloc(elements, sizeof(UElement) * newCap)); if (newElems == nullptr) { // We keep the original contents on the memory failure on realloc or bad minimumCapacity. status = U_MEMORY_ALLOCATION_ERROR; diff --git a/thirdparty/icu4c/common/uvectr32.cpp b/thirdparty/icu4c/common/uvectr32.cpp index a2dc1bdbc983..7389b3f06d02 100644 --- a/thirdparty/icu4c/common/uvectr32.cpp +++ b/thirdparty/icu4c/common/uvectr32.cpp @@ -54,10 +54,10 @@ void UVector32::_init(int32_t initialCapacity, UErrorCode &status) { if (maxCapacity>0 && maxCapacity (int32_t)(INT32_MAX / sizeof(int32_t))) { + if (initialCapacity > static_cast(INT32_MAX / sizeof(int32_t))) { initialCapacity = uprv_min(DEFAULT_CAPACITY, maxCapacity); } - elements = (int32_t *)uprv_malloc(sizeof(int32_t)*initialCapacity); + elements = static_cast(uprv_malloc(sizeof(int32_t) * initialCapacity)); if (elements == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; } else { @@ -223,12 +223,12 @@ UBool UVector32::expandCapacity(int32_t minimumCapacity, UErrorCode &status) { if (maxCapacity > 0 && newCap > maxCapacity) { newCap = maxCapacity; } - if (newCap > (int32_t)(INT32_MAX / sizeof(int32_t))) { // integer overflow check + if (newCap > static_cast(INT32_MAX / sizeof(int32_t))) { // integer overflow check // We keep the original memory contents on bad minimumCapacity/maxCapacity. status = U_ILLEGAL_ARGUMENT_ERROR; return false; } - int32_t* newElems = (int32_t *)uprv_realloc(elements, sizeof(int32_t)*newCap); + int32_t* newElems = static_cast(uprv_realloc(elements, sizeof(int32_t) * newCap)); if (newElems == nullptr) { // We keep the original contents on the memory failure on realloc. status = U_MEMORY_ALLOCATION_ERROR; @@ -244,7 +244,7 @@ void UVector32::setMaxCapacity(int32_t limit) { if (limit < 0) { limit = 0; } - if (limit > (int32_t)(INT32_MAX / sizeof(int32_t))) { // integer overflow check for realloc + if (limit > static_cast(INT32_MAX / sizeof(int32_t))) { // integer overflow check for realloc // Something is very wrong, don't realloc, leave capacity and maxCapacity unchanged return; } @@ -256,7 +256,7 @@ void UVector32::setMaxCapacity(int32_t limit) { // New maximum capacity is smaller than the current size. // Realloc the storage to the new, smaller size. - int32_t* newElems = (int32_t *)uprv_realloc(elements, sizeof(int32_t)*maxCapacity); + int32_t* newElems = static_cast(uprv_realloc(elements, sizeof(int32_t) * maxCapacity)); if (newElems == nullptr) { // Realloc to smaller failed. // Just keep what we had. No need to call it a failure. diff --git a/thirdparty/icu4c/common/uvectr64.cpp b/thirdparty/icu4c/common/uvectr64.cpp index 58b0b1f8b86a..81c923f4f8f8 100644 --- a/thirdparty/icu4c/common/uvectr64.cpp +++ b/thirdparty/icu4c/common/uvectr64.cpp @@ -51,10 +51,10 @@ void UVector64::_init(int32_t initialCapacity, UErrorCode &status) { if (maxCapacity>0 && maxCapacity (int32_t)(INT32_MAX / sizeof(int64_t))) { + if (initialCapacity > static_cast(INT32_MAX / sizeof(int64_t))) { initialCapacity = uprv_min(DEFAULT_CAPACITY, maxCapacity); } - elements = (int64_t *)uprv_malloc(sizeof(int64_t)*initialCapacity); + elements = static_cast(uprv_malloc(sizeof(int64_t) * initialCapacity)); if (elements == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; } else { @@ -141,12 +141,12 @@ UBool UVector64::expandCapacity(int32_t minimumCapacity, UErrorCode &status) { if (maxCapacity > 0 && newCap > maxCapacity) { newCap = maxCapacity; } - if (newCap > (int32_t)(INT32_MAX / sizeof(int64_t))) { // integer overflow check + if (newCap > static_cast(INT32_MAX / sizeof(int64_t))) { // integer overflow check // We keep the original memory contents on bad minimumCapacity/maxCapacity. status = U_ILLEGAL_ARGUMENT_ERROR; return false; } - int64_t* newElems = (int64_t *)uprv_realloc(elements, sizeof(int64_t)*newCap); + int64_t* newElems = static_cast(uprv_realloc(elements, sizeof(int64_t) * newCap)); if (newElems == nullptr) { // We keep the original contents on the memory failure on realloc. status = U_MEMORY_ALLOCATION_ERROR; @@ -162,7 +162,7 @@ void UVector64::setMaxCapacity(int32_t limit) { if (limit < 0) { limit = 0; } - if (limit > (int32_t)(INT32_MAX / sizeof(int64_t))) { // integer overflow check for realloc + if (limit > static_cast(INT32_MAX / sizeof(int64_t))) { // integer overflow check for realloc // Something is very wrong, don't realloc, leave capacity and maxCapacity unchanged return; } @@ -174,7 +174,7 @@ void UVector64::setMaxCapacity(int32_t limit) { // New maximum capacity is smaller than the current size. // Realloc the storage to the new, smaller size. - int64_t* newElems = (int64_t *)uprv_realloc(elements, sizeof(int64_t)*maxCapacity); + int64_t* newElems = static_cast(uprv_realloc(elements, sizeof(int64_t) * maxCapacity)); if (newElems == nullptr) { // Realloc to smaller failed. // Just keep what we had. No need to call it a failure. diff --git a/thirdparty/icu4c/i18n/scriptset.cpp b/thirdparty/icu4c/i18n/scriptset.cpp index 736a85cf8c1f..eec1eeb37daf 100644 --- a/thirdparty/icu4c/i18n/scriptset.cpp +++ b/thirdparty/icu4c/i18n/scriptset.cpp @@ -57,7 +57,7 @@ UBool ScriptSet::test(UScriptCode script, UErrorCode &status) const { if (U_FAILURE(status)) { return false; } - if (script < 0 || (int32_t)script >= SCRIPT_LIMIT) { + if (script < 0 || static_cast(script) >= SCRIPT_LIMIT) { status = U_ILLEGAL_ARGUMENT_ERROR; return false; } @@ -71,7 +71,7 @@ ScriptSet &ScriptSet::set(UScriptCode script, UErrorCode &status) { if (U_FAILURE(status)) { return *this; } - if (script < 0 || (int32_t)script >= SCRIPT_LIMIT) { + if (script < 0 || static_cast(script) >= SCRIPT_LIMIT) { status = U_ILLEGAL_ARGUMENT_ERROR; return *this; } @@ -85,7 +85,7 @@ ScriptSet &ScriptSet::reset(UScriptCode script, UErrorCode &status) { if (U_FAILURE(status)) { return *this; } - if (script < 0 || (int32_t)script >= SCRIPT_LIMIT) { + if (script < 0 || static_cast(script) >= SCRIPT_LIMIT) { status = U_ILLEGAL_ARGUMENT_ERROR; return *this; } @@ -178,7 +178,7 @@ int32_t ScriptSet::nextSetBit(int32_t fromIndex) const { } UErrorCode status = U_ZERO_ERROR; for (int32_t scriptIndex = fromIndex; scriptIndex < SCRIPT_LIMIT; scriptIndex++) { - if (test((UScriptCode)scriptIndex, status)) { + if (test(static_cast(scriptIndex), status)) { return scriptIndex; } } @@ -198,10 +198,10 @@ UnicodeString &ScriptSet::displayScripts(UnicodeString &dest) const { UBool firstTime = true; for (int32_t i = nextSetBit(0); i >= 0; i = nextSetBit(i + 1)) { if (!firstTime) { - dest.append((char16_t)0x20); + dest.append(static_cast(0x20)); } firstTime = false; - const char *scriptName = uscript_getShortName((UScriptCode(i))); + const char* scriptName = uscript_getShortName(static_cast(i)); dest.append(UnicodeString(scriptName, -1, US_INV)); } return dest; @@ -230,7 +230,7 @@ ScriptSet &ScriptSet::parseScripts(const UnicodeString &scriptString, UErrorCode if (sc == UCHAR_INVALID_CODE) { status = U_ILLEGAL_ARGUMENT_ERROR; } else { - this->set((UScriptCode)sc, status); + this->set(static_cast(sc), status); } if (U_FAILURE(status)) { return *this; diff --git a/thirdparty/icu4c/i18n/unicode/uspoof.h b/thirdparty/icu4c/i18n/unicode/uspoof.h index 20d29d62b23f..4e029fe951c9 100644 --- a/thirdparty/icu4c/i18n/unicode/uspoof.h +++ b/thirdparty/icu4c/i18n/unicode/uspoof.h @@ -1224,7 +1224,6 @@ uspoof_areConfusable(const USpoofChecker *sc, const UChar *id2, int32_t length2, UErrorCode *status); -#ifndef U_HIDE_DRAFT_API /** * Check whether two specified strings are visually confusable when * displayed in a context with the given paragraph direction. @@ -1269,13 +1268,12 @@ uspoof_areConfusable(const USpoofChecker *sc, * enum USpoofChecks. Zero is returned if the identifiers * are not confusable. * - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI uint32_t U_EXPORT2 uspoof_areBidiConfusable(const USpoofChecker *sc, UBiDiDirection direction, const UChar *id1, int32_t length1, const UChar *id2, int32_t length2, UErrorCode *status); -#endif /* U_HIDE_DRAFT_API */ /** * A version of {@link uspoof_areConfusable} accepting strings in UTF-8 format. @@ -1308,7 +1306,6 @@ uspoof_areConfusableUTF8(const USpoofChecker *sc, const char *id2, int32_t length2, UErrorCode *status); -#ifndef U_HIDE_DRAFT_API /** * A version of {@link uspoof_areBidiConfusable} accepting strings in UTF-8 format. * @@ -1332,7 +1329,7 @@ uspoof_areConfusableUTF8(const USpoofChecker *sc, * enum USpoofChecks. Zero is returned if the strings * are not confusable. * - * @draft ICU 74 + * @stable ICU 74 * * @see uspoof_areBidiConfusable */ @@ -1340,7 +1337,6 @@ U_CAPI uint32_t U_EXPORT2 uspoof_areBidiConfusableUTF8(const USpoofChecker *sc, const char *id1, int32_t length1, const char *id2, int32_t length2, UErrorCode *status); -#endif /* U_HIDE_DRAFT_API */ /** * Get the "skeleton" for an identifier. @@ -1380,7 +1376,6 @@ uspoof_getSkeleton(const USpoofChecker *sc, UChar *dest, int32_t destCapacity, UErrorCode *status); -#ifndef U_HIDE_DRAFT_API /** * Get the "bidiSkeleton" for an identifier and a direction. * Skeletons are a transformation of the input identifier; @@ -1410,14 +1405,13 @@ uspoof_getSkeleton(const USpoofChecker *sc, * is always that of the complete skeleton, even when the * supplied buffer is too small (or of zero length) * - * @draft ICU 74 + * @stable ICU 74 * @see uspoof_areBidiConfusable */ U_CAPI int32_t U_EXPORT2 uspoof_getBidiSkeleton(const USpoofChecker *sc, UBiDiDirection direction, const UChar *id, int32_t length, UChar *dest, int32_t destCapacity, UErrorCode *status); -#endif /* U_HIDE_DRAFT_API */ /** * Get the "skeleton" for an identifier. @@ -1459,7 +1453,6 @@ uspoof_getSkeletonUTF8(const USpoofChecker *sc, char *dest, int32_t destCapacity, UErrorCode *status); -#ifndef U_HIDE_DRAFT_API /** * Get the "bidiSkeleton" for an identifier and a direction. * Skeletons are a transformation of the input identifier; @@ -1492,12 +1485,11 @@ uspoof_getSkeletonUTF8(const USpoofChecker *sc, * is always that of the complete skeleton, even when the * supplied buffer is too small (or of zero length) * - * @draft ICU 74 + * @stable ICU 74 */ U_CAPI int32_t U_EXPORT2 uspoof_getBidiSkeletonUTF8(const USpoofChecker *sc, UBiDiDirection direction, const char *id, int32_t length, char *dest, int32_t destCapacity, UErrorCode *status); -#endif /* U_HIDE_DRAFT_API */ /** * Get the set of Candidate Characters for Inclusion in Identifiers, as defined @@ -1736,7 +1728,6 @@ uspoof_areConfusableUnicodeString(const USpoofChecker *sc, const icu::UnicodeString &s2, UErrorCode *status); -#ifndef U_HIDE_DRAFT_API /** * A version of {@link uspoof_areBidiConfusable} accepting UnicodeStrings. * @@ -1756,7 +1747,7 @@ uspoof_areConfusableUnicodeString(const USpoofChecker *sc, * enum USpoofChecks. Zero is returned if the identifiers * are not confusable. * - * @draft ICU 74 + * @stable ICU 74 * * @see uspoof_areBidiConfusable */ @@ -1765,7 +1756,6 @@ U_CAPI uint32_t U_EXPORT2 uspoof_areBidiConfusableUnicodeString(const USpoofChec const icu::UnicodeString &s1, const icu::UnicodeString &s2, UErrorCode *status); -#endif /* U_HIDE_DRAFT_API */ /** * Get the "skeleton" for an identifier. @@ -1797,7 +1787,6 @@ uspoof_getSkeletonUnicodeString(const USpoofChecker *sc, icu::UnicodeString &dest, UErrorCode *status); -#ifndef U_HIDE_DRAFT_API /** * Get the "bidiSkeleton" for an identifier and a direction. * Skeletons are a transformation of the input identifier; @@ -1820,12 +1809,11 @@ uspoof_getSkeletonUnicodeString(const USpoofChecker *sc, * perform the check. * @return A reference to the destination (skeleton) string. * - * @draft ICU 74 + * @stable ICU 74 */ U_I18N_API icu::UnicodeString &U_EXPORT2 uspoof_getBidiSkeletonUnicodeString( const USpoofChecker *sc, UBiDiDirection direction, const icu::UnicodeString &id, icu::UnicodeString &dest, UErrorCode *status); -#endif /* U_HIDE_DRAFT_API */ /** * Get the set of Candidate Characters for Inclusion in Identifiers, as defined diff --git a/thirdparty/icu4c/i18n/uspoof_impl.cpp b/thirdparty/icu4c/i18n/uspoof_impl.cpp index 93402e670be2..c727fafb37b1 100644 --- a/thirdparty/icu4c/i18n/uspoof_impl.cpp +++ b/thirdparty/icu4c/i18n/uspoof_impl.cpp @@ -148,7 +148,7 @@ void SpoofImpl::setAllowedLocales(const char *localesList, UErrorCode &status) { if (trimmedEnd <= locStart) { break; } - const char *locale = uprv_strndup(locStart, (int32_t)(trimmedEnd + 1 - locStart)); + const char* locale = uprv_strndup(locStart, static_cast(trimmedEnd + 1 - locStart)); localeListCount++; // We have one locale from the locales list. @@ -305,7 +305,7 @@ void SpoofImpl::getNumerics(const UnicodeString& input, UnicodeSet& result, UErr if (u_charType(codePoint) == U_DECIMAL_DIGIT_NUMBER) { // Store the zero character as a representative for comparison. // Unicode guarantees it is codePoint - value - result.add(codePoint - (UChar32)u_getNumericValue(codePoint)); + result.add(codePoint - static_cast(u_getNumericValue(codePoint))); } } } @@ -432,7 +432,7 @@ UChar32 SpoofImpl::ScanHex(const char16_t *s, int32_t start, int32_t limit, UErr status = U_PARSE_ERROR; val = 0; } - return (UChar32)val; + return static_cast(val); } @@ -601,7 +601,7 @@ SpoofData::SpoofData(const void *data, int32_t length, UErrorCode &status) if (U_FAILURE(status)) { return; } - if ((size_t)length < sizeof(SpoofDataHeader)) { + if (static_cast(length) < sizeof(SpoofDataHeader)) { status = U_INVALID_FORMAT_ERROR; return; } @@ -688,13 +688,13 @@ void SpoofData::initPtrs(UErrorCode &status) { return; } if (fRawData->fCFUKeys != 0) { - fCFUKeys = (int32_t *)((char *)fRawData + fRawData->fCFUKeys); + fCFUKeys = reinterpret_cast(reinterpret_cast(fRawData) + fRawData->fCFUKeys); } if (fRawData->fCFUStringIndex != 0) { - fCFUValues = (uint16_t *)((char *)fRawData + fRawData->fCFUStringIndex); + fCFUValues = reinterpret_cast(reinterpret_cast(fRawData) + fRawData->fCFUStringIndex); } if (fRawData->fCFUStringTable != 0) { - fCFUStrings = (char16_t *)((char *)fRawData + fRawData->fCFUStringTable); + fCFUStrings = reinterpret_cast(reinterpret_cast(fRawData) + fRawData->fCFUStringTable); } } @@ -739,7 +739,7 @@ void *SpoofData::reserveSpace(int32_t numBytes, UErrorCode &status) { fRawData->fLength = fMemLimit; uprv_memset((char *)fRawData + returnOffset, 0, numBytes); initPtrs(status); - return (char *)fRawData + returnOffset; + return reinterpret_cast(fRawData) + returnOffset; } int32_t SpoofData::serialize(void *buf, int32_t capacity, UErrorCode &status) const { @@ -806,7 +806,7 @@ int32_t SpoofData::appendValueTo(int32_t index, UnicodeString& dest) const { // an index into the string table (for longer strings) uint16_t value = fCFUValues[index]; if (stringLength == 1) { - dest.append((char16_t)value); + dest.append(static_cast(value)); } else { dest.append(fCFUStrings + value, stringLength); } diff --git a/thirdparty/icu4c/icudt75l.dat b/thirdparty/icu4c/icudt76l.dat similarity index 73% rename from thirdparty/icu4c/icudt75l.dat rename to thirdparty/icu4c/icudt76l.dat index 76728ca6d616..58bead426f02 100644 Binary files a/thirdparty/icu4c/icudt75l.dat and b/thirdparty/icu4c/icudt76l.dat differ