修复初始化BUG;将中文简体语言包作为默认资源打包进代码;调整API

This commit is contained in:
gb 2023-01-20 13:38:16 +08:00
parent 55b7297367
commit a4d130c11e
2 changed files with 480 additions and 43 deletions

View File

@ -1,11 +1,13 @@
#pragma once
#include "lang/app_language.h"
#include "base_pak.h"
#if defined(_WIN32) || defined(_WIN64)
#define PATH_SEPERATOR "\\"
#define THIS_MODULE_NAME "lang.dll"
#else
#include <string.h> // for strcasecmp
#define PATH_SEPERATOR "/"
#define THIS_MODULE_NAME "lang.so"
#endif
@ -117,7 +119,7 @@ struct _cp_locale
int cp;
const char* locale;
}g_known_locale[] =
{ {936, "zh_CN"}
{ {DEFAULT_CODE_PAGE, "zh_CN"}
, {950, "zh_HK"}
, {950, "zh_TW"}
, {950, "zh_SG"}
@ -156,13 +158,17 @@ class lang_mgr
volatile bool in_changing_;
std::vector<MAPSTR> code_pages_;
LANATTR **all_;
LANATTR** all_;
uint32_t os_cp_;
uint32_t cur_cp_;
std::string cur_lang_;
std::map<uint32_t, std::string> map_off_;
static lang_mgr* inst_;
MAPSTR cp_default_;
std::map<uint32_t, std::string> map_default_;
std::map<uint32_t, std::string>* pak_now_;
void clear(void)
{
@ -182,7 +188,7 @@ class lang_mgr
{
uint32_t ver = *(uint32_t*)data,
val = 0,
*cps = (uint32_t*)(data + sizeof(uint32_t) * 3);
* cps = (uint32_t*)(data + sizeof(uint32_t) * 3);
if (id)
*id = *cps;
@ -204,7 +210,7 @@ class lang_mgr
{
uint32_t ver = *(uint32_t*)data,
val = 0,
*cps = (uint32_t*)(data + sizeof(uint32_t) * 3);
* cps = (uint32_t*)(data + sizeof(uint32_t) * 3);
if (id)
*id = cps[0];
@ -256,7 +262,7 @@ class lang_mgr
memset(buf, 0, len + 4);
len = fread(buf, 1, len, src);
if (len == *(uint32_t*)buf
&& calculate_crc32(buf + sizeof(uint32_t)* 2, len - sizeof(uint32_t) * 2) == ((uint32_t*)buf)[1])
&& calculate_crc32(buf + sizeof(uint32_t) * 2, len - sizeof(uint32_t) * 2) == ((uint32_t*)buf)[1])
{
cont = std::string((char*)buf, len);
}
@ -273,8 +279,11 @@ class lang_mgr
ms.file = file;
cur_id = get_cur_code_page_id();
if (parse_pak_digest((uint8_t*)&cont[0], ms, (int*) & id))
if (parse_pak_digest((uint8_t*)&cont[0], ms, (int*)&id))
{
if (id == DEFAULT_CODE_PAGE)
cp_default_ = ms;
else
code_pages_.push_back(std::move(ms));
if (cur_id == id && map_off_.size() == 0)
{
@ -293,7 +302,16 @@ class lang_mgr
clear();
cur_cp_ = id;
cur_lang_ = std::move(name);
if (cur_cp_ == DEFAULT_CODE_PAGE)
{
map_default_ = std::move(off);
pak_now_ = &map_default_;
}
else
{
map_off_ = std::move(off);
pak_now_ = &map_off_;
}
}
return ret;
@ -330,7 +348,7 @@ class lang_mgr
if (a)
{
wchar_t *unic = NULL;
wchar_t* unic = NULL;
int len = 0;
len = MultiByteToWideChar(cp, 0, a, lstrlenA(a), NULL, 0);
@ -376,7 +394,7 @@ class lang_mgr
#if defined(_WIN32) || defined(_WIN64)
std::wstring root(a2u(dir, CP_UTF8) + L"\\");
WIN32_FIND_DATAW fd = { 0 };
HANDLE h = FindFirstFileW((a2u(dir, CP_UTF8) + L"\\*").c_str(), &fd);
HANDLE h = FindFirstFileW((a2u(dir, CP_UTF8) + L"\\*.pak").c_str(), &fd);
if (h == INVALID_HANDLE_VALUE)
return GetLastError();
do
@ -423,6 +441,9 @@ class lang_mgr
}
}
else
{
char* ext = strrchr(ent->d_name, '.');
if (ext && strcasecmp(ext, ".pak") == 0)
{
std::string file(dir);
@ -435,6 +456,7 @@ class lang_mgr
}
}
}
}
#endif
return ret;
@ -464,7 +486,7 @@ class lang_mgr
#endif
}
lang_mgr() : os_cp_(lang_mgr::get_os_code_page()), cur_cp_(-1), cur_lang_(""), all_(nullptr), in_changing_(true)
lang_mgr() : os_cp_(lang_mgr::get_os_code_page()), cur_cp_(-1), cur_lang_(""), all_(nullptr), in_changing_(true), pak_now_(&map_off_)
{
std::string path(get_module_path());
size_t pos = path.rfind(PATH_SEPERATOR[0]);
@ -476,6 +498,8 @@ class lang_mgr
pos = 0;
path.erase(pos);
path += "lang";
parse_pak_digest(g_chinese, cp_default_, nullptr);
parse_pak(g_chinese, nullptr, nullptr, map_default_);
enum_files(path.c_str(), &lang_mgr::found_language_pak, this, false);
size_t len = sizeof(LANATTR*) * (code_pages_.size() + 1) + sizeof(LANATTR) * code_pages_.size();
@ -495,10 +519,19 @@ class lang_mgr
all_[ind++] = st;
st->cp = v.code_pages[0];
st->name = str;
st->id = v.name_id;
strcpy(str, v.name.c_str());
str += v.name.length() + 2;
st++;
}
if (map_off_.empty())
{
// system language pak not found, reset to DEFAULT_CODE_PAGE or first ...
cur_cp_ = DEFAULT_CODE_PAGE;
pak_now_ = &map_default_;
}
in_changing_ = false;
}
~lang_mgr()
@ -510,7 +543,7 @@ public:
static int get_os_code_page(void)
{
char* locale = setlocale(LC_ALL, "");
int cp = 936;
int cp = DEFAULT_CODE_PAGE;
if (locale)
{
@ -533,11 +566,12 @@ public:
}
if (!found && strrchr(locale, '.'))
{
// windows: Chinese (Simplified)_China.936
// windows: Chinese (Simplified)_China.DEFAULT_CODE_PAGE
locale = strrchr(locale, '.') + 1;
if (*locale >= '0' && *locale <= '9')
cp = atoi(locale);
}
if(end)
*end = ';';
}
@ -571,6 +605,15 @@ public:
if (cp == cur_cp_)
return 0;
bool changed = true;
if (cp == DEFAULT_CODE_PAGE)
{
pak_now_ = &map_default_;
cur_cp_ = cp;
cur_lang_ = cp_default_.name;
}
else
{
std::vector<MAPSTR>::iterator it = std::find(code_pages_.begin(), code_pages_.end(), cp);
if (it == code_pages_.end())
return ENOENT;
@ -583,13 +626,15 @@ public:
cp = cur_cp_;
load_language_pak(f.c_str(), false);
in_changing_ = false;
changed = cp != cur_cp_;
}
if (cp != cur_cp_)
if (changed)
notify_changed();
return 0;
}
const char* get_string(uint32_t id, int* err)
const char* get_string(uint32_t id, int* err, bool def)
{
int cnt = 0;
while (in_changing_)
@ -599,12 +644,13 @@ public:
return "";
}
if (map_off_[id].size())
std::map<uint32_t, std::string>* pak = def ? &map_default_ : pak_now_;
if ((*pak)[id].size())
{
if (err)
*err = 0;
return map_off_[id].c_str();
return (*pak)[id].c_str();
}
else
{
@ -616,7 +662,7 @@ public:
}
int supported_cps(void)
{
return code_pages_.size();
return code_pages_.size() + 1;
}
void register_language_changed_notify(void(*lan_changed)(int code_page, void* param), bool reg, void* param = nullptr)
{
@ -640,6 +686,16 @@ public:
notify_.erase(it);
}
}
int get_default_string_id(const char* str)
{
for (auto& v : map_default_)
{
if (v.second == str)
return v.first;
}
return -1;
}
};
lang_mgr* lang_mgr::inst_ = nullptr;
@ -664,12 +720,17 @@ extern "C"
{
return lang_mgr::instance()->set_code_page(cp);
}
const char* lang_load_string(uint32_t id, int* err)
const char* lang_load_string(uint32_t id, int* err, bool def)
{
return lang_mgr::instance()->get_string(id, err);
return lang_mgr::instance()->get_string(id, err, def);
}
void register_language_changed_notify(void(*lan_changed)(int code_page, void* param), bool reg, void* param)
{
lang_mgr::instance()->register_language_changed_notify(lan_changed, reg, param);
}
int lang_get_string_id(const char* utf8_hz)
{
return lang_mgr::instance()->get_default_string_id(utf8_hz);
}
}

376
base_pak.h Normal file
View File

@ -0,0 +1,376 @@
#pragma once
// For: base language package - Chinese (Simplified)
//
// Date: 2023-01-20
//
#define DEFAULT_CODE_PAGE 936
unsigned char g_chinese[] = {
0xCB, 0x16, 0x00, 0x00, 0x4A, 0x80, 0x40, 0x3C, 0x00, 0x00, 0x01, 0x00, 0xA8, 0x03, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, 0xEF, 0xBC,
0x88, 0xE7, 0xAE, 0x80, 0xE4, 0xBD, 0x93, 0xEF, 0xBC, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x43, 0x07, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x56, 0x07, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x5D, 0x07, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x64, 0x07, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x6B, 0x07, 0x00, 0x00,
0x32, 0x00, 0x00, 0x00, 0x72, 0x07, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x7F, 0x07, 0x00, 0x00,
0x46, 0x00, 0x00, 0x00, 0x86, 0x07, 0x00, 0x00, 0x59, 0x02, 0x00, 0x00, 0x8D, 0x07, 0x00, 0x00,
0x5A, 0x02, 0x00, 0x00, 0x9A, 0x07, 0x00, 0x00, 0x5B, 0x02, 0x00, 0x00, 0xBF, 0x07, 0x00, 0x00,
0x1B, 0x05, 0x00, 0x00, 0xC9, 0x07, 0x00, 0x00, 0xFF, 0x05, 0x00, 0x00, 0xE5, 0x07, 0x00, 0x00,
0x68, 0x08, 0x00, 0x00, 0xF5, 0x07, 0x00, 0x00, 0x3B, 0x09, 0x00, 0x00, 0xFC, 0x07, 0x00, 0x00,
0xC3, 0x0A, 0x00, 0x00, 0x06, 0x08, 0x00, 0x00, 0x41, 0x0B, 0x00, 0x00, 0x1C, 0x08, 0x00, 0x00,
0x36, 0x0C, 0x00, 0x00, 0x29, 0x08, 0x00, 0x00, 0xB1, 0x0C, 0x00, 0x00, 0x48, 0x08, 0x00, 0x00,
0x89, 0x11, 0x00, 0x00, 0x55, 0x08, 0x00, 0x00, 0xB3, 0x13, 0x00, 0x00, 0x5C, 0x08, 0x00, 0x00,
0x3D, 0x14, 0x00, 0x00, 0x5F, 0x08, 0x00, 0x00, 0xC5, 0x14, 0x00, 0x00, 0x78, 0x08, 0x00, 0x00,
0x3F, 0x15, 0x00, 0x00, 0x82, 0x08, 0x00, 0x00, 0xC2, 0x15, 0x00, 0x00, 0x8C, 0x08, 0x00, 0x00,
0x31, 0x16, 0x00, 0x00, 0x99, 0x08, 0x00, 0x00, 0x35, 0x16, 0x00, 0x00, 0xAC, 0x08, 0x00, 0x00,
0x65, 0x17, 0x00, 0x00, 0xC8, 0x08, 0x00, 0x00, 0xE7, 0x17, 0x00, 0x00, 0xF0, 0x08, 0x00, 0x00,
0x69, 0x18, 0x00, 0x00, 0x06, 0x09, 0x00, 0x00, 0x7B, 0x19, 0x00, 0x00, 0x13, 0x09, 0x00, 0x00,
0xBA, 0x1B, 0x00, 0x00, 0x26, 0x09, 0x00, 0x00, 0x11, 0x1E, 0x00, 0x00, 0x2D, 0x09, 0x00, 0x00,
0x0C, 0x20, 0x00, 0x00, 0x55, 0x09, 0x00, 0x00, 0xC1, 0x21, 0x00, 0x00, 0x6A, 0x09, 0x00, 0x00,
0xAF, 0x22, 0x00, 0x00, 0x7A, 0x09, 0x00, 0x00, 0xF2, 0x22, 0x00, 0x00, 0xA2, 0x09, 0x00, 0x00,
0x8A, 0x25, 0x00, 0x00, 0xA5, 0x09, 0x00, 0x00, 0x4F, 0x26, 0x00, 0x00, 0xC4, 0x09, 0x00, 0x00,
0xE5, 0x26, 0x00, 0x00, 0xD4, 0x09, 0x00, 0x00, 0xDE, 0x27, 0x00, 0x00, 0xE1, 0x09, 0x00, 0x00,
0xC6, 0x28, 0x00, 0x00, 0xEB, 0x09, 0x00, 0x00, 0x90, 0x29, 0x00, 0x00, 0xFE, 0x09, 0x00, 0x00,
0xDC, 0x29, 0x00, 0x00, 0x0B, 0x0A, 0x00, 0x00, 0x07, 0x2C, 0x00, 0x00, 0x15, 0x0A, 0x00, 0x00,
0x91, 0x2E, 0x00, 0x00, 0x28, 0x0A, 0x00, 0x00, 0x3F, 0x30, 0x00, 0x00, 0x3E, 0x0A, 0x00, 0x00,
0xAA, 0x32, 0x00, 0x00, 0x48, 0x0A, 0x00, 0x00, 0xAB, 0x33, 0x00, 0x00, 0x55, 0x0A, 0x00, 0x00,
0xD3, 0x33, 0x00, 0x00, 0x71, 0x0A, 0x00, 0x00, 0xD4, 0x33, 0x00, 0x00, 0x78, 0x0A, 0x00, 0x00,
0xC1, 0x34, 0x00, 0x00, 0x94, 0x0A, 0x00, 0x00, 0x55, 0x35, 0x00, 0x00, 0xA0, 0x0A, 0x00, 0x00,
0x97, 0x35, 0x00, 0x00, 0xB0, 0x0A, 0x00, 0x00, 0x04, 0x38, 0x00, 0x00, 0xC9, 0x0A, 0x00, 0x00,
0x35, 0x3A, 0x00, 0x00, 0xE8, 0x0A, 0x00, 0x00, 0x42, 0x3B, 0x00, 0x00, 0xF5, 0x0A, 0x00, 0x00,
0xB6, 0x3B, 0x00, 0x00, 0x08, 0x0B, 0x00, 0x00, 0xE3, 0x3B, 0x00, 0x00, 0x11, 0x0B, 0x00, 0x00,
0x55, 0x3C, 0x00, 0x00, 0x1E, 0x0B, 0x00, 0x00, 0x4E, 0x3D, 0x00, 0x00, 0x27, 0x0B, 0x00, 0x00,
0x6E, 0x3D, 0x00, 0x00, 0x34, 0x0B, 0x00, 0x00, 0xA0, 0x3D, 0x00, 0x00, 0x4D, 0x0B, 0x00, 0x00,
0x8B, 0x3F, 0x00, 0x00, 0x5A, 0x0B, 0x00, 0x00, 0x9B, 0x3F, 0x00, 0x00, 0x8B, 0x0B, 0x00, 0x00,
0xD2, 0x3F, 0x00, 0x00, 0x99, 0x0B, 0x00, 0x00, 0x69, 0x40, 0x00, 0x00, 0xA0, 0x0B, 0x00, 0x00,
0xF3, 0x42, 0x00, 0x00, 0xB3, 0x0B, 0x00, 0x00, 0x37, 0x43, 0x00, 0x00, 0xCC, 0x0B, 0x00, 0x00,
0x74, 0x43, 0x00, 0x00, 0xD1, 0x0B, 0x00, 0x00, 0xE7, 0x43, 0x00, 0x00, 0xDE, 0x0B, 0x00, 0x00,
0x43, 0x45, 0x00, 0x00, 0xFA, 0x0B, 0x00, 0x00, 0x42, 0x46, 0x00, 0x00, 0x07, 0x0C, 0x00, 0x00,
0x54, 0x46, 0x00, 0x00, 0x14, 0x0C, 0x00, 0x00, 0xFE, 0x46, 0x00, 0x00, 0x1A, 0x0C, 0x00, 0x00,
0x01, 0x47, 0x00, 0x00, 0x27, 0x0C, 0x00, 0x00, 0x06, 0x47, 0x00, 0x00, 0x2E, 0x0C, 0x00, 0x00,
0xA8, 0x47, 0x00, 0x00, 0x35, 0x0C, 0x00, 0x00, 0x18, 0x49, 0x00, 0x00, 0x3C, 0x0C, 0x00, 0x00,
0xED, 0x4A, 0x00, 0x00, 0x45, 0x0C, 0x00, 0x00, 0xB7, 0x4B, 0x00, 0x00, 0x69, 0x0C, 0x00, 0x00,
0x79, 0x4E, 0x00, 0x00, 0x82, 0x0C, 0x00, 0x00, 0xFB, 0x4E, 0x00, 0x00, 0x8F, 0x0C, 0x00, 0x00,
0x07, 0x50, 0x00, 0x00, 0x98, 0x0C, 0x00, 0x00, 0x43, 0x53, 0x00, 0x00, 0xAA, 0x0C, 0x00, 0x00,
0xE5, 0x53, 0x00, 0x00, 0xBD, 0x0C, 0x00, 0x00, 0xF3, 0x53, 0x00, 0x00, 0xC7, 0x0C, 0x00, 0x00,
0xCE, 0x54, 0x00, 0x00, 0xD1, 0x0C, 0x00, 0x00, 0x9E, 0x55, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00,
0x94, 0x56, 0x00, 0x00, 0xFA, 0x0C, 0x00, 0x00, 0xCF, 0x56, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00,
0xFC, 0x56, 0x00, 0x00, 0x1D, 0x0D, 0x00, 0x00, 0xD8, 0x58, 0x00, 0x00, 0x30, 0x0D, 0x00, 0x00,
0x28, 0x59, 0x00, 0x00, 0x79, 0x0D, 0x00, 0x00, 0x29, 0x59, 0x00, 0x00, 0x7D, 0x0D, 0x00, 0x00,
0x85, 0x59, 0x00, 0x00, 0x81, 0x0D, 0x00, 0x00, 0x7D, 0x5A, 0x00, 0x00, 0x91, 0x0D, 0x00, 0x00,
0x30, 0x5B, 0x00, 0x00, 0x9B, 0x0D, 0x00, 0x00, 0x41, 0x5B, 0x00, 0x00, 0xA2, 0x0D, 0x00, 0x00,
0x62, 0x5B, 0x00, 0x00, 0xBB, 0x0D, 0x00, 0x00, 0xB0, 0x5E, 0x00, 0x00, 0xC2, 0x0D, 0x00, 0x00,
0x4C, 0x5F, 0x00, 0x00, 0xCF, 0x0D, 0x00, 0x00, 0x53, 0x5F, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00,
0xFC, 0x5F, 0x00, 0x00, 0xF0, 0x0D, 0x00, 0x00, 0x0C, 0x61, 0x00, 0x00, 0xFD, 0x0D, 0x00, 0x00,
0xFF, 0x61, 0x00, 0x00, 0x10, 0x0E, 0x00, 0x00, 0xA0, 0x62, 0x00, 0x00, 0x1D, 0x0E, 0x00, 0x00,
0x4A, 0x63, 0x00, 0x00, 0x2A, 0x0E, 0x00, 0x00, 0x9E, 0x64, 0x00, 0x00, 0x34, 0x0E, 0x00, 0x00,
0x04, 0x67, 0x00, 0x00, 0x56, 0x0E, 0x00, 0x00, 0x6A, 0x68, 0x00, 0x00, 0x6F, 0x0E, 0x00, 0x00,
0x93, 0x69, 0x00, 0x00, 0xA9, 0x0E, 0x00, 0x00, 0x6F, 0x6E, 0x00, 0x00, 0xB2, 0x0E, 0x00, 0x00,
0x31, 0x71, 0x00, 0x00, 0xBC, 0x0E, 0x00, 0x00, 0x83, 0x72, 0x00, 0x00, 0xBF, 0x0E, 0x00, 0x00,
0x1D, 0x74, 0x00, 0x00, 0xE4, 0x0E, 0x00, 0x00, 0xC4, 0x74, 0x00, 0x00, 0xFD, 0x0E, 0x00, 0x00,
0xC5, 0x74, 0x00, 0x00, 0x01, 0x0F, 0x00, 0x00, 0xC6, 0x74, 0x00, 0x00, 0x05, 0x0F, 0x00, 0x00,
0x28, 0x75, 0x00, 0x00, 0x09, 0x0F, 0x00, 0x00, 0x54, 0x77, 0x00, 0x00, 0x25, 0x0F, 0x00, 0x00,
0xD1, 0x77, 0x00, 0x00, 0x2F, 0x0F, 0x00, 0x00, 0xCC, 0x78, 0x00, 0x00, 0x42, 0x0F, 0x00, 0x00,
0x36, 0x79, 0x00, 0x00, 0x61, 0x0F, 0x00, 0x00, 0xAE, 0x79, 0x00, 0x00, 0x77, 0x0F, 0x00, 0x00,
0x06, 0x7A, 0x00, 0x00, 0x87, 0x0F, 0x00, 0x00, 0x3B, 0x7A, 0x00, 0x00, 0xAE, 0x0F, 0x00, 0x00,
0x6B, 0x7D, 0x00, 0x00, 0xB8, 0x0F, 0x00, 0x00, 0x92, 0x7E, 0x00, 0x00, 0xD1, 0x0F, 0x00, 0x00,
0x64, 0x80, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xE3, 0x80, 0x00, 0x00, 0x06, 0x10, 0x00, 0x00,
0xE4, 0x80, 0x00, 0x00, 0x0A, 0x10, 0x00, 0x00, 0xB9, 0x81, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00,
0xC3, 0x83, 0x00, 0x00, 0x1E, 0x10, 0x00, 0x00, 0x8C, 0x84, 0x00, 0x00, 0x2B, 0x10, 0x00, 0x00,
0x74, 0x85, 0x00, 0x00, 0x35, 0x10, 0x00, 0x00, 0x04, 0x89, 0x00, 0x00, 0x38, 0x10, 0x00, 0x00,
0x05, 0x89, 0x00, 0x00, 0x45, 0x10, 0x00, 0x00, 0x06, 0x89, 0x00, 0x00, 0x49, 0x10, 0x00, 0x00,
0xA2, 0x8B, 0x00, 0x00, 0x5C, 0x10, 0x00, 0x00, 0x1C, 0x8D, 0x00, 0x00, 0x6F, 0x10, 0x00, 0x00,
0x54, 0x8D, 0x00, 0x00, 0x72, 0x10, 0x00, 0x00, 0x0F, 0x8E, 0x00, 0x00, 0x7F, 0x10, 0x00, 0x00,
0x52, 0x8E, 0x00, 0x00, 0x95, 0x10, 0x00, 0x00, 0xB4, 0x90, 0x00, 0x00, 0xA2, 0x10, 0x00, 0x00,
0xD0, 0x91, 0x00, 0x00, 0xAF, 0x10, 0x00, 0x00, 0x10, 0x96, 0x00, 0x00, 0xC2, 0x10, 0x00, 0x00,
0x79, 0x96, 0x00, 0x00, 0xCF, 0x10, 0x00, 0x00, 0xA8, 0x97, 0x00, 0x00, 0xDF, 0x10, 0x00, 0x00,
0x6C, 0x98, 0x00, 0x00, 0xF8, 0x10, 0x00, 0x00, 0xA2, 0x99, 0x00, 0x00, 0x0B, 0x11, 0x00, 0x00,
0xE7, 0x9B, 0x00, 0x00, 0x17, 0x11, 0x00, 0x00, 0xF8, 0x9B, 0x00, 0x00, 0x24, 0x11, 0x00, 0x00,
0x48, 0x9D, 0x00, 0x00, 0x34, 0x11, 0x00, 0x00, 0xDA, 0x9D, 0x00, 0x00, 0x3E, 0x11, 0x00, 0x00,
0xB3, 0x9E, 0x00, 0x00, 0x4E, 0x11, 0x00, 0x00, 0x55, 0xA0, 0x00, 0x00, 0x54, 0x11, 0x00, 0x00,
0xDF, 0xA1, 0x00, 0x00, 0x61, 0x11, 0x00, 0x00, 0x3D, 0xA3, 0x00, 0x00, 0x66, 0x11, 0x00, 0x00,
0x0E, 0xA5, 0x00, 0x00, 0x79, 0x11, 0x00, 0x00, 0xE7, 0xA5, 0x00, 0x00, 0x86, 0x11, 0x00, 0x00,
0x3F, 0xA6, 0x00, 0x00, 0x96, 0x11, 0x00, 0x00, 0xA1, 0xA6, 0x00, 0x00, 0xA3, 0x11, 0x00, 0x00,
0xE9, 0xA6, 0x00, 0x00, 0xB0, 0x11, 0x00, 0x00, 0x92, 0xA8, 0x00, 0x00, 0xC3, 0x11, 0x00, 0x00,
0xFB, 0xA9, 0x00, 0x00, 0xC9, 0x11, 0x00, 0x00, 0x73, 0xAA, 0x00, 0x00, 0xD3, 0x11, 0x00, 0x00,
0xB5, 0xAA, 0x00, 0x00, 0xE1, 0x11, 0x00, 0x00, 0xD4, 0xAB, 0x00, 0x00, 0xEE, 0x11, 0x00, 0x00,
0x30, 0xAC, 0x00, 0x00, 0xFE, 0x11, 0x00, 0x00, 0xDA, 0xAD, 0x00, 0x00, 0x11, 0x12, 0x00, 0x00,
0xEB, 0xB0, 0x00, 0x00, 0x1E, 0x12, 0x00, 0x00, 0xF2, 0xB1, 0x00, 0x00, 0x2B, 0x12, 0x00, 0x00,
0x1C, 0xB3, 0x00, 0x00, 0x53, 0x12, 0x00, 0x00, 0xEF, 0xB3, 0x00, 0x00, 0x60, 0x12, 0x00, 0x00,
0x26, 0xB5, 0x00, 0x00, 0x7B, 0x12, 0x00, 0x00, 0x8F, 0xB6, 0x00, 0x00, 0x88, 0x12, 0x00, 0x00,
0x30, 0xB9, 0x00, 0x00, 0xB0, 0x12, 0x00, 0x00, 0x7A, 0xB9, 0x00, 0x00, 0xBD, 0x12, 0x00, 0x00,
0x5D, 0xBC, 0x00, 0x00, 0x03, 0x13, 0x00, 0x00, 0x93, 0xBD, 0x00, 0x00, 0x06, 0x13, 0x00, 0x00,
0xA2, 0xBD, 0x00, 0x00, 0x13, 0x13, 0x00, 0x00, 0xA7, 0xBF, 0x00, 0x00, 0x23, 0x13, 0x00, 0x00,
0x07, 0xC0, 0x00, 0x00, 0x2A, 0x13, 0x00, 0x00, 0x8E, 0xC1, 0x00, 0x00, 0x43, 0x13, 0x00, 0x00,
0xD8, 0xC3, 0x00, 0x00, 0x50, 0x13, 0x00, 0x00, 0x55, 0xC6, 0x00, 0x00, 0x5D, 0x13, 0x00, 0x00,
0x9E, 0xC8, 0x00, 0x00, 0x70, 0x13, 0x00, 0x00, 0xF9, 0xC8, 0x00, 0x00, 0x7D, 0x13, 0x00, 0x00,
0x1C, 0xC9, 0x00, 0x00, 0x8A, 0x13, 0x00, 0x00, 0x17, 0xCC, 0x00, 0x00, 0x98, 0x13, 0x00, 0x00,
0x9C, 0xCC, 0x00, 0x00, 0xAB, 0x13, 0x00, 0x00, 0x67, 0xD1, 0x00, 0x00, 0xC4, 0x13, 0x00, 0x00,
0xA3, 0xD1, 0x00, 0x00, 0xD1, 0x13, 0x00, 0x00, 0xD2, 0xD1, 0x00, 0x00, 0xD8, 0x13, 0x00, 0x00,
0x0A, 0xD9, 0x00, 0x00, 0xEB, 0x13, 0x00, 0x00, 0xD3, 0xDB, 0x00, 0x00, 0x06, 0x14, 0x00, 0x00,
0x7E, 0xDE, 0x00, 0x00, 0x16, 0x14, 0x00, 0x00, 0xDF, 0xDE, 0x00, 0x00, 0x38, 0x14, 0x00, 0x00,
0x95, 0xDF, 0x00, 0x00, 0x3B, 0x14, 0x00, 0x00, 0xB3, 0xDF, 0x00, 0x00, 0x63, 0x14, 0x00, 0x00,
0x13, 0xE1, 0x00, 0x00, 0x70, 0x14, 0x00, 0x00, 0x8B, 0xE2, 0x00, 0x00, 0x83, 0x14, 0x00, 0x00,
0x81, 0xE3, 0x00, 0x00, 0x96, 0x14, 0x00, 0x00, 0x1E, 0xE4, 0x00, 0x00, 0xA3, 0x14, 0x00, 0x00,
0x53, 0xE4, 0x00, 0x00, 0xC8, 0x14, 0x00, 0x00, 0x6A, 0xE9, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00,
0x60, 0xEB, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x4D, 0xEC, 0x00, 0x00, 0x0D, 0x15, 0x00, 0x00,
0xA6, 0xEE, 0x00, 0x00, 0x20, 0x15, 0x00, 0x00, 0xD6, 0xEE, 0x00, 0x00, 0x3B, 0x15, 0x00, 0x00,
0x64, 0xEF, 0x00, 0x00, 0x4D, 0x15, 0x00, 0x00, 0xF0, 0xEF, 0x00, 0x00, 0x54, 0x15, 0x00, 0x00,
0x7D, 0xF0, 0x00, 0x00, 0x5D, 0x15, 0x00, 0x00, 0x28, 0xF2, 0x00, 0x00, 0x6D, 0x15, 0x00, 0x00,
0xB7, 0xF2, 0x00, 0x00, 0x7A, 0x15, 0x00, 0x00, 0xB0, 0xF3, 0x00, 0x00, 0x8D, 0x15, 0x00, 0x00,
0x74, 0xF6, 0x00, 0x00, 0xAF, 0x15, 0x00, 0x00, 0x75, 0xF6, 0x00, 0x00, 0xB6, 0x15, 0x00, 0x00,
0x12, 0xF7, 0x00, 0x00, 0xBD, 0x15, 0x00, 0x00, 0x52, 0xF7, 0x00, 0x00, 0xCA, 0x15, 0x00, 0x00,
0xC1, 0xFA, 0x00, 0x00, 0xDA, 0x15, 0x00, 0x00, 0x7C, 0xFC, 0x00, 0x00, 0x1A, 0x16, 0x00, 0x00,
0xF4, 0xFC, 0x00, 0x00, 0x27, 0x16, 0x00, 0x00, 0xF8, 0xFE, 0x00, 0x00, 0x52, 0x16, 0x00, 0x00,
0x5A, 0xFF, 0x00, 0x00, 0x60, 0x16, 0x00, 0x00, 0x5B, 0xFF, 0x00, 0x00, 0x73, 0x16, 0x00, 0x00,
0x80, 0xFF, 0x00, 0x00, 0x80, 0x16, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, 0xEF, 0xBC, 0x88, 0xE7, 0xAE, 0x80, 0xE4, 0xBD, 0x93, 0xEF,
0xBC, 0x89, 0x00, 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, 0xEF, 0xBC, 0x88, 0xE7, 0xB9, 0x81, 0xE4,
0xBD, 0x93, 0xEF, 0xBC, 0x89, 0x00, 0xE8, 0x8B, 0xB1, 0xE8, 0xAF, 0xAD, 0x00, 0xE4, 0xBF, 0x84,
0xE8, 0xAF, 0xAD, 0x00, 0xE6, 0xB3, 0x95, 0xE8, 0xAF, 0xAD, 0x00, 0xE5, 0xBE, 0xB7, 0xE8, 0xAF,
0xAD, 0x00, 0xE6, 0x84, 0x8F, 0xE5, 0xA4, 0xA7, 0xE5, 0x88, 0xA9, 0xE8, 0xAF, 0xAD, 0x00, 0xE6,
0x97, 0xA5, 0xE8, 0xAF, 0xAD, 0x00, 0xE9, 0x9F, 0xA9, 0xE6, 0x96, 0x87, 0x00, 0xE8, 0x83, 0x8C,
0xE6, 0x99, 0xAF, 0xE7, 0xA7, 0xBB, 0xE9, 0x99, 0xA4, 0x00, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87,
0xE5, 0xA4, 0x84, 0xE4, 0xBA, 0x8E, 0xE8, 0xAE, 0xA1, 0xE6, 0x95, 0xB0, 0xE6, 0xA8, 0xA1, 0xE5,
0xBC, 0x8F, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE7, 0x8A, 0xB6, 0xE6, 0x80, 0x81, 0x00, 0xE8,
0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE2, 0x80, 0x9C, 0x00, 0xE4, 0xB8, 0x8A, 0xE4, 0xBC, 0xA0, 0xE5,
0x9B, 0xBE, 0xE5, 0x83, 0x8F, 0xE5, 0xB9, 0xB6, 0xE7, 0xBB, 0xA7, 0xE7, 0xBB, 0xAD, 0xE6, 0x89,
0xAB, 0xE6, 0x8F, 0x8F, 0x00, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE8, 0xA2, 0xAB, 0xE9, 0x94,
0x81, 0xE5, 0xAE, 0x9A, 0x00, 0xE8, 0xBE, 0x83, 0xE5, 0xBC, 0xBA, 0x00, 0xE4, 0xB8, 0x8D, 0xE9,
0x99, 0xA4, 0xE8, 0x89, 0xB2, 0x00, 0xE7, 0xA9, 0xBF, 0xE5, 0xAD, 0x94, 0xE7, 0xA7, 0xBB, 0xE9,
0x99, 0xA4, 0xE2, 0x80, 0x94, 0xE5, 0xB7, 0xA6, 0xE4, 0xBE, 0xA7, 0x00, 0xE5, 0xAF, 0xB9, 0xE6,
0x8A, 0x98, 0xE6, 0xA8, 0xA1, 0xE5, 0xBC, 0x8F, 0x00, 0xE7, 0xBA, 0xB8, 0xE5, 0xBC, 0xA0, 0xE4,
0xB8, 0x8A, 0xE6, 0xA3, 0x80, 0xE6, 0xB5, 0x8B, 0xE5, 0x88, 0xB0, 0xE6, 0x9C, 0x89, 0xE9, 0x92,
0x89, 0xE4, 0xB9, 0xA6, 0xE9, 0x92, 0x89, 0x00, 0xE6, 0x93, 0x8D, 0xE4, 0xBD, 0x9C, 0xE6, 0x88,
0x90, 0xE5, 0x8A, 0x9F, 0x00, 0xE5, 0x8F, 0x8C, 0xE9, 0x9D, 0xA2, 0x00, 0x41, 0x34, 0x00, 0xE9,
0xBB, 0x91, 0xE7, 0x99, 0xBD, 0xE5, 0x9B, 0xBE, 0xE5, 0x83, 0x8F, 0xE5, 0x99, 0xAA, 0xE7, 0x82,
0xB9, 0xE4, 0xBC, 0x98, 0xE5, 0x8C, 0x96, 0x00, 0xE4, 0xB8, 0xA4, 0xE5, 0xB0, 0x8F, 0xE6, 0x97,
0xB6, 0x00, 0xE9, 0x99, 0xA4, 0xE8, 0x93, 0x9D, 0xE8, 0x89, 0xB2, 0x00, 0xE7, 0xBA, 0xB8, 0xE5,
0xBC, 0xA0, 0xE5, 0x80, 0xBE, 0xE6, 0x96, 0x9C, 0x00, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE6,
0xB2, 0xA1, 0xE6, 0x9C, 0x89, 0xE5, 0x90, 0xAF, 0xE5, 0x8A, 0xA8, 0x00, 0xE6, 0xB3, 0xA8, 0xE5,
0x86, 0x8C, 0x55, 0x53, 0x42, 0xE7, 0x9B, 0x91, 0xE5, 0x90, 0xAC, 0xE4, 0xBA, 0x8B, 0xE4, 0xBB,
0xB6, 0xE5, 0xA4, 0xB1, 0xE8, 0xB4, 0xA5, 0x00, 0xE4, 0xB8, 0x8A, 0xE4, 0xBE, 0xA7, 0xE7, 0xA9,
0xBF, 0xE5, 0xAD, 0x94, 0xE6, 0x90, 0x9C, 0xE7, 0xB4, 0xA2, 0xE8, 0x8C, 0x83, 0xE5, 0x9B, 0xB4,
0xE5, 0x8D, 0xA0, 0xE5, 0xB9, 0x85, 0xE9, 0x9D, 0xA2, 0xE6, 0xAF, 0x94, 0xE4, 0xBE, 0x8B, 0x00,
0xE9, 0x9D, 0x9E, 0xE6, 0xB3, 0x95, 0xE7, 0x9A, 0x84, 0xE5, 0x8F, 0x82, 0xE6, 0x95, 0xB0, 0xE8,
0xB0, 0x83, 0xE7, 0x94, 0xA8, 0x00, 0xE9, 0x80, 0x9F, 0xE5, 0xBA, 0xA6, 0xE4, 0xBC, 0x98, 0xE5,
0x85, 0x88, 0x00, 0xE6, 0xB8, 0x85, 0xE7, 0x90, 0x86, 0xE7, 0xBC, 0x93, 0xE5, 0xAD, 0x98, 0xE2,
0x80, 0xA6, 0xE2, 0x80, 0xA6, 0x00, 0xE9, 0x98, 0x88, 0xE5, 0x80, 0xBC, 0x00, 0xE5, 0x86, 0x85,
0xE5, 0xAD, 0x98, 0xE4, 0xB8, 0x8D, 0xE8, 0xB6, 0xB3, 0xEF, 0xBC, 0x8C, 0xE7, 0xAD, 0x89, 0xE5,
0xBE, 0x85, 0xE5, 0x86, 0x85, 0xE5, 0xAD, 0x98, 0xE9, 0x87, 0x8A, 0xE6, 0x94, 0xBE, 0xE2, 0x80,
0xA6, 0xE2, 0x80, 0xA6, 0x00, 0xE5, 0xBD, 0xA9, 0xE8, 0x89, 0xB2, 0x2B, 0xE7, 0x81, 0xB0, 0xE5,
0xBA, 0xA6, 0x2B, 0xE9, 0xBB, 0x91, 0xE7, 0x99, 0xBD, 0x00, 0xE8, 0xB6, 0x85, 0xE5, 0xA3, 0xB0,
0xE6, 0xB3, 0xA2, 0xE6, 0xA3, 0x80, 0xE6, 0xB5, 0x8B, 0x00, 0xE5, 0xB7, 0xA6, 0xE4, 0xBE, 0xA7,
0xE7, 0xA9, 0xBF, 0xE5, 0xAD, 0x94, 0xE6, 0x90, 0x9C, 0xE7, 0xB4, 0xA2, 0xE8, 0x8C, 0x83, 0xE5,
0x9B, 0xB4, 0xE5, 0x8D, 0xA0, 0xE5, 0xB9, 0x85, 0xE9, 0x9D, 0xA2, 0xE6, 0xAF, 0x94, 0xE4, 0xBE,
0x8B, 0x00, 0x41, 0x35, 0x00, 0xE6, 0xAD, 0xA4, 0xE5, 0x9B, 0xBA, 0xE4, 0xBB, 0xB6, 0xE4, 0xB8,
0x8D, 0xE6, 0x94, 0xAF, 0xE6, 0x8C, 0x81, 0xE5, 0xBE, 0x85, 0xE7, 0xBA, 0xB8, 0xE6, 0x89, 0xAB,
0xE6, 0x8F, 0x8F, 0x00, 0xE9, 0x94, 0x90, 0xE5, 0x8C, 0x96, 0xE4, 0xB8, 0x8E, 0xE6, 0xA8, 0xA1,
0xE7, 0xB3, 0x8A, 0x00, 0xE9, 0x98, 0xB2, 0xE6, 0xAD, 0xA2, 0xE6, 0xB8, 0x97, 0xE9, 0x80, 0x8F,
0x00, 0xE4, 0xBC, 0xBD, 0xE9, 0xA9, 0xAC, 0xE5, 0x80, 0xBC, 0x00, 0xE5, 0x8F, 0x96, 0xE5, 0x9B,
0xBE, 0xE9, 0x80, 0x9A, 0xE4, 0xBF, 0xA1, 0xE8, 0xB6, 0x85, 0xE6, 0x97, 0xB6, 0x00, 0xE6, 0x89,
0xAB, 0xE6, 0x8F, 0x8F, 0xE9, 0xA1, 0xB5, 0xE9, 0x9D, 0xA2, 0x00, 0xE5, 0x8D, 0x8A, 0xE5, 0xB0,
0x8F, 0xE6, 0x97, 0xB6, 0x00, 0xE5, 0x90, 0xAF, 0xE7, 0x94, 0xA8, 0xE8, 0x89, 0xB2, 0xE8, 0xB0,
0x83, 0xE6, 0x9B, 0xB2, 0xE7, 0xBA, 0xBF, 0x00, 0xE8, 0x87, 0xAA, 0xE5, 0xAE, 0x9A, 0xE4, 0xB9,
0x89, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0x8C, 0xBA, 0xE5, 0x9F, 0x9F, 0x00, 0xE9, 0x99,
0xA4, 0xE7, 0xBD, 0x91, 0xE7, 0xBA, 0xB9, 0x00, 0xE8, 0xBE, 0xB9, 0xE7, 0xBC, 0x98, 0xE7, 0xBC,
0xA9, 0xE8, 0xBF, 0x9B, 0x00, 0xE8, 0xB7, 0xB3, 0xE8, 0xBF, 0x87, 0xE7, 0xA9, 0xBA, 0xE7, 0x99,
0xBD, 0xE9, 0xA1, 0xB5, 0xEF, 0xBC, 0x88, 0xE9, 0x80, 0x9A, 0xE7, 0x94, 0xA8, 0xEF, 0xBC, 0x89,
0x00, 0xE5, 0xB8, 0xAE, 0xE5, 0x8A, 0xA9, 0x00, 0xE4, 0xB8, 0x8A, 0xE4, 0xBC, 0xA0, 0xE5, 0x9B,
0xBE, 0xE5, 0x83, 0x8F, 0xE5, 0xB9, 0xB6, 0xE5, 0x81, 0x9C, 0xE6, 0xAD, 0xA2, 0xE6, 0x89, 0xAB,
0xE6, 0x8F, 0x8F, 0x00, 0x31, 0x36, 0xE5, 0xBC, 0x80, 0xE6, 0xA8, 0xAA, 0xE5, 0x90, 0x91, 0x00,
0xE8, 0xBF, 0x9B, 0xE7, 0xBA, 0xB8, 0xE5, 0xA4, 0xB1, 0xE8, 0xB4, 0xA5, 0xE7, 0x8E, 0x87, 0x00,
0xE8, 0x83, 0x8C, 0xE6, 0x99, 0xAF, 0xE8, 0x89, 0xB2, 0xE5, 0xBD, 0xA9, 0xE6, 0xB5, 0xAE, 0xE5,
0x8A, 0xA8, 0xE8, 0x8C, 0x83, 0xE5, 0x9B, 0xB4, 0x00, 0xE6, 0x9C, 0x80, 0xE5, 0xA4, 0xA7, 0xE6,
0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0xB0, 0xBA, 0xE5, 0xAF, 0xB8, 0xE8, 0x87, 0xAA, 0xE5, 0x8A,
0xA8, 0xE8, 0xA3, 0x81, 0xE5, 0x88, 0x87, 0x00, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0xA4,
0xB1, 0xE8, 0xB4, 0xA5, 0x00, 0xE9, 0xA2, 0x9C, 0xE8, 0x89, 0xB2, 0xE8, 0x87, 0xAA, 0xE5, 0x8A,
0xA8, 0xE8, 0xAF, 0x86, 0xE5, 0x88, 0xAB, 0x00, 0x42, 0x35, 0xE6, 0xA8, 0xAA, 0xE5, 0x90, 0x91,
0x00, 0xE6, 0xB2, 0xA1, 0xE6, 0x9C, 0x89, 0xE6, 0x95, 0xB0, 0xE6, 0x8D, 0xAE, 0x00, 0x41, 0x35,
0xE6, 0xA8, 0xAA, 0xE5, 0x90, 0x91, 0x00, 0xE5, 0xB7, 0xA6, 0xE5, 0x8F, 0xB3, 0xE5, 0xAF, 0xB9,
0xE6, 0x8A, 0x98, 0x00, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE4, 0xB8, 0x8D, 0xE6, 0x94, 0xAF,
0xE6, 0x8C, 0x81, 0xE8, 0xAF, 0xA5, 0xE6, 0x93, 0x8D, 0xE4, 0xBD, 0x9C, 0x00, 0xE7, 0xA9, 0xBF,
0xE5, 0xAD, 0x94, 0xE7, 0xA7, 0xBB, 0xE9, 0x99, 0xA4, 0x00, 0xE5, 0x9C, 0xA8, 0xE6, 0x9C, 0xAC,
0xE6, 0xAC, 0xA1, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE4, 0xB8, 0xAD, 0xEF, 0xBC, 0x8C, 0xE5,
0xAF, 0xB9, 0xE7, 0x9B, 0xB8, 0xE5, 0x90, 0x8C, 0xE6, 0x93, 0x8D, 0xE4, 0xBD, 0x9C, 0xE4, 0xB8,
0x8D, 0xE5, 0x86, 0x8D, 0xE8, 0xAF, 0xA2, 0xE9, 0x97, 0xAE, 0x00, 0xE7, 0x81, 0xB0, 0xE5, 0xBA,
0xA6, 0x2B, 0xE9, 0xBB, 0x91, 0xE7, 0x99, 0xBD, 0x00, 0x4C, 0x65, 0x74, 0x74, 0x65, 0x72, 0x00,
0xE5, 0x86, 0x99, 0xE5, 0x85, 0xA5, 0xE9, 0x85, 0x8D, 0xE7, 0xBD, 0xAE, 0xE2, 0x80, 0xA6, 0xE2,
0x80, 0xA6, 0x00, 0xE9, 0xBB, 0x91, 0xE7, 0x99, 0xBD, 0xE5, 0x9B, 0xBE, 0xE5, 0x83, 0x8F, 0xE5,
0x8F, 0x8D, 0xE8, 0x89, 0xB2, 0xE8, 0xBE, 0x93, 0xE5, 0x87, 0xBA, 0x00, 0x38, 0xE5, 0xBC, 0x80,
0x00, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0x8B, 0xE5, 0xAF, 0xB9, 0xE6, 0x8A, 0x98, 0x00, 0xE4, 0xB8,
0xA2, 0xE5, 0xBC, 0x83, 0xE5, 0x9B, 0xBE, 0xE5, 0x83, 0x8F, 0xE5, 0xB9, 0xB6, 0xE7, 0xBB, 0xA7,
0xE7, 0xBB, 0xAD, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0x00, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F,
0xE5, 0xAE, 0x8C, 0xE6, 0x88, 0x90, 0x00, 0xE7, 0xBB, 0xBF, 0xE8, 0x89, 0xB2, 0xE5, 0xA2, 0x9E,
0xE5, 0xBC, 0xBA, 0x00, 0x4C, 0x45, 0x47, 0x41, 0x4C, 0x00, 0xE8, 0x93, 0x9D, 0xE8, 0x89, 0xB2,
0xE5, 0xA2, 0x9E, 0xE5, 0xBC, 0xBA, 0x00, 0xE9, 0x94, 0x90, 0xE5, 0x8C, 0x96, 0x00, 0xE5, 0xAF,
0xB9, 0xE6, 0x8A, 0x98, 0x00, 0xE9, 0xBB, 0x91, 0xE7, 0x99, 0xBD, 0x00, 0x42, 0x36, 0xE6, 0xA8,
0xAA, 0xE5, 0x90, 0x91, 0x00, 0x32, 0x34, 0xE4, 0xBD, 0x8D, 0xE5, 0xBD, 0xA9, 0xE8, 0x89, 0xB2,
0xE5, 0x9B, 0xBE, 0xE5, 0x83, 0x8F, 0x20, 0x2D, 0x20, 0xE7, 0xAD, 0x94, 0xE9, 0xA2, 0x98, 0xE5,
0x8D, 0xA1, 0xE9, 0x99, 0xA4, 0xE7, 0xBA, 0xA2, 0x00, 0xE8, 0xB7, 0xB3, 0xE8, 0xBF, 0x87, 0xE7,
0xA9, 0xBA, 0xE7, 0x99, 0xBD, 0xE9, 0xA1, 0xB5, 0xE7, 0x81, 0xB5, 0xE6, 0x95, 0x8F, 0xE5, 0xBA,
0xA6, 0x00, 0xE5, 0xA4, 0x9A, 0xE6, 0xB5, 0x81, 0xE8, 0xBE, 0x93, 0xE5, 0x87, 0xBA, 0x00, 0x41,
0x36, 0xE6, 0xA8, 0xAA, 0xE5, 0x90, 0x91, 0x00, 0xE8, 0x83, 0x8C, 0xE9, 0x9D, 0xA2, 0xE6, 0x97,
0x8B, 0xE8, 0xBD, 0xAC, 0x31, 0x38, 0x30, 0xC2, 0xB0, 0x00, 0xE6, 0xAD, 0xA3, 0xE5, 0x9C, 0xA8,
0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE2, 0x80, 0xA6, 0xE2, 0x80, 0xA6, 0x00, 0xE4, 0xB8, 0x80,
0xE5, 0xB0, 0x8F, 0xE6, 0x97, 0xB6, 0x00, 0xE9, 0x99, 0xA4, 0xE7, 0xBA, 0xA2, 0xE8, 0x89, 0xB2,
0x00, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE6, 0xA0, 0xA1, 0xE6, 0xAD, 0xA3, 0xE8, 0xB6, 0x85,
0xE6, 0x97, 0xB6, 0x00, 0xE5, 0xA3, 0xB0, 0xE6, 0x98, 0x8E, 0x55, 0x53, 0x42, 0xE6, 0x8E, 0xA5,
0xE5, 0x8F, 0xA3, 0xE5, 0xA4, 0xB1, 0xE8, 0xB4, 0xA5, 0x00, 0xE5, 0x86, 0x99, 0xE6, 0x9C, 0xAC,
0xE5, 0x9C, 0xB0, 0xE6, 0x96, 0x87, 0xE4, 0xBB, 0xB6, 0xE5, 0xA4, 0xB1, 0xE8, 0xB4, 0xA5, 0x00,
0xE8, 0x87, 0xAA, 0xE5, 0x8A, 0xA8, 0xE7, 0xBA, 0xA0, 0xE5, 0x81, 0x8F, 0x00, 0xE6, 0x93, 0x8D,
0xE4, 0xBD, 0x9C, 0xE8, 0xB6, 0x85, 0xE5, 0x87, 0xBA, 0xE8, 0x8C, 0x83, 0xE5, 0x9B, 0xB4, 0x00,
0xE6, 0x9C, 0xAA, 0xE7, 0x9F, 0xA5, 0xE9, 0x94, 0x99, 0xE8, 0xAF, 0xAF, 0xEF, 0xBC, 0x8C, 0xE8,
0xAF, 0xB7, 0xE9, 0x87, 0x8D, 0xE5, 0x90, 0xAF, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xEF, 0xBC,
0x8C, 0xE7, 0xAD, 0x89, 0xE5, 0xBE, 0x85, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE5, 0xA4, 0x8D,
0xE4, 0xBD, 0x8D, 0xE6, 0x88, 0x90, 0xE5, 0x8A, 0x9F, 0xE5, 0x9C, 0xA8, 0xE5, 0x90, 0xAF, 0xE5,
0x8A, 0xA8, 0xE8, 0xBD, 0xAF, 0xE4, 0xBB, 0xB6, 0x00, 0xE5, 0xBC, 0xB1, 0x00, 0xE5, 0xBC, 0xB1,
0x00, 0xE5, 0x8E, 0xBB, 0xE9, 0x99, 0xA4, 0xE6, 0x91, 0xA9, 0xE5, 0xB0, 0x94, 0xE7, 0xBA, 0xB9,
0x00, 0xE4, 0xBA, 0xAE, 0xE5, 0xBA, 0xA6, 0xE5, 0x80, 0xBC, 0x00, 0xE7, 0x94, 0xBB, 0xE8, 0xB4,
0xA8, 0x00, 0xE5, 0x88, 0x9B, 0xE5, 0xBB, 0xBA, 0xE6, 0x9C, 0xAC, 0xE5, 0x9C, 0xB0, 0xE6, 0x96,
0x87, 0xE4, 0xBB, 0xB6, 0xE5, 0xA4, 0xB1, 0xE8, 0xB4, 0xA5, 0x00, 0xE6, 0xA8, 0xA1, 0xE7, 0xB3,
0x8A, 0x00, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE6, 0x95, 0xB0, 0xE9, 0x87, 0x8F, 0x00, 0xE6,
0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0x8C, 0xBA, 0xE5, 0x9F, 0x9F, 0xE5, 0xB7, 0xA6, 0xE4, 0xBE,
0xA7, 0xEF, 0xBC, 0x88, 0x6D, 0x6D, 0xEF, 0xBC, 0x89, 0x00, 0x31, 0x38, 0x30, 0xC2, 0xB0, 0x00,
0xE5, 0x9B, 0xBE, 0xE5, 0x83, 0x8F, 0xE6, 0x8B, 0x86, 0xE5, 0x88, 0x86, 0x00, 0xE5, 0x99, 0xAA,
0xE7, 0x82, 0xB9, 0xE4, 0xBC, 0x98, 0xE5, 0x8C, 0x96, 0xE5, 0xB0, 0xBA, 0xE5, 0xAF, 0xB8, 0x00,
0xE8, 0x89, 0xB2, 0xE5, 0xBD, 0xA9, 0xE5, 0xA1, 0xAB, 0xE5, 0x85, 0x85, 0x00, 0xE4, 0xB8, 0x89,
0xE8, 0x81, 0x94, 0xE8, 0xAF, 0x95, 0xE5, 0x8D, 0xB7, 0x00, 0xE5, 0x9B, 0x9B, 0xE5, 0xB0, 0x8F,
0xE6, 0x97, 0xB6, 0x00, 0xE5, 0xBC, 0x82, 0xE6, 0xAD, 0xA5, 0xE8, 0xAE, 0xBF, 0xE9, 0x97, 0xAE,
0xEF, 0xBC, 0x8C, 0xE6, 0x95, 0xB0, 0xE6, 0x8D, 0xAE, 0xE7, 0xA8, 0x8D, 0xE5, 0x90, 0x8E, 0xE8,
0xBF, 0x94, 0xE5, 0x9B, 0x9E, 0x00, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE5, 0xA4, 0x84, 0xE4,
0xBA, 0x8E, 0xE7, 0x9D, 0xA1, 0xE7, 0x9C, 0xA0, 0xE7, 0x8A, 0xB6, 0xE6, 0x80, 0x81, 0x00, 0xE8,
0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE7, 0x9A, 0x84, 0xE9, 0x85, 0x8D, 0xE7, 0xBD, 0xAE, 0xE9, 0xA1,
0xB9, 0xE5, 0x8F, 0x91, 0xE7, 0x94, 0x9F, 0xE6, 0x94, 0xB9, 0xE5, 0x8F, 0x98, 0xEF, 0xBC, 0x8C,
0xE9, 0x9C, 0x80, 0xE8, 0xA6, 0x81, 0xE9, 0x87, 0x8D, 0xE6, 0x96, 0xB0, 0xE5, 0x8A, 0xA0, 0xE8,
0xBD, 0xBD, 0xE6, 0x98, 0xBE, 0xE7, 0xA4, 0xBA, 0x00, 0x49, 0x4F, 0xE9, 0x94, 0x99, 0xE8, 0xAF,
0xAF, 0x00, 0xE4, 0xB8, 0x8D, 0xE4, 0xBC, 0x91, 0xE7, 0x9C, 0xA0, 0x00, 0x41, 0x36, 0x00, 0xE8,
0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE6, 0xAD, 0xA3, 0xE5, 0xBF, 0x99, 0xEF, 0xBC, 0x8C, 0xE4, 0xB8,
0x8D, 0xE8, 0x83, 0xBD, 0xE5, 0x93, 0x8D, 0xE5, 0xBA, 0x94, 0xE8, 0xAF, 0xA5, 0xE6, 0x93, 0x8D,
0xE4, 0xBD, 0x9C, 0x00, 0xE8, 0xAF, 0xB7, 0xE5, 0x85, 0xB3, 0xE9, 0x97, 0xAD, 0xE6, 0x89, 0xAB,
0xE6, 0x8F, 0x8F, 0xE4, 0xBB, 0xAA, 0xE7, 0x9B, 0x96, 0xE6, 0x9D, 0xBF, 0x00, 0xE6, 0x97, 0xA0,
0x00, 0xE6, 0x97, 0xA0, 0x00, 0xE6, 0x97, 0xA0, 0x00, 0xE4, 0xB8, 0xA2, 0xE5, 0xBC, 0x83, 0xE5,
0x9B, 0xBE, 0xE5, 0x83, 0x8F, 0xE5, 0xB9, 0xB6, 0xE5, 0x81, 0x9C, 0xE6, 0xAD, 0xA2, 0xE6, 0x89,
0xAB, 0xE6, 0x8F, 0x8F, 0x00, 0xE4, 0xBA, 0x94, 0xE5, 0x88, 0x86, 0xE9, 0x92, 0x9F, 0x00, 0xE6,
0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE6, 0x8C, 0x87, 0xE5, 0xAE, 0x9A, 0xE5, 0xBC, 0xA0, 0xE6, 0x95,
0xB0, 0x00, 0xE8, 0xB7, 0xB3, 0xE8, 0xBF, 0x87, 0xE7, 0xA9, 0xBA, 0xE7, 0x99, 0xBD, 0xE9, 0xA1,
0xB5, 0xEF, 0xBC, 0x88, 0xE5, 0x8F, 0x91, 0xE7, 0xA5, 0xA8, 0xE7, 0xBA, 0xB8, 0xEF, 0xBC, 0x89,
0x00, 0xE6, 0x9C, 0x89, 0xE6, 0x95, 0xB0, 0xE6, 0x8D, 0xAE, 0xE6, 0x9C, 0xAA, 0xE8, 0xA2, 0xAB,
0xE8, 0xAF, 0xBB, 0xE5, 0x8F, 0x96, 0x00, 0xE4, 0xBA, 0xA4, 0xE6, 0x8D, 0xA2, 0xE6, 0xAD, 0xA3,
0xE5, 0x8F, 0x8D, 0xE9, 0x9D, 0xA2, 0x00, 0x32, 0x34, 0xE4, 0xBD, 0x8D, 0xE5, 0xBD, 0xA9, 0xE8,
0x89, 0xB2, 0xE5, 0x9B, 0xBE, 0xE5, 0x83, 0x8F, 0x20, 0x2D, 0x20, 0xE5, 0xA4, 0x9A, 0xE6, 0xB5,
0x81, 0xE8, 0xBE, 0x93, 0xE5, 0x87, 0xBA, 0xE9, 0x99, 0xA4, 0xE7, 0xBA, 0xA2, 0x00, 0xE5, 0xAF,
0xB9, 0xE6, 0xAF, 0x94, 0xE5, 0xBA, 0xA6, 0x00, 0xE7, 0xBA, 0xB8, 0xE5, 0xBC, 0xA0, 0xE5, 0xB0,
0xBA, 0xE5, 0xAF, 0xB8, 0xE6, 0xA3, 0x80, 0xE6, 0xB5, 0x8B, 0xE9, 0x94, 0x99, 0xE8, 0xAF, 0xAF,
0x00, 0xE7, 0x96, 0x91, 0xE6, 0x98, 0xAF, 0xE9, 0x9D, 0x9E, 0xE4, 0xB8, 0x93, 0xE7, 0x94, 0xA8,
0xE7, 0x95, 0xB8, 0xE5, 0x8F, 0x98, 0xE4, 0xBF, 0xAE, 0xE6, 0xAD, 0xA3, 0xE7, 0xBA, 0xB8, 0x00,
0xE7, 0xA9, 0xBF, 0xE5, 0xAD, 0x94, 0xE7, 0xA7, 0xBB, 0xE9, 0x99, 0xA4, 0xE2, 0x80, 0x94, 0xE5,
0x8F, 0xB3, 0xE4, 0xBE, 0xA7, 0x00, 0xE5, 0xBC, 0xBA, 0x00, 0xE5, 0xBC, 0xBA, 0x00, 0xE8, 0xBF,
0x9B, 0xE4, 0xB8, 0x80, 0xE6, 0xAD, 0xA5, 0xE6, 0xA8, 0xA1, 0xE7, 0xB3, 0x8A, 0x00, 0xE5, 0x90,
0xAF, 0xE5, 0x8A, 0xA8, 0xE6, 0x88, 0x90, 0xE5, 0x8A, 0x9F, 0x00, 0xE9, 0x99, 0xA4, 0xE7, 0xBB,
0xBF, 0xE8, 0x89, 0xB2, 0x00, 0x41, 0x33, 0x00, 0xE5, 0xB0, 0xBA, 0xE5, 0xAF, 0xB8, 0xE6, 0xA3,
0x80, 0xE6, 0xB5, 0x8B, 0x00, 0x30, 0xC2, 0xB0, 0x00, 0xE2, 0x80, 0x9D, 0xE5, 0xB7, 0xB2, 0xE7,
0xBB, 0x8F, 0xE5, 0x85, 0xB3, 0xE9, 0x97, 0xAD, 0xE3, 0x80, 0x82, 0x00, 0xE6, 0x81, 0xA2, 0xE5,
0xA4, 0x8D, 0xE9, 0xBB, 0x98, 0xE8, 0xAE, 0xA4, 0xE8, 0xAE, 0xBE, 0xE7, 0xBD, 0xAE, 0x00, 0x42,
0x35, 0x00, 0xE7, 0x94, 0xBB, 0xE8, 0xB4, 0xA8, 0xE4, 0xBC, 0x98, 0xE5, 0x85, 0x88, 0x00, 0xE7,
0xA9, 0xBF, 0xE5, 0xAD, 0x94, 0xE7, 0xA7, 0xBB, 0xE9, 0x99, 0xA4, 0xE2, 0x80, 0x94, 0xE4, 0xB8,
0x8B, 0xE4, 0xBE, 0xA7, 0x00, 0xE9, 0x94, 0x99, 0xE8, 0xAF, 0xAF, 0xE6, 0x89, 0xA9, 0xE6, 0x95,
0xA3, 0x00, 0xE8, 0x87, 0xAA, 0xE5, 0x8A, 0xA8, 0xE5, 0xAF, 0xB9, 0xE6, 0x8A, 0x98, 0x00, 0xE5,
0x8C, 0xB9, 0xE9, 0x85, 0x8D, 0xE5, 0x8E, 0x9F, 0xE5, 0xA7, 0x8B, 0xE5, 0xB0, 0xBA, 0xE5, 0xAF,
0xB8, 0x00, 0xE5, 0xBE, 0x85, 0xE7, 0xBA, 0xB8, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0x00, 0xE8,
0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE6, 0x9C, 0xAA, 0xE6, 0x89, 0x93, 0xE5, 0xBC, 0x80, 0x00, 0xE8,
0x87, 0xAA, 0xE5, 0x8A, 0xA8, 0xE5, 0xB9, 0xB3, 0xE5, 0x9C, 0xBA, 0xE6, 0xA0, 0xA1, 0xE6, 0xAD,
0xA3, 0xE7, 0xBB, 0x93, 0xE6, 0x9D, 0x9F, 0x00, 0xE7, 0x94, 0xA8, 0xE6, 0x88, 0xB7, 0xE5, 0x8F,
0x96, 0xE6, 0xB6, 0x88, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0x00, 0x32, 0x34, 0xE4, 0xBD, 0x8D,
0xE5, 0xBD, 0xA9, 0xE8, 0x89, 0xB2, 0x00, 0xE6, 0xB7, 0xB1, 0xE8, 0x89, 0xB2, 0xE6, 0xA0, 0xB7,
0xE5, 0xBC, 0xA0, 0x00, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE4, 0xBB, 0xAA, 0xE5, 0x8D, 0xA1,
0xE7, 0xBA, 0xB8, 0x00, 0xE5, 0x88, 0x86, 0xE8, 0xBE, 0xA8, 0xE7, 0x8E, 0x87, 0x00, 0xE8, 0xBF,
0x9B, 0xE4, 0xB8, 0x80, 0xE6, 0xAD, 0xA5, 0xE9, 0x94, 0x90, 0xE5, 0x8C, 0x96, 0x00, 0x31, 0x36,
0xE5, 0xBC, 0x80, 0x00, 0xE7, 0xBA, 0xA2, 0xE8, 0x89, 0xB2, 0xE5, 0xA2, 0x9E, 0xE5, 0xBC, 0xBA,
0x00, 0x39, 0x30, 0xC2, 0xB0, 0x00, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE6, 0xB2, 0xA1, 0xE5,
0x8F, 0x96, 0xE5, 0x88, 0xB0, 0xE5, 0x9B, 0xBE, 0x00, 0x4C, 0x65, 0x74, 0x74, 0x65, 0x72, 0xE6,
0xA8, 0xAA, 0xE5, 0x90, 0x91, 0x00, 0xE6, 0xAD, 0xAA, 0xE6, 0x96, 0x9C, 0xE5, 0xAE, 0xB9, 0xE5,
0xBF, 0x8D, 0xE5, 0xBA, 0xA6, 0x00, 0xE5, 0x87, 0xB8, 0xE5, 0xA4, 0x9A, 0xE8, 0xBE, 0xB9, 0xE5,
0xBD, 0xA2, 0x00, 0xE5, 0x87, 0xB9, 0xE5, 0xA4, 0x9A, 0xE8, 0xBE, 0xB9, 0xE5, 0xBD, 0xA2, 0x00,
0xE5, 0x8F, 0x8C, 0xE5, 0xBC, 0xA0, 0xE5, 0x9B, 0xBE, 0xE7, 0x89, 0x87, 0xE5, 0xA4, 0x84, 0xE7,
0x90, 0x86, 0x00, 0x2D, 0x39, 0x30, 0xC2, 0xB0, 0x00, 0xE5, 0x8D, 0x81, 0xE5, 0x88, 0x86, 0xE9,
0x92, 0x9F, 0x00, 0x44, 0x6F, 0x75, 0x62, 0x6C, 0x65, 0x20, 0x4C, 0x65, 0x74, 0x74, 0x65, 0x72,
0x00, 0xE6, 0xAD, 0xAA, 0xE6, 0x96, 0x9C, 0xE6, 0xA3, 0x80, 0xE6, 0xB5, 0x8B, 0x00, 0xE8, 0xAE,
0xBE, 0xE5, 0xA4, 0x87, 0xE6, 0x9C, 0xAA, 0xE6, 0x89, 0xBE, 0xE5, 0x88, 0xB0, 0x00, 0xE9, 0xBB,
0x91, 0xE7, 0x99, 0xBD, 0xE5, 0x9B, 0xBE, 0xE5, 0x83, 0x8F, 0xE9, 0x98, 0x88, 0xE5, 0x80, 0xBC,
0x00, 0x32, 0x35, 0x36, 0xE7, 0xBA, 0xA7, 0xE7, 0x81, 0xB0, 0xE5, 0xBA, 0xA6, 0x00, 0xE6, 0x89,
0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0x81, 0x9C, 0xE6, 0xAD, 0xA2, 0x00, 0xE4, 0xB8, 0x8B, 0xE4, 0xBE,
0xA7, 0xE7, 0xA9, 0xBF, 0xE5, 0xAD, 0x94, 0xE6, 0x90, 0x9C, 0xE7, 0xB4, 0xA2, 0xE8, 0x8C, 0x83,
0xE5, 0x9B, 0xB4, 0xE5, 0x8D, 0xA0, 0xE5, 0xB9, 0x85, 0xE9, 0x9D, 0xA2, 0xE6, 0xAF, 0x94, 0xE4,
0xBE, 0x8B, 0x00, 0xE6, 0x95, 0xB0, 0xE6, 0x8D, 0xAE, 0xE6, 0x8D, 0x9F, 0xE5, 0x9D, 0x8F, 0x00,
0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0x8C, 0xBA, 0xE5, 0x9F, 0x9F, 0xE4, 0xB8, 0x8A, 0xE4,
0xBE, 0xA7, 0xEF, 0xBC, 0x88, 0x6D, 0x6D, 0xEF, 0xBC, 0x89, 0x00, 0xE6, 0x89, 0xAB, 0xE6, 0x8F,
0x8F, 0xE5, 0xBC, 0xA0, 0xE6, 0x95, 0xB0, 0x00, 0xE5, 0x8F, 0xB3, 0xE4, 0xBE, 0xA7, 0xE7, 0xA9,
0xBF, 0xE5, 0xAD, 0x94, 0xE6, 0x90, 0x9C, 0xE7, 0xB4, 0xA2, 0xE8, 0x8C, 0x83, 0xE5, 0x9B, 0xB4,
0xE5, 0x8D, 0xA0, 0xE5, 0xB9, 0x85, 0xE9, 0x9D, 0xA2, 0xE6, 0xAF, 0x94, 0xE4, 0xBE, 0x8B, 0x00,
0xE6, 0xB6, 0x88, 0xE9, 0x99, 0xA4, 0xE9, 0xBB, 0x91, 0xE6, 0xA1, 0x86, 0x00, 0xE6, 0xAD, 0xA3,
0xE5, 0x9C, 0xA8, 0xE9, 0x87, 0x8D, 0xE7, 0xBD, 0xAE, 0xEF, 0xBC, 0x8C, 0xE5, 0xA6, 0x82, 0xE6,
0x9E, 0x9C, 0xE8, 0xAE, 0xBE, 0xE5, 0xA4, 0x87, 0xE8, 0xBF, 0x9F, 0xE8, 0xBF, 0x9F, 0xE6, 0xB2,
0xA1, 0xE6, 0x9C, 0x89, 0xE5, 0x8A, 0xA8, 0xE4, 0xBD, 0x9C, 0xEF, 0xBC, 0x8C, 0xE8, 0xAF, 0xB7,
0xE9, 0x87, 0x8D, 0xE6, 0x96, 0xB0, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE2, 0x80, 0xA6, 0xE2,
0x80, 0xA6, 0x00, 0x42, 0x34, 0x00, 0xE6, 0x8A, 0x98, 0xE8, 0xA7, 0x92, 0xE6, 0xA3, 0x80, 0xE6,
0xB5, 0x8B, 0x00, 0xE6, 0x93, 0x8D, 0xE4, 0xBD, 0x9C, 0xE8, 0xA2, 0xAB, 0xE5, 0x8F, 0x96, 0xE6,
0xB6, 0x88, 0x00, 0xE5, 0x8D, 0x95, 0xE9, 0x9D, 0xA2, 0x00, 0x55, 0x53, 0x42, 0xE9, 0x80, 0x9A,
0xE4, 0xBF, 0xA1, 0xE5, 0x88, 0x9D, 0xE5, 0xA7, 0x8B, 0xE5, 0x8C, 0x96, 0xE5, 0xA4, 0xB1, 0xE8,
0xB4, 0xA5, 0x00, 0xE6, 0x8A, 0x98, 0xE8, 0xA7, 0x92, 0xE5, 0xA4, 0xA7, 0xE5, 0xB0, 0x8F, 0x00,
0xE6, 0x96, 0x87, 0xE7, 0xA8, 0xBF, 0xE6, 0x96, 0xB9, 0xE5, 0x90, 0x91, 0x00, 0xE6, 0x9C, 0x80,
0xE5, 0xA4, 0xA7, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0xB0, 0xBA, 0xE5, 0xAF, 0xB8, 0x00,
0xE5, 0x90, 0xAF, 0xE5, 0x8A, 0xA8, 0xE5, 0xA4, 0xB1, 0xE8, 0xB4, 0xA5, 0x00, 0xE7, 0xBA, 0xB8,
0xE5, 0xBC, 0xA0, 0xE5, 0xB0, 0xBA, 0xE5, 0xAF, 0xB8, 0x00, 0xE5, 0xBD, 0xA9, 0xE8, 0x89, 0xB2,
0x2B, 0xE9, 0xBB, 0x91, 0xE7, 0x99, 0xBD, 0x00, 0xE8, 0x87, 0xAA, 0xE5, 0x8A, 0xA8, 0xE5, 0x88,
0x86, 0xE7, 0xBA, 0xB8, 0xE5, 0xBC, 0xBA, 0xE5, 0xBA, 0xA6, 0x00, 0xE6, 0x89, 0x93, 0xE5, 0xBC,
0x80, 0xE6, 0x9C, 0xAC, 0xE5, 0x9C, 0xB0, 0xE6, 0x96, 0x87, 0xE4, 0xBB, 0xB6, 0xE5, 0xA4, 0xB1,
0xE8, 0xB4, 0xA5, 0x00, 0xE4, 0xBC, 0x91, 0xE7, 0x9C, 0xA0, 0xE6, 0x97, 0xB6, 0xE9, 0x97, 0xB4,
0x00, 0xE8, 0xBE, 0x83, 0xE5, 0xBC, 0xB1, 0x00, 0xE8, 0x83, 0x8C, 0xE6, 0x99, 0xAF, 0xE6, 0x8A,
0x97, 0xE5, 0x99, 0xAA, 0xE7, 0xAD, 0x89, 0xE7, 0xBA, 0xA7, 0x00, 0xE8, 0x87, 0xAA, 0xE5, 0x8A,
0xA8, 0xE6, 0x96, 0x87, 0xE6, 0x9C, 0xAC, 0xE6, 0x96, 0xB9, 0xE5, 0x90, 0x91, 0xE8, 0xAF, 0x86,
0xE5, 0x88, 0xAB, 0xC2, 0xB0, 0x00, 0xE8, 0xAE, 0xBF, 0xE9, 0x97, 0xAE, 0xE8, 0xA2, 0xAB, 0xE6,
0x8B, 0x92, 0xE7, 0xBB, 0x9D, 0x00, 0xE5, 0x86, 0x85, 0xE5, 0xAD, 0x98, 0xE4, 0xB8, 0x8D, 0xE8,
0xB6, 0xB3, 0xE6, 0x88, 0x96, 0xE5, 0x86, 0x85, 0xE5, 0xAD, 0x98, 0xE5, 0x88, 0x86, 0xE9, 0x85,
0x8D, 0xE5, 0xA4, 0xB1, 0xE8, 0xB4, 0xA5, 0x00, 0x42, 0x36, 0x00, 0xE7, 0x81, 0xB0, 0xE5, 0xBA,
0xA6, 0xE6, 0x88, 0x96, 0xE9, 0xBB, 0x91, 0xE7, 0x99, 0xBD, 0xE5, 0x9B, 0xBE, 0xE5, 0x83, 0x8F,
0x20, 0x2D, 0x20, 0xE9, 0x99, 0xA4, 0xE8, 0x89, 0xB2, 0xE4, 0xB8, 0x8E, 0xE5, 0xA2, 0x9E, 0xE5,
0xBC, 0xBA, 0x00, 0xE9, 0xA2, 0x9C, 0xE8, 0x89, 0xB2, 0xE6, 0xA8, 0xA1, 0xE5, 0xBC, 0x8F, 0x00,
0xE6, 0xAD, 0xA4, 0xE8, 0xBD, 0xAE, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0xAE, 0x8C, 0xE6,
0x88, 0x90, 0x00, 0xE9, 0x98, 0xB2, 0xE6, 0xAD, 0xA2, 0xE6, 0xB8, 0x97, 0xE9, 0x80, 0x8F, 0xE7,
0xAD, 0x89, 0xE7, 0xBA, 0xA7, 0x00, 0xE8, 0xBF, 0x9E, 0xE7, 0xBB, 0xAD, 0xE6, 0x89, 0xAB, 0xE6,
0x8F, 0x8F, 0x00, 0xE6, 0x9C, 0x89, 0xE5, 0xA4, 0x9A, 0xE5, 0xBC, 0xA0, 0xE7, 0xBA, 0xB8, 0xE8,
0xA2, 0xAB, 0xE5, 0x90, 0x8C, 0xE6, 0x97, 0xB6, 0xE6, 0x90, 0x93, 0xE8, 0xBF, 0x9B, 0xE6, 0x89,
0xAB, 0xE6, 0x8F, 0x8F, 0xE4, 0xBB, 0xAA, 0x00, 0xE7, 0xA9, 0xBF, 0xE5, 0xAD, 0x94, 0xE6, 0x90,
0x9C, 0xE7, 0xB4, 0xA2, 0xE8, 0x8C, 0x83, 0xE5, 0x9B, 0xB4, 0xE5, 0x8D, 0xA0, 0xE5, 0xB9, 0x85,
0xE9, 0x9D, 0xA2, 0xE6, 0xAF, 0x94, 0xE4, 0xBE, 0x8B, 0x00, 0xE7, 0xA9, 0xBF, 0xE5, 0xAD, 0x94,
0xE7, 0xA7, 0xBB, 0xE9, 0x99, 0xA4, 0xE2, 0x80, 0x94, 0xE4, 0xB8, 0x8A, 0xE4, 0xBE, 0xA7, 0x00,
0xE6, 0x90, 0x93, 0xE7, 0xBA, 0xB8, 0xE5, 0xA4, 0xB1, 0xE8, 0xB4, 0xA5, 0x00, 0xE5, 0xA4, 0x9A,
0xE6, 0xB5, 0x81, 0xE8, 0xBE, 0x93, 0xE5, 0x87, 0xBA, 0xE7, 0xB1, 0xBB, 0xE5, 0x9E, 0x8B, 0x00,
0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0x8C, 0xBA, 0xE5, 0x9F, 0x9F, 0xE5, 0x8F, 0xB3, 0xE4,
0xBE, 0xA7, 0xEF, 0xBC, 0x88, 0x6D, 0x6D, 0xEF, 0xBC, 0x89, 0x00, 0x50, 0x43, 0xE7, 0xB9, 0x81,
0xE5, 0xBF, 0x99, 0xE6, 0x88, 0x96, 0xE5, 0x87, 0xBA, 0xE9, 0x94, 0x99, 0x00, 0xE6, 0x97, 0xA0,
0xE7, 0xBA, 0xB8, 0x00, 0x41, 0x34, 0xE6, 0xA8, 0xAA, 0xE5, 0x90, 0x91, 0x00, 0xE7, 0xBA, 0xB8,
0xE5, 0xBC, 0xA0, 0xE6, 0x9C, 0x89, 0xE6, 0x8A, 0x98, 0xE8, 0xA7, 0x92, 0x00, 0xE7, 0x85, 0xA7,
0xE7, 0x89, 0x87, 0xE6, 0xA8, 0xA1, 0xE5, 0xBC, 0x8F, 0x00, 0xE5, 0x87, 0x86, 0xE5, 0xA4, 0x87,
0xE5, 0x90, 0xAF, 0xE5, 0x8A, 0xA8, 0xE2, 0x80, 0xA6, 0xE2, 0x80, 0xA6, 0x00, 0xE8, 0xAE, 0xBE,
0xE5, 0xA4, 0x87, 0xE5, 0xB7, 0xB2, 0xE7, 0xBB, 0x8F, 0xE8, 0xA2, 0xAB, 0xE5, 0x85, 0xB6, 0xE5,
0xAE, 0x83, 0xE8, 0xBF, 0x9B, 0xE7, 0xA8, 0x8B, 0xE5, 0x8D, 0xA0, 0xE7, 0x94, 0xA8, 0x00, 0xE4,
0xB8, 0x80, 0xE8, 0x88, 0xAC, 0x00, 0xE4, 0xB8, 0x80, 0xE8, 0x88, 0xAC, 0x00, 0xE5, 0x88, 0x86,
0xE7, 0xBA, 0xB8, 0xE5, 0xBC, 0xBA, 0xE5, 0xBA, 0xA6, 0x00, 0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F,
0xE5, 0xB7, 0xB2, 0xE5, 0x8F, 0x96, 0xE6, 0xB6, 0x88, 0x00, 0xE6, 0x95, 0xB0, 0xE6, 0x8D, 0xAE,
0xE4, 0xB8, 0x8D, 0xE7, 0xB2, 0xBE, 0xE7, 0xA1, 0xAE, 0xEF, 0xBC, 0x8C, 0xE7, 0xB2, 0xBE, 0xE7,
0xA1, 0xAE, 0xE7, 0x9A, 0x84, 0xE6, 0x95, 0xB0, 0xE6, 0x8D, 0xAE, 0xE5, 0xB7, 0xB2, 0xE7, 0xBB,
0x8F, 0xE5, 0x9C, 0xA8, 0xE5, 0x90, 0x8C, 0xE4, 0xB8, 0x80, 0xE7, 0xBC, 0x93, 0xE5, 0xAD, 0x98,
0xE4, 0xB8, 0xAD, 0xE8, 0xBF, 0x94, 0xE5, 0x9B, 0x9E, 0x00, 0xE8, 0xA3, 0x85, 0xE8, 0xAE, 0xA2,
0xE6, 0xA3, 0x80, 0xE6, 0xB5, 0x8B, 0x00, 0xE6, 0xAD, 0xA3, 0xE5, 0x9C, 0xA8, 0xE5, 0x94, 0xA4,
0xE9, 0x86, 0x92, 0x2E, 0x2E, 0x2E, 0xE8, 0xAF, 0xB7, 0xE7, 0xAD, 0x89, 0xE5, 0xBE, 0x85, 0xE5,
0x8D, 0x81, 0xE7, 0xA7, 0x92, 0xE5, 0x86, 0x8D, 0xE6, 0xAC, 0xA1, 0xE6, 0x89, 0xAB, 0xE6, 0x8F,
0x8F, 0x00, 0xE5, 0xBD, 0xA9, 0xE8, 0x89, 0xB2, 0x2B, 0xE7, 0x81, 0xB0, 0xE5, 0xBA, 0xA6, 0x00,
0xE8, 0x83, 0x8C, 0xE6, 0x99, 0xAF, 0xE5, 0xA1, 0xAB, 0xE5, 0x85, 0x85, 0xE6, 0x96, 0xB9, 0xE5,
0xBC, 0x8F, 0x00, 0xE6, 0x93, 0x8D, 0xE4, 0xBD, 0x9C, 0xE8, 0xB6, 0x85, 0xE6, 0x97, 0xB6, 0x00,
0xE6, 0x89, 0xAB, 0xE6, 0x8F, 0x8F, 0xE5, 0x8C, 0xBA, 0xE5, 0x9F, 0x9F, 0xE4, 0xB8, 0x8B, 0xE4,
0xBE, 0xA7, 0xEF, 0xBC, 0x88, 0x6D, 0x6D, 0xEF, 0xBC, 0x89, 0x00
};