diff --git a/llama.cpp b/llama.cpp index 365df9783..74948682f 100644 --- a/llama.cpp +++ b/llama.cpp @@ -3271,10 +3271,14 @@ static bool llama_model_load(const std::string & fname, llama_model & model, con model.hparams.vocab_only = params.vocab_only; llm_load_arch (ml, model); + std::cout<<"here 1!"< regex_preprocess(const std::vector &input, const std::string & regex_expr) { - std::regex expr(regex_expr); - std::vector bpe_words; - // std::wsmatch m; - // // use regex match to get where to split the test string - for(auto& text:input) { - std::cregex_iterator it(text.data(), text.data() + text.size(), expr); - std::cregex_iterator end; + std::vector regex_preprocess(const std::wstring & text, const std::vector & offsets, const std::wstring& regex_expr) { + std::wregex expr(regex_expr); + std::vector bpe_words; // stroe the offset of each word + bpe_words.reserve(offsets.size()); // Reserve memory for the approximate size + size_t start = 0; + for ( auto & offset : offsets) { + std::wcregex_iterator it(text.data() + start, text.data() + start + offset, expr); + std::wcregex_iterator end; - // Print the matches - unsigned int start_idx = 0; + size_t start_idx = 0; while (it != end) { - std::cmatch match = *it; - std::string match_str = match.str(); - if(match.position()>start_idx) { - bpe_words.emplace_back(text.substr(start_idx, match.position()-start_idx)); + std::wcmatch match = *it; + if (match.position() > start_idx) { + bpe_words.emplace_back(match.position() - start_idx); } - bpe_words.emplace_back(match_str); + bpe_words.emplace_back(match.length()); start_idx = match.position() + match.length(); ++it; } - if(start_idx < text.size()) { - bpe_words.emplace_back(text.substr(start_idx, text.size()-start_idx)); + if (start_idx < offset) { + bpe_words.emplace_back(offset - start_idx); } + start += offset; } return bpe_words; } - std::vector bpe_gpt2_preprocess(const std::string & text) { - std::vector bpe_words = {text}; + std::vector regex_bpe_preprocess(const std::string & text, const std::vector & regex_exprs) { + std::wstring wtext = from_utf8(text); - for(auto & regex_expr : gpt2_regex) { - bpe_words = regex_preprocess(bpe_words, regex_expr); + std::vector bpe_offsets = {wtext.size()}; + + for(auto & regex_expr : regex_exprs) { + bpe_offsets = regex_preprocess(wtext, bpe_offsets, regex_expr); } - std::vector bpe_encoded_words = byte_encoding_process(bpe_words); + std::vector bpe_words; + bpe_words.reserve(bpe_offsets.size()); // Reserve memory for the approximate size + size_t start = 0; + for(size_t & offset : bpe_offsets){ + bpe_words.emplace_back(to_utf8(std::wstring(wtext, start, offset))); + start += offset; + } - return bpe_encoded_words; + return byte_encoding_process(bpe_words); + } + + std::vector bpe_gpt2_preprocess(const std::string & text) { + return regex_bpe_preprocess(text, gpt2_regex); } std::vector bpe_deepseek_coder_preprocess(const std::string & text) { - - std::vector bpe_words; - std::wstring wtext = from_utf8(text); - - // extract all cjk characters - std::wregex expr(L"[\u4e00-\u9fa5\u0800-\u4e00\uac00-\ud7ff]+"); - std::wcregex_iterator it(wtext.data(), wtext.data() + wtext.size(), expr); - std::wcregex_iterator end; - - unsigned int start_idx = 0; - while (it != end) { - std::wcmatch match = *it; - std::wstring match_str = match.str(); - if(match.position()>start_idx) { - bpe_words.emplace_back(to_utf8(wtext.substr(start_idx, match.position()-start_idx))); - } - bpe_words.emplace_back(to_utf8(match_str)); - start_idx = match.position() + match.length(); - ++it; - } - if(start_idx < wtext.size()) { - bpe_words.emplace_back(to_utf8(wtext.substr(start_idx, wtext.size()-start_idx))); - } - - for(auto & regex_expr : deepseek_coder_regex) { - bpe_words = regex_preprocess(bpe_words, regex_expr); - } - - std::vector bpe_encoded_words = byte_encoding_process(bpe_words); - - return bpe_encoded_words; + return regex_bpe_preprocess(text, deepseek_coder_regex); } const llama_vocab & vocab; diff --git a/unicode.h b/unicode.h index 7ad81a006..0946d3c67 100644 --- a/unicode.h +++ b/unicode.h @@ -464,24 +464,26 @@ static uint8_t unicode_to_bytes_bpe(const std::string & utf8) { return map.at(utf8); } -static const std::vector gpt2_regex = { - //punc: \{p} and ascii puncs - "(?:[\\!-/]|[\\:-\\@]|[\\[-\\x60]|[\\{-~]|\\xc2\\xa1|\\xc2\\xa7|\\xc2\\xab|\\xc2[\\xb6\\xb7]|\\xc2\\xbb|\\xc2\\xbf|\\xcd\\xbe|\\xce\\x87|\\xd5[\\x9a-\\x9f]|\\xd6[\\x89\\x8a]|\\xd6\\xbe|\\xd7\\x80|\\xd7\\x83|\\xd7\\x86|\\xd7[\\xb3\\xb4]|\\xd8[\\x89\\x8a]|\\xd8[\\x8c\\x8d]|\\xd8\\x9b|\\xd8[\\x9d-\\x9f]|\\xd9[\\xaa-\\xad]|\\xdb\\x94|\\xdc[\\x80-\\x8d]|\\xdf[\\xb7-\\xb9]|\\xe0\\xa0[\\xb0-\\xbe]|\\xe0\\xa1\\x9e|\\xe0\\xa5[\\xa4\\xa5]|\\xe0\\xa5\\xb0|\\xe0\\xa7\\xbd|\\xe0\\xa9\\xb6|\\xe0\\xab\\xb0|\\xe0\\xb1\\xb7|\\xe0\\xb2\\x84|\\xe0\\xb7\\xb4|\\xe0\\xb9\\x8f|\\xe0\\xb9[\\x9a\\x9b]|\\xe0\\xbc[\\x84-\\x92]|\\xe0\\xbc\\x94|\\xe0\\xbc[\\xba-\\xbd]|\\xe0\\xbe\\x85|\\xe0\\xbf[\\x90-\\x94]|\\xe0\\xbf[\\x99\\x9a]|\\xe1\\x81[\\x8a-\\x8f]|\\xe1\\x83\\xbb|\\xe1\\x8d[\\xa0-\\xa8]|\\xe1\\x90\\x80|\\xe1\\x99\\xae|\\xe1\\x9a[\\x9b\\x9c]|\\xe1\\x9b[\\xab-\\xad]|\\xe1\\x9c[\\xb5\\xb6]|\\xe1\\x9f[\\x94-\\x96]|\\xe1\\x9f[\\x98-\\x9a]|\\xe1\\xa0[\\x80-\\x8a]|\\xe1\\xa5[\\x84\\x85]|\\xe1\\xa8[\\x9e\\x9f]|\\xe1\\xaa[\\xa0-\\xa6]|\\xe1\\xaa[\\xa8-\\xad]|\\xe1\\xad[\\x9a-\\xa0]|\\xe1\\xad[\\xbd\\xbe]|\\xe1\\xaf[\\xbc-\\xbf]|\\xe1\\xb0[\\xbb-\\xbf]|\\xe1\\xb1[\\xbe\\xbf]|\\xe1\\xb3[\\x80-\\x87]|\\xe1\\xb3\\x93|\\xe2\\x80[\\x90-\\xa7]|\\xe2(?:\\x80[\\xb0-\\xbf]|\\x81[\\x80-\\x83])|\\xe2\\x81[\\x85-\\x91]|\\xe2\\x81[\\x93-\\x9e]|\\xe2\\x81[\\xbd\\xbe]|\\xe2\\x82[\\x8d\\x8e]|\\xe2\\x8c[\\x88-\\x8b]|\\xe2\\x8c[\\xa9\\xaa]|\\xe2\\x9d[\\xa8-\\xb5]|\\xe2\\x9f[\\x85\\x86]|\\xe2\\x9f[\\xa6-\\xaf]|\\xe2\\xa6[\\x83-\\x98]|\\xe2\\xa7[\\x98-\\x9b]|\\xe2\\xa7[\\xbc\\xbd]|\\xe2\\xb3[\\xb9-\\xbc]|\\xe2\\xb3[\\xbe\\xbf]|\\xe2\\xb5\\xb0|\\xe2\\xb8[\\x80-\\xae]|\\xe2(?:\\xb8[\\xb0-\\xbf]|\\xb9[\\x80-\\x8f])|\\xe2\\xb9[\\x92-\\x9d]|\\xe3\\x80[\\x81-\\x83]|\\xe3\\x80[\\x88-\\x91]|\\xe3\\x80[\\x94-\\x9f]|\\xe3\\x80\\xb0|\\xe3\\x80\\xbd|\\xe3\\x82\\xa0|\\xe3\\x83\\xbb|\\xea\\x93[\\xbe\\xbf]|\\xea\\x98[\\x8d-\\x8f]|\\xea\\x99\\xb3|\\xea\\x99\\xbe|\\xea\\x9b[\\xb2-\\xb7]|\\xea\\xa1[\\xb4-\\xb7]|\\xea\\xa3[\\x8e\\x8f]|\\xea\\xa3[\\xb8-\\xba]|\\xea\\xa3\\xbc|\\xea\\xa4[\\xae\\xaf]|\\xea\\xa5\\x9f|\\xea\\xa7[\\x81-\\x8d]|\\xea\\xa7[\\x9e\\x9f]|\\xea\\xa9[\\x9c-\\x9f]|\\xea\\xab[\\x9e\\x9f]|\\xea\\xab[\\xb0\\xb1]|\\xea\\xaf\\xab|\\xef\\xb4[\\xbe\\xbf]|\\xef\\xb8[\\x90-\\x99]|\\xef(?:\\xb8[\\xb0-\\xbf]|\\xb9[\\x80-\\x92])|\\xef\\xb9[\\x94-\\xa1]|\\xef\\xb9\\xa3|\\xef\\xb9\\xa8|\\xef\\xb9[\\xaa\\xab]|\\xef\\xbc[\\x81-\\x83]|\\xef\\xbc[\\x85-\\x8a]|\\xef\\xbc[\\x8c-\\x8f]|\\xef\\xbc[\\x9a\\x9b]|\\xef\\xbc[\\x9f\\xa0]|\\xef\\xbc[\\xbb-\\xbd]|\\xef\\xbc\\xbf|\\xef\\xbd\\x9b|\\xef\\xbd\\x9d|\\xef\\xbd[\\x9f-\\xa5]|\\xf0\\x90\\x84[\\x80-\\x82]|\\xf0\\x90\\x8e\\x9f|\\xf0\\x90\\x8f\\x90|\\xf0\\x90\\x95\\xaf|\\xf0\\x90\\xa1\\x97|\\xf0\\x90\\xa4\\x9f|\\xf0\\x90\\xa4\\xbf|\\xf0\\x90\\xa9[\\x90-\\x98]|\\xf0\\x90\\xa9\\xbf|\\xf0\\x90\\xab[\\xb0-\\xb6]|\\xf0\\x90\\xac[\\xb9-\\xbf]|\\xf0\\x90\\xae[\\x99-\\x9c]|\\xf0\\x90\\xba\\xad|\\xf0\\x90\\xbd[\\x95-\\x99]|\\xf0\\x90\\xbe[\\x86-\\x89]|\\xf0\\x91\\x81[\\x87-\\x8d]|\\xf0\\x91\\x82[\\xbb\\xbc]|\\xf0\\x91(?:\\x82[\\xbe\\xbf]|\\x83[\\x80\\x81])|\\xf0\\x91\\x85[\\x80-\\x83]|\\xf0\\x91\\x85[\\xb4\\xb5]|\\xf0\\x91\\x87[\\x85-\\x88]|\\xf0\\x91\\x87\\x8d|\\xf0\\x91\\x87\\x9b|\\xf0\\x91\\x87[\\x9d-\\x9f]|\\xf0\\x91\\x88[\\xb8-\\xbd]|\\xf0\\x91\\x8a\\xa9|\\xf0\\x91\\x91[\\x8b-\\x8f]|\\xf0\\x91\\x91[\\x9a\\x9b]|\\xf0\\x91\\x91\\x9d|\\xf0\\x91\\x93\\x86|\\xf0\\x91\\x97[\\x81-\\x97]|\\xf0\\x91\\x99[\\x81-\\x83]|\\xf0\\x91\\x99[\\xa0-\\xac]|\\xf0\\x91\\x9a\\xb9|\\xf0\\x91\\x9c[\\xbc-\\xbe]|\\xf0\\x91\\xa0\\xbb|\\xf0\\x91\\xa5[\\x84-\\x86]|\\xf0\\x91\\xa7\\xa2|\\xf0\\x91(?:\\xa8\\xbf|\\xa9[\\x80-\\x86])|\\xf0\\x91\\xaa[\\x9a-\\x9c]|\\xf0\\x91\\xaa[\\x9e-\\xa2]|\\xf0\\x91\\xac[\\x80-\\x89]|\\xf0\\x91\\xb1[\\x81-\\x85]|\\xf0\\x91\\xb1[\\xb0\\xb1]|\\xf0\\x91\\xbb[\\xb7\\xb8]|\\xf0\\x91\\xbd[\\x83-\\x8f]|\\xf0\\x91\\xbf\\xbf|\\xf0\\x92\\x91[\\xb0-\\xb4]|\\xf0\\x92\\xbf[\\xb1\\xb2]|\\xf0\\x96\\xa9[\\xae\\xaf]|\\xf0\\x96\\xab\\xb5|\\xf0\\x96\\xac[\\xb7-\\xbb]|\\xf0\\x96\\xad\\x84|\\xf0\\x96\\xba[\\x97-\\x9a]|\\xf0\\x96\\xbf\\xa2|\\xf0\\x9b\\xb2\\x9f|\\xf0\\x9d\\xaa[\\x87-\\x8b]|\\xf0\\x9e\\xa5[\\x9e\\x9f])+", - //'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S) - "'s|'t|'re|'ve|'m|'ll|'d| ?(?:[A-Z]|[a-z]|\\xc2\\xaa|\\xc2\\xb5|\\xc2\\xba|\\xc3[\\x80-\\x96]|\\xc3[\\x98-\\xb6]|\\xc3[\\xb8-\\xbf]|[\\xc4-\\xca][\\x80-\\xbf]|\\xcb[\\x80\\x81]|\\xcb[\\x86-\\x91]|\\xcb[\\xa0-\\xa4]|\\xcb\\xac|\\xcb\\xae|\\xcd[\\xb0-\\xb4]|\\xcd[\\xb6\\xb7]|\\xcd[\\xba-\\xbd]|\\xcd\\xbf|\\xce\\x86|\\xce[\\x88-\\x8a]|\\xce\\x8c|\\xce[\\x8e-\\xa1]|\\xce[\\xa3-\\xbf]|\\xcf[\\x80-\\xb5]|\\xcf[\\xb7-\\xbf]|[\\xd0\\xd1][\\x80-\\xbf]|\\xd2[\\x80\\x81]|\\xd2[\\x8a-\\xbf]|\\xd3[\\x80-\\xbf]|\\xd4[\\x80-\\xaf]|\\xd4[\\xb1-\\xbf]|\\xd5[\\x80-\\x96]|\\xd5\\x99|\\xd5[\\xa0-\\xbf]|\\xd6[\\x80-\\x88]|\\xd7[\\x90-\\xaa]|\\xd7[\\xaf-\\xb2]|\\xd8[\\xa0-\\xbf]|\\xd9[\\x80-\\x8a]|\\xd9[\\xae\\xaf]|\\xd9[\\xb1-\\xbf]|\\xda[\\x80-\\xbf]|\\xdb[\\x80-\\x93]|\\xdb\\x95|\\xdb[\\xa5\\xa6]|\\xdb[\\xae\\xaf]|\\xdb[\\xba-\\xbc]|\\xdb\\xbf|\\xdc\\x90|\\xdc[\\x92-\\xaf]|\\xdd[\\x8d-\\xbf]|\\xde[\\x80-\\xa5]|\\xde\\xb1|\\xdf[\\x8a-\\xaa]|\\xdf[\\xb4\\xb5]|\\xdf\\xba|\\xe0\\xa0[\\x80-\\x95]|\\xe0\\xa0\\x9a|\\xe0\\xa0\\xa4|\\xe0\\xa0\\xa8|\\xe0\\xa1[\\x80-\\x98]|\\xe0\\xa1[\\xa0-\\xaa]|\\xe0(?:\\xa1[\\xb0-\\xbf]|\\xa2[\\x80-\\x87])|\\xe0\\xa2[\\x89-\\x8e]|\\xe0(?:\\xa2[\\xa0-\\xbf]|\\xa3[\\x80-\\x89])|\\xe0\\xa4[\\x84-\\xb9]|\\xe0\\xa4\\xbd|\\xe0\\xa5\\x90|\\xe0\\xa5[\\x98-\\xa1]|\\xe0(?:\\xa5[\\xb1-\\xbf]|\\xa6\\x80)|\\xe0\\xa6[\\x85-\\x8c]|\\xe0\\xa6[\\x8f\\x90]|\\xe0\\xa6[\\x93-\\xa8]|\\xe0\\xa6[\\xaa-\\xb0]|\\xe0\\xa6\\xb2|\\xe0\\xa6[\\xb6-\\xb9]|\\xe0\\xa6\\xbd|\\xe0\\xa7\\x8e|\\xe0\\xa7[\\x9c\\x9d]|\\xe0\\xa7[\\x9f-\\xa1]|\\xe0\\xa7[\\xb0\\xb1]|\\xe0\\xa7\\xbc|\\xe0\\xa8[\\x85-\\x8a]|\\xe0\\xa8[\\x8f\\x90]|\\xe0\\xa8[\\x93-\\xa8]|\\xe0\\xa8[\\xaa-\\xb0]|\\xe0\\xa8[\\xb2\\xb3]|\\xe0\\xa8[\\xb5\\xb6]|\\xe0\\xa8[\\xb8\\xb9]|\\xe0\\xa9[\\x99-\\x9c]|\\xe0\\xa9\\x9e|\\xe0\\xa9[\\xb2-\\xb4]|\\xe0\\xaa[\\x85-\\x8d]|\\xe0\\xaa[\\x8f-\\x91]|\\xe0\\xaa[\\x93-\\xa8]|\\xe0\\xaa[\\xaa-\\xb0]|\\xe0\\xaa[\\xb2\\xb3]|\\xe0\\xaa[\\xb5-\\xb9]|\\xe0\\xaa\\xbd|\\xe0\\xab\\x90|\\xe0\\xab[\\xa0\\xa1]|\\xe0\\xab\\xb9|\\xe0\\xac[\\x85-\\x8c]|\\xe0\\xac[\\x8f\\x90]|\\xe0\\xac[\\x93-\\xa8]|\\xe0\\xac[\\xaa-\\xb0]|\\xe0\\xac[\\xb2\\xb3]|\\xe0\\xac[\\xb5-\\xb9]|\\xe0\\xac\\xbd|\\xe0\\xad[\\x9c\\x9d]|\\xe0\\xad[\\x9f-\\xa1]|\\xe0\\xad\\xb1|\\xe0\\xae\\x83|\\xe0\\xae[\\x85-\\x8a]|\\xe0\\xae[\\x8e-\\x90]|\\xe0\\xae[\\x92-\\x95]|\\xe0\\xae[\\x99\\x9a]|\\xe0\\xae\\x9c|\\xe0\\xae[\\x9e\\x9f]|\\xe0\\xae[\\xa3\\xa4]|\\xe0\\xae[\\xa8-\\xaa]|\\xe0\\xae[\\xae-\\xb9]|\\xe0\\xaf\\x90|\\xe0\\xb0[\\x85-\\x8c]|\\xe0\\xb0[\\x8e-\\x90]|\\xe0\\xb0[\\x92-\\xa8]|\\xe0\\xb0[\\xaa-\\xb9]|\\xe0\\xb0\\xbd|\\xe0\\xb1[\\x98-\\x9a]|\\xe0\\xb1\\x9d|\\xe0\\xb1[\\xa0\\xa1]|\\xe0\\xb2\\x80|\\xe0\\xb2[\\x85-\\x8c]|\\xe0\\xb2[\\x8e-\\x90]|\\xe0\\xb2[\\x92-\\xa8]|\\xe0\\xb2[\\xaa-\\xb3]|\\xe0\\xb2[\\xb5-\\xb9]|\\xe0\\xb2\\xbd|\\xe0\\xb3[\\x9d\\x9e]|\\xe0\\xb3[\\xa0\\xa1]|\\xe0\\xb3[\\xb1\\xb2]|\\xe0\\xb4[\\x84-\\x8c]|\\xe0\\xb4[\\x8e-\\x90]|\\xe0\\xb4[\\x92-\\xba]|\\xe0\\xb4\\xbd|\\xe0\\xb5\\x8e|\\xe0\\xb5[\\x94-\\x96]|\\xe0\\xb5[\\x9f-\\xa1]|\\xe0\\xb5[\\xba-\\xbf]|\\xe0\\xb6[\\x85-\\x96]|\\xe0\\xb6[\\x9a-\\xb1]|\\xe0\\xb6[\\xb3-\\xbb]|\\xe0\\xb6\\xbd|\\xe0\\xb7[\\x80-\\x86]|\\xe0\\xb8[\\x81-\\xb0]|\\xe0\\xb8[\\xb2\\xb3]|\\xe0\\xb9[\\x80-\\x86]|\\xe0\\xba[\\x81\\x82]|\\xe0\\xba\\x84|\\xe0\\xba[\\x86-\\x8a]|\\xe0\\xba[\\x8c-\\xa3]|\\xe0\\xba\\xa5|\\xe0\\xba[\\xa7-\\xb0]|\\xe0\\xba[\\xb2\\xb3]|\\xe0\\xba\\xbd|\\xe0\\xbb[\\x80-\\x84]|\\xe0\\xbb\\x86|\\xe0\\xbb[\\x9c-\\x9f]|\\xe0\\xbc\\x80|\\xe0\\xbd[\\x80-\\x87]|\\xe0\\xbd[\\x89-\\xac]|\\xe0\\xbe[\\x88-\\x8c]|\\xe1\\x80[\\x80-\\xaa]|\\xe1\\x80\\xbf|\\xe1\\x81[\\x90-\\x95]|\\xe1\\x81[\\x9a-\\x9d]|\\xe1\\x81\\xa1|\\xe1\\x81[\\xa5\\xa6]|\\xe1\\x81[\\xae-\\xb0]|\\xe1(?:\\x81[\\xb5-\\xbf]|\\x82[\\x80\\x81])|\\xe1\\x82\\x8e|\\xe1(?:\\x82[\\xa0-\\xbf]|\\x83[\\x80-\\x85])|\\xe1\\x83\\x87|\\xe1\\x83\\x8d|\\xe1\\x83[\\x90-\\xba]|\\xe1(?:\\x83[\\xbc-\\xbf]|[\\x84-\\x88][\\x80-\\xbf]|\\x89[\\x80-\\x88])|\\xe1\\x89[\\x8a-\\x8d]|\\xe1\\x89[\\x90-\\x96]|\\xe1\\x89\\x98|\\xe1\\x89[\\x9a-\\x9d]|\\xe1(?:\\x89[\\xa0-\\xbf]|\\x8a[\\x80-\\x88])|\\xe1\\x8a[\\x8a-\\x8d]|\\xe1\\x8a[\\x90-\\xb0]|\\xe1\\x8a[\\xb2-\\xb5]|\\xe1\\x8a[\\xb8-\\xbe]|\\xe1\\x8b\\x80|\\xe1\\x8b[\\x82-\\x85]|\\xe1\\x8b[\\x88-\\x96]|\\xe1(?:\\x8b[\\x98-\\xbf]|\\x8c[\\x80-\\x90])|\\xe1\\x8c[\\x92-\\x95]|\\xe1(?:\\x8c[\\x98-\\xbf]|\\x8d[\\x80-\\x9a])|\\xe1\\x8e[\\x80-\\x8f]|\\xe1(?:\\x8e[\\xa0-\\xbf]|\\x8f[\\x80-\\xb5])|\\xe1\\x8f[\\xb8-\\xbd]|\\xe1(?:\\x90[\\x81-\\xbf]|[\\x91-\\x98][\\x80-\\xbf]|\\x99[\\x80-\\xac])|\\xe1\\x99[\\xaf-\\xbf]|\\xe1\\x9a[\\x81-\\x9a]|\\xe1(?:\\x9a[\\xa0-\\xbf]|\\x9b[\\x80-\\xaa])|\\xe1\\x9b[\\xb1-\\xb8]|\\xe1\\x9c[\\x80-\\x91]|\\xe1\\x9c[\\x9f-\\xb1]|\\xe1\\x9d[\\x80-\\x91]|\\xe1\\x9d[\\xa0-\\xac]|\\xe1\\x9d[\\xae-\\xb0]|\\xe1\\x9e[\\x80-\\xb3]|\\xe1\\x9f\\x97|\\xe1\\x9f\\x9c|\\xe1(?:\\xa0[\\xa0-\\xbf]|\\xa1[\\x80-\\xb8])|\\xe1\\xa2[\\x80-\\x84]|\\xe1\\xa2[\\x87-\\xa8]|\\xe1\\xa2\\xaa|\\xe1(?:\\xa2[\\xb0-\\xbf]|\\xa3[\\x80-\\xb5])|\\xe1\\xa4[\\x80-\\x9e]|\\xe1\\xa5[\\x90-\\xad]|\\xe1\\xa5[\\xb0-\\xb4]|\\xe1\\xa6[\\x80-\\xab]|\\xe1(?:\\xa6[\\xb0-\\xbf]|\\xa7[\\x80-\\x89])|\\xe1\\xa8[\\x80-\\x96]|\\xe1(?:\\xa8[\\xa0-\\xbf]|\\xa9[\\x80-\\x94])|\\xe1\\xaa\\xa7|\\xe1\\xac[\\x85-\\xb3]|\\xe1\\xad[\\x85-\\x8c]|\\xe1\\xae[\\x83-\\xa0]|\\xe1\\xae[\\xae\\xaf]|\\xe1(?:\\xae[\\xba-\\xbf]|\\xaf[\\x80-\\xa5])|\\xe1\\xb0[\\x80-\\xa3]|\\xe1\\xb1[\\x8d-\\x8f]|\\xe1\\xb1[\\x9a-\\xbd]|\\xe1\\xb2[\\x80-\\x88]|\\xe1\\xb2[\\x90-\\xba]|\\xe1\\xb2[\\xbd-\\xbf]|\\xe1\\xb3[\\xa9-\\xac]|\\xe1\\xb3[\\xae-\\xb3]|\\xe1\\xb3[\\xb5\\xb6]|\\xe1\\xb3\\xba|\\xe1(?:[\\xb4-\\xb6][\\x80-\\xbf])|\\xe1(?:[\\xb8-\\xbb][\\x80-\\xbf]|\\xbc[\\x80-\\x95])|\\xe1\\xbc[\\x98-\\x9d]|\\xe1(?:\\xbc[\\xa0-\\xbf]|\\xbd[\\x80-\\x85])|\\xe1\\xbd[\\x88-\\x8d]|\\xe1\\xbd[\\x90-\\x97]|\\xe1\\xbd\\x99|\\xe1\\xbd\\x9b|\\xe1\\xbd\\x9d|\\xe1\\xbd[\\x9f-\\xbd]|\\xe1\\xbe[\\x80-\\xb4]|\\xe1\\xbe[\\xb6-\\xbc]|\\xe1\\xbe\\xbe|\\xe1\\xbf[\\x82-\\x84]|\\xe1\\xbf[\\x86-\\x8c]|\\xe1\\xbf[\\x90-\\x93]|\\xe1\\xbf[\\x96-\\x9b]|\\xe1\\xbf[\\xa0-\\xac]|\\xe1\\xbf[\\xb2-\\xb4]|\\xe1\\xbf[\\xb6-\\xbc]|\\xe2\\x81\\xb1|\\xe2\\x81\\xbf|\\xe2\\x82[\\x90-\\x9c]|\\xe2\\x84\\x82|\\xe2\\x84\\x87|\\xe2\\x84[\\x8a-\\x93]|\\xe2\\x84\\x95|\\xe2\\x84[\\x99-\\x9d]|\\xe2\\x84\\xa4|\\xe2\\x84\\xa6|\\xe2\\x84\\xa8|\\xe2\\x84[\\xaa-\\xad]|\\xe2\\x84[\\xaf-\\xb9]|\\xe2\\x84[\\xbc-\\xbf]|\\xe2\\x85[\\x85-\\x89]|\\xe2\\x85\\x8e|\\xe2\\x86[\\x83\\x84]|\\xe2(?:[\\xb0-\\xb2][\\x80-\\xbf]|\\xb3[\\x80-\\xa4])|\\xe2\\xb3[\\xab-\\xae]|\\xe2\\xb3[\\xb2\\xb3]|\\xe2\\xb4[\\x80-\\xa5]|\\xe2\\xb4\\xa7|\\xe2\\xb4\\xad|\\xe2(?:\\xb4[\\xb0-\\xbf]|\\xb5[\\x80-\\xa7])|\\xe2\\xb5\\xaf|\\xe2\\xb6[\\x80-\\x96]|\\xe2\\xb6[\\xa0-\\xa6]|\\xe2\\xb6[\\xa8-\\xae]|\\xe2\\xb6[\\xb0-\\xb6]|\\xe2\\xb6[\\xb8-\\xbe]|\\xe2\\xb7[\\x80-\\x86]|\\xe2\\xb7[\\x88-\\x8e]|\\xe2\\xb7[\\x90-\\x96]|\\xe2\\xb7[\\x98-\\x9e]|\\xe2\\xb8\\xaf|\\xe3\\x80[\\x85\\x86]|\\xe3\\x80[\\xb1-\\xb5]|\\xe3\\x80[\\xbb\\xbc]|\\xe3(?:\\x81[\\x81-\\xbf]|\\x82[\\x80-\\x96])|\\xe3\\x82[\\x9d-\\x9f]|\\xe3(?:\\x82[\\xa1-\\xbf]|\\x83[\\x80-\\xba])|\\xe3\\x83[\\xbc-\\xbf]|\\xe3\\x84[\\x85-\\xaf]|\\xe3(?:\\x84[\\xb1-\\xbf]|\\x85[\\x80-\\xbf]|\\x86[\\x80-\\x8e])|\\xe3\\x86[\\xa0-\\xbf]|\\xe3\\x87[\\xb0-\\xbf]|\\xe3[\\x90-\\xbf][\\x80-\\xbf]|\\xe4[\\x80-\\xb6][\\x80-\\xbf]|\\xe4[\\xb8-\\xbf][\\x80-\\xbf]|[\\xe5-\\xe9][\\x80-\\xbf][\\x80-\\xbf]|\\xea(?:[\\x80-\\x91][\\x80-\\xbf]|\\x92[\\x80-\\x8c])|\\xea\\x93[\\x90-\\xbd]|\\xea(?:[\\x94-\\x97][\\x80-\\xbf]|\\x98[\\x80-\\x8c])|\\xea\\x98[\\x90-\\x9f]|\\xea\\x98[\\xaa\\xab]|\\xea\\x99[\\x80-\\xae]|\\xea(?:\\x99\\xbf|\\x9a[\\x80-\\x9d])|\\xea(?:\\x9a[\\xa0-\\xbf]|\\x9b[\\x80-\\xa5])|\\xea\\x9c[\\x97-\\x9f]|\\xea(?:\\x9c[\\xa2-\\xbf]|\\x9d[\\x80-\\xbf]|\\x9e[\\x80-\\x88])|\\xea(?:\\x9e[\\x8b-\\xbf]|\\x9f[\\x80-\\x8a])|\\xea\\x9f[\\x90\\x91]|\\xea\\x9f\\x93|\\xea\\x9f[\\x95-\\x99]|\\xea(?:\\x9f[\\xb2-\\xbf]|\\xa0[\\x80\\x81])|\\xea\\xa0[\\x83-\\x85]|\\xea\\xa0[\\x87-\\x8a]|\\xea\\xa0[\\x8c-\\xa2]|\\xea\\xa1[\\x80-\\xb3]|\\xea\\xa2[\\x82-\\xb3]|\\xea\\xa3[\\xb2-\\xb7]|\\xea\\xa3\\xbb|\\xea\\xa3[\\xbd\\xbe]|\\xea\\xa4[\\x8a-\\xa5]|\\xea(?:\\xa4[\\xb0-\\xbf]|\\xa5[\\x80-\\x86])|\\xea\\xa5[\\xa0-\\xbc]|\\xea\\xa6[\\x84-\\xb2]|\\xea\\xa7\\x8f|\\xea\\xa7[\\xa0-\\xa4]|\\xea\\xa7[\\xa6-\\xaf]|\\xea\\xa7[\\xba-\\xbe]|\\xea\\xa8[\\x80-\\xa8]|\\xea\\xa9[\\x80-\\x82]|\\xea\\xa9[\\x84-\\x8b]|\\xea\\xa9[\\xa0-\\xb6]|\\xea\\xa9\\xba|\\xea(?:\\xa9[\\xbe\\xbf]|\\xaa[\\x80-\\xaf])|\\xea\\xaa\\xb1|\\xea\\xaa[\\xb5\\xb6]|\\xea\\xaa[\\xb9-\\xbd]|\\xea\\xab\\x80|\\xea\\xab\\x82|\\xea\\xab[\\x9b-\\x9d]|\\xea\\xab[\\xa0-\\xaa]|\\xea\\xab[\\xb2-\\xb4]|\\xea\\xac[\\x81-\\x86]|\\xea\\xac[\\x89-\\x8e]|\\xea\\xac[\\x91-\\x96]|\\xea\\xac[\\xa0-\\xa6]|\\xea\\xac[\\xa8-\\xae]|\\xea(?:\\xac[\\xb0-\\xbf]|\\xad[\\x80-\\x9a])|\\xea\\xad[\\x9c-\\xa9]|\\xea(?:\\xad[\\xb0-\\xbf]|\\xae[\\x80-\\xbf]|\\xaf[\\x80-\\xa2])|\\xea[\\xb0-\\xbf][\\x80-\\xbf]|[\\xeb\\xec][\\x80-\\xbf][\\x80-\\xbf]|\\xed(?:[\\x80-\\x9d][\\x80-\\xbf]|\\x9e[\\x80-\\xa3])|\\xed(?:\\x9e[\\xb0-\\xbf]|\\x9f[\\x80-\\x86])|\\xed\\x9f[\\x8b-\\xbb]|\\xef(?:[\\xa4-\\xa8][\\x80-\\xbf]|\\xa9[\\x80-\\xad])|\\xef(?:\\xa9[\\xb0-\\xbf]|\\xaa[\\x80-\\xbf]|\\xab[\\x80-\\x99])|\\xef\\xac[\\x80-\\x86]|\\xef\\xac[\\x93-\\x97]|\\xef\\xac\\x9d|\\xef\\xac[\\x9f-\\xa8]|\\xef\\xac[\\xaa-\\xb6]|\\xef\\xac[\\xb8-\\xbc]|\\xef\\xac\\xbe|\\xef\\xad[\\x80\\x81]|\\xef\\xad[\\x83\\x84]|\\xef(?:\\xad[\\x86-\\xbf]|\\xae[\\x80-\\xb1])|\\xef(?:\\xaf[\\x93-\\xbf]|[\\xb0-\\xb3][\\x80-\\xbf]|\\xb4[\\x80-\\xbd])|\\xef(?:\\xb5[\\x90-\\xbf]|\\xb6[\\x80-\\x8f])|\\xef(?:\\xb6[\\x92-\\xbf]|\\xb7[\\x80-\\x87])|\\xef\\xb7[\\xb0-\\xbb]|\\xef\\xb9[\\xb0-\\xb4]|\\xef(?:\\xb9[\\xb6-\\xbf]|\\xba[\\x80-\\xbf]|\\xbb[\\x80-\\xbc])|\\xef\\xbc[\\xa1-\\xba]|\\xef\\xbd[\\x81-\\x9a]|\\xef(?:\\xbd[\\xa6-\\xbf]|\\xbe[\\x80-\\xbe])|\\xef\\xbf[\\x82-\\x87]|\\xef\\xbf[\\x8a-\\x8f]|\\xef\\xbf[\\x92-\\x97]|\\xef\\xbf[\\x9a-\\x9c]|\\xf0\\x90\\x80[\\x80-\\x8b]|\\xf0\\x90\\x80[\\x8d-\\xa6]|\\xf0\\x90\\x80[\\xa8-\\xba]|\\xf0\\x90\\x80[\\xbc\\xbd]|\\xf0\\x90(?:\\x80\\xbf|\\x81[\\x80-\\x8d])|\\xf0\\x90\\x81[\\x90-\\x9d]|\\xf0\\x90(?:\\x82[\\x80-\\xbf]|\\x83[\\x80-\\xba])|\\xf0\\x90\\x8a[\\x80-\\x9c]|\\xf0\\x90(?:\\x8a[\\xa0-\\xbf]|\\x8b[\\x80-\\x90])|\\xf0\\x90\\x8c[\\x80-\\x9f]|\\xf0\\x90(?:\\x8c[\\xad-\\xbf]|\\x8d\\x80)|\\xf0\\x90\\x8d[\\x82-\\x89]|\\xf0\\x90\\x8d[\\x90-\\xb5]|\\xf0\\x90\\x8e[\\x80-\\x9d]|\\xf0\\x90(?:\\x8e[\\xa0-\\xbf]|\\x8f[\\x80-\\x83])|\\xf0\\x90\\x8f[\\x88-\\x8f]|\\xf0\\x90(?:[\\x90\\x91][\\x80-\\xbf]|\\x92[\\x80-\\x9d])|\\xf0\\x90(?:\\x92[\\xb0-\\xbf]|\\x93[\\x80-\\x93])|\\xf0\\x90\\x93[\\x98-\\xbb]|\\xf0\\x90\\x94[\\x80-\\xa7]|\\xf0\\x90(?:\\x94[\\xb0-\\xbf]|\\x95[\\x80-\\xa3])|\\xf0\\x90\\x95[\\xb0-\\xba]|\\xf0\\x90(?:\\x95[\\xbc-\\xbf]|\\x96[\\x80-\\x8a])|\\xf0\\x90\\x96[\\x8c-\\x92]|\\xf0\\x90\\x96[\\x94\\x95]|\\xf0\\x90\\x96[\\x97-\\xa1]|\\xf0\\x90\\x96[\\xa3-\\xb1]|\\xf0\\x90\\x96[\\xb3-\\xb9]|\\xf0\\x90\\x96[\\xbb\\xbc]|\\xf0\\x90(?:[\\x98-\\x9b][\\x80-\\xbf]|\\x9c[\\x80-\\xb6])|\\xf0\\x90\\x9d[\\x80-\\x95]|\\xf0\\x90\\x9d[\\xa0-\\xa7]|\\xf0\\x90\\x9e[\\x80-\\x85]|\\xf0\\x90\\x9e[\\x87-\\xb0]|\\xf0\\x90\\x9e[\\xb2-\\xba]|\\xf0\\x90\\xa0[\\x80-\\x85]|\\xf0\\x90\\xa0\\x88|\\xf0\\x90\\xa0[\\x8a-\\xb5]|\\xf0\\x90\\xa0[\\xb7\\xb8]|\\xf0\\x90\\xa0\\xbc|\\xf0\\x90(?:\\xa0\\xbf|\\xa1[\\x80-\\x95])|\\xf0\\x90\\xa1[\\xa0-\\xb6]|\\xf0\\x90\\xa2[\\x80-\\x9e]|\\xf0\\x90\\xa3[\\xa0-\\xb2]|\\xf0\\x90\\xa3[\\xb4\\xb5]|\\xf0\\x90\\xa4[\\x80-\\x95]|\\xf0\\x90\\xa4[\\xa0-\\xb9]|\\xf0\\x90\\xa6[\\x80-\\xb7]|\\xf0\\x90\\xa6[\\xbe\\xbf]|\\xf0\\x90\\xa8\\x80|\\xf0\\x90\\xa8[\\x90-\\x93]|\\xf0\\x90\\xa8[\\x95-\\x97]|\\xf0\\x90\\xa8[\\x99-\\xb5]|\\xf0\\x90\\xa9[\\xa0-\\xbc]|\\xf0\\x90\\xaa[\\x80-\\x9c]|\\xf0\\x90\\xab[\\x80-\\x87]|\\xf0\\x90\\xab[\\x89-\\xa4]|\\xf0\\x90\\xac[\\x80-\\xb5]|\\xf0\\x90\\xad[\\x80-\\x95]|\\xf0\\x90\\xad[\\xa0-\\xb2]|\\xf0\\x90\\xae[\\x80-\\x91]|\\xf0\\x90(?:\\xb0[\\x80-\\xbf]|\\xb1[\\x80-\\x88])|\\xf0\\x90\\xb2[\\x80-\\xb2]|\\xf0\\x90\\xb3[\\x80-\\xb2]|\\xf0\\x90\\xb4[\\x80-\\xa3]|\\xf0\\x90\\xba[\\x80-\\xa9]|\\xf0\\x90\\xba[\\xb0\\xb1]|\\xf0\\x90\\xbc[\\x80-\\x9c]|\\xf0\\x90\\xbc\\xa7|\\xf0\\x90(?:\\xbc[\\xb0-\\xbf]|\\xbd[\\x80-\\x85])|\\xf0\\x90(?:\\xbd[\\xb0-\\xbf]|\\xbe[\\x80\\x81])|\\xf0\\x90(?:\\xbe[\\xb0-\\xbf]|\\xbf[\\x80-\\x84])|\\xf0\\x90\\xbf[\\xa0-\\xb6]|\\xf0\\x91\\x80[\\x83-\\xb7]|\\xf0\\x91\\x81[\\xb1\\xb2]|\\xf0\\x91\\x81\\xb5|\\xf0\\x91\\x82[\\x83-\\xaf]|\\xf0\\x91\\x83[\\x90-\\xa8]|\\xf0\\x91\\x84[\\x83-\\xa6]|\\xf0\\x91\\x85\\x84|\\xf0\\x91\\x85\\x87|\\xf0\\x91\\x85[\\x90-\\xb2]|\\xf0\\x91\\x85\\xb6|\\xf0\\x91\\x86[\\x83-\\xb2]|\\xf0\\x91\\x87[\\x81-\\x84]|\\xf0\\x91\\x87\\x9a|\\xf0\\x91\\x87\\x9c|\\xf0\\x91\\x88[\\x80-\\x91]|\\xf0\\x91\\x88[\\x93-\\xab]|\\xf0\\x91(?:\\x88\\xbf|\\x89\\x80)|\\xf0\\x91\\x8a[\\x80-\\x86]|\\xf0\\x91\\x8a\\x88|\\xf0\\x91\\x8a[\\x8a-\\x8d]|\\xf0\\x91\\x8a[\\x8f-\\x9d]|\\xf0\\x91\\x8a[\\x9f-\\xa8]|\\xf0\\x91(?:\\x8a[\\xb0-\\xbf]|\\x8b[\\x80-\\x9e])|\\xf0\\x91\\x8c[\\x85-\\x8c]|\\xf0\\x91\\x8c[\\x8f\\x90]|\\xf0\\x91\\x8c[\\x93-\\xa8]|\\xf0\\x91\\x8c[\\xaa-\\xb0]|\\xf0\\x91\\x8c[\\xb2\\xb3]|\\xf0\\x91\\x8c[\\xb5-\\xb9]|\\xf0\\x91\\x8c\\xbd|\\xf0\\x91\\x8d\\x90|\\xf0\\x91\\x8d[\\x9d-\\xa1]|\\xf0\\x91\\x90[\\x80-\\xb4]|\\xf0\\x91\\x91[\\x87-\\x8a]|\\xf0\\x91\\x91[\\x9f-\\xa1]|\\xf0\\x91\\x92[\\x80-\\xaf]|\\xf0\\x91\\x93[\\x84\\x85]|\\xf0\\x91\\x93\\x87|\\xf0\\x91\\x96[\\x80-\\xae]|\\xf0\\x91\\x97[\\x98-\\x9b]|\\xf0\\x91\\x98[\\x80-\\xaf]|\\xf0\\x91\\x99\\x84|\\xf0\\x91\\x9a[\\x80-\\xaa]|\\xf0\\x91\\x9a\\xb8|\\xf0\\x91\\x9c[\\x80-\\x9a]|\\xf0\\x91\\x9d[\\x80-\\x86]|\\xf0\\x91\\xa0[\\x80-\\xab]|\\xf0\\x91(?:\\xa2[\\xa0-\\xbf]|\\xa3[\\x80-\\x9f])|\\xf0\\x91(?:\\xa3\\xbf|\\xa4[\\x80-\\x86])|\\xf0\\x91\\xa4\\x89|\\xf0\\x91\\xa4[\\x8c-\\x93]|\\xf0\\x91\\xa4[\\x95\\x96]|\\xf0\\x91\\xa4[\\x98-\\xaf]|\\xf0\\x91\\xa4\\xbf|\\xf0\\x91\\xa5\\x81|\\xf0\\x91\\xa6[\\xa0-\\xa7]|\\xf0\\x91(?:\\xa6[\\xaa-\\xbf]|\\xa7[\\x80-\\x90])|\\xf0\\x91\\xa7\\xa1|\\xf0\\x91\\xa7\\xa3|\\xf0\\x91\\xa8\\x80|\\xf0\\x91\\xa8[\\x8b-\\xb2]|\\xf0\\x91\\xa8\\xba|\\xf0\\x91\\xa9\\x90|\\xf0\\x91(?:\\xa9[\\x9c-\\xbf]|\\xaa[\\x80-\\x89])|\\xf0\\x91\\xaa\\x9d|\\xf0\\x91(?:\\xaa[\\xb0-\\xbf]|\\xab[\\x80-\\xb8])|\\xf0\\x91\\xb0[\\x80-\\x88]|\\xf0\\x91\\xb0[\\x8a-\\xae]|\\xf0\\x91\\xb1\\x80|\\xf0\\x91(?:\\xb1[\\xb2-\\xbf]|\\xb2[\\x80-\\x8f])|\\xf0\\x91\\xb4[\\x80-\\x86]|\\xf0\\x91\\xb4[\\x88\\x89]|\\xf0\\x91\\xb4[\\x8b-\\xb0]|\\xf0\\x91\\xb5\\x86|\\xf0\\x91\\xb5[\\xa0-\\xa5]|\\xf0\\x91\\xb5[\\xa7\\xa8]|\\xf0\\x91(?:\\xb5[\\xaa-\\xbf]|\\xb6[\\x80-\\x89])|\\xf0\\x91\\xb6\\x98|\\xf0\\x91\\xbb[\\xa0-\\xb2]|\\xf0\\x91\\xbc\\x82|\\xf0\\x91\\xbc[\\x84-\\x90]|\\xf0\\x91\\xbc[\\x92-\\xb3]|\\xf0\\x91\\xbe\\xb0|\\xf0\\x92(?:[\\x80-\\x8d][\\x80-\\xbf]|\\x8e[\\x80-\\x99])|\\xf0\\x92(?:[\\x92-\\x94][\\x80-\\xbf]|\\x95[\\x80-\\x83])|\\xf0\\x92(?:\\xbe[\\x90-\\xbf]|\\xbf[\\x80-\\xb0])|\\xf0\\x93(?:[\\x80-\\x8f][\\x80-\\xbf]|\\x90[\\x80-\\xaf])|\\xf0\\x93\\x91[\\x81-\\x86]|\\xf0\\x94(?:[\\x90-\\x98][\\x80-\\xbf]|\\x99[\\x80-\\x86])|\\xf0\\x96(?:[\\xa0-\\xa7][\\x80-\\xbf]|\\xa8[\\x80-\\xb8])|\\xf0\\x96\\xa9[\\x80-\\x9e]|\\xf0\\x96(?:\\xa9[\\xb0-\\xbf]|\\xaa[\\x80-\\xbe])|\\xf0\\x96\\xab[\\x90-\\xad]|\\xf0\\x96\\xac[\\x80-\\xaf]|\\xf0\\x96\\xad[\\x80-\\x83]|\\xf0\\x96\\xad[\\xa3-\\xb7]|\\xf0\\x96(?:\\xad[\\xbd-\\xbf]|\\xae[\\x80-\\x8f])|\\xf0\\x96\\xb9[\\x80-\\xbf]|\\xf0\\x96(?:\\xbc[\\x80-\\xbf]|\\xbd[\\x80-\\x8a])|\\xf0\\x96\\xbd\\x90|\\xf0\\x96\\xbe[\\x93-\\x9f]|\\xf0\\x96\\xbf[\\xa0\\xa1]|\\xf0\\x96\\xbf\\xa3|\\xf0(?:\\x97[\\x80-\\xbf][\\x80-\\xbf]|\\x98(?:[\\x80-\\x9e][\\x80-\\xbf]|\\x9f[\\x80-\\xb7]))|\\xf0\\x98(?:[\\xa0-\\xb2][\\x80-\\xbf]|\\xb3[\\x80-\\x95])|\\xf0\\x98\\xb4[\\x80-\\x88]|\\xf0\\x9a\\xbf[\\xb0-\\xb3]|\\xf0\\x9a\\xbf[\\xb5-\\xbb]|\\xf0\\x9a\\xbf[\\xbd\\xbe]|\\xf0\\x9b(?:[\\x80-\\x83][\\x80-\\xbf]|\\x84[\\x80-\\xa2])|\\xf0\\x9b\\x84\\xb2|\\xf0\\x9b\\x85[\\x90-\\x92]|\\xf0\\x9b\\x85\\x95|\\xf0\\x9b\\x85[\\xa4-\\xa7]|\\xf0\\x9b(?:\\x85[\\xb0-\\xbf]|[\\x86-\\x8a][\\x80-\\xbf]|\\x8b[\\x80-\\xbb])|\\xf0\\x9b(?:\\xb0[\\x80-\\xbf]|\\xb1[\\x80-\\xaa])|\\xf0\\x9b\\xb1[\\xb0-\\xbc]|\\xf0\\x9b\\xb2[\\x80-\\x88]|\\xf0\\x9b\\xb2[\\x90-\\x99]|\\xf0\\x9d(?:\\x90[\\x80-\\xbf]|\\x91[\\x80-\\x94])|\\xf0\\x9d(?:\\x91[\\x96-\\xbf]|\\x92[\\x80-\\x9c])|\\xf0\\x9d\\x92[\\x9e\\x9f]|\\xf0\\x9d\\x92\\xa2|\\xf0\\x9d\\x92[\\xa5\\xa6]|\\xf0\\x9d\\x92[\\xa9-\\xac]|\\xf0\\x9d\\x92[\\xae-\\xb9]|\\xf0\\x9d\\x92\\xbb|\\xf0\\x9d(?:\\x92[\\xbd-\\xbf]|\\x93[\\x80-\\x83])|\\xf0\\x9d(?:\\x93[\\x85-\\xbf]|\\x94[\\x80-\\x85])|\\xf0\\x9d\\x94[\\x87-\\x8a]|\\xf0\\x9d\\x94[\\x8d-\\x94]|\\xf0\\x9d\\x94[\\x96-\\x9c]|\\xf0\\x9d\\x94[\\x9e-\\xb9]|\\xf0\\x9d\\x94[\\xbb-\\xbe]|\\xf0\\x9d\\x95[\\x80-\\x84]|\\xf0\\x9d\\x95\\x86|\\xf0\\x9d\\x95[\\x8a-\\x90]|\\xf0\\x9d(?:\\x95[\\x92-\\xbf]|[\\x96-\\x99][\\x80-\\xbf]|\\x9a[\\x80-\\xa5])|\\xf0\\x9d(?:\\x9a[\\xa8-\\xbf]|\\x9b\\x80)|\\xf0\\x9d\\x9b[\\x82-\\x9a]|\\xf0\\x9d\\x9b[\\x9c-\\xba]|\\xf0\\x9d(?:\\x9b[\\xbc-\\xbf]|\\x9c[\\x80-\\x94])|\\xf0\\x9d\\x9c[\\x96-\\xb4]|\\xf0\\x9d(?:\\x9c[\\xb6-\\xbf]|\\x9d[\\x80-\\x8e])|\\xf0\\x9d\\x9d[\\x90-\\xae]|\\xf0\\x9d(?:\\x9d[\\xb0-\\xbf]|\\x9e[\\x80-\\x88])|\\xf0\\x9d\\x9e[\\x8a-\\xa8]|\\xf0\\x9d(?:\\x9e[\\xaa-\\xbf]|\\x9f[\\x80-\\x82])|\\xf0\\x9d\\x9f[\\x84-\\x8b]|\\xf0\\x9d\\xbc[\\x80-\\x9e]|\\xf0\\x9d\\xbc[\\xa5-\\xaa]|\\xf0\\x9e(?:\\x80[\\xb0-\\xbf]|\\x81[\\x80-\\xad])|\\xf0\\x9e\\x84[\\x80-\\xac]|\\xf0\\x9e\\x84[\\xb7-\\xbd]|\\xf0\\x9e\\x85\\x8e|\\xf0\\x9e\\x8a[\\x90-\\xad]|\\xf0\\x9e\\x8b[\\x80-\\xab]|\\xf0\\x9e\\x93[\\x90-\\xab]|\\xf0\\x9e\\x9f[\\xa0-\\xa6]|\\xf0\\x9e\\x9f[\\xa8-\\xab]|\\xf0\\x9e\\x9f[\\xad\\xae]|\\xf0\\x9e\\x9f[\\xb0-\\xbe]|\\xf0\\x9e(?:[\\xa0-\\xa2][\\x80-\\xbf]|\\xa3[\\x80-\\x84])|\\xf0\\x9e(?:\\xa4[\\x80-\\xbf]|\\xa5[\\x80-\\x83])|\\xf0\\x9e\\xa5\\x8b|\\xf0\\x9e\\xb8[\\x80-\\x83]|\\xf0\\x9e\\xb8[\\x85-\\x9f]|\\xf0\\x9e\\xb8[\\xa1\\xa2]|\\xf0\\x9e\\xb8\\xa4|\\xf0\\x9e\\xb8\\xa7|\\xf0\\x9e\\xb8[\\xa9-\\xb2]|\\xf0\\x9e\\xb8[\\xb4-\\xb7]|\\xf0\\x9e\\xb8\\xb9|\\xf0\\x9e\\xb8\\xbb|\\xf0\\x9e\\xb9\\x82|\\xf0\\x9e\\xb9\\x87|\\xf0\\x9e\\xb9\\x89|\\xf0\\x9e\\xb9\\x8b|\\xf0\\x9e\\xb9[\\x8d-\\x8f]|\\xf0\\x9e\\xb9[\\x91\\x92]|\\xf0\\x9e\\xb9\\x94|\\xf0\\x9e\\xb9\\x97|\\xf0\\x9e\\xb9\\x99|\\xf0\\x9e\\xb9\\x9b|\\xf0\\x9e\\xb9\\x9d|\\xf0\\x9e\\xb9\\x9f|\\xf0\\x9e\\xb9[\\xa1\\xa2]|\\xf0\\x9e\\xb9\\xa4|\\xf0\\x9e\\xb9[\\xa7-\\xaa]|\\xf0\\x9e\\xb9[\\xac-\\xb2]|\\xf0\\x9e\\xb9[\\xb4-\\xb7]|\\xf0\\x9e\\xb9[\\xb9-\\xbc]|\\xf0\\x9e\\xb9\\xbe|\\xf0\\x9e\\xba[\\x80-\\x89]|\\xf0\\x9e\\xba[\\x8b-\\x9b]|\\xf0\\x9e\\xba[\\xa1-\\xa3]|\\xf0\\x9e\\xba[\\xa5-\\xa9]|\\xf0\\x9e\\xba[\\xab-\\xbb]|\\xf0(?:[\\xa0-\\xa9][\\x80-\\xbf][\\x80-\\xbf]|\\xaa(?:[\\x80-\\x9a][\\x80-\\xbf]|\\x9b[\\x80-\\x9f]))|\\xf0(?:\\xaa[\\x9c-\\xbf][\\x80-\\xbf]|\\xab(?:[\\x80-\\x9b][\\x80-\\xbf]|\\x9c[\\x80-\\xb9]))|\\xf0\\xab(?:[\\x9d-\\x9f][\\x80-\\xbf]|\\xa0[\\x80-\\x9d])|\\xf0(?:\\xab(?:[\\xa1-\\xbf][\\x80-\\xbf]|\\xa0[\\xa0-\\xbf])|\\xac(?:[\\x80-\\xb9][\\x80-\\xbf]|\\xba[\\x80-\\xa1]))|\\xf0(?:\\xac(?:[\\xbb-\\xbf][\\x80-\\xbf]|\\xba[\\xb0-\\xbf])|\\xad[\\x80-\\xbf][\\x80-\\xbf]|\\xae(?:[\\x80-\\xae][\\x80-\\xbf]|\\xaf[\\x80-\\xa0]))|\\xf0\\xae(?:\\xaf[\\xb0-\\xbf]|[\\xb0-\\xb8][\\x80-\\xbf]|\\xb9[\\x80-\\x9d])|\\xf0\\xaf(?:[\\xa0-\\xa7][\\x80-\\xbf]|\\xa8[\\x80-\\x9d])|\\xf0(?:\\xb0[\\x80-\\xbf][\\x80-\\xbf]|\\xb1(?:[\\x80-\\x8c][\\x80-\\xbf]|\\x8d[\\x80-\\x8a]))|\\xf0(?:\\xb1(?:[\\x8e-\\xbf][\\x80-\\xbf]|\\x8d[\\x90-\\xbf])|\\xb2(?:[\\x80-\\x8d][\\x80-\\xbf]|\\x8e[\\x80-\\xaf])))+| ?(?:[0-9]|\\xc2[\\xb2\\xb3]|\\xc2\\xb9|\\xc2[\\xbc-\\xbe]|\\xd9[\\xa0-\\xa9]|\\xdb[\\xb0-\\xb9]|\\xdf[\\x80-\\x89]|\\xe0\\xa5[\\xa6-\\xaf]|\\xe0\\xa7[\\xa6-\\xaf]|\\xe0\\xa7[\\xb4-\\xb9]|\\xe0\\xa9[\\xa6-\\xaf]|\\xe0\\xab[\\xa6-\\xaf]|\\xe0\\xad[\\xa6-\\xaf]|\\xe0\\xad[\\xb2-\\xb7]|\\xe0\\xaf[\\xa6-\\xb2]|\\xe0\\xb1[\\xa6-\\xaf]|\\xe0\\xb1[\\xb8-\\xbe]|\\xe0\\xb3[\\xa6-\\xaf]|\\xe0\\xb5[\\x98-\\x9e]|\\xe0\\xb5[\\xa6-\\xb8]|\\xe0\\xb7[\\xa6-\\xaf]|\\xe0\\xb9[\\x90-\\x99]|\\xe0\\xbb[\\x90-\\x99]|\\xe0\\xbc[\\xa0-\\xb3]|\\xe1\\x81[\\x80-\\x89]|\\xe1\\x82[\\x90-\\x99]|\\xe1\\x8d[\\xa9-\\xbc]|\\xe1\\x9b[\\xae-\\xb0]|\\xe1\\x9f[\\xa0-\\xa9]|\\xe1\\x9f[\\xb0-\\xb9]|\\xe1\\xa0[\\x90-\\x99]|\\xe1\\xa5[\\x86-\\x8f]|\\xe1\\xa7[\\x90-\\x9a]|\\xe1\\xaa[\\x80-\\x89]|\\xe1\\xaa[\\x90-\\x99]|\\xe1\\xad[\\x90-\\x99]|\\xe1\\xae[\\xb0-\\xb9]|\\xe1\\xb1[\\x80-\\x89]|\\xe1\\xb1[\\x90-\\x99]|\\xe2\\x81\\xb0|\\xe2\\x81[\\xb4-\\xb9]|\\xe2\\x82[\\x80-\\x89]|\\xe2(?:\\x85[\\x90-\\xbf]|\\x86[\\x80-\\x82])|\\xe2\\x86[\\x85-\\x89]|\\xe2(?:\\x91[\\xa0-\\xbf]|\\x92[\\x80-\\x9b])|\\xe2\\x93[\\xaa-\\xbf]|\\xe2(?:\\x9d[\\xb6-\\xbf]|\\x9e[\\x80-\\x93])|\\xe2\\xb3\\xbd|\\xe3\\x80\\x87|\\xe3\\x80[\\xa1-\\xa9]|\\xe3\\x80[\\xb8-\\xba]|\\xe3\\x86[\\x92-\\x95]|\\xe3\\x88[\\xa0-\\xa9]|\\xe3\\x89[\\x88-\\x8f]|\\xe3\\x89[\\x91-\\x9f]|\\xe3\\x8a[\\x80-\\x89]|\\xe3\\x8a[\\xb1-\\xbf]|\\xea\\x98[\\xa0-\\xa9]|\\xea\\x9b[\\xa6-\\xaf]|\\xea\\xa0[\\xb0-\\xb5]|\\xea\\xa3[\\x90-\\x99]|\\xea\\xa4[\\x80-\\x89]|\\xea\\xa7[\\x90-\\x99]|\\xea\\xa7[\\xb0-\\xb9]|\\xea\\xa9[\\x90-\\x99]|\\xea\\xaf[\\xb0-\\xb9]|\\xef\\xbc[\\x90-\\x99]|\\xf0\\x90\\x84[\\x87-\\xb3]|\\xf0\\x90\\x85[\\x80-\\xb8]|\\xf0\\x90\\x86[\\x8a\\x8b]|\\xf0\\x90\\x8b[\\xa1-\\xbb]|\\xf0\\x90\\x8c[\\xa0-\\xa3]|\\xf0\\x90\\x8d\\x81|\\xf0\\x90\\x8d\\x8a|\\xf0\\x90\\x8f[\\x91-\\x95]|\\xf0\\x90\\x92[\\xa0-\\xa9]|\\xf0\\x90\\xa1[\\x98-\\x9f]|\\xf0\\x90\\xa1[\\xb9-\\xbf]|\\xf0\\x90\\xa2[\\xa7-\\xaf]|\\xf0\\x90\\xa3[\\xbb-\\xbf]|\\xf0\\x90\\xa4[\\x96-\\x9b]|\\xf0\\x90\\xa6[\\xbc\\xbd]|\\xf0\\x90\\xa7[\\x80-\\x8f]|\\xf0\\x90\\xa7[\\x92-\\xbf]|\\xf0\\x90\\xa9[\\x80-\\x88]|\\xf0\\x90\\xa9[\\xbd\\xbe]|\\xf0\\x90\\xaa[\\x9d-\\x9f]|\\xf0\\x90\\xab[\\xab-\\xaf]|\\xf0\\x90\\xad[\\x98-\\x9f]|\\xf0\\x90\\xad[\\xb8-\\xbf]|\\xf0\\x90\\xae[\\xa9-\\xaf]|\\xf0\\x90\\xb3[\\xba-\\xbf]|\\xf0\\x90\\xb4[\\xb0-\\xb9]|\\xf0\\x90\\xb9[\\xa0-\\xbe]|\\xf0\\x90\\xbc[\\x9d-\\xa6]|\\xf0\\x90\\xbd[\\x91-\\x94]|\\xf0\\x90\\xbf[\\x85-\\x8b]|\\xf0\\x91\\x81[\\x92-\\xaf]|\\xf0\\x91\\x83[\\xb0-\\xb9]|\\xf0\\x91\\x84[\\xb6-\\xbf]|\\xf0\\x91\\x87[\\x90-\\x99]|\\xf0\\x91\\x87[\\xa1-\\xb4]|\\xf0\\x91\\x8b[\\xb0-\\xb9]|\\xf0\\x91\\x91[\\x90-\\x99]|\\xf0\\x91\\x93[\\x90-\\x99]|\\xf0\\x91\\x99[\\x90-\\x99]|\\xf0\\x91\\x9b[\\x80-\\x89]|\\xf0\\x91\\x9c[\\xb0-\\xbb]|\\xf0\\x91\\xa3[\\xa0-\\xb2]|\\xf0\\x91\\xa5[\\x90-\\x99]|\\xf0\\x91\\xb1[\\x90-\\xac]|\\xf0\\x91\\xb5[\\x90-\\x99]|\\xf0\\x91\\xb6[\\xa0-\\xa9]|\\xf0\\x91\\xbd[\\x90-\\x99]|\\xf0\\x91\\xbf[\\x80-\\x94]|\\xf0\\x92(?:\\x90[\\x80-\\xbf]|\\x91[\\x80-\\xae])|\\xf0\\x96\\xa9[\\xa0-\\xa9]|\\xf0\\x96\\xab[\\x80-\\x89]|\\xf0\\x96\\xad[\\x90-\\x99]|\\xf0\\x96\\xad[\\x9b-\\xa1]|\\xf0\\x96\\xba[\\x80-\\x96]|\\xf0\\x9d\\x8b[\\x80-\\x93]|\\xf0\\x9d\\x8b[\\xa0-\\xb3]|\\xf0\\x9d\\x8d[\\xa0-\\xb8]|\\xf0\\x9d\\x9f[\\x8e-\\xbf]|\\xf0\\x9e\\x85[\\x80-\\x89]|\\xf0\\x9e\\x8b[\\xb0-\\xb9]|\\xf0\\x9e\\x93[\\xb0-\\xb9]|\\xf0\\x9e\\xa3[\\x87-\\x8f]|\\xf0\\x9e\\xa5[\\x90-\\x99]|\\xf0\\x9e(?:\\xb1[\\xb1-\\xbf]|\\xb2[\\x80-\\xab])|\\xf0\\x9e\\xb2[\\xad-\\xaf]|\\xf0\\x9e\\xb2[\\xb1-\\xb4]|\\xf0\\x9e\\xb4[\\x81-\\xad]|\\xf0\\x9e\\xb4[\\xaf-\\xbd]|\\xf0\\x9f\\x84[\\x80-\\x8c]|\\xf0\\x9f\\xaf[\\xb0-\\xb9])+| ?(?:[\\x00-\\x08]|[\\x0e-\\x1f]|[!-/]|[:-@]|[\\x5b-`]|[{-\\x7f]|\\xc2[\\x80-\\x9f]|\\xc2[\\xa1-\\xa9]|\\xc2[\\xab-\\xb1]|\\xc2\\xb4|\\xc2[\\xb6-\\xb8]|\\xc2\\xbb|\\xc2\\xbf|\\xc3\\x97|\\xc3\\xb7|\\xcb[\\x82-\\x85]|\\xcb[\\x92-\\x9f]|\\xcb[\\xa5-\\xab]|\\xcb\\xad|\\xcb[\\xaf-\\xbf]|\\xcc[\\x80-\\xbf]|\\xcd[\\x80-\\xaf]|\\xcd\\xb5|\\xcd[\\xb8\\xb9]|\\xcd\\xbe|\\xce[\\x80-\\x85]|\\xce\\x87|\\xce\\x8b|\\xce\\x8d|\\xce\\xa2|\\xcf\\xb6|\\xd2[\\x82-\\x89]|\\xd4\\xb0|\\xd5[\\x97\\x98]|\\xd5[\\x9a-\\x9f]|\\xd6[\\x89-\\xbf]|\\xd7[\\x80-\\x8f]|\\xd7[\\xab-\\xae]|\\xd7[\\xb3-\\xbf]|\\xd8[\\x80-\\x9f]|\\xd9[\\x8b-\\x9f]|\\xd9[\\xaa-\\xad]|\\xd9\\xb0|\\xdb\\x94|\\xdb[\\x96-\\xa4]|\\xdb[\\xa7-\\xad]|\\xdb[\\xbd\\xbe]|\\xdc[\\x80-\\x8f]|\\xdc\\x91|\\xdc[\\xb0-\\xbf]|\\xdd[\\x80-\\x8c]|\\xde[\\xa6-\\xb0]|\\xde[\\xb2-\\xbf]|\\xdf[\\xab-\\xb3]|\\xdf[\\xb6-\\xb9]|\\xdf[\\xbb-\\xbf]|\\xe0\\xa0[\\x96-\\x99]|\\xe0\\xa0[\\x9b-\\xa3]|\\xe0\\xa0[\\xa5-\\xa7]|\\xe0\\xa0[\\xa9-\\xbf]|\\xe0\\xa1[\\x99-\\x9f]|\\xe0\\xa1[\\xab-\\xaf]|\\xe0\\xa2\\x88|\\xe0\\xa2[\\x8f-\\x9f]|\\xe0(?:\\xa3[\\x8a-\\xbf]|\\xa4[\\x80-\\x83])|\\xe0\\xa4[\\xba-\\xbc]|\\xe0(?:\\xa4[\\xbe\\xbf]|\\xa5[\\x80-\\x8f])|\\xe0\\xa5[\\x91-\\x97]|\\xe0\\xa5[\\xa2-\\xa5]|\\xe0\\xa5\\xb0|\\xe0\\xa6[\\x81-\\x84]|\\xe0\\xa6[\\x8d\\x8e]|\\xe0\\xa6[\\x91\\x92]|\\xe0\\xa6\\xa9|\\xe0\\xa6\\xb1|\\xe0\\xa6[\\xb3-\\xb5]|\\xe0\\xa6[\\xba-\\xbc]|\\xe0(?:\\xa6[\\xbe\\xbf]|\\xa7[\\x80-\\x8d])|\\xe0\\xa7[\\x8f-\\x9b]|\\xe0\\xa7\\x9e|\\xe0\\xa7[\\xa2-\\xa5]|\\xe0\\xa7[\\xb2\\xb3]|\\xe0\\xa7[\\xba\\xbb]|\\xe0(?:\\xa7[\\xbd-\\xbf]|\\xa8[\\x80-\\x84])|\\xe0\\xa8[\\x8b-\\x8e]|\\xe0\\xa8[\\x91\\x92]|\\xe0\\xa8\\xa9|\\xe0\\xa8\\xb1|\\xe0\\xa8\\xb4|\\xe0\\xa8\\xb7|\\xe0(?:\\xa8[\\xba-\\xbf]|\\xa9[\\x80-\\x98])|\\xe0\\xa9\\x9d|\\xe0\\xa9[\\x9f-\\xa5]|\\xe0\\xa9[\\xb0\\xb1]|\\xe0(?:\\xa9[\\xb5-\\xbf]|\\xaa[\\x80-\\x84])|\\xe0\\xaa\\x8e|\\xe0\\xaa\\x92|\\xe0\\xaa\\xa9|\\xe0\\xaa\\xb1|\\xe0\\xaa\\xb4|\\xe0\\xaa[\\xba-\\xbc]|\\xe0(?:\\xaa[\\xbe\\xbf]|\\xab[\\x80-\\x8f])|\\xe0\\xab[\\x91-\\x9f]|\\xe0\\xab[\\xa2-\\xa5]|\\xe0\\xab[\\xb0-\\xb8]|\\xe0(?:\\xab[\\xba-\\xbf]|\\xac[\\x80-\\x84])|\\xe0\\xac[\\x8d\\x8e]|\\xe0\\xac[\\x91\\x92]|\\xe0\\xac\\xa9|\\xe0\\xac\\xb1|\\xe0\\xac\\xb4|\\xe0\\xac[\\xba-\\xbc]|\\xe0(?:\\xac[\\xbe\\xbf]|\\xad[\\x80-\\x9b])|\\xe0\\xad\\x9e|\\xe0\\xad[\\xa2-\\xa5]|\\xe0\\xad\\xb0|\\xe0(?:\\xad[\\xb8-\\xbf]|\\xae[\\x80-\\x82])|\\xe0\\xae\\x84|\\xe0\\xae[\\x8b-\\x8d]|\\xe0\\xae\\x91|\\xe0\\xae[\\x96-\\x98]|\\xe0\\xae\\x9b|\\xe0\\xae\\x9d|\\xe0\\xae[\\xa0-\\xa2]|\\xe0\\xae[\\xa5-\\xa7]|\\xe0\\xae[\\xab-\\xad]|\\xe0(?:\\xae[\\xba-\\xbf]|\\xaf[\\x80-\\x8f])|\\xe0\\xaf[\\x91-\\xa5]|\\xe0(?:\\xaf[\\xb3-\\xbf]|\\xb0[\\x80-\\x84])|\\xe0\\xb0\\x8d|\\xe0\\xb0\\x91|\\xe0\\xb0\\xa9|\\xe0\\xb0[\\xba-\\xbc]|\\xe0(?:\\xb0[\\xbe\\xbf]|\\xb1[\\x80-\\x97])|\\xe0\\xb1[\\x9b\\x9c]|\\xe0\\xb1[\\x9e\\x9f]|\\xe0\\xb1[\\xa2-\\xa5]|\\xe0\\xb1[\\xb0-\\xb7]|\\xe0\\xb1\\xbf|\\xe0\\xb2[\\x81-\\x84]|\\xe0\\xb2\\x8d|\\xe0\\xb2\\x91|\\xe0\\xb2\\xa9|\\xe0\\xb2\\xb4|\\xe0\\xb2[\\xba-\\xbc]|\\xe0(?:\\xb2[\\xbe\\xbf]|\\xb3[\\x80-\\x9c])|\\xe0\\xb3\\x9f|\\xe0\\xb3[\\xa2-\\xa5]|\\xe0\\xb3\\xb0|\\xe0(?:\\xb3[\\xb3-\\xbf]|\\xb4[\\x80-\\x83])|\\xe0\\xb4\\x8d|\\xe0\\xb4\\x91|\\xe0\\xb4[\\xbb\\xbc]|\\xe0(?:\\xb4[\\xbe\\xbf]|\\xb5[\\x80-\\x8d])|\\xe0\\xb5[\\x8f-\\x93]|\\xe0\\xb5\\x97|\\xe0\\xb5[\\xa2-\\xa5]|\\xe0\\xb5\\xb9|\\xe0\\xb6[\\x80-\\x84]|\\xe0\\xb6[\\x97-\\x99]|\\xe0\\xb6\\xb2|\\xe0\\xb6\\xbc|\\xe0\\xb6[\\xbe\\xbf]|\\xe0\\xb7[\\x87-\\xa5]|\\xe0(?:\\xb7[\\xb0-\\xbf]|\\xb8\\x80)|\\xe0\\xb8\\xb1|\\xe0\\xb8[\\xb4-\\xbf]|\\xe0\\xb9[\\x87-\\x8f]|\\xe0(?:\\xb9[\\x9a-\\xbf]|\\xba\\x80)|\\xe0\\xba\\x83|\\xe0\\xba\\x85|\\xe0\\xba\\x8b|\\xe0\\xba\\xa4|\\xe0\\xba\\xa6|\\xe0\\xba\\xb1|\\xe0\\xba[\\xb4-\\xbc]|\\xe0\\xba[\\xbe\\xbf]|\\xe0\\xbb\\x85|\\xe0\\xbb[\\x87-\\x8f]|\\xe0\\xbb[\\x9a\\x9b]|\\xe0\\xbb[\\xa0-\\xbf]|\\xe0\\xbc[\\x81-\\x9f]|\\xe0\\xbc[\\xb4-\\xbf]|\\xe0\\xbd\\x88|\\xe0(?:\\xbd[\\xad-\\xbf]|\\xbe[\\x80-\\x87])|\\xe0(?:\\xbe[\\x8d-\\xbf]|\\xbf[\\x80-\\xbf])|\\xe1\\x80[\\xab-\\xbe]|\\xe1\\x81[\\x8a-\\x8f]|\\xe1\\x81[\\x96-\\x99]|\\xe1\\x81[\\x9e-\\xa0]|\\xe1\\x81[\\xa2-\\xa4]|\\xe1\\x81[\\xa7-\\xad]|\\xe1\\x81[\\xb1-\\xb4]|\\xe1\\x82[\\x82-\\x8d]|\\xe1\\x82\\x8f|\\xe1\\x82[\\x9a-\\x9f]|\\xe1\\x83\\x86|\\xe1\\x83[\\x88-\\x8c]|\\xe1\\x83[\\x8e\\x8f]|\\xe1\\x83\\xbb|\\xe1\\x89\\x89|\\xe1\\x89[\\x8e\\x8f]|\\xe1\\x89\\x97|\\xe1\\x89\\x99|\\xe1\\x89[\\x9e\\x9f]|\\xe1\\x8a\\x89|\\xe1\\x8a[\\x8e\\x8f]|\\xe1\\x8a\\xb1|\\xe1\\x8a[\\xb6\\xb7]|\\xe1\\x8a\\xbf|\\xe1\\x8b\\x81|\\xe1\\x8b[\\x86\\x87]|\\xe1\\x8b\\x97|\\xe1\\x8c\\x91|\\xe1\\x8c[\\x96\\x97]|\\xe1\\x8d[\\x9b-\\xa8]|\\xe1\\x8d[\\xbd-\\xbf]|\\xe1\\x8e[\\x90-\\x9f]|\\xe1\\x8f[\\xb6\\xb7]|\\xe1(?:\\x8f[\\xbe\\xbf]|\\x90\\x80)|\\xe1\\x99[\\xad\\xae]|\\xe1\\x9a[\\x9b-\\x9f]|\\xe1\\x9b[\\xab-\\xad]|\\xe1\\x9b[\\xb9-\\xbf]|\\xe1\\x9c[\\x92-\\x9e]|\\xe1\\x9c[\\xb2-\\xbf]|\\xe1\\x9d[\\x92-\\x9f]|\\xe1\\x9d\\xad|\\xe1\\x9d[\\xb1-\\xbf]|\\xe1(?:\\x9e[\\xb4-\\xbf]|\\x9f[\\x80-\\x96])|\\xe1\\x9f[\\x98-\\x9b]|\\xe1\\x9f[\\x9d-\\x9f]|\\xe1\\x9f[\\xaa-\\xaf]|\\xe1(?:\\x9f[\\xba-\\xbf]|\\xa0[\\x80-\\x8f])|\\xe1\\xa0[\\x9a-\\x9f]|\\xe1\\xa1[\\xb9-\\xbf]|\\xe1\\xa2[\\x85\\x86]|\\xe1\\xa2\\xa9|\\xe1\\xa2[\\xab-\\xaf]|\\xe1\\xa3[\\xb6-\\xbf]|\\xe1(?:\\xa4[\\x9f-\\xbf]|\\xa5[\\x80-\\x85])|\\xe1\\xa5[\\xae\\xaf]|\\xe1\\xa5[\\xb5-\\xbf]|\\xe1\\xa6[\\xac-\\xaf]|\\xe1\\xa7[\\x8a-\\x8f]|\\xe1\\xa7[\\x9b-\\xbf]|\\xe1\\xa8[\\x97-\\x9f]|\\xe1\\xa9[\\x95-\\xbf]|\\xe1\\xaa[\\x8a-\\x8f]|\\xe1\\xaa[\\x9a-\\xa6]|\\xe1(?:\\xaa[\\xa8-\\xbf]|\\xab[\\x80-\\xbf]|\\xac[\\x80-\\x84])|\\xe1(?:\\xac[\\xb4-\\xbf]|\\xad[\\x80-\\x84])|\\xe1\\xad[\\x8d-\\x8f]|\\xe1(?:\\xad[\\x9a-\\xbf]|\\xae[\\x80-\\x82])|\\xe1\\xae[\\xa1-\\xad]|\\xe1\\xaf[\\xa6-\\xbf]|\\xe1\\xb0[\\xa4-\\xbf]|\\xe1\\xb1[\\x8a-\\x8c]|\\xe1\\xb1[\\xbe\\xbf]|\\xe1\\xb2[\\x89-\\x8f]|\\xe1\\xb2[\\xbb\\xbc]|\\xe1\\xb3[\\x80-\\xa8]|\\xe1\\xb3\\xad|\\xe1\\xb3\\xb4|\\xe1\\xb3[\\xb7-\\xb9]|\\xe1\\xb3[\\xbb-\\xbf]|\\xe1\\xb7[\\x80-\\xbf]|\\xe1\\xbc[\\x96\\x97]|\\xe1\\xbc[\\x9e\\x9f]|\\xe1\\xbd[\\x86\\x87]|\\xe1\\xbd[\\x8e\\x8f]|\\xe1\\xbd\\x98|\\xe1\\xbd\\x9a|\\xe1\\xbd\\x9c|\\xe1\\xbd\\x9e|\\xe1\\xbd[\\xbe\\xbf]|\\xe1\\xbe\\xb5|\\xe1\\xbe\\xbd|\\xe1(?:\\xbe\\xbf|\\xbf[\\x80\\x81])|\\xe1\\xbf\\x85|\\xe1\\xbf[\\x8d-\\x8f]|\\xe1\\xbf[\\x94\\x95]|\\xe1\\xbf[\\x9c-\\x9f]|\\xe1\\xbf[\\xad-\\xb1]|\\xe1\\xbf\\xb5|\\xe1\\xbf[\\xbd-\\xbf]|\\xe2\\x80[\\x8b-\\xae]|\\xe2(?:\\x80[\\xb0-\\xbf]|\\x81[\\x80-\\x9e])|\\xe2\\x81[\\xa0-\\xaf]|\\xe2\\x81[\\xb2\\xb3]|\\xe2\\x81[\\xba-\\xbe]|\\xe2\\x82[\\x8a-\\x8f]|\\xe2(?:\\x82[\\x9d-\\xbf]|\\x83[\\x80-\\xbf]|\\x84[\\x80\\x81])|\\xe2\\x84[\\x83-\\x86]|\\xe2\\x84[\\x88\\x89]|\\xe2\\x84\\x94|\\xe2\\x84[\\x96-\\x98]|\\xe2\\x84[\\x9e-\\xa3]|\\xe2\\x84\\xa5|\\xe2\\x84\\xa7|\\xe2\\x84\\xa9|\\xe2\\x84\\xae|\\xe2\\x84[\\xba\\xbb]|\\xe2\\x85[\\x80-\\x84]|\\xe2\\x85[\\x8a-\\x8d]|\\xe2\\x85\\x8f|\\xe2(?:\\x86[\\x8a-\\xbf]|[\\x87-\\x90][\\x80-\\xbf]|\\x91[\\x80-\\x9f])|\\xe2(?:\\x92[\\x9c-\\xbf]|\\x93[\\x80-\\xa9])|\\xe2(?:[\\x94-\\x9c][\\x80-\\xbf]|\\x9d[\\x80-\\xb5])|\\xe2(?:\\x9e[\\x94-\\xbf]|[\\x9f-\\xaf][\\x80-\\xbf])|\\xe2\\xb3[\\xa5-\\xaa]|\\xe2\\xb3[\\xaf-\\xb1]|\\xe2\\xb3[\\xb4-\\xbc]|\\xe2\\xb3[\\xbe\\xbf]|\\xe2\\xb4\\xa6|\\xe2\\xb4[\\xa8-\\xac]|\\xe2\\xb4[\\xae\\xaf]|\\xe2\\xb5[\\xa8-\\xae]|\\xe2\\xb5[\\xb0-\\xbf]|\\xe2\\xb6[\\x97-\\x9f]|\\xe2\\xb6\\xa7|\\xe2\\xb6\\xaf|\\xe2\\xb6\\xb7|\\xe2\\xb6\\xbf|\\xe2\\xb7\\x87|\\xe2\\xb7\\x8f|\\xe2\\xb7\\x97|\\xe2(?:\\xb7[\\x9f-\\xbf]|\\xb8[\\x80-\\xae])|\\xe2(?:\\xb8[\\xb0-\\xbf]|[\\xb9-\\xbf][\\x80-\\xbf])|\\xe3\\x80[\\x81-\\x84]|\\xe3\\x80[\\x88-\\xa0]|\\xe3\\x80[\\xaa-\\xb0]|\\xe3\\x80[\\xb6\\xb7]|\\xe3(?:\\x80[\\xbd-\\xbf]|\\x81\\x80)|\\xe3\\x82[\\x97-\\x9c]|\\xe3\\x82\\xa0|\\xe3\\x83\\xbb|\\xe3\\x84[\\x80-\\x84]|\\xe3\\x84\\xb0|\\xe3\\x86[\\x8f-\\x91]|\\xe3\\x86[\\x96-\\x9f]|\\xe3\\x87[\\x80-\\xaf]|\\xe3\\x88[\\x80-\\x9f]|\\xe3(?:\\x88[\\xaa-\\xbf]|\\x89[\\x80-\\x87])|\\xe3\\x89\\x90|\\xe3\\x89[\\xa0-\\xbf]|\\xe3\\x8a[\\x8a-\\xb0]|\\xe3(?:[\\x8b-\\x8f][\\x80-\\xbf])|\\xe4\\xb7[\\x80-\\xbf]|\\xea(?:\\x92[\\x8d-\\xbf]|\\x93[\\x80-\\x8f])|\\xea\\x93[\\xbe\\xbf]|\\xea\\x98[\\x8d-\\x8f]|\\xea\\x98[\\xac-\\xbf]|\\xea\\x99[\\xaf-\\xbe]|\\xea\\x9a[\\x9e\\x9f]|\\xea(?:\\x9b[\\xb0-\\xbf]|\\x9c[\\x80-\\x96])|\\xea\\x9c[\\xa0\\xa1]|\\xea\\x9e[\\x89\\x8a]|\\xea\\x9f[\\x8b-\\x8f]|\\xea\\x9f\\x92|\\xea\\x9f\\x94|\\xea\\x9f[\\x9a-\\xb1]|\\xea\\xa0\\x82|\\xea\\xa0\\x86|\\xea\\xa0\\x8b|\\xea\\xa0[\\xa3-\\xaf]|\\xea\\xa0[\\xb6-\\xbf]|\\xea(?:\\xa1[\\xb4-\\xbf]|\\xa2[\\x80\\x81])|\\xea(?:\\xa2[\\xb4-\\xbf]|\\xa3[\\x80-\\x8f])|\\xea\\xa3[\\x9a-\\xb1]|\\xea\\xa3[\\xb8-\\xba]|\\xea\\xa3\\xbc|\\xea\\xa3\\xbf|\\xea\\xa4[\\xa6-\\xaf]|\\xea\\xa5[\\x87-\\x9f]|\\xea(?:\\xa5[\\xbd-\\xbf]|\\xa6[\\x80-\\x83])|\\xea(?:\\xa6[\\xb3-\\xbf]|\\xa7[\\x80-\\x8e])|\\xea\\xa7[\\x9a-\\x9f]|\\xea\\xa7\\xa5|\\xea\\xa7\\xbf|\\xea\\xa8[\\xa9-\\xbf]|\\xea\\xa9\\x83|\\xea\\xa9[\\x8c-\\x8f]|\\xea\\xa9[\\x9a-\\x9f]|\\xea\\xa9[\\xb7-\\xb9]|\\xea\\xa9[\\xbb-\\xbd]|\\xea\\xaa\\xb0|\\xea\\xaa[\\xb2-\\xb4]|\\xea\\xaa[\\xb7\\xb8]|\\xea\\xaa[\\xbe\\xbf]|\\xea\\xab\\x81|\\xea\\xab[\\x83-\\x9a]|\\xea\\xab[\\x9e\\x9f]|\\xea\\xab[\\xab-\\xb1]|\\xea(?:\\xab[\\xb5-\\xbf]|\\xac\\x80)|\\xea\\xac[\\x87\\x88]|\\xea\\xac[\\x8f\\x90]|\\xea\\xac[\\x97-\\x9f]|\\xea\\xac\\xa7|\\xea\\xac\\xaf|\\xea\\xad\\x9b|\\xea\\xad[\\xaa-\\xaf]|\\xea\\xaf[\\xa3-\\xaf]|\\xea\\xaf[\\xba-\\xbf]|\\xed\\x9e[\\xa4-\\xaf]|\\xed\\x9f[\\x87-\\x8a]|\\xed\\x9f[\\xbc-\\xbf]|\\xee[\\x80-\\xbf][\\x80-\\xbf]|\\xef[\\x80-\\xa3][\\x80-\\xbf]|\\xef\\xa9[\\xae\\xaf]|\\xef\\xab[\\x9a-\\xbf]|\\xef\\xac[\\x87-\\x92]|\\xef\\xac[\\x98-\\x9c]|\\xef\\xac\\x9e|\\xef\\xac\\xa9|\\xef\\xac\\xb7|\\xef\\xac\\xbd|\\xef\\xac\\xbf|\\xef\\xad\\x82|\\xef\\xad\\x85|\\xef(?:\\xae[\\xb2-\\xbf]|\\xaf[\\x80-\\x92])|\\xef(?:\\xb4[\\xbe\\xbf]|\\xb5[\\x80-\\x8f])|\\xef\\xb6[\\x90\\x91]|\\xef\\xb7[\\x88-\\xaf]|\\xef(?:\\xb7[\\xbc-\\xbf]|\\xb8[\\x80-\\xbf]|\\xb9[\\x80-\\xaf])|\\xef\\xb9\\xb5|\\xef(?:\\xbb[\\xbd-\\xbf]|\\xbc[\\x80-\\x8f])|\\xef\\xbc[\\x9a-\\xa0]|\\xef(?:\\xbc[\\xbb-\\xbf]|\\xbd\\x80)|\\xef\\xbd[\\x9b-\\xa5]|\\xef(?:\\xbe\\xbf|\\xbf[\\x80\\x81])|\\xef\\xbf[\\x88\\x89]|\\xef\\xbf[\\x90\\x91]|\\xef\\xbf[\\x98\\x99]|\\xef\\xbf[\\x9d-\\xbf]|\\xf0\\x90\\x80\\x8c|\\xf0\\x90\\x80\\xa7|\\xf0\\x90\\x80\\xbb|\\xf0\\x90\\x80\\xbe|\\xf0\\x90\\x81[\\x8e\\x8f]|\\xf0\\x90\\x81[\\x9e-\\xbf]|\\xf0\\x90(?:\\x83[\\xbb-\\xbf]|\\x84[\\x80-\\x86])|\\xf0\\x90\\x84[\\xb4-\\xbf]|\\xf0\\x90(?:\\x85[\\xb9-\\xbf]|\\x86[\\x80-\\x89])|\\xf0\\x90(?:\\x86[\\x8c-\\xbf]|[\\x87-\\x89][\\x80-\\xbf])|\\xf0\\x90\\x8a[\\x9d-\\x9f]|\\xf0\\x90\\x8b[\\x91-\\xa0]|\\xf0\\x90\\x8b[\\xbc-\\xbf]|\\xf0\\x90\\x8c[\\xa4-\\xac]|\\xf0\\x90\\x8d[\\x8b-\\x8f]|\\xf0\\x90\\x8d[\\xb6-\\xbf]|\\xf0\\x90\\x8e[\\x9e\\x9f]|\\xf0\\x90\\x8f[\\x84-\\x87]|\\xf0\\x90\\x8f\\x90|\\xf0\\x90\\x8f[\\x96-\\xbf]|\\xf0\\x90\\x92[\\x9e\\x9f]|\\xf0\\x90\\x92[\\xaa-\\xaf]|\\xf0\\x90\\x93[\\x94-\\x97]|\\xf0\\x90\\x93[\\xbc-\\xbf]|\\xf0\\x90\\x94[\\xa8-\\xaf]|\\xf0\\x90\\x95[\\xa4-\\xaf]|\\xf0\\x90\\x95\\xbb|\\xf0\\x90\\x96\\x8b|\\xf0\\x90\\x96\\x93|\\xf0\\x90\\x96\\x96|\\xf0\\x90\\x96\\xa2|\\xf0\\x90\\x96\\xb2|\\xf0\\x90\\x96\\xba|\\xf0\\x90(?:\\x96[\\xbd-\\xbf]|\\x97[\\x80-\\xbf])|\\xf0\\x90\\x9c[\\xb7-\\xbf]|\\xf0\\x90\\x9d[\\x96-\\x9f]|\\xf0\\x90\\x9d[\\xa8-\\xbf]|\\xf0\\x90\\x9e\\x86|\\xf0\\x90\\x9e\\xb1|\\xf0\\x90(?:\\x9e[\\xbb-\\xbf]|\\x9f[\\x80-\\xbf])|\\xf0\\x90\\xa0[\\x86\\x87]|\\xf0\\x90\\xa0\\x89|\\xf0\\x90\\xa0\\xb6|\\xf0\\x90\\xa0[\\xb9-\\xbb]|\\xf0\\x90\\xa0[\\xbd\\xbe]|\\xf0\\x90\\xa1[\\x96\\x97]|\\xf0\\x90\\xa1[\\xb7\\xb8]|\\xf0\\x90\\xa2[\\x9f-\\xa6]|\\xf0\\x90(?:\\xa2[\\xb0-\\xbf]|\\xa3[\\x80-\\x9f])|\\xf0\\x90\\xa3\\xb3|\\xf0\\x90\\xa3[\\xb6-\\xba]|\\xf0\\x90\\xa4[\\x9c-\\x9f]|\\xf0\\x90(?:\\xa4[\\xba-\\xbf]|\\xa5[\\x80-\\xbf])|\\xf0\\x90\\xa6[\\xb8-\\xbb]|\\xf0\\x90\\xa7[\\x90\\x91]|\\xf0\\x90\\xa8[\\x81-\\x8f]|\\xf0\\x90\\xa8\\x94|\\xf0\\x90\\xa8\\x98|\\xf0\\x90\\xa8[\\xb6-\\xbf]|\\xf0\\x90\\xa9[\\x89-\\x9f]|\\xf0\\x90\\xa9\\xbf|\\xf0\\x90\\xaa[\\xa0-\\xbf]|\\xf0\\x90\\xab\\x88|\\xf0\\x90\\xab[\\xa5-\\xaa]|\\xf0\\x90\\xab[\\xb0-\\xbf]|\\xf0\\x90\\xac[\\xb6-\\xbf]|\\xf0\\x90\\xad[\\x96\\x97]|\\xf0\\x90\\xad[\\xb3-\\xb7]|\\xf0\\x90\\xae[\\x92-\\xa8]|\\xf0\\x90(?:\\xae[\\xb0-\\xbf]|\\xaf[\\x80-\\xbf])|\\xf0\\x90\\xb1[\\x89-\\xbf]|\\xf0\\x90\\xb2[\\xb3-\\xbf]|\\xf0\\x90\\xb3[\\xb3-\\xb9]|\\xf0\\x90\\xb4[\\xa4-\\xaf]|\\xf0\\x90(?:\\xb4[\\xba-\\xbf]|[\\xb5-\\xb8][\\x80-\\xbf]|\\xb9[\\x80-\\x9f])|\\xf0\\x90\\xb9\\xbf|\\xf0\\x90\\xba[\\xaa-\\xaf]|\\xf0\\x90(?:\\xba[\\xb2-\\xbf]|\\xbb[\\x80-\\xbf])|\\xf0\\x90\\xbc[\\xa8-\\xaf]|\\xf0\\x90\\xbd[\\x86-\\x90]|\\xf0\\x90\\xbd[\\x95-\\xaf]|\\xf0\\x90\\xbe[\\x82-\\xaf]|\\xf0\\x90\\xbf[\\x8c-\\x9f]|\\xf0(?:\\x90\\xbf[\\xb7-\\xbf]|\\x91\\x80[\\x80-\\x82])|\\xf0\\x91(?:\\x80[\\xb8-\\xbf]|\\x81[\\x80-\\x91])|\\xf0\\x91\\x81\\xb0|\\xf0\\x91\\x81[\\xb3\\xb4]|\\xf0\\x91(?:\\x81[\\xb6-\\xbf]|\\x82[\\x80-\\x82])|\\xf0\\x91(?:\\x82[\\xb0-\\xbf]|\\x83[\\x80-\\x8f])|\\xf0\\x91\\x83[\\xa9-\\xaf]|\\xf0\\x91(?:\\x83[\\xba-\\xbf]|\\x84[\\x80-\\x82])|\\xf0\\x91\\x84[\\xa7-\\xb5]|\\xf0\\x91\\x85[\\x80-\\x83]|\\xf0\\x91\\x85[\\x85\\x86]|\\xf0\\x91\\x85[\\x88-\\x8f]|\\xf0\\x91\\x85[\\xb3-\\xb5]|\\xf0\\x91(?:\\x85[\\xb7-\\xbf]|\\x86[\\x80-\\x82])|\\xf0\\x91(?:\\x86[\\xb3-\\xbf]|\\x87\\x80)|\\xf0\\x91\\x87[\\x85-\\x8f]|\\xf0\\x91\\x87\\x9b|\\xf0\\x91\\x87[\\x9d-\\xa0]|\\xf0\\x91\\x87[\\xb5-\\xbf]|\\xf0\\x91\\x88\\x92|\\xf0\\x91\\x88[\\xac-\\xbe]|\\xf0\\x91\\x89[\\x81-\\xbf]|\\xf0\\x91\\x8a\\x87|\\xf0\\x91\\x8a\\x89|\\xf0\\x91\\x8a\\x8e|\\xf0\\x91\\x8a\\x9e|\\xf0\\x91\\x8a[\\xa9-\\xaf]|\\xf0\\x91\\x8b[\\x9f-\\xaf]|\\xf0\\x91(?:\\x8b[\\xba-\\xbf]|\\x8c[\\x80-\\x84])|\\xf0\\x91\\x8c[\\x8d\\x8e]|\\xf0\\x91\\x8c[\\x91\\x92]|\\xf0\\x91\\x8c\\xa9|\\xf0\\x91\\x8c\\xb1|\\xf0\\x91\\x8c\\xb4|\\xf0\\x91\\x8c[\\xba-\\xbc]|\\xf0\\x91(?:\\x8c[\\xbe\\xbf]|\\x8d[\\x80-\\x8f])|\\xf0\\x91\\x8d[\\x91-\\x9c]|\\xf0\\x91(?:\\x8d[\\xa2-\\xbf]|[\\x8e\\x8f][\\x80-\\xbf])|\\xf0\\x91(?:\\x90[\\xb5-\\xbf]|\\x91[\\x80-\\x86])|\\xf0\\x91\\x91[\\x8b-\\x8f]|\\xf0\\x91\\x91[\\x9a-\\x9e]|\\xf0\\x91\\x91[\\xa2-\\xbf]|\\xf0\\x91(?:\\x92[\\xb0-\\xbf]|\\x93[\\x80-\\x83])|\\xf0\\x91\\x93\\x86|\\xf0\\x91\\x93[\\x88-\\x8f]|\\xf0\\x91(?:\\x93[\\x9a-\\xbf]|[\\x94\\x95][\\x80-\\xbf])|\\xf0\\x91(?:\\x96[\\xaf-\\xbf]|\\x97[\\x80-\\x97])|\\xf0\\x91\\x97[\\x9c-\\xbf]|\\xf0\\x91(?:\\x98[\\xb0-\\xbf]|\\x99[\\x80-\\x83])|\\xf0\\x91\\x99[\\x85-\\x8f]|\\xf0\\x91\\x99[\\x9a-\\xbf]|\\xf0\\x91\\x9a[\\xab-\\xb7]|\\xf0\\x91\\x9a[\\xb9-\\xbf]|\\xf0\\x91\\x9b[\\x8a-\\xbf]|\\xf0\\x91\\x9c[\\x9b-\\xaf]|\\xf0\\x91\\x9c[\\xbc-\\xbf]|\\xf0\\x91(?:\\x9d[\\x87-\\xbf]|[\\x9e\\x9f][\\x80-\\xbf])|\\xf0\\x91(?:\\xa0[\\xac-\\xbf]|\\xa1[\\x80-\\xbf]|\\xa2[\\x80-\\x9f])|\\xf0\\x91\\xa3[\\xb3-\\xbe]|\\xf0\\x91\\xa4[\\x87\\x88]|\\xf0\\x91\\xa4[\\x8a\\x8b]|\\xf0\\x91\\xa4\\x94|\\xf0\\x91\\xa4\\x97|\\xf0\\x91\\xa4[\\xb0-\\xbe]|\\xf0\\x91\\xa5\\x80|\\xf0\\x91\\xa5[\\x82-\\x8f]|\\xf0\\x91(?:\\xa5[\\x9a-\\xbf]|\\xa6[\\x80-\\x9f])|\\xf0\\x91\\xa6[\\xa8\\xa9]|\\xf0\\x91\\xa7[\\x91-\\xa0]|\\xf0\\x91\\xa7\\xa2|\\xf0\\x91\\xa7[\\xa4-\\xbf]|\\xf0\\x91\\xa8[\\x81-\\x8a]|\\xf0\\x91\\xa8[\\xb3-\\xb9]|\\xf0\\x91(?:\\xa8[\\xbb-\\xbf]|\\xa9[\\x80-\\x8f])|\\xf0\\x91\\xa9[\\x91-\\x9b]|\\xf0\\x91\\xaa[\\x8a-\\x9c]|\\xf0\\x91\\xaa[\\x9e-\\xaf]|\\xf0\\x91(?:\\xab[\\xb9-\\xbf]|[\\xac-\\xaf][\\x80-\\xbf])|\\xf0\\x91\\xb0\\x89|\\xf0\\x91\\xb0[\\xaf-\\xbf]|\\xf0\\x91\\xb1[\\x81-\\x8f]|\\xf0\\x91\\xb1[\\xad-\\xb1]|\\xf0\\x91(?:\\xb2[\\x90-\\xbf]|\\xb3[\\x80-\\xbf])|\\xf0\\x91\\xb4\\x87|\\xf0\\x91\\xb4\\x8a|\\xf0\\x91(?:\\xb4[\\xb1-\\xbf]|\\xb5[\\x80-\\x85])|\\xf0\\x91\\xb5[\\x87-\\x8f]|\\xf0\\x91\\xb5[\\x9a-\\x9f]|\\xf0\\x91\\xb5\\xa6|\\xf0\\x91\\xb5\\xa9|\\xf0\\x91\\xb6[\\x8a-\\x97]|\\xf0\\x91\\xb6[\\x99-\\x9f]|\\xf0\\x91(?:\\xb6[\\xaa-\\xbf]|[\\xb7-\\xba][\\x80-\\xbf]|\\xbb[\\x80-\\x9f])|\\xf0\\x91(?:\\xbb[\\xb3-\\xbf]|\\xbc[\\x80\\x81])|\\xf0\\x91\\xbc\\x83|\\xf0\\x91\\xbc\\x91|\\xf0\\x91(?:\\xbc[\\xb4-\\xbf]|\\xbd[\\x80-\\x8f])|\\xf0\\x91(?:\\xbd[\\x9a-\\xbf]|\\xbe[\\x80-\\xaf])|\\xf0\\x91\\xbe[\\xb1-\\xbf]|\\xf0\\x91\\xbf[\\x95-\\xbf]|\\xf0\\x92(?:\\x8e[\\x9a-\\xbf]|\\x8f[\\x80-\\xbf])|\\xf0\\x92\\x91[\\xaf-\\xbf]|\\xf0\\x92(?:\\x95[\\x84-\\xbf]|[\\x96-\\xbd][\\x80-\\xbf]|\\xbe[\\x80-\\x8f])|\\xf0\\x92\\xbf[\\xb1-\\xbf]|\\xf0\\x93(?:\\x90[\\xb0-\\xbf]|\\x91\\x80)|\\xf0(?:\\x93(?:[\\x92-\\xbf][\\x80-\\xbf]|\\x91[\\x87-\\xbf])|\\x94[\\x80-\\x8f][\\x80-\\xbf])|\\xf0(?:\\x94(?:[\\x9a-\\xbf][\\x80-\\xbf]|\\x99[\\x87-\\xbf])|\\x95[\\x80-\\xbf][\\x80-\\xbf]|\\x96[\\x80-\\x9f][\\x80-\\xbf])|\\xf0\\x96\\xa8[\\xb9-\\xbf]|\\xf0\\x96\\xa9\\x9f|\\xf0\\x96\\xa9[\\xaa-\\xaf]|\\xf0\\x96\\xaa\\xbf|\\xf0\\x96\\xab[\\x8a-\\x8f]|\\xf0\\x96\\xab[\\xae-\\xbf]|\\xf0\\x96\\xac[\\xb0-\\xbf]|\\xf0\\x96\\xad[\\x84-\\x8f]|\\xf0\\x96\\xad\\x9a|\\xf0\\x96\\xad\\xa2|\\xf0\\x96\\xad[\\xb8-\\xbc]|\\xf0\\x96(?:\\xae[\\x90-\\xbf]|[\\xaf-\\xb8][\\x80-\\xbf])|\\xf0\\x96(?:\\xba[\\x97-\\xbf]|\\xbb[\\x80-\\xbf])|\\xf0\\x96\\xbd[\\x8b-\\x8f]|\\xf0\\x96(?:\\xbd[\\x91-\\xbf]|\\xbe[\\x80-\\x92])|\\xf0\\x96(?:\\xbe[\\xa0-\\xbf]|\\xbf[\\x80-\\x9f])|\\xf0\\x96\\xbf\\xa2|\\xf0\\x96\\xbf[\\xa4-\\xbf]|\\xf0\\x98\\x9f[\\xb8-\\xbf]|\\xf0\\x98\\xb3[\\x96-\\xbf]|\\xf0(?:\\x98(?:[\\xb5-\\xbf][\\x80-\\xbf]|\\xb4[\\x89-\\xbf])|\\x99[\\x80-\\xbf][\\x80-\\xbf]|\\x9a(?:[\\x80-\\xbe][\\x80-\\xbf]|\\xbf[\\x80-\\xaf]))|\\xf0\\x9a\\xbf\\xb4|\\xf0\\x9a\\xbf\\xbc|\\xf0\\x9a\\xbf\\xbf|\\xf0\\x9b\\x84[\\xa3-\\xb1]|\\xf0\\x9b(?:\\x84[\\xb3-\\xbf]|\\x85[\\x80-\\x8f])|\\xf0\\x9b\\x85[\\x93\\x94]|\\xf0\\x9b\\x85[\\x96-\\xa3]|\\xf0\\x9b\\x85[\\xa8-\\xaf]|\\xf0\\x9b(?:\\x8b[\\xbc-\\xbf]|[\\x8c-\\xaf][\\x80-\\xbf])|\\xf0\\x9b\\xb1[\\xab-\\xaf]|\\xf0\\x9b\\xb1[\\xbd-\\xbf]|\\xf0\\x9b\\xb2[\\x89-\\x8f]|\\xf0(?:\\x9b(?:[\\xb3-\\xbf][\\x80-\\xbf]|\\xb2[\\x9a-\\xbf])|\\x9c[\\x80-\\xbf][\\x80-\\xbf]|\\x9d[\\x80-\\x8a][\\x80-\\xbf])|\\xf0\\x9d\\x8b[\\x94-\\x9f]|\\xf0\\x9d(?:\\x8b[\\xb4-\\xbf]|\\x8c[\\x80-\\xbf]|\\x8d[\\x80-\\x9f])|\\xf0\\x9d(?:\\x8d[\\xb9-\\xbf]|[\\x8e\\x8f][\\x80-\\xbf])|\\xf0\\x9d\\x91\\x95|\\xf0\\x9d\\x92\\x9d|\\xf0\\x9d\\x92[\\xa0\\xa1]|\\xf0\\x9d\\x92[\\xa3\\xa4]|\\xf0\\x9d\\x92[\\xa7\\xa8]|\\xf0\\x9d\\x92\\xad|\\xf0\\x9d\\x92\\xba|\\xf0\\x9d\\x92\\xbc|\\xf0\\x9d\\x93\\x84|\\xf0\\x9d\\x94\\x86|\\xf0\\x9d\\x94[\\x8b\\x8c]|\\xf0\\x9d\\x94\\x95|\\xf0\\x9d\\x94\\x9d|\\xf0\\x9d\\x94\\xba|\\xf0\\x9d\\x94\\xbf|\\xf0\\x9d\\x95\\x85|\\xf0\\x9d\\x95[\\x87-\\x89]|\\xf0\\x9d\\x95\\x91|\\xf0\\x9d\\x9a[\\xa6\\xa7]|\\xf0\\x9d\\x9b\\x81|\\xf0\\x9d\\x9b\\x9b|\\xf0\\x9d\\x9b\\xbb|\\xf0\\x9d\\x9c\\x95|\\xf0\\x9d\\x9c\\xb5|\\xf0\\x9d\\x9d\\x8f|\\xf0\\x9d\\x9d\\xaf|\\xf0\\x9d\\x9e\\x89|\\xf0\\x9d\\x9e\\xa9|\\xf0\\x9d\\x9f\\x83|\\xf0\\x9d\\x9f[\\x8c\\x8d]|\\xf0\\x9d(?:[\\xa0-\\xbb][\\x80-\\xbf])|\\xf0\\x9d\\xbc[\\x9f-\\xa4]|\\xf0(?:\\x9d(?:[\\xbd-\\xbf][\\x80-\\xbf]|\\xbc[\\xab-\\xbf])|\\x9e\\x80[\\x80-\\xaf])|\\xf0\\x9e(?:\\x81[\\xae-\\xbf]|[\\x82\\x83][\\x80-\\xbf])|\\xf0\\x9e\\x84[\\xad-\\xb6]|\\xf0\\x9e\\x84[\\xbe\\xbf]|\\xf0\\x9e\\x85[\\x8a-\\x8d]|\\xf0\\x9e(?:\\x85[\\x8f-\\xbf]|[\\x86-\\x89][\\x80-\\xbf]|\\x8a[\\x80-\\x8f])|\\xf0\\x9e\\x8a[\\xae-\\xbf]|\\xf0\\x9e\\x8b[\\xac-\\xaf]|\\xf0\\x9e(?:\\x8b[\\xba-\\xbf]|[\\x8c-\\x92][\\x80-\\xbf]|\\x93[\\x80-\\x8f])|\\xf0\\x9e\\x93[\\xac-\\xaf]|\\xf0\\x9e(?:\\x93[\\xba-\\xbf]|[\\x94-\\x9e][\\x80-\\xbf]|\\x9f[\\x80-\\x9f])|\\xf0\\x9e\\x9f\\xa7|\\xf0\\x9e\\x9f\\xac|\\xf0\\x9e\\x9f\\xaf|\\xf0\\x9e\\x9f\\xbf|\\xf0\\x9e\\xa3[\\x85\\x86]|\\xf0\\x9e\\xa3[\\x90-\\xbf]|\\xf0\\x9e\\xa5[\\x84-\\x8a]|\\xf0\\x9e\\xa5[\\x8c-\\x8f]|\\xf0\\x9e(?:\\xa5[\\x9a-\\xbf]|[\\xa6-\\xb0][\\x80-\\xbf]|\\xb1[\\x80-\\xb0])|\\xf0\\x9e\\xb2\\xac|\\xf0\\x9e\\xb2\\xb0|\\xf0\\x9e(?:\\xb2[\\xb5-\\xbf]|\\xb3[\\x80-\\xbf]|\\xb4\\x80)|\\xf0\\x9e\\xb4\\xae|\\xf0\\x9e(?:\\xb4[\\xbe\\xbf]|[\\xb5-\\xb7][\\x80-\\xbf])|\\xf0\\x9e\\xb8\\x84|\\xf0\\x9e\\xb8\\xa0|\\xf0\\x9e\\xb8\\xa3|\\xf0\\x9e\\xb8[\\xa5\\xa6]|\\xf0\\x9e\\xb8\\xa8|\\xf0\\x9e\\xb8\\xb3|\\xf0\\x9e\\xb8\\xb8|\\xf0\\x9e\\xb8\\xba|\\xf0\\x9e(?:\\xb8[\\xbc-\\xbf]|\\xb9[\\x80\\x81])|\\xf0\\x9e\\xb9[\\x83-\\x86]|\\xf0\\x9e\\xb9\\x88|\\xf0\\x9e\\xb9\\x8a|\\xf0\\x9e\\xb9\\x8c|\\xf0\\x9e\\xb9\\x90|\\xf0\\x9e\\xb9\\x93|\\xf0\\x9e\\xb9[\\x95\\x96]|\\xf0\\x9e\\xb9\\x98|\\xf0\\x9e\\xb9\\x9a|\\xf0\\x9e\\xb9\\x9c|\\xf0\\x9e\\xb9\\x9e|\\xf0\\x9e\\xb9\\xa0|\\xf0\\x9e\\xb9\\xa3|\\xf0\\x9e\\xb9[\\xa5\\xa6]|\\xf0\\x9e\\xb9\\xab|\\xf0\\x9e\\xb9\\xb3|\\xf0\\x9e\\xb9\\xb8|\\xf0\\x9e\\xb9\\xbd|\\xf0\\x9e\\xb9\\xbf|\\xf0\\x9e\\xba\\x8a|\\xf0\\x9e\\xba[\\x9c-\\xa0]|\\xf0\\x9e\\xba\\xa4|\\xf0\\x9e\\xba\\xaa|\\xf0(?:\\x9e(?:[\\xbb-\\xbf][\\x80-\\xbf]|\\xba[\\xbc-\\xbf])|\\x9f[\\x80-\\x83][\\x80-\\xbf])|\\xf0\\x9f(?:\\x84[\\x8d-\\xbf]|[\\x85-\\xae][\\x80-\\xbf]|\\xaf[\\x80-\\xaf])|\\xf0\\x9f(?:\\xaf[\\xba-\\xbf]|[\\xb0-\\xbf][\\x80-\\xbf])|\\xf0\\xaa\\x9b[\\xa0-\\xbf]|\\xf0\\xab\\x9c[\\xba-\\xbf]|\\xf0\\xab\\xa0[\\x9e\\x9f]|\\xf0\\xac\\xba[\\xa2-\\xaf]|\\xf0\\xae\\xaf[\\xa1-\\xaf]|\\xf0(?:\\xae(?:[\\xba-\\xbf][\\x80-\\xbf]|\\xb9[\\x9e-\\xbf])|\\xaf[\\x80-\\x9f][\\x80-\\xbf])|\\xf0\\xaf(?:\\xa8[\\x9e-\\xbf]|[\\xa9-\\xbf][\\x80-\\xbf])|\\xf0\\xb1\\x8d[\\x8b-\\x8f]|\\xf0(?:[\\xb3-\\xbf][\\x80-\\xbf][\\x80-\\xbf]|\\xb2(?:[\\x8f-\\xbf][\\x80-\\xbf]|\\x8e[\\xb0-\\xbf]))|[\\xf1-\\xf3][\\x80-\\xbf][\\x80-\\xbf][\\x80-\\xbf]|\\xf4[\\x80-\\x8f][\\x80-\\xbf][\\x80-\\xbf])+|(?:[\\x09-\\x0d]|\\x20|\\xc2\\xa0|\\xe1\\x9a\\x80|\\xe2\\x80[\\x80-\\x8a]|\\xe2\\x80\\xaf|\\xe2\\x81\\x9f|\\xe3\\x80\\x80)+(?!(?:[\\x00-\\x08]|[\\x0e-\\x1f]|[!-\\x7f]|\\xc2[\\x80-\\x9f]|\\xc2[\\xa1-\\xbf]|[\\xc3-\\xdf][\\x80-\\xbf]|\\xe0[\\xa0-\\xbf][\\x80-\\xbf]|\\xe1[\\x80-\\x99][\\x80-\\xbf]|\\xe1(?:\\x9a[\\x81-\\xbf]|[\\x9b-\\xbf][\\x80-\\xbf])|\\xe2\\x80[\\x8b-\\xae]|\\xe2(?:\\x80[\\xb0-\\xbf]|\\x81[\\x80-\\x9e])|\\xe2(?:\\x81[\\xa0-\\xbf]|[\\x82-\\xbf][\\x80-\\xbf])|\\xe3(?:[\\x81-\\xbf][\\x80-\\xbf]|\\x80[\\x81-\\xbf])|[\\xe4-\\xec][\\x80-\\xbf][\\x80-\\xbf]|\\xed[\\x80-\\x9f][\\x80-\\xbf]|[\\xee\\xef][\\x80-\\xbf][\\x80-\\xbf]|\\xf0[\\x90-\\xbf][\\x80-\\xbf][\\x80-\\xbf]|[\\xf1-\\xf3][\\x80-\\xbf][\\x80-\\xbf][\\x80-\\xbf]|\\xf4[\\x80-\\x8f][\\x80-\\xbf][\\x80-\\xbf]))|(?:[\\x09-\\x0d]|\\x20|\\xc2\\xa0|\\xe1\\x9a\\x80|\\xe2\\x80[\\x80-\\x8a]|\\xe2\\x80\\xaf|\\xe2\\x81\\x9f|\\xe3\\x80\\x80)+", +static const std::vector gpt2_regex = { + // //punc: \{p} and ascii puncs + L"[\U00000021-\U0000002F\U0000003A-\U00000040\\\U0000005B-\U00000060\U0000007B-\U0000007E\U000000A1-\U000000A1\U000000A7-\U000000A7\U000000AB-\U000000AB\U000000B6-\U000000B7\U000000BB-\U000000BB\U000000BF-\U000000BF\U0000037E-\U0000037E\U00000387-\U00000387\U0000055A-\U0000055F\U00000589-\U0000058A\U000005BE-\U000005BE\U000005C0-\U000005C0\U000005C3-\U000005C3\U000005C6-\U000005C6\U000005F3-\U000005F4\U00000609-\U0000060A\U0000060C-\U0000060D\U0000061B-\U0000061B\U0000061E-\U0000061F\U0000066A-\U0000066D\U000006D4-\U000006D4\U00000700-\U0000070D\U000007F7-\U000007F9\U00000830-\U0000083E\U0000085E-\U0000085E\U00000964-\U00000965\U00000970-\U00000970\U000009FD-\U000009FD\U00000A76-\U00000A76\U00000AF0-\U00000AF0\U00000C77-\U00000C77\U00000C84-\U00000C84\U00000DF4-\U00000DF4\U00000E4F-\U00000E4F\U00000E5A-\U00000E5B\U00000F04-\U00000F12\U00000F14-\U00000F14\U00000F3A-\U00000F3D\U00000F85-\U00000F85\U00000FD0-\U00000FD4\U00000FD9-\U00000FDA\U0000104A-\U0000104F\U000010FB-\U000010FB\U00001360-\U00001368\U00001400-\U00001400\U0000166E-\U0000166E\U0000169B-\U0000169C\U000016EB-\U000016ED\U00001735-\U00001736\U000017D4-\U000017D6\U000017D8-\U000017DA\U00001800-\U0000180A\U00001944-\U00001945\U00001A1E-\U00001A1F\U00001AA0-\U00001AA6\U00001AA8-\U00001AAD\U00001B5A-\U00001B60\U00001BFC-\U00001BFF\U00001C3B-\U00001C3F\U00001C7E-\U00001C7F\U00001CC0-\U00001CC7\U00001CD3-\U00001CD3\U00002010-\U00002027\U00002030-\U00002043\U00002045-\U00002051\U00002053-\U0000205E\U0000207D-\U0000207E\U0000208D-\U0000208E\U00002308-\U0000230B\U00002329-\U0000232A\U00002768-\U00002775\U000027C5-\U000027C6\U000027E6-\U000027EF\U00002983-\U00002998\U000029D8-\U000029DB\U000029FC-\U000029FD\U00002CF9-\U00002CFC\U00002CFE-\U00002CFF\U00002D70-\U00002D70\U00002E00-\U00002E2E\U00002E30-\U00002E4F\U00002E52-\U00002E52\U00003001-\U00003003\U00003008-\U00003011\U00003014-\U0000301F\U00003030-\U00003030\U0000303D-\U0000303D\U000030A0-\U000030A0\U000030FB-\U000030FB\U0000A4FE-\U0000A4FF\U0000A60D-\U0000A60F\U0000A673-\U0000A673\U0000A67E-\U0000A67E\U0000A6F2-\U0000A6F7\U0000A874-\U0000A877\U0000A8CE-\U0000A8CF\U0000A8F8-\U0000A8FA\U0000A8FC-\U0000A8FC\U0000A92E-\U0000A92F\U0000A95F-\U0000A95F\U0000A9C1-\U0000A9CD\U0000A9DE-\U0000A9DF\U0000AA5C-\U0000AA5F\U0000AADE-\U0000AADF\U0000AAF0-\U0000AAF1\U0000ABEB-\U0000ABEB\U0000FD3E-\U0000FD3F\U0000FE10-\U0000FE19\U0000FE30-\U0000FE52\U0000FE54-\U0000FE61\U0000FE63-\U0000FE63\U0000FE68-\U0000FE68\U0000FE6A-\U0000FE6B\U0000FF01-\U0000FF03\U0000FF05-\U0000FF0A\U0000FF0C-\U0000FF0F\U0000FF1A-\U0000FF1B\U0000FF1F-\U0000FF20\U0000FF3B-\U0000FF3D\U0000FF3F-\U0000FF3F\U0000FF5B-\U0000FF5B\U0000FF5D-\U0000FF5D\U0000FF5F-\U0000FF65\U00010100-\U00010102\U0001039F-\U0001039F\U000103D0-\U000103D0\U0001056F-\U0001056F\U00010857-\U00010857\U0001091F-\U0001091F\U0001093F-\U0001093F\U00010A50-\U00010A58\U00010A7F-\U00010A7F\U00010AF0-\U00010AF6\U00010B39-\U00010B3F\U00010B99-\U00010B9C\U00010EAD-\U00010EAD\U00010F55-\U00010F59\U00011047-\U0001104D\U000110BB-\U000110BC\U000110BE-\U000110C1\U00011140-\U00011143\U00011174-\U00011175\U000111C5-\U000111C8\U000111CD-\U000111CD\U000111DB-\U000111DB\U000111DD-\U000111DF\U00011238-\U0001123D\U000112A9-\U000112A9\U0001144B-\U0001144F\U0001145A-\U0001145B\U0001145D-\U0001145D\U000114C6-\U000114C6\U000115C1-\U000115D7\U00011641-\U00011643\U00011660-\U0001166C\U0001173C-\U0001173E\U0001183B-\U0001183B\U00011944-\U00011946\U000119E2-\U000119E2\U00011A3F-\U00011A46\U00011A9A-\U00011A9C\U00011A9E-\U00011AA2\U00011C41-\U00011C45\U00011C70-\U00011C71\U00011EF7-\U00011EF8\U00011FFF-\U00011FFF\U00012470-\U00012474\U00016A6E-\U00016A6F\U00016AF5-\U00016AF5\U00016B37-\U00016B3B\U00016B44-\U00016B44\U00016E97-\U00016E9A\U00016FE2-\U00016FE2\U0001BC9F-\U0001BC9F\U0001DA87-\U0001DA8B\U0001E95E-\U0001E95F]+", + // //'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S) + L"'s|'t|'re|'ve|'m|'ll|'d| ?[\U00000041-\U0000005A\U00000061-\U0000007A\U000000AA-\U000000AA\U000000B5-\U000000B5\U000000BA-\U000000BA\U000000C0-\U000000D6\U000000D8-\U000000F6\U000000F8-\U000002C1\U000002C6-\U000002D1\U000002E0-\U000002E4\U000002EC-\U000002EC\U000002EE-\U000002EE\U00000370-\U00000374\U00000376-\U00000377\U0000037A-\U0000037D\U0000037F-\U0000037F\U00000386-\U00000386\U00000388-\U0000038A\U0000038C-\U0000038C\U0000038E-\U000003A1\U000003A3-\U000003F5\U000003F7-\U00000481\U0000048A-\U0000052F\U00000531-\U00000556\U00000559-\U00000559\U00000560-\U00000588\U000005D0-\U000005EA\U000005EF-\U000005F2\U00000620-\U0000064A\U0000066E-\U0000066F\U00000671-\U000006D3\U000006D5-\U000006D5\U000006E5-\U000006E6\U000006EE-\U000006EF\U000006FA-\U000006FC\U000006FF-\U000006FF\U00000710-\U00000710\U00000712-\U0000072F\U0000074D-\U000007A5\U000007B1-\U000007B1\U000007CA-\U000007EA\U000007F4-\U000007F5\U000007FA-\U000007FA\U00000800-\U00000815\U0000081A-\U0000081A\U00000824-\U00000824\U00000828-\U00000828\U00000840-\U00000858\U00000860-\U0000086A\U000008A0-\U000008B4\U000008B6-\U000008C7\U00000904-\U00000939\U0000093D-\U0000093D\U00000950-\U00000950\U00000958-\U00000961\U00000971-\U00000980\U00000985-\U0000098C\U0000098F-\U00000990\U00000993-\U000009A8\U000009AA-\U000009B0\U000009B2-\U000009B2\U000009B6-\U000009B9\U000009BD-\U000009BD\U000009CE-\U000009CE\U000009DC-\U000009DD\U000009DF-\U000009E1\U000009F0-\U000009F1\U000009FC-\U000009FC\U00000A05-\U00000A0A\U00000A0F-\U00000A10\U00000A13-\U00000A28\U00000A2A-\U00000A30\U00000A32-\U00000A33\U00000A35-\U00000A36\U00000A38-\U00000A39\U00000A59-\U00000A5C\U00000A5E-\U00000A5E\U00000A72-\U00000A74\U00000A85-\U00000A8D\U00000A8F-\U00000A91\U00000A93-\U00000AA8\U00000AAA-\U00000AB0\U00000AB2-\U00000AB3\U00000AB5-\U00000AB9\U00000ABD-\U00000ABD\U00000AD0-\U00000AD0\U00000AE0-\U00000AE1\U00000AF9-\U00000AF9\U00000B05-\U00000B0C\U00000B0F-\U00000B10\U00000B13-\U00000B28\U00000B2A-\U00000B30\U00000B32-\U00000B33\U00000B35-\U00000B39\U00000B3D-\U00000B3D\U00000B5C-\U00000B5D\U00000B5F-\U00000B61\U00000B71-\U00000B71\U00000B83-\U00000B83\U00000B85-\U00000B8A\U00000B8E-\U00000B90\U00000B92-\U00000B95\U00000B99-\U00000B9A\U00000B9C-\U00000B9C\U00000B9E-\U00000B9F\U00000BA3-\U00000BA4\U00000BA8-\U00000BAA\U00000BAE-\U00000BB9\U00000BD0-\U00000BD0\U00000C05-\U00000C0C\U00000C0E-\U00000C10\U00000C12-\U00000C28\U00000C2A-\U00000C39\U00000C3D-\U00000C3D\U00000C58-\U00000C5A\U00000C60-\U00000C61\U00000C80-\U00000C80\U00000C85-\U00000C8C\U00000C8E-\U00000C90\U00000C92-\U00000CA8\U00000CAA-\U00000CB3\U00000CB5-\U00000CB9\U00000CBD-\U00000CBD\U00000CDE-\U00000CDE\U00000CE0-\U00000CE1\U00000CF1-\U00000CF2\U00000D04-\U00000D0C\U00000D0E-\U00000D10\U00000D12-\U00000D3A\U00000D3D-\U00000D3D\U00000D4E-\U00000D4E\U00000D54-\U00000D56\U00000D5F-\U00000D61\U00000D7A-\U00000D7F\U00000D85-\U00000D96\U00000D9A-\U00000DB1\U00000DB3-\U00000DBB\U00000DBD-\U00000DBD\U00000DC0-\U00000DC6\U00000E01-\U00000E30\U00000E32-\U00000E33\U00000E40-\U00000E46\U00000E81-\U00000E82\U00000E84-\U00000E84\U00000E86-\U00000E8A\U00000E8C-\U00000EA3\U00000EA5-\U00000EA5\U00000EA7-\U00000EB0\U00000EB2-\U00000EB3\U00000EBD-\U00000EBD\U00000EC0-\U00000EC4\U00000EC6-\U00000EC6\U00000EDC-\U00000EDF\U00000F00-\U00000F00\U00000F40-\U00000F47\U00000F49-\U00000F6C\U00000F88-\U00000F8C\U00001000-\U0000102A\U0000103F-\U0000103F\U00001050-\U00001055\U0000105A-\U0000105D\U00001061-\U00001061\U00001065-\U00001066\U0000106E-\U00001070\U00001075-\U00001081\U0000108E-\U0000108E\U000010A0-\U000010C5\U000010C7-\U000010C7\U000010CD-\U000010CD\U000010D0-\U000010FA\U000010FC-\U00001248\U0000124A-\U0000124D\U00001250-\U00001256\U00001258-\U00001258\U0000125A-\U0000125D\U00001260-\U00001288\U0000128A-\U0000128D\U00001290-\U000012B0\U000012B2-\U000012B5\U000012B8-\U000012BE\U000012C0-\U000012C0\U000012C2-\U000012C5\U000012C8-\U000012D6\U000012D8-\U00001310\U00001312-\U00001315\U00001318-\U0000135A\U00001380-\U0000138F\U000013A0-\U000013F5\U000013F8-\U000013FD\U00001401-\U0000166C\U0000166F-\U0000167F\U00001681-\U0000169A\U000016A0-\U000016EA\U000016F1-\U000016F8\U00001700-\U0000170C\U0000170E-\U00001711\U00001720-\U00001731\U00001740-\U00001751\U00001760-\U0000176C\U0000176E-\U00001770\U00001780-\U000017B3\U000017D7-\U000017D7\U000017DC-\U000017DC\U00001820-\U00001878\U00001880-\U00001884\U00001887-\U000018A8\U000018AA-\U000018AA\U000018B0-\U000018F5\U00001900-\U0000191E\U00001950-\U0000196D\U00001970-\U00001974\U00001980-\U000019AB\U000019B0-\U000019C9\U00001A00-\U00001A16\U00001A20-\U00001A54\U00001AA7-\U00001AA7\U00001B05-\U00001B33\U00001B45-\U00001B4B\U00001B83-\U00001BA0\U00001BAE-\U00001BAF\U00001BBA-\U00001BE5\U00001C00-\U00001C23\U00001C4D-\U00001C4F\U00001C5A-\U00001C7D\U00001C80-\U00001C88\U00001C90-\U00001CBA\U00001CBD-\U00001CBF\U00001CE9-\U00001CEC\U00001CEE-\U00001CF3\U00001CF5-\U00001CF6\U00001CFA-\U00001CFA\U00001D00-\U00001DBF\U00001E00-\U00001F15\U00001F18-\U00001F1D\U00001F20-\U00001F45\U00001F48-\U00001F4D\U00001F50-\U00001F57\U00001F59-\U00001F59\U00001F5B-\U00001F5B\U00001F5D-\U00001F5D\U00001F5F-\U00001F7D\U00001F80-\U00001FB4\U00001FB6-\U00001FBC\U00001FBE-\U00001FBE\U00001FC2-\U00001FC4\U00001FC6-\U00001FCC\U00001FD0-\U00001FD3\U00001FD6-\U00001FDB\U00001FE0-\U00001FEC\U00001FF2-\U00001FF4\U00001FF6-\U00001FFC\U00002071-\U00002071\U0000207F-\U0000207F\U00002090-\U0000209C\U00002102-\U00002102\U00002107-\U00002107\U0000210A-\U00002113\U00002115-\U00002115\U00002119-\U0000211D\U00002124-\U00002124\U00002126-\U00002126\U00002128-\U00002128\U0000212A-\U0000212D\U0000212F-\U00002139\U0000213C-\U0000213F\U00002145-\U00002149\U0000214E-\U0000214E\U00002183-\U00002184\U00002C00-\U00002C2E\U00002C30-\U00002C5E\U00002C60-\U00002CE4\U00002CEB-\U00002CEE\U00002CF2-\U00002CF3\U00002D00-\U00002D25\U00002D27-\U00002D27\U00002D2D-\U00002D2D\U00002D30-\U00002D67\U00002D6F-\U00002D6F\U00002D80-\U00002D96\U00002DA0-\U00002DA6\U00002DA8-\U00002DAE\U00002DB0-\U00002DB6\U00002DB8-\U00002DBE\U00002DC0-\U00002DC6\U00002DC8-\U00002DCE\U00002DD0-\U00002DD6\U00002DD8-\U00002DDE\U00002E2F-\U00002E2F\U00003005-\U00003006\U00003031-\U00003035\U0000303B-\U0000303C\U00003041-\U00003096\U0000309D-\U0000309F\U000030A1-\U000030FA\U000030FC-\U000030FF\U00003105-\U0000312F\U00003131-\U0000318E\U000031A0-\U000031BF\U000031F0-\U000031FF\U00003400-\U00004DBF\U00004E00-\U00009FFC\U0000A000-\U0000A48C\U0000A4D0-\U0000A4FD\U0000A500-\U0000A60C\U0000A610-\U0000A61F\U0000A62A-\U0000A62B\U0000A640-\U0000A66E\U0000A67F-\U0000A69D\U0000A6A0-\U0000A6E5\U0000A717-\U0000A71F\U0000A722-\U0000A788\U0000A78B-\U0000A7BF\U0000A7C2-\U0000A7CA\U0000A7F5-\U0000A801\U0000A803-\U0000A805\U0000A807-\U0000A80A\U0000A80C-\U0000A822\U0000A840-\U0000A873\U0000A882-\U0000A8B3\U0000A8F2-\U0000A8F7\U0000A8FB-\U0000A8FB\U0000A8FD-\U0000A8FE\U0000A90A-\U0000A925\U0000A930-\U0000A946\U0000A960-\U0000A97C\U0000A984-\U0000A9B2\U0000A9CF-\U0000A9CF\U0000A9E0-\U0000A9E4\U0000A9E6-\U0000A9EF\U0000A9FA-\U0000A9FE\U0000AA00-\U0000AA28\U0000AA40-\U0000AA42\U0000AA44-\U0000AA4B\U0000AA60-\U0000AA76\U0000AA7A-\U0000AA7A\U0000AA7E-\U0000AAAF\U0000AAB1-\U0000AAB1\U0000AAB5-\U0000AAB6\U0000AAB9-\U0000AABD\U0000AAC0-\U0000AAC0\U0000AAC2-\U0000AAC2\U0000AADB-\U0000AADD\U0000AAE0-\U0000AAEA\U0000AAF2-\U0000AAF4\U0000AB01-\U0000AB06\U0000AB09-\U0000AB0E\U0000AB11-\U0000AB16\U0000AB20-\U0000AB26\U0000AB28-\U0000AB2E\U0000AB30-\U0000AB5A\U0000AB5C-\U0000AB69\U0000AB70-\U0000ABE2\U0000AC00-\U0000D7A3\U0000D7B0-\U0000D7C6\U0000D7CB-\U0000D7FB\U0000F900-\U0000FA6D\U0000FA70-\U0000FAD9\U0000FB00-\U0000FB06\U0000FB13-\U0000FB17\U0000FB1D-\U0000FB1D\U0000FB1F-\U0000FB28\U0000FB2A-\U0000FB36\U0000FB38-\U0000FB3C\U0000FB3E-\U0000FB3E\U0000FB40-\U0000FB41\U0000FB43-\U0000FB44\U0000FB46-\U0000FBB1\U0000FBD3-\U0000FD3D\U0000FD50-\U0000FD8F\U0000FD92-\U0000FDC7\U0000FDF0-\U0000FDFB\U0000FE70-\U0000FE74\U0000FE76-\U0000FEFC\U0000FF21-\U0000FF3A\U0000FF41-\U0000FF5A\U0000FF66-\U0000FFBE\U0000FFC2-\U0000FFC7\U0000FFCA-\U0000FFCF\U0000FFD2-\U0000FFD7\U0000FFDA-\U0000FFDC\U00010000-\U0001000B\U0001000D-\U00010026\U00010028-\U0001003A\U0001003C-\U0001003D\U0001003F-\U0001004D\U00010050-\U0001005D\U00010080-\U000100FA\U00010280-\U0001029C\U000102A0-\U000102D0\U00010300-\U0001031F\U0001032D-\U00010340\U00010342-\U00010349\U00010350-\U00010375\U00010380-\U0001039D\U000103A0-\U000103C3\U000103C8-\U000103CF\U00010400-\U0001049D\U000104B0-\U000104D3\U000104D8-\U000104FB\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808-\U00010808\U0001080A-\U00010835\U00010837-\U00010838\U0001083C-\U0001083C\U0001083F-\U00010855\U00010860-\U00010876\U00010880-\U0001089E\U000108E0-\U000108F2\U000108F4-\U000108F5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109B7\U000109BE-\U000109BF\U00010A00-\U00010A00\U00010A10-\U00010A13\U00010A15-\U00010A17\U00010A19-\U00010A35\U00010A60-\U00010A7C\U00010A80-\U00010A9C\U00010AC0-\U00010AC7\U00010AC9-\U00010AE4\U00010B00-\U00010B35\U00010B40-\U00010B55\U00010B60-\U00010B72\U00010B80-\U00010B91\U00010C00-\U00010C48\U00010C80-\U00010CB2\U00010CC0-\U00010CF2\U00010D00-\U00010D23\U00010E80-\U00010EA9\U00010EB0-\U00010EB1\U00010F00-\U00010F1C\U00010F27-\U00010F27\U00010F30-\U00010F45\U00010FB0-\U00010FC4\U00010FE0-\U00010FF6\U00011003-\U00011037\U00011083-\U000110AF\U000110D0-\U000110E8\U00011103-\U00011126\U00011144-\U00011144\U00011147-\U00011147\U00011150-\U00011172\U00011176-\U00011176\U00011183-\U000111B2\U000111C1-\U000111C4\U000111DA-\U000111DA\U000111DC-\U000111DC\U00011200-\U00011211\U00011213-\U0001122B\U00011280-\U00011286\U00011288-\U00011288\U0001128A-\U0001128D\U0001128F-\U0001129D\U0001129F-\U000112A8\U000112B0-\U000112DE\U00011305-\U0001130C\U0001130F-\U00011310\U00011313-\U00011328\U0001132A-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133D-\U0001133D\U00011350-\U00011350\U0001135D-\U00011361\U00011400-\U00011434\U00011447-\U0001144A\U0001145F-\U00011461\U00011480-\U000114AF\U000114C4-\U000114C5\U000114C7-\U000114C7\U00011580-\U000115AE\U000115D8-\U000115DB\U00011600-\U0001162F\U00011644-\U00011644\U00011680-\U000116AA\U000116B8-\U000116B8\U00011700-\U0001171A\U00011800-\U0001182B\U000118A0-\U000118DF\U000118FF-\U00011906\U00011909-\U00011909\U0001190C-\U00011913\U00011915-\U00011916\U00011918-\U0001192F\U0001193F-\U0001193F\U00011941-\U00011941\U000119A0-\U000119A7\U000119AA-\U000119D0\U000119E1-\U000119E1\U000119E3-\U000119E3\U00011A00-\U00011A00\U00011A0B-\U00011A32\U00011A3A-\U00011A3A\U00011A50-\U00011A50\U00011A5C-\U00011A89\U00011A9D-\U00011A9D\U00011AC0-\U00011AF8\U00011C00-\U00011C08\U00011C0A-\U00011C2E\U00011C40-\U00011C40\U00011C72-\U00011C8F\U00011D00-\U00011D06\U00011D08-\U00011D09\U00011D0B-\U00011D30\U00011D46-\U00011D46\U00011D60-\U00011D65\U00011D67-\U00011D68\U00011D6A-\U00011D89\U00011D98-\U00011D98\U00011EE0-\U00011EF2\U00011FB0-\U00011FB0\U00012000-\U00012399\U00012480-\U00012543\U00013000-\U0001342E\U00014400-\U00014646\U00016800-\U00016A38\U00016A40-\U00016A5E\U00016AD0-\U00016AED\U00016B00-\U00016B2F\U00016B40-\U00016B43\U00016B63-\U00016B77\U00016B7D-\U00016B8F\U00016E40-\U00016E7F\U00016F00-\U00016F4A\U00016F50-\U00016F50\U00016F93-\U00016F9F\U00016FE0-\U00016FE1\U00016FE3-\U00016FE3\U00017000-\U000187F7\U00018800-\U00018CD5\U00018D00-\U00018D08\U0001B000-\U0001B11E\U0001B150-\U0001B152\U0001B164-\U0001B167\U0001B170-\U0001B2FB\U0001BC00-\U0001BC6A\U0001BC70-\U0001BC7C\U0001BC80-\U0001BC88\U0001BC90-\U0001BC99\U0001D400-\U0001D454\U0001D456-\U0001D49C\U0001D49E-\U0001D49F\U0001D4A2-\U0001D4A2\U0001D4A5-\U0001D4A6\U0001D4A9-\U0001D4AC\U0001D4AE-\U0001D4B9\U0001D4BB-\U0001D4BB\U0001D4BD-\U0001D4C3\U0001D4C5-\U0001D505\U0001D507-\U0001D50A\U0001D50D-\U0001D514\U0001D516-\U0001D51C\U0001D51E-\U0001D539\U0001D53B-\U0001D53E\U0001D540-\U0001D544\U0001D546-\U0001D546\U0001D54A-\U0001D550\U0001D552-\U0001D6A5\U0001D6A8-\U0001D6C0\U0001D6C2-\U0001D6DA\U0001D6DC-\U0001D6FA\U0001D6FC-\U0001D714\U0001D716-\U0001D734\U0001D736-\U0001D74E\U0001D750-\U0001D76E\U0001D770-\U0001D788\U0001D78A-\U0001D7A8\U0001D7AA-\U0001D7C2\U0001D7C4-\U0001D7CB\U0001E100-\U0001E12C\U0001E137-\U0001E13D\U0001E14E-\U0001E14E\U0001E2C0-\U0001E2EB\U0001E800-\U0001E8C4\U0001E900-\U0001E943\U0001E94B-\U0001E94B\U0001EE00-\U0001EE03\U0001EE05-\U0001EE1F\U0001EE21-\U0001EE22\U0001EE24-\U0001EE24\U0001EE27-\U0001EE27\U0001EE29-\U0001EE32\U0001EE34-\U0001EE37\U0001EE39-\U0001EE39\U0001EE3B-\U0001EE3B\U0001EE42-\U0001EE42\U0001EE47-\U0001EE47\U0001EE49-\U0001EE49\U0001EE4B-\U0001EE4B\U0001EE4D-\U0001EE4F\U0001EE51-\U0001EE52\U0001EE54-\U0001EE54\U0001EE57-\U0001EE57\U0001EE59-\U0001EE59\U0001EE5B-\U0001EE5B\U0001EE5D-\U0001EE5D\U0001EE5F-\U0001EE5F\U0001EE61-\U0001EE62\U0001EE64-\U0001EE64\U0001EE67-\U0001EE6A\U0001EE6C-\U0001EE72\U0001EE74-\U0001EE77\U0001EE79-\U0001EE7C\U0001EE7E-\U0001EE7E\U0001EE80-\U0001EE89\U0001EE8B-\U0001EE9B\U0001EEA1-\U0001EEA3\U0001EEA5-\U0001EEA9\U0001EEAB-\U0001EEBB\U00020000-\U0002A6DD\U0002A700-\U0002B734\U0002B740-\U0002B81D\U0002B820-\U0002CEA1\U0002CEB0-\U0002EBE0\U0002F800-\U0002FA1D\U00030000-\U0003134A]+| ?[\U00000030-\U00000039\U000000B2-\U000000B3\U000000B9-\U000000B9\U00000660-\U00000669\U000006F0-\U000006F9\U000007C0-\U000007C9\U00000966-\U0000096F\U000009E6-\U000009EF\U00000A66-\U00000A6F\U00000AE6-\U00000AEF\U00000B66-\U00000B6F\U00000BE6-\U00000BEF\U00000C66-\U00000C6F\U00000CE6-\U00000CEF\U00000D66-\U00000D6F\U00000DE6-\U00000DEF\U00000E50-\U00000E59\U00000ED0-\U00000ED9\U00000F20-\U00000F29\U00001040-\U00001049\U00001090-\U00001099\U00001369-\U00001371\U000017E0-\U000017E9\U00001810-\U00001819\U00001946-\U0000194F\U000019D0-\U000019DA\U00001A80-\U00001A89\U00001A90-\U00001A99\U00001B50-\U00001B59\U00001BB0-\U00001BB9\U00001C40-\U00001C49\U00001C50-\U00001C59\U00002070-\U00002070\U00002074-\U00002079\U00002080-\U00002089\U00002460-\U00002468\U00002474-\U0000247C\U00002488-\U00002490\U000024EA-\U000024EA\U000024F5-\U000024FD\U000024FF-\U000024FF\U00002776-\U0000277E\U00002780-\U00002788\U0000278A-\U00002792\U0000A620-\U0000A629\U0000A8D0-\U0000A8D9\U0000A900-\U0000A909\U0000A9D0-\U0000A9D9\U0000A9F0-\U0000A9F9\U0000AA50-\U0000AA59\U0000ABF0-\U0000ABF9\U0000FF10-\U0000FF19\U000104A0-\U000104A9\U00010A40-\U00010A43\U00010D30-\U00010D39\U00010E60-\U00010E68\U00011052-\U0001105A\U00011066-\U0001106F\U000110F0-\U000110F9\U00011136-\U0001113F\U000111D0-\U000111D9\U000112F0-\U000112F9\U00011450-\U00011459\U000114D0-\U000114D9\U00011650-\U00011659\U000116C0-\U000116C9\U00011730-\U00011739\U000118E0-\U000118E9\U00011950-\U00011959\U00011C50-\U00011C59\U00011D50-\U00011D59\U00011DA0-\U00011DA9\U00016A60-\U00016A69\U00016B50-\U00016B59\U0001D7CE-\U0001D7FF\U0001E140-\U0001E149\U0001E2F0-\U0001E2F9\U0001E950-\U0001E959\U0001F100-\U0001F10A\U0001FBF0-\U0001FBF9]+| ?[^\\s\U00000041-\U0000005A\U00000061-\U0000007A\U000000AA-\U000000AA\U000000B5-\U000000B5\U000000BA-\U000000BA\U000000C0-\U000000D6\U000000D8-\U000000F6\U000000F8-\U000002C1\U000002C6-\U000002D1\U000002E0-\U000002E4\U000002EC-\U000002EC\U000002EE-\U000002EE\U00000370-\U00000374\U00000376-\U00000377\U0000037A-\U0000037D\U0000037F-\U0000037F\U00000386-\U00000386\U00000388-\U0000038A\U0000038C-\U0000038C\U0000038E-\U000003A1\U000003A3-\U000003F5\U000003F7-\U00000481\U0000048A-\U0000052F\U00000531-\U00000556\U00000559-\U00000559\U00000560-\U00000588\U000005D0-\U000005EA\U000005EF-\U000005F2\U00000620-\U0000064A\U0000066E-\U0000066F\U00000671-\U000006D3\U000006D5-\U000006D5\U000006E5-\U000006E6\U000006EE-\U000006EF\U000006FA-\U000006FC\U000006FF-\U000006FF\U00000710-\U00000710\U00000712-\U0000072F\U0000074D-\U000007A5\U000007B1-\U000007B1\U000007CA-\U000007EA\U000007F4-\U000007F5\U000007FA-\U000007FA\U00000800-\U00000815\U0000081A-\U0000081A\U00000824-\U00000824\U00000828-\U00000828\U00000840-\U00000858\U00000860-\U0000086A\U000008A0-\U000008B4\U000008B6-\U000008C7\U00000904-\U00000939\U0000093D-\U0000093D\U00000950-\U00000950\U00000958-\U00000961\U00000971-\U00000980\U00000985-\U0000098C\U0000098F-\U00000990\U00000993-\U000009A8\U000009AA-\U000009B0\U000009B2-\U000009B2\U000009B6-\U000009B9\U000009BD-\U000009BD\U000009CE-\U000009CE\U000009DC-\U000009DD\U000009DF-\U000009E1\U000009F0-\U000009F1\U000009FC-\U000009FC\U00000A05-\U00000A0A\U00000A0F-\U00000A10\U00000A13-\U00000A28\U00000A2A-\U00000A30\U00000A32-\U00000A33\U00000A35-\U00000A36\U00000A38-\U00000A39\U00000A59-\U00000A5C\U00000A5E-\U00000A5E\U00000A72-\U00000A74\U00000A85-\U00000A8D\U00000A8F-\U00000A91\U00000A93-\U00000AA8\U00000AAA-\U00000AB0\U00000AB2-\U00000AB3\U00000AB5-\U00000AB9\U00000ABD-\U00000ABD\U00000AD0-\U00000AD0\U00000AE0-\U00000AE1\U00000AF9-\U00000AF9\U00000B05-\U00000B0C\U00000B0F-\U00000B10\U00000B13-\U00000B28\U00000B2A-\U00000B30\U00000B32-\U00000B33\U00000B35-\U00000B39\U00000B3D-\U00000B3D\U00000B5C-\U00000B5D\U00000B5F-\U00000B61\U00000B71-\U00000B71\U00000B83-\U00000B83\U00000B85-\U00000B8A\U00000B8E-\U00000B90\U00000B92-\U00000B95\U00000B99-\U00000B9A\U00000B9C-\U00000B9C\U00000B9E-\U00000B9F\U00000BA3-\U00000BA4\U00000BA8-\U00000BAA\U00000BAE-\U00000BB9\U00000BD0-\U00000BD0\U00000C05-\U00000C0C\U00000C0E-\U00000C10\U00000C12-\U00000C28\U00000C2A-\U00000C39\U00000C3D-\U00000C3D\U00000C58-\U00000C5A\U00000C60-\U00000C61\U00000C80-\U00000C80\U00000C85-\U00000C8C\U00000C8E-\U00000C90\U00000C92-\U00000CA8\U00000CAA-\U00000CB3\U00000CB5-\U00000CB9\U00000CBD-\U00000CBD\U00000CDE-\U00000CDE\U00000CE0-\U00000CE1\U00000CF1-\U00000CF2\U00000D04-\U00000D0C\U00000D0E-\U00000D10\U00000D12-\U00000D3A\U00000D3D-\U00000D3D\U00000D4E-\U00000D4E\U00000D54-\U00000D56\U00000D5F-\U00000D61\U00000D7A-\U00000D7F\U00000D85-\U00000D96\U00000D9A-\U00000DB1\U00000DB3-\U00000DBB\U00000DBD-\U00000DBD\U00000DC0-\U00000DC6\U00000E01-\U00000E30\U00000E32-\U00000E33\U00000E40-\U00000E46\U00000E81-\U00000E82\U00000E84-\U00000E84\U00000E86-\U00000E8A\U00000E8C-\U00000EA3\U00000EA5-\U00000EA5\U00000EA7-\U00000EB0\U00000EB2-\U00000EB3\U00000EBD-\U00000EBD\U00000EC0-\U00000EC4\U00000EC6-\U00000EC6\U00000EDC-\U00000EDF\U00000F00-\U00000F00\U00000F40-\U00000F47\U00000F49-\U00000F6C\U00000F88-\U00000F8C\U00001000-\U0000102A\U0000103F-\U0000103F\U00001050-\U00001055\U0000105A-\U0000105D\U00001061-\U00001061\U00001065-\U00001066\U0000106E-\U00001070\U00001075-\U00001081\U0000108E-\U0000108E\U000010A0-\U000010C5\U000010C7-\U000010C7\U000010CD-\U000010CD\U000010D0-\U000010FA\U000010FC-\U00001248\U0000124A-\U0000124D\U00001250-\U00001256\U00001258-\U00001258\U0000125A-\U0000125D\U00001260-\U00001288\U0000128A-\U0000128D\U00001290-\U000012B0\U000012B2-\U000012B5\U000012B8-\U000012BE\U000012C0-\U000012C0\U000012C2-\U000012C5\U000012C8-\U000012D6\U000012D8-\U00001310\U00001312-\U00001315\U00001318-\U0000135A\U00001380-\U0000138F\U000013A0-\U000013F5\U000013F8-\U000013FD\U00001401-\U0000166C\U0000166F-\U0000167F\U00001681-\U0000169A\U000016A0-\U000016EA\U000016F1-\U000016F8\U00001700-\U0000170C\U0000170E-\U00001711\U00001720-\U00001731\U00001740-\U00001751\U00001760-\U0000176C\U0000176E-\U00001770\U00001780-\U000017B3\U000017D7-\U000017D7\U000017DC-\U000017DC\U00001820-\U00001878\U00001880-\U00001884\U00001887-\U000018A8\U000018AA-\U000018AA\U000018B0-\U000018F5\U00001900-\U0000191E\U00001950-\U0000196D\U00001970-\U00001974\U00001980-\U000019AB\U000019B0-\U000019C9\U00001A00-\U00001A16\U00001A20-\U00001A54\U00001AA7-\U00001AA7\U00001B05-\U00001B33\U00001B45-\U00001B4B\U00001B83-\U00001BA0\U00001BAE-\U00001BAF\U00001BBA-\U00001BE5\U00001C00-\U00001C23\U00001C4D-\U00001C4F\U00001C5A-\U00001C7D\U00001C80-\U00001C88\U00001C90-\U00001CBA\U00001CBD-\U00001CBF\U00001CE9-\U00001CEC\U00001CEE-\U00001CF3\U00001CF5-\U00001CF6\U00001CFA-\U00001CFA\U00001D00-\U00001DBF\U00001E00-\U00001F15\U00001F18-\U00001F1D\U00001F20-\U00001F45\U00001F48-\U00001F4D\U00001F50-\U00001F57\U00001F59-\U00001F59\U00001F5B-\U00001F5B\U00001F5D-\U00001F5D\U00001F5F-\U00001F7D\U00001F80-\U00001FB4\U00001FB6-\U00001FBC\U00001FBE-\U00001FBE\U00001FC2-\U00001FC4\U00001FC6-\U00001FCC\U00001FD0-\U00001FD3\U00001FD6-\U00001FDB\U00001FE0-\U00001FEC\U00001FF2-\U00001FF4\U00001FF6-\U00001FFC\U00002071-\U00002071\U0000207F-\U0000207F\U00002090-\U0000209C\U00002102-\U00002102\U00002107-\U00002107\U0000210A-\U00002113\U00002115-\U00002115\U00002119-\U0000211D\U00002124-\U00002124\U00002126-\U00002126\U00002128-\U00002128\U0000212A-\U0000212D\U0000212F-\U00002139\U0000213C-\U0000213F\U00002145-\U00002149\U0000214E-\U0000214E\U00002183-\U00002184\U00002C00-\U00002C2E\U00002C30-\U00002C5E\U00002C60-\U00002CE4\U00002CEB-\U00002CEE\U00002CF2-\U00002CF3\U00002D00-\U00002D25\U00002D27-\U00002D27\U00002D2D-\U00002D2D\U00002D30-\U00002D67\U00002D6F-\U00002D6F\U00002D80-\U00002D96\U00002DA0-\U00002DA6\U00002DA8-\U00002DAE\U00002DB0-\U00002DB6\U00002DB8-\U00002DBE\U00002DC0-\U00002DC6\U00002DC8-\U00002DCE\U00002DD0-\U00002DD6\U00002DD8-\U00002DDE\U00002E2F-\U00002E2F\U00003005-\U00003006\U00003031-\U00003035\U0000303B-\U0000303C\U00003041-\U00003096\U0000309D-\U0000309F\U000030A1-\U000030FA\U000030FC-\U000030FF\U00003105-\U0000312F\U00003131-\U0000318E\U000031A0-\U000031BF\U000031F0-\U000031FF\U00003400-\U00004DBF\U00004E00-\U00009FFC\U0000A000-\U0000A48C\U0000A4D0-\U0000A4FD\U0000A500-\U0000A60C\U0000A610-\U0000A61F\U0000A62A-\U0000A62B\U0000A640-\U0000A66E\U0000A67F-\U0000A69D\U0000A6A0-\U0000A6E5\U0000A717-\U0000A71F\U0000A722-\U0000A788\U0000A78B-\U0000A7BF\U0000A7C2-\U0000A7CA\U0000A7F5-\U0000A801\U0000A803-\U0000A805\U0000A807-\U0000A80A\U0000A80C-\U0000A822\U0000A840-\U0000A873\U0000A882-\U0000A8B3\U0000A8F2-\U0000A8F7\U0000A8FB-\U0000A8FB\U0000A8FD-\U0000A8FE\U0000A90A-\U0000A925\U0000A930-\U0000A946\U0000A960-\U0000A97C\U0000A984-\U0000A9B2\U0000A9CF-\U0000A9CF\U0000A9E0-\U0000A9E4\U0000A9E6-\U0000A9EF\U0000A9FA-\U0000A9FE\U0000AA00-\U0000AA28\U0000AA40-\U0000AA42\U0000AA44-\U0000AA4B\U0000AA60-\U0000AA76\U0000AA7A-\U0000AA7A\U0000AA7E-\U0000AAAF\U0000AAB1-\U0000AAB1\U0000AAB5-\U0000AAB6\U0000AAB9-\U0000AABD\U0000AAC0-\U0000AAC0\U0000AAC2-\U0000AAC2\U0000AADB-\U0000AADD\U0000AAE0-\U0000AAEA\U0000AAF2-\U0000AAF4\U0000AB01-\U0000AB06\U0000AB09-\U0000AB0E\U0000AB11-\U0000AB16\U0000AB20-\U0000AB26\U0000AB28-\U0000AB2E\U0000AB30-\U0000AB5A\U0000AB5C-\U0000AB69\U0000AB70-\U0000ABE2\U0000AC00-\U0000D7A3\U0000D7B0-\U0000D7C6\U0000D7CB-\U0000D7FB\U0000F900-\U0000FA6D\U0000FA70-\U0000FAD9\U0000FB00-\U0000FB06\U0000FB13-\U0000FB17\U0000FB1D-\U0000FB1D\U0000FB1F-\U0000FB28\U0000FB2A-\U0000FB36\U0000FB38-\U0000FB3C\U0000FB3E-\U0000FB3E\U0000FB40-\U0000FB41\U0000FB43-\U0000FB44\U0000FB46-\U0000FBB1\U0000FBD3-\U0000FD3D\U0000FD50-\U0000FD8F\U0000FD92-\U0000FDC7\U0000FDF0-\U0000FDFB\U0000FE70-\U0000FE74\U0000FE76-\U0000FEFC\U0000FF21-\U0000FF3A\U0000FF41-\U0000FF5A\U0000FF66-\U0000FFBE\U0000FFC2-\U0000FFC7\U0000FFCA-\U0000FFCF\U0000FFD2-\U0000FFD7\U0000FFDA-\U0000FFDC\U00010000-\U0001000B\U0001000D-\U00010026\U00010028-\U0001003A\U0001003C-\U0001003D\U0001003F-\U0001004D\U00010050-\U0001005D\U00010080-\U000100FA\U00010280-\U0001029C\U000102A0-\U000102D0\U00010300-\U0001031F\U0001032D-\U00010340\U00010342-\U00010349\U00010350-\U00010375\U00010380-\U0001039D\U000103A0-\U000103C3\U000103C8-\U000103CF\U00010400-\U0001049D\U000104B0-\U000104D3\U000104D8-\U000104FB\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808-\U00010808\U0001080A-\U00010835\U00010837-\U00010838\U0001083C-\U0001083C\U0001083F-\U00010855\U00010860-\U00010876\U00010880-\U0001089E\U000108E0-\U000108F2\U000108F4-\U000108F5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109B7\U000109BE-\U000109BF\U00010A00-\U00010A00\U00010A10-\U00010A13\U00010A15-\U00010A17\U00010A19-\U00010A35\U00010A60-\U00010A7C\U00010A80-\U00010A9C\U00010AC0-\U00010AC7\U00010AC9-\U00010AE4\U00010B00-\U00010B35\U00010B40-\U00010B55\U00010B60-\U00010B72\U00010B80-\U00010B91\U00010C00-\U00010C48\U00010C80-\U00010CB2\U00010CC0-\U00010CF2\U00010D00-\U00010D23\U00010E80-\U00010EA9\U00010EB0-\U00010EB1\U00010F00-\U00010F1C\U00010F27-\U00010F27\U00010F30-\U00010F45\U00010FB0-\U00010FC4\U00010FE0-\U00010FF6\U00011003-\U00011037\U00011083-\U000110AF\U000110D0-\U000110E8\U00011103-\U00011126\U00011144-\U00011144\U00011147-\U00011147\U00011150-\U00011172\U00011176-\U00011176\U00011183-\U000111B2\U000111C1-\U000111C4\U000111DA-\U000111DA\U000111DC-\U000111DC\U00011200-\U00011211\U00011213-\U0001122B\U00011280-\U00011286\U00011288-\U00011288\U0001128A-\U0001128D\U0001128F-\U0001129D\U0001129F-\U000112A8\U000112B0-\U000112DE\U00011305-\U0001130C\U0001130F-\U00011310\U00011313-\U00011328\U0001132A-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133D-\U0001133D\U00011350-\U00011350\U0001135D-\U00011361\U00011400-\U00011434\U00011447-\U0001144A\U0001145F-\U00011461\U00011480-\U000114AF\U000114C4-\U000114C5\U000114C7-\U000114C7\U00011580-\U000115AE\U000115D8-\U000115DB\U00011600-\U0001162F\U00011644-\U00011644\U00011680-\U000116AA\U000116B8-\U000116B8\U00011700-\U0001171A\U00011800-\U0001182B\U000118A0-\U000118DF\U000118FF-\U00011906\U00011909-\U00011909\U0001190C-\U00011913\U00011915-\U00011916\U00011918-\U0001192F\U0001193F-\U0001193F\U00011941-\U00011941\U000119A0-\U000119A7\U000119AA-\U000119D0\U000119E1-\U000119E1\U000119E3-\U000119E3\U00011A00-\U00011A00\U00011A0B-\U00011A32\U00011A3A-\U00011A3A\U00011A50-\U00011A50\U00011A5C-\U00011A89\U00011A9D-\U00011A9D\U00011AC0-\U00011AF8\U00011C00-\U00011C08\U00011C0A-\U00011C2E\U00011C40-\U00011C40\U00011C72-\U00011C8F\U00011D00-\U00011D06\U00011D08-\U00011D09\U00011D0B-\U00011D30\U00011D46-\U00011D46\U00011D60-\U00011D65\U00011D67-\U00011D68\U00011D6A-\U00011D89\U00011D98-\U00011D98\U00011EE0-\U00011EF2\U00011FB0-\U00011FB0\U00012000-\U00012399\U00012480-\U00012543\U00013000-\U0001342E\U00014400-\U00014646\U00016800-\U00016A38\U00016A40-\U00016A5E\U00016AD0-\U00016AED\U00016B00-\U00016B2F\U00016B40-\U00016B43\U00016B63-\U00016B77\U00016B7D-\U00016B8F\U00016E40-\U00016E7F\U00016F00-\U00016F4A\U00016F50-\U00016F50\U00016F93-\U00016F9F\U00016FE0-\U00016FE1\U00016FE3-\U00016FE3\U00017000-\U000187F7\U00018800-\U00018CD5\U00018D00-\U00018D08\U0001B000-\U0001B11E\U0001B150-\U0001B152\U0001B164-\U0001B167\U0001B170-\U0001B2FB\U0001BC00-\U0001BC6A\U0001BC70-\U0001BC7C\U0001BC80-\U0001BC88\U0001BC90-\U0001BC99\U0001D400-\U0001D454\U0001D456-\U0001D49C\U0001D49E-\U0001D49F\U0001D4A2-\U0001D4A2\U0001D4A5-\U0001D4A6\U0001D4A9-\U0001D4AC\U0001D4AE-\U0001D4B9\U0001D4BB-\U0001D4BB\U0001D4BD-\U0001D4C3\U0001D4C5-\U0001D505\U0001D507-\U0001D50A\U0001D50D-\U0001D514\U0001D516-\U0001D51C\U0001D51E-\U0001D539\U0001D53B-\U0001D53E\U0001D540-\U0001D544\U0001D546-\U0001D546\U0001D54A-\U0001D550\U0001D552-\U0001D6A5\U0001D6A8-\U0001D6C0\U0001D6C2-\U0001D6DA\U0001D6DC-\U0001D6FA\U0001D6FC-\U0001D714\U0001D716-\U0001D734\U0001D736-\U0001D74E\U0001D750-\U0001D76E\U0001D770-\U0001D788\U0001D78A-\U0001D7A8\U0001D7AA-\U0001D7C2\U0001D7C4-\U0001D7CB\U0001E100-\U0001E12C\U0001E137-\U0001E13D\U0001E14E-\U0001E14E\U0001E2C0-\U0001E2EB\U0001E800-\U0001E8C4\U0001E900-\U0001E943\U0001E94B-\U0001E94B\U0001EE00-\U0001EE03\U0001EE05-\U0001EE1F\U0001EE21-\U0001EE22\U0001EE24-\U0001EE24\U0001EE27-\U0001EE27\U0001EE29-\U0001EE32\U0001EE34-\U0001EE37\U0001EE39-\U0001EE39\U0001EE3B-\U0001EE3B\U0001EE42-\U0001EE42\U0001EE47-\U0001EE47\U0001EE49-\U0001EE49\U0001EE4B-\U0001EE4B\U0001EE4D-\U0001EE4F\U0001EE51-\U0001EE52\U0001EE54-\U0001EE54\U0001EE57-\U0001EE57\U0001EE59-\U0001EE59\U0001EE5B-\U0001EE5B\U0001EE5D-\U0001EE5D\U0001EE5F-\U0001EE5F\U0001EE61-\U0001EE62\U0001EE64-\U0001EE64\U0001EE67-\U0001EE6A\U0001EE6C-\U0001EE72\U0001EE74-\U0001EE77\U0001EE79-\U0001EE7C\U0001EE7E-\U0001EE7E\U0001EE80-\U0001EE89\U0001EE8B-\U0001EE9B\U0001EEA1-\U0001EEA3\U0001EEA5-\U0001EEA9\U0001EEAB-\U0001EEBB\U00020000-\U0002A6DD\U0002A700-\U0002B734\U0002B740-\U0002B81D\U0002B820-\U0002CEA1\U0002CEB0-\U0002EBE0\U0002F800-\U0002FA1D\U00030000-\U0003134A\U00000030-\U00000039\U000000B2-\U000000B3\U000000B9-\U000000B9\U00000660-\U00000669\U000006F0-\U000006F9\U000007C0-\U000007C9\U00000966-\U0000096F\U000009E6-\U000009EF\U00000A66-\U00000A6F\U00000AE6-\U00000AEF\U00000B66-\U00000B6F\U00000BE6-\U00000BEF\U00000C66-\U00000C6F\U00000CE6-\U00000CEF\U00000D66-\U00000D6F\U00000DE6-\U00000DEF\U00000E50-\U00000E59\U00000ED0-\U00000ED9\U00000F20-\U00000F29\U00001040-\U00001049\U00001090-\U00001099\U00001369-\U00001371\U000017E0-\U000017E9\U00001810-\U00001819\U00001946-\U0000194F\U000019D0-\U000019DA\U00001A80-\U00001A89\U00001A90-\U00001A99\U00001B50-\U00001B59\U00001BB0-\U00001BB9\U00001C40-\U00001C49\U00001C50-\U00001C59\U00002070-\U00002070\U00002074-\U00002079\U00002080-\U00002089\U00002460-\U00002468\U00002474-\U0000247C\U00002488-\U00002490\U000024EA-\U000024EA\U000024F5-\U000024FD\U000024FF-\U000024FF\U00002776-\U0000277E\U00002780-\U00002788\U0000278A-\U00002792\U0000A620-\U0000A629\U0000A8D0-\U0000A8D9\U0000A900-\U0000A909\U0000A9D0-\U0000A9D9\U0000A9F0-\U0000A9F9\U0000AA50-\U0000AA59\U0000ABF0-\U0000ABF9\U0000FF10-\U0000FF19\U000104A0-\U000104A9\U00010A40-\U00010A43\U00010D30-\U00010D39\U00010E60-\U00010E68\U00011052-\U0001105A\U00011066-\U0001106F\U000110F0-\U000110F9\U00011136-\U0001113F\U000111D0-\U000111D9\U000112F0-\U000112F9\U00011450-\U00011459\U000114D0-\U000114D9\U00011650-\U00011659\U000116C0-\U000116C9\U00011730-\U00011739\U000118E0-\U000118E9\U00011950-\U00011959\U00011C50-\U00011C59\U00011D50-\U00011D59\U00011DA0-\U00011DA9\U00016A60-\U00016A69\U00016B50-\U00016B59\U0001D7CE-\U0001D7FF\U0001E140-\U0001E149\U0001E2F0-\U0001E2F9\U0001E950-\U0001E959\U0001F100-\U0001F10A\U0001FBF0-\U0001FBF9]+|\\s+(?!\\S)", //digits - "(?:[0-9]|\\xc2[\\xb2\\xb3]|\\xc2\\xb9|\\xc2[\\xbc-\\xbe]|\\xd9[\\xa0-\\xa9]|\\xdb[\\xb0-\\xb9]|\\xdf[\\x80-\\x89]|\\xe0\\xa5[\\xa6-\\xaf]|\\xe0\\xa7[\\xa6-\\xaf]|\\xe0\\xa7[\\xb4-\\xb9]|\\xe0\\xa9[\\xa6-\\xaf]|\\xe0\\xab[\\xa6-\\xaf]|\\xe0\\xad[\\xa6-\\xaf]|\\xe0\\xad[\\xb2-\\xb7]|\\xe0\\xaf[\\xa6-\\xb2]|\\xe0\\xb1[\\xa6-\\xaf]|\\xe0\\xb1[\\xb8-\\xbe]|\\xe0\\xb3[\\xa6-\\xaf]|\\xe0\\xb5[\\x98-\\x9e]|\\xe0\\xb5[\\xa6-\\xb8]|\\xe0\\xb7[\\xa6-\\xaf]|\\xe0\\xb9[\\x90-\\x99]|\\xe0\\xbb[\\x90-\\x99]|\\xe0\\xbc[\\xa0-\\xb3]|\\xe1\\x81[\\x80-\\x89]|\\xe1\\x82[\\x90-\\x99]|\\xe1\\x8d[\\xa9-\\xbc]|\\xe1\\x9b[\\xae-\\xb0]|\\xe1\\x9f[\\xa0-\\xa9]|\\xe1\\x9f[\\xb0-\\xb9]|\\xe1\\xa0[\\x90-\\x99]|\\xe1\\xa5[\\x86-\\x8f]|\\xe1\\xa7[\\x90-\\x9a]|\\xe1\\xaa[\\x80-\\x89]|\\xe1\\xaa[\\x90-\\x99]|\\xe1\\xad[\\x90-\\x99]|\\xe1\\xae[\\xb0-\\xb9]|\\xe1\\xb1[\\x80-\\x89]|\\xe1\\xb1[\\x90-\\x99]|\\xe2\\x81\\xb0|\\xe2\\x81[\\xb4-\\xb9]|\\xe2\\x82[\\x80-\\x89]|\\xe2(?:\\x85[\\x90-\\xbf]|\\x86[\\x80-\\x82])|\\xe2\\x86[\\x85-\\x89]|\\xe2(?:\\x91[\\xa0-\\xbf]|\\x92[\\x80-\\x9b])|\\xe2\\x93[\\xaa-\\xbf]|\\xe2(?:\\x9d[\\xb6-\\xbf]|\\x9e[\\x80-\\x93])|\\xe2\\xb3\\xbd|\\xe3\\x80\\x87|\\xe3\\x80[\\xa1-\\xa9]|\\xe3\\x80[\\xb8-\\xba]|\\xe3\\x86[\\x92-\\x95]|\\xe3\\x88[\\xa0-\\xa9]|\\xe3\\x89[\\x88-\\x8f]|\\xe3\\x89[\\x91-\\x9f]|\\xe3\\x8a[\\x80-\\x89]|\\xe3\\x8a[\\xb1-\\xbf]|\\xea\\x98[\\xa0-\\xa9]|\\xea\\x9b[\\xa6-\\xaf]|\\xea\\xa0[\\xb0-\\xb5]|\\xea\\xa3[\\x90-\\x99]|\\xea\\xa4[\\x80-\\x89]|\\xea\\xa7[\\x90-\\x99]|\\xea\\xa7[\\xb0-\\xb9]|\\xea\\xa9[\\x90-\\x99]|\\xea\\xaf[\\xb0-\\xb9]|\\xef\\xbc[\\x90-\\x99]|\\xf0\\x90\\x84[\\x87-\\xb3]|\\xf0\\x90\\x85[\\x80-\\xb8]|\\xf0\\x90\\x86[\\x8a\\x8b]|\\xf0\\x90\\x8b[\\xa1-\\xbb]|\\xf0\\x90\\x8c[\\xa0-\\xa3]|\\xf0\\x90\\x8d\\x81|\\xf0\\x90\\x8d\\x8a|\\xf0\\x90\\x8f[\\x91-\\x95]|\\xf0\\x90\\x92[\\xa0-\\xa9]|\\xf0\\x90\\xa1[\\x98-\\x9f]|\\xf0\\x90\\xa1[\\xb9-\\xbf]|\\xf0\\x90\\xa2[\\xa7-\\xaf]|\\xf0\\x90\\xa3[\\xbb-\\xbf]|\\xf0\\x90\\xa4[\\x96-\\x9b]|\\xf0\\x90\\xa6[\\xbc\\xbd]|\\xf0\\x90\\xa7[\\x80-\\x8f]|\\xf0\\x90\\xa7[\\x92-\\xbf]|\\xf0\\x90\\xa9[\\x80-\\x88]|\\xf0\\x90\\xa9[\\xbd\\xbe]|\\xf0\\x90\\xaa[\\x9d-\\x9f]|\\xf0\\x90\\xab[\\xab-\\xaf]|\\xf0\\x90\\xad[\\x98-\\x9f]|\\xf0\\x90\\xad[\\xb8-\\xbf]|\\xf0\\x90\\xae[\\xa9-\\xaf]|\\xf0\\x90\\xb3[\\xba-\\xbf]|\\xf0\\x90\\xb4[\\xb0-\\xb9]|\\xf0\\x90\\xb9[\\xa0-\\xbe]|\\xf0\\x90\\xbc[\\x9d-\\xa6]|\\xf0\\x90\\xbd[\\x91-\\x94]|\\xf0\\x90\\xbf[\\x85-\\x8b]|\\xf0\\x91\\x81[\\x92-\\xaf]|\\xf0\\x91\\x83[\\xb0-\\xb9]|\\xf0\\x91\\x84[\\xb6-\\xbf]|\\xf0\\x91\\x87[\\x90-\\x99]|\\xf0\\x91\\x87[\\xa1-\\xb4]|\\xf0\\x91\\x8b[\\xb0-\\xb9]|\\xf0\\x91\\x91[\\x90-\\x99]|\\xf0\\x91\\x93[\\x90-\\x99]|\\xf0\\x91\\x99[\\x90-\\x99]|\\xf0\\x91\\x9b[\\x80-\\x89]|\\xf0\\x91\\x9c[\\xb0-\\xbb]|\\xf0\\x91\\xa3[\\xa0-\\xb2]|\\xf0\\x91\\xa5[\\x90-\\x99]|\\xf0\\x91\\xb1[\\x90-\\xac]|\\xf0\\x91\\xb5[\\x90-\\x99]|\\xf0\\x91\\xb6[\\xa0-\\xa9]|\\xf0\\x91\\xbd[\\x90-\\x99]|\\xf0\\x91\\xbf[\\x80-\\x94]|\\xf0\\x92(?:\\x90[\\x80-\\xbf]|\\x91[\\x80-\\xae])|\\xf0\\x96\\xa9[\\xa0-\\xa9]|\\xf0\\x96\\xab[\\x80-\\x89]|\\xf0\\x96\\xad[\\x90-\\x99]|\\xf0\\x96\\xad[\\x9b-\\xa1]|\\xf0\\x96\\xba[\\x80-\\x96]|\\xf0\\x9d\\x8b[\\x80-\\x93]|\\xf0\\x9d\\x8b[\\xa0-\\xb3]|\\xf0\\x9d\\x8d[\\xa0-\\xb8]|\\xf0\\x9d\\x9f[\\x8e-\\xbf]|\\xf0\\x9e\\x85[\\x80-\\x89]|\\xf0\\x9e\\x8b[\\xb0-\\xb9]|\\xf0\\x9e\\x93[\\xb0-\\xb9]|\\xf0\\x9e\\xa3[\\x87-\\x8f]|\\xf0\\x9e\\xa5[\\x90-\\x99]|\\xf0\\x9e(?:\\xb1[\\xb1-\\xbf]|\\xb2[\\x80-\\xab])|\\xf0\\x9e\\xb2[\\xad-\\xaf]|\\xf0\\x9e\\xb2[\\xb1-\\xb4]|\\xf0\\x9e\\xb4[\\x81-\\xad]|\\xf0\\x9e\\xb4[\\xaf-\\xbd]|\\xf0\\x9f\\x84[\\x80-\\x8c]|\\xf0\\x9f\\xaf[\\xb0-\\xb9])+", - "[0-9][0-9][0-9]", + L"[\U00000030-\U00000039\U000000B2-\U000000B3\U000000B9-\U000000B9\U00000660-\U00000669\U000006F0-\U000006F9\U000007C0-\U000007C9\U00000966-\U0000096F\U000009E6-\U000009EF\U00000A66-\U00000A6F\U00000AE6-\U00000AEF\U00000B66-\U00000B6F\U00000BE6-\U00000BEF\U00000C66-\U00000C6F\U00000CE6-\U00000CEF\U00000D66-\U00000D6F\U00000DE6-\U00000DEF\U00000E50-\U00000E59\U00000ED0-\U00000ED9\U00000F20-\U00000F29\U00001040-\U00001049\U00001090-\U00001099\U00001369-\U00001371\U000017E0-\U000017E9\U00001810-\U00001819\U00001946-\U0000194F\U000019D0-\U000019DA\U00001A80-\U00001A89\U00001A90-\U00001A99\U00001B50-\U00001B59\U00001BB0-\U00001BB9\U00001C40-\U00001C49\U00001C50-\U00001C59\U00002070-\U00002070\U00002074-\U00002079\U00002080-\U00002089\U00002460-\U00002468\U00002474-\U0000247C\U00002488-\U00002490\U000024EA-\U000024EA\U000024F5-\U000024FD\U000024FF-\U000024FF\U00002776-\U0000277E\U00002780-\U00002788\U0000278A-\U00002792\U0000A620-\U0000A629\U0000A8D0-\U0000A8D9\U0000A900-\U0000A909\U0000A9D0-\U0000A9D9\U0000A9F0-\U0000A9F9\U0000AA50-\U0000AA59\U0000ABF0-\U0000ABF9\U0000FF10-\U0000FF19\U000104A0-\U000104A9\U00010A40-\U00010A43\U00010D30-\U00010D39\U00010E60-\U00010E68\U00011052-\U0001105A\U00011066-\U0001106F\U000110F0-\U000110F9\U00011136-\U0001113F\U000111D0-\U000111D9\U000112F0-\U000112F9\U00011450-\U00011459\U000114D0-\U000114D9\U00011650-\U00011659\U000116C0-\U000116C9\U00011730-\U00011739\U000118E0-\U000118E9\U00011950-\U00011959\U00011C50-\U00011C59\U00011D50-\U00011D59\U00011DA0-\U00011DA9\U00016A60-\U00016A69\U00016B50-\U00016B59\U0001D7CE-\U0001D7FF\U0001E140-\U0001E149\U0001E2F0-\U0001E2F9\U0001E950-\U0001E959\U0001F100-\U0001F10A\U0001FBF0-\U0001FBF9]+", + L"[0-9][0-9][0-9]" }; -static const std::vector deepseek_coder_regex = { - "[\r\n]", - //\\s?\\p{L}+ - "(?:[\\x09-\\x0d]|\\x20|\\xc2\\xa0|\\xe1\\x9a\\x80|\\xe2\\x80[\\x80-\\x8a]|\\xe2\\x80\\xaf|\\xe2\\x81\\x9f|\\xe3\\x80\\x80)?(?:[A-Z]|[a-z]|\\xc2\\xaa|\\xc2\\xb5|\\xc2\\xba|\\xc3[\\x80-\\x96]|\\xc3[\\x98-\\xb6]|\\xc3[\\xb8-\\xbf]|[\\xc4-\\xca][\\x80-\\xbf]|\\xcb[\\x80\\x81]|\\xcb[\\x86-\\x91]|\\xcb[\\xa0-\\xa4]|\\xcb\\xac|\\xcb\\xae|\\xcd[\\xb0-\\xb4]|\\xcd[\\xb6\\xb7]|\\xcd[\\xba-\\xbd]|\\xcd\\xbf|\\xce\\x86|\\xce[\\x88-\\x8a]|\\xce\\x8c|\\xce[\\x8e-\\xa1]|\\xce[\\xa3-\\xbf]|\\xcf[\\x80-\\xb5]|\\xcf[\\xb7-\\xbf]|[\\xd0\\xd1][\\x80-\\xbf]|\\xd2[\\x80\\x81]|\\xd2[\\x8a-\\xbf]|\\xd3[\\x80-\\xbf]|\\xd4[\\x80-\\xaf]|\\xd4[\\xb1-\\xbf]|\\xd5[\\x80-\\x96]|\\xd5\\x99|\\xd5[\\xa0-\\xbf]|\\xd6[\\x80-\\x88]|\\xd7[\\x90-\\xaa]|\\xd7[\\xaf-\\xb2]|\\xd8[\\xa0-\\xbf]|\\xd9[\\x80-\\x8a]|\\xd9[\\xae\\xaf]|\\xd9[\\xb1-\\xbf]|\\xda[\\x80-\\xbf]|\\xdb[\\x80-\\x93]|\\xdb\\x95|\\xdb[\\xa5\\xa6]|\\xdb[\\xae\\xaf]|\\xdb[\\xba-\\xbc]|\\xdb\\xbf|\\xdc\\x90|\\xdc[\\x92-\\xaf]|\\xdd[\\x8d-\\xbf]|\\xde[\\x80-\\xa5]|\\xde\\xb1|\\xdf[\\x8a-\\xaa]|\\xdf[\\xb4\\xb5]|\\xdf\\xba|\\xe0\\xa0[\\x80-\\x95]|\\xe0\\xa0\\x9a|\\xe0\\xa0\\xa4|\\xe0\\xa0\\xa8|\\xe0\\xa1[\\x80-\\x98]|\\xe0\\xa1[\\xa0-\\xaa]|\\xe0(?:\\xa1[\\xb0-\\xbf]|\\xa2[\\x80-\\x87])|\\xe0\\xa2[\\x89-\\x8e]|\\xe0(?:\\xa2[\\xa0-\\xbf]|\\xa3[\\x80-\\x89])|\\xe0\\xa4[\\x84-\\xb9]|\\xe0\\xa4\\xbd|\\xe0\\xa5\\x90|\\xe0\\xa5[\\x98-\\xa1]|\\xe0(?:\\xa5[\\xb1-\\xbf]|\\xa6\\x80)|\\xe0\\xa6[\\x85-\\x8c]|\\xe0\\xa6[\\x8f\\x90]|\\xe0\\xa6[\\x93-\\xa8]|\\xe0\\xa6[\\xaa-\\xb0]|\\xe0\\xa6\\xb2|\\xe0\\xa6[\\xb6-\\xb9]|\\xe0\\xa6\\xbd|\\xe0\\xa7\\x8e|\\xe0\\xa7[\\x9c\\x9d]|\\xe0\\xa7[\\x9f-\\xa1]|\\xe0\\xa7[\\xb0\\xb1]|\\xe0\\xa7\\xbc|\\xe0\\xa8[\\x85-\\x8a]|\\xe0\\xa8[\\x8f\\x90]|\\xe0\\xa8[\\x93-\\xa8]|\\xe0\\xa8[\\xaa-\\xb0]|\\xe0\\xa8[\\xb2\\xb3]|\\xe0\\xa8[\\xb5\\xb6]|\\xe0\\xa8[\\xb8\\xb9]|\\xe0\\xa9[\\x99-\\x9c]|\\xe0\\xa9\\x9e|\\xe0\\xa9[\\xb2-\\xb4]|\\xe0\\xaa[\\x85-\\x8d]|\\xe0\\xaa[\\x8f-\\x91]|\\xe0\\xaa[\\x93-\\xa8]|\\xe0\\xaa[\\xaa-\\xb0]|\\xe0\\xaa[\\xb2\\xb3]|\\xe0\\xaa[\\xb5-\\xb9]|\\xe0\\xaa\\xbd|\\xe0\\xab\\x90|\\xe0\\xab[\\xa0\\xa1]|\\xe0\\xab\\xb9|\\xe0\\xac[\\x85-\\x8c]|\\xe0\\xac[\\x8f\\x90]|\\xe0\\xac[\\x93-\\xa8]|\\xe0\\xac[\\xaa-\\xb0]|\\xe0\\xac[\\xb2\\xb3]|\\xe0\\xac[\\xb5-\\xb9]|\\xe0\\xac\\xbd|\\xe0\\xad[\\x9c\\x9d]|\\xe0\\xad[\\x9f-\\xa1]|\\xe0\\xad\\xb1|\\xe0\\xae\\x83|\\xe0\\xae[\\x85-\\x8a]|\\xe0\\xae[\\x8e-\\x90]|\\xe0\\xae[\\x92-\\x95]|\\xe0\\xae[\\x99\\x9a]|\\xe0\\xae\\x9c|\\xe0\\xae[\\x9e\\x9f]|\\xe0\\xae[\\xa3\\xa4]|\\xe0\\xae[\\xa8-\\xaa]|\\xe0\\xae[\\xae-\\xb9]|\\xe0\\xaf\\x90|\\xe0\\xb0[\\x85-\\x8c]|\\xe0\\xb0[\\x8e-\\x90]|\\xe0\\xb0[\\x92-\\xa8]|\\xe0\\xb0[\\xaa-\\xb9]|\\xe0\\xb0\\xbd|\\xe0\\xb1[\\x98-\\x9a]|\\xe0\\xb1\\x9d|\\xe0\\xb1[\\xa0\\xa1]|\\xe0\\xb2\\x80|\\xe0\\xb2[\\x85-\\x8c]|\\xe0\\xb2[\\x8e-\\x90]|\\xe0\\xb2[\\x92-\\xa8]|\\xe0\\xb2[\\xaa-\\xb3]|\\xe0\\xb2[\\xb5-\\xb9]|\\xe0\\xb2\\xbd|\\xe0\\xb3[\\x9d\\x9e]|\\xe0\\xb3[\\xa0\\xa1]|\\xe0\\xb3[\\xb1\\xb2]|\\xe0\\xb4[\\x84-\\x8c]|\\xe0\\xb4[\\x8e-\\x90]|\\xe0\\xb4[\\x92-\\xba]|\\xe0\\xb4\\xbd|\\xe0\\xb5\\x8e|\\xe0\\xb5[\\x94-\\x96]|\\xe0\\xb5[\\x9f-\\xa1]|\\xe0\\xb5[\\xba-\\xbf]|\\xe0\\xb6[\\x85-\\x96]|\\xe0\\xb6[\\x9a-\\xb1]|\\xe0\\xb6[\\xb3-\\xbb]|\\xe0\\xb6\\xbd|\\xe0\\xb7[\\x80-\\x86]|\\xe0\\xb8[\\x81-\\xb0]|\\xe0\\xb8[\\xb2\\xb3]|\\xe0\\xb9[\\x80-\\x86]|\\xe0\\xba[\\x81\\x82]|\\xe0\\xba\\x84|\\xe0\\xba[\\x86-\\x8a]|\\xe0\\xba[\\x8c-\\xa3]|\\xe0\\xba\\xa5|\\xe0\\xba[\\xa7-\\xb0]|\\xe0\\xba[\\xb2\\xb3]|\\xe0\\xba\\xbd|\\xe0\\xbb[\\x80-\\x84]|\\xe0\\xbb\\x86|\\xe0\\xbb[\\x9c-\\x9f]|\\xe0\\xbc\\x80|\\xe0\\xbd[\\x80-\\x87]|\\xe0\\xbd[\\x89-\\xac]|\\xe0\\xbe[\\x88-\\x8c]|\\xe1\\x80[\\x80-\\xaa]|\\xe1\\x80\\xbf|\\xe1\\x81[\\x90-\\x95]|\\xe1\\x81[\\x9a-\\x9d]|\\xe1\\x81\\xa1|\\xe1\\x81[\\xa5\\xa6]|\\xe1\\x81[\\xae-\\xb0]|\\xe1(?:\\x81[\\xb5-\\xbf]|\\x82[\\x80\\x81])|\\xe1\\x82\\x8e|\\xe1(?:\\x82[\\xa0-\\xbf]|\\x83[\\x80-\\x85])|\\xe1\\x83\\x87|\\xe1\\x83\\x8d|\\xe1\\x83[\\x90-\\xba]|\\xe1(?:\\x83[\\xbc-\\xbf]|[\\x84-\\x88][\\x80-\\xbf]|\\x89[\\x80-\\x88])|\\xe1\\x89[\\x8a-\\x8d]|\\xe1\\x89[\\x90-\\x96]|\\xe1\\x89\\x98|\\xe1\\x89[\\x9a-\\x9d]|\\xe1(?:\\x89[\\xa0-\\xbf]|\\x8a[\\x80-\\x88])|\\xe1\\x8a[\\x8a-\\x8d]|\\xe1\\x8a[\\x90-\\xb0]|\\xe1\\x8a[\\xb2-\\xb5]|\\xe1\\x8a[\\xb8-\\xbe]|\\xe1\\x8b\\x80|\\xe1\\x8b[\\x82-\\x85]|\\xe1\\x8b[\\x88-\\x96]|\\xe1(?:\\x8b[\\x98-\\xbf]|\\x8c[\\x80-\\x90])|\\xe1\\x8c[\\x92-\\x95]|\\xe1(?:\\x8c[\\x98-\\xbf]|\\x8d[\\x80-\\x9a])|\\xe1\\x8e[\\x80-\\x8f]|\\xe1(?:\\x8e[\\xa0-\\xbf]|\\x8f[\\x80-\\xb5])|\\xe1\\x8f[\\xb8-\\xbd]|\\xe1(?:\\x90[\\x81-\\xbf]|[\\x91-\\x98][\\x80-\\xbf]|\\x99[\\x80-\\xac])|\\xe1\\x99[\\xaf-\\xbf]|\\xe1\\x9a[\\x81-\\x9a]|\\xe1(?:\\x9a[\\xa0-\\xbf]|\\x9b[\\x80-\\xaa])|\\xe1\\x9b[\\xb1-\\xb8]|\\xe1\\x9c[\\x80-\\x91]|\\xe1\\x9c[\\x9f-\\xb1]|\\xe1\\x9d[\\x80-\\x91]|\\xe1\\x9d[\\xa0-\\xac]|\\xe1\\x9d[\\xae-\\xb0]|\\xe1\\x9e[\\x80-\\xb3]|\\xe1\\x9f\\x97|\\xe1\\x9f\\x9c|\\xe1(?:\\xa0[\\xa0-\\xbf]|\\xa1[\\x80-\\xb8])|\\xe1\\xa2[\\x80-\\x84]|\\xe1\\xa2[\\x87-\\xa8]|\\xe1\\xa2\\xaa|\\xe1(?:\\xa2[\\xb0-\\xbf]|\\xa3[\\x80-\\xb5])|\\xe1\\xa4[\\x80-\\x9e]|\\xe1\\xa5[\\x90-\\xad]|\\xe1\\xa5[\\xb0-\\xb4]|\\xe1\\xa6[\\x80-\\xab]|\\xe1(?:\\xa6[\\xb0-\\xbf]|\\xa7[\\x80-\\x89])|\\xe1\\xa8[\\x80-\\x96]|\\xe1(?:\\xa8[\\xa0-\\xbf]|\\xa9[\\x80-\\x94])|\\xe1\\xaa\\xa7|\\xe1\\xac[\\x85-\\xb3]|\\xe1\\xad[\\x85-\\x8c]|\\xe1\\xae[\\x83-\\xa0]|\\xe1\\xae[\\xae\\xaf]|\\xe1(?:\\xae[\\xba-\\xbf]|\\xaf[\\x80-\\xa5])|\\xe1\\xb0[\\x80-\\xa3]|\\xe1\\xb1[\\x8d-\\x8f]|\\xe1\\xb1[\\x9a-\\xbd]|\\xe1\\xb2[\\x80-\\x88]|\\xe1\\xb2[\\x90-\\xba]|\\xe1\\xb2[\\xbd-\\xbf]|\\xe1\\xb3[\\xa9-\\xac]|\\xe1\\xb3[\\xae-\\xb3]|\\xe1\\xb3[\\xb5\\xb6]|\\xe1\\xb3\\xba|\\xe1(?:[\\xb4-\\xb6][\\x80-\\xbf])|\\xe1(?:[\\xb8-\\xbb][\\x80-\\xbf]|\\xbc[\\x80-\\x95])|\\xe1\\xbc[\\x98-\\x9d]|\\xe1(?:\\xbc[\\xa0-\\xbf]|\\xbd[\\x80-\\x85])|\\xe1\\xbd[\\x88-\\x8d]|\\xe1\\xbd[\\x90-\\x97]|\\xe1\\xbd\\x99|\\xe1\\xbd\\x9b|\\xe1\\xbd\\x9d|\\xe1\\xbd[\\x9f-\\xbd]|\\xe1\\xbe[\\x80-\\xb4]|\\xe1\\xbe[\\xb6-\\xbc]|\\xe1\\xbe\\xbe|\\xe1\\xbf[\\x82-\\x84]|\\xe1\\xbf[\\x86-\\x8c]|\\xe1\\xbf[\\x90-\\x93]|\\xe1\\xbf[\\x96-\\x9b]|\\xe1\\xbf[\\xa0-\\xac]|\\xe1\\xbf[\\xb2-\\xb4]|\\xe1\\xbf[\\xb6-\\xbc]|\\xe2\\x81\\xb1|\\xe2\\x81\\xbf|\\xe2\\x82[\\x90-\\x9c]|\\xe2\\x84\\x82|\\xe2\\x84\\x87|\\xe2\\x84[\\x8a-\\x93]|\\xe2\\x84\\x95|\\xe2\\x84[\\x99-\\x9d]|\\xe2\\x84\\xa4|\\xe2\\x84\\xa6|\\xe2\\x84\\xa8|\\xe2\\x84[\\xaa-\\xad]|\\xe2\\x84[\\xaf-\\xb9]|\\xe2\\x84[\\xbc-\\xbf]|\\xe2\\x85[\\x85-\\x89]|\\xe2\\x85\\x8e|\\xe2\\x86[\\x83\\x84]|\\xe2(?:[\\xb0-\\xb2][\\x80-\\xbf]|\\xb3[\\x80-\\xa4])|\\xe2\\xb3[\\xab-\\xae]|\\xe2\\xb3[\\xb2\\xb3]|\\xe2\\xb4[\\x80-\\xa5]|\\xe2\\xb4\\xa7|\\xe2\\xb4\\xad|\\xe2(?:\\xb4[\\xb0-\\xbf]|\\xb5[\\x80-\\xa7])|\\xe2\\xb5\\xaf|\\xe2\\xb6[\\x80-\\x96]|\\xe2\\xb6[\\xa0-\\xa6]|\\xe2\\xb6[\\xa8-\\xae]|\\xe2\\xb6[\\xb0-\\xb6]|\\xe2\\xb6[\\xb8-\\xbe]|\\xe2\\xb7[\\x80-\\x86]|\\xe2\\xb7[\\x88-\\x8e]|\\xe2\\xb7[\\x90-\\x96]|\\xe2\\xb7[\\x98-\\x9e]|\\xe2\\xb8\\xaf|\\xe3\\x80[\\x85\\x86]|\\xe3\\x80[\\xb1-\\xb5]|\\xe3\\x80[\\xbb\\xbc]|\\xe3(?:\\x81[\\x81-\\xbf]|\\x82[\\x80-\\x96])|\\xe3\\x82[\\x9d-\\x9f]|\\xe3(?:\\x82[\\xa1-\\xbf]|\\x83[\\x80-\\xba])|\\xe3\\x83[\\xbc-\\xbf]|\\xe3\\x84[\\x85-\\xaf]|\\xe3(?:\\x84[\\xb1-\\xbf]|\\x85[\\x80-\\xbf]|\\x86[\\x80-\\x8e])|\\xe3\\x86[\\xa0-\\xbf]|\\xe3\\x87[\\xb0-\\xbf]|\\xe3[\\x90-\\xbf][\\x80-\\xbf]|\\xe4[\\x80-\\xb6][\\x80-\\xbf]|\\xe4[\\xb8-\\xbf][\\x80-\\xbf]|[\\xe5-\\xe9][\\x80-\\xbf][\\x80-\\xbf]|\\xea(?:[\\x80-\\x91][\\x80-\\xbf]|\\x92[\\x80-\\x8c])|\\xea\\x93[\\x90-\\xbd]|\\xea(?:[\\x94-\\x97][\\x80-\\xbf]|\\x98[\\x80-\\x8c])|\\xea\\x98[\\x90-\\x9f]|\\xea\\x98[\\xaa\\xab]|\\xea\\x99[\\x80-\\xae]|\\xea(?:\\x99\\xbf|\\x9a[\\x80-\\x9d])|\\xea(?:\\x9a[\\xa0-\\xbf]|\\x9b[\\x80-\\xa5])|\\xea\\x9c[\\x97-\\x9f]|\\xea(?:\\x9c[\\xa2-\\xbf]|\\x9d[\\x80-\\xbf]|\\x9e[\\x80-\\x88])|\\xea(?:\\x9e[\\x8b-\\xbf]|\\x9f[\\x80-\\x8a])|\\xea\\x9f[\\x90\\x91]|\\xea\\x9f\\x93|\\xea\\x9f[\\x95-\\x99]|\\xea(?:\\x9f[\\xb2-\\xbf]|\\xa0[\\x80\\x81])|\\xea\\xa0[\\x83-\\x85]|\\xea\\xa0[\\x87-\\x8a]|\\xea\\xa0[\\x8c-\\xa2]|\\xea\\xa1[\\x80-\\xb3]|\\xea\\xa2[\\x82-\\xb3]|\\xea\\xa3[\\xb2-\\xb7]|\\xea\\xa3\\xbb|\\xea\\xa3[\\xbd\\xbe]|\\xea\\xa4[\\x8a-\\xa5]|\\xea(?:\\xa4[\\xb0-\\xbf]|\\xa5[\\x80-\\x86])|\\xea\\xa5[\\xa0-\\xbc]|\\xea\\xa6[\\x84-\\xb2]|\\xea\\xa7\\x8f|\\xea\\xa7[\\xa0-\\xa4]|\\xea\\xa7[\\xa6-\\xaf]|\\xea\\xa7[\\xba-\\xbe]|\\xea\\xa8[\\x80-\\xa8]|\\xea\\xa9[\\x80-\\x82]|\\xea\\xa9[\\x84-\\x8b]|\\xea\\xa9[\\xa0-\\xb6]|\\xea\\xa9\\xba|\\xea(?:\\xa9[\\xbe\\xbf]|\\xaa[\\x80-\\xaf])|\\xea\\xaa\\xb1|\\xea\\xaa[\\xb5\\xb6]|\\xea\\xaa[\\xb9-\\xbd]|\\xea\\xab\\x80|\\xea\\xab\\x82|\\xea\\xab[\\x9b-\\x9d]|\\xea\\xab[\\xa0-\\xaa]|\\xea\\xab[\\xb2-\\xb4]|\\xea\\xac[\\x81-\\x86]|\\xea\\xac[\\x89-\\x8e]|\\xea\\xac[\\x91-\\x96]|\\xea\\xac[\\xa0-\\xa6]|\\xea\\xac[\\xa8-\\xae]|\\xea(?:\\xac[\\xb0-\\xbf]|\\xad[\\x80-\\x9a])|\\xea\\xad[\\x9c-\\xa9]|\\xea(?:\\xad[\\xb0-\\xbf]|\\xae[\\x80-\\xbf]|\\xaf[\\x80-\\xa2])|\\xea[\\xb0-\\xbf][\\x80-\\xbf]|[\\xeb\\xec][\\x80-\\xbf][\\x80-\\xbf]|\\xed(?:[\\x80-\\x9d][\\x80-\\xbf]|\\x9e[\\x80-\\xa3])|\\xed(?:\\x9e[\\xb0-\\xbf]|\\x9f[\\x80-\\x86])|\\xed\\x9f[\\x8b-\\xbb]|\\xef(?:[\\xa4-\\xa8][\\x80-\\xbf]|\\xa9[\\x80-\\xad])|\\xef(?:\\xa9[\\xb0-\\xbf]|\\xaa[\\x80-\\xbf]|\\xab[\\x80-\\x99])|\\xef\\xac[\\x80-\\x86]|\\xef\\xac[\\x93-\\x97]|\\xef\\xac\\x9d|\\xef\\xac[\\x9f-\\xa8]|\\xef\\xac[\\xaa-\\xb6]|\\xef\\xac[\\xb8-\\xbc]|\\xef\\xac\\xbe|\\xef\\xad[\\x80\\x81]|\\xef\\xad[\\x83\\x84]|\\xef(?:\\xad[\\x86-\\xbf]|\\xae[\\x80-\\xb1])|\\xef(?:\\xaf[\\x93-\\xbf]|[\\xb0-\\xb3][\\x80-\\xbf]|\\xb4[\\x80-\\xbd])|\\xef(?:\\xb5[\\x90-\\xbf]|\\xb6[\\x80-\\x8f])|\\xef(?:\\xb6[\\x92-\\xbf]|\\xb7[\\x80-\\x87])|\\xef\\xb7[\\xb0-\\xbb]|\\xef\\xb9[\\xb0-\\xb4]|\\xef(?:\\xb9[\\xb6-\\xbf]|\\xba[\\x80-\\xbf]|\\xbb[\\x80-\\xbc])|\\xef\\xbc[\\xa1-\\xba]|\\xef\\xbd[\\x81-\\x9a]|\\xef(?:\\xbd[\\xa6-\\xbf]|\\xbe[\\x80-\\xbe])|\\xef\\xbf[\\x82-\\x87]|\\xef\\xbf[\\x8a-\\x8f]|\\xef\\xbf[\\x92-\\x97]|\\xef\\xbf[\\x9a-\\x9c]|\\xf0\\x90\\x80[\\x80-\\x8b]|\\xf0\\x90\\x80[\\x8d-\\xa6]|\\xf0\\x90\\x80[\\xa8-\\xba]|\\xf0\\x90\\x80[\\xbc\\xbd]|\\xf0\\x90(?:\\x80\\xbf|\\x81[\\x80-\\x8d])|\\xf0\\x90\\x81[\\x90-\\x9d]|\\xf0\\x90(?:\\x82[\\x80-\\xbf]|\\x83[\\x80-\\xba])|\\xf0\\x90\\x8a[\\x80-\\x9c]|\\xf0\\x90(?:\\x8a[\\xa0-\\xbf]|\\x8b[\\x80-\\x90])|\\xf0\\x90\\x8c[\\x80-\\x9f]|\\xf0\\x90(?:\\x8c[\\xad-\\xbf]|\\x8d\\x80)|\\xf0\\x90\\x8d[\\x82-\\x89]|\\xf0\\x90\\x8d[\\x90-\\xb5]|\\xf0\\x90\\x8e[\\x80-\\x9d]|\\xf0\\x90(?:\\x8e[\\xa0-\\xbf]|\\x8f[\\x80-\\x83])|\\xf0\\x90\\x8f[\\x88-\\x8f]|\\xf0\\x90(?:[\\x90\\x91][\\x80-\\xbf]|\\x92[\\x80-\\x9d])|\\xf0\\x90(?:\\x92[\\xb0-\\xbf]|\\x93[\\x80-\\x93])|\\xf0\\x90\\x93[\\x98-\\xbb]|\\xf0\\x90\\x94[\\x80-\\xa7]|\\xf0\\x90(?:\\x94[\\xb0-\\xbf]|\\x95[\\x80-\\xa3])|\\xf0\\x90\\x95[\\xb0-\\xba]|\\xf0\\x90(?:\\x95[\\xbc-\\xbf]|\\x96[\\x80-\\x8a])|\\xf0\\x90\\x96[\\x8c-\\x92]|\\xf0\\x90\\x96[\\x94\\x95]|\\xf0\\x90\\x96[\\x97-\\xa1]|\\xf0\\x90\\x96[\\xa3-\\xb1]|\\xf0\\x90\\x96[\\xb3-\\xb9]|\\xf0\\x90\\x96[\\xbb\\xbc]|\\xf0\\x90(?:[\\x98-\\x9b][\\x80-\\xbf]|\\x9c[\\x80-\\xb6])|\\xf0\\x90\\x9d[\\x80-\\x95]|\\xf0\\x90\\x9d[\\xa0-\\xa7]|\\xf0\\x90\\x9e[\\x80-\\x85]|\\xf0\\x90\\x9e[\\x87-\\xb0]|\\xf0\\x90\\x9e[\\xb2-\\xba]|\\xf0\\x90\\xa0[\\x80-\\x85]|\\xf0\\x90\\xa0\\x88|\\xf0\\x90\\xa0[\\x8a-\\xb5]|\\xf0\\x90\\xa0[\\xb7\\xb8]|\\xf0\\x90\\xa0\\xbc|\\xf0\\x90(?:\\xa0\\xbf|\\xa1[\\x80-\\x95])|\\xf0\\x90\\xa1[\\xa0-\\xb6]|\\xf0\\x90\\xa2[\\x80-\\x9e]|\\xf0\\x90\\xa3[\\xa0-\\xb2]|\\xf0\\x90\\xa3[\\xb4\\xb5]|\\xf0\\x90\\xa4[\\x80-\\x95]|\\xf0\\x90\\xa4[\\xa0-\\xb9]|\\xf0\\x90\\xa6[\\x80-\\xb7]|\\xf0\\x90\\xa6[\\xbe\\xbf]|\\xf0\\x90\\xa8\\x80|\\xf0\\x90\\xa8[\\x90-\\x93]|\\xf0\\x90\\xa8[\\x95-\\x97]|\\xf0\\x90\\xa8[\\x99-\\xb5]|\\xf0\\x90\\xa9[\\xa0-\\xbc]|\\xf0\\x90\\xaa[\\x80-\\x9c]|\\xf0\\x90\\xab[\\x80-\\x87]|\\xf0\\x90\\xab[\\x89-\\xa4]|\\xf0\\x90\\xac[\\x80-\\xb5]|\\xf0\\x90\\xad[\\x80-\\x95]|\\xf0\\x90\\xad[\\xa0-\\xb2]|\\xf0\\x90\\xae[\\x80-\\x91]|\\xf0\\x90(?:\\xb0[\\x80-\\xbf]|\\xb1[\\x80-\\x88])|\\xf0\\x90\\xb2[\\x80-\\xb2]|\\xf0\\x90\\xb3[\\x80-\\xb2]|\\xf0\\x90\\xb4[\\x80-\\xa3]|\\xf0\\x90\\xba[\\x80-\\xa9]|\\xf0\\x90\\xba[\\xb0\\xb1]|\\xf0\\x90\\xbc[\\x80-\\x9c]|\\xf0\\x90\\xbc\\xa7|\\xf0\\x90(?:\\xbc[\\xb0-\\xbf]|\\xbd[\\x80-\\x85])|\\xf0\\x90(?:\\xbd[\\xb0-\\xbf]|\\xbe[\\x80\\x81])|\\xf0\\x90(?:\\xbe[\\xb0-\\xbf]|\\xbf[\\x80-\\x84])|\\xf0\\x90\\xbf[\\xa0-\\xb6]|\\xf0\\x91\\x80[\\x83-\\xb7]|\\xf0\\x91\\x81[\\xb1\\xb2]|\\xf0\\x91\\x81\\xb5|\\xf0\\x91\\x82[\\x83-\\xaf]|\\xf0\\x91\\x83[\\x90-\\xa8]|\\xf0\\x91\\x84[\\x83-\\xa6]|\\xf0\\x91\\x85\\x84|\\xf0\\x91\\x85\\x87|\\xf0\\x91\\x85[\\x90-\\xb2]|\\xf0\\x91\\x85\\xb6|\\xf0\\x91\\x86[\\x83-\\xb2]|\\xf0\\x91\\x87[\\x81-\\x84]|\\xf0\\x91\\x87\\x9a|\\xf0\\x91\\x87\\x9c|\\xf0\\x91\\x88[\\x80-\\x91]|\\xf0\\x91\\x88[\\x93-\\xab]|\\xf0\\x91(?:\\x88\\xbf|\\x89\\x80)|\\xf0\\x91\\x8a[\\x80-\\x86]|\\xf0\\x91\\x8a\\x88|\\xf0\\x91\\x8a[\\x8a-\\x8d]|\\xf0\\x91\\x8a[\\x8f-\\x9d]|\\xf0\\x91\\x8a[\\x9f-\\xa8]|\\xf0\\x91(?:\\x8a[\\xb0-\\xbf]|\\x8b[\\x80-\\x9e])|\\xf0\\x91\\x8c[\\x85-\\x8c]|\\xf0\\x91\\x8c[\\x8f\\x90]|\\xf0\\x91\\x8c[\\x93-\\xa8]|\\xf0\\x91\\x8c[\\xaa-\\xb0]|\\xf0\\x91\\x8c[\\xb2\\xb3]|\\xf0\\x91\\x8c[\\xb5-\\xb9]|\\xf0\\x91\\x8c\\xbd|\\xf0\\x91\\x8d\\x90|\\xf0\\x91\\x8d[\\x9d-\\xa1]|\\xf0\\x91\\x90[\\x80-\\xb4]|\\xf0\\x91\\x91[\\x87-\\x8a]|\\xf0\\x91\\x91[\\x9f-\\xa1]|\\xf0\\x91\\x92[\\x80-\\xaf]|\\xf0\\x91\\x93[\\x84\\x85]|\\xf0\\x91\\x93\\x87|\\xf0\\x91\\x96[\\x80-\\xae]|\\xf0\\x91\\x97[\\x98-\\x9b]|\\xf0\\x91\\x98[\\x80-\\xaf]|\\xf0\\x91\\x99\\x84|\\xf0\\x91\\x9a[\\x80-\\xaa]|\\xf0\\x91\\x9a\\xb8|\\xf0\\x91\\x9c[\\x80-\\x9a]|\\xf0\\x91\\x9d[\\x80-\\x86]|\\xf0\\x91\\xa0[\\x80-\\xab]|\\xf0\\x91(?:\\xa2[\\xa0-\\xbf]|\\xa3[\\x80-\\x9f])|\\xf0\\x91(?:\\xa3\\xbf|\\xa4[\\x80-\\x86])|\\xf0\\x91\\xa4\\x89|\\xf0\\x91\\xa4[\\x8c-\\x93]|\\xf0\\x91\\xa4[\\x95\\x96]|\\xf0\\x91\\xa4[\\x98-\\xaf]|\\xf0\\x91\\xa4\\xbf|\\xf0\\x91\\xa5\\x81|\\xf0\\x91\\xa6[\\xa0-\\xa7]|\\xf0\\x91(?:\\xa6[\\xaa-\\xbf]|\\xa7[\\x80-\\x90])|\\xf0\\x91\\xa7\\xa1|\\xf0\\x91\\xa7\\xa3|\\xf0\\x91\\xa8\\x80|\\xf0\\x91\\xa8[\\x8b-\\xb2]|\\xf0\\x91\\xa8\\xba|\\xf0\\x91\\xa9\\x90|\\xf0\\x91(?:\\xa9[\\x9c-\\xbf]|\\xaa[\\x80-\\x89])|\\xf0\\x91\\xaa\\x9d|\\xf0\\x91(?:\\xaa[\\xb0-\\xbf]|\\xab[\\x80-\\xb8])|\\xf0\\x91\\xb0[\\x80-\\x88]|\\xf0\\x91\\xb0[\\x8a-\\xae]|\\xf0\\x91\\xb1\\x80|\\xf0\\x91(?:\\xb1[\\xb2-\\xbf]|\\xb2[\\x80-\\x8f])|\\xf0\\x91\\xb4[\\x80-\\x86]|\\xf0\\x91\\xb4[\\x88\\x89]|\\xf0\\x91\\xb4[\\x8b-\\xb0]|\\xf0\\x91\\xb5\\x86|\\xf0\\x91\\xb5[\\xa0-\\xa5]|\\xf0\\x91\\xb5[\\xa7\\xa8]|\\xf0\\x91(?:\\xb5[\\xaa-\\xbf]|\\xb6[\\x80-\\x89])|\\xf0\\x91\\xb6\\x98|\\xf0\\x91\\xbb[\\xa0-\\xb2]|\\xf0\\x91\\xbc\\x82|\\xf0\\x91\\xbc[\\x84-\\x90]|\\xf0\\x91\\xbc[\\x92-\\xb3]|\\xf0\\x91\\xbe\\xb0|\\xf0\\x92(?:[\\x80-\\x8d][\\x80-\\xbf]|\\x8e[\\x80-\\x99])|\\xf0\\x92(?:[\\x92-\\x94][\\x80-\\xbf]|\\x95[\\x80-\\x83])|\\xf0\\x92(?:\\xbe[\\x90-\\xbf]|\\xbf[\\x80-\\xb0])|\\xf0\\x93(?:[\\x80-\\x8f][\\x80-\\xbf]|\\x90[\\x80-\\xaf])|\\xf0\\x93\\x91[\\x81-\\x86]|\\xf0\\x94(?:[\\x90-\\x98][\\x80-\\xbf]|\\x99[\\x80-\\x86])|\\xf0\\x96(?:[\\xa0-\\xa7][\\x80-\\xbf]|\\xa8[\\x80-\\xb8])|\\xf0\\x96\\xa9[\\x80-\\x9e]|\\xf0\\x96(?:\\xa9[\\xb0-\\xbf]|\\xaa[\\x80-\\xbe])|\\xf0\\x96\\xab[\\x90-\\xad]|\\xf0\\x96\\xac[\\x80-\\xaf]|\\xf0\\x96\\xad[\\x80-\\x83]|\\xf0\\x96\\xad[\\xa3-\\xb7]|\\xf0\\x96(?:\\xad[\\xbd-\\xbf]|\\xae[\\x80-\\x8f])|\\xf0\\x96\\xb9[\\x80-\\xbf]|\\xf0\\x96(?:\\xbc[\\x80-\\xbf]|\\xbd[\\x80-\\x8a])|\\xf0\\x96\\xbd\\x90|\\xf0\\x96\\xbe[\\x93-\\x9f]|\\xf0\\x96\\xbf[\\xa0\\xa1]|\\xf0\\x96\\xbf\\xa3|\\xf0(?:\\x97[\\x80-\\xbf][\\x80-\\xbf]|\\x98(?:[\\x80-\\x9e][\\x80-\\xbf]|\\x9f[\\x80-\\xb7]))|\\xf0\\x98(?:[\\xa0-\\xb2][\\x80-\\xbf]|\\xb3[\\x80-\\x95])|\\xf0\\x98\\xb4[\\x80-\\x88]|\\xf0\\x9a\\xbf[\\xb0-\\xb3]|\\xf0\\x9a\\xbf[\\xb5-\\xbb]|\\xf0\\x9a\\xbf[\\xbd\\xbe]|\\xf0\\x9b(?:[\\x80-\\x83][\\x80-\\xbf]|\\x84[\\x80-\\xa2])|\\xf0\\x9b\\x84\\xb2|\\xf0\\x9b\\x85[\\x90-\\x92]|\\xf0\\x9b\\x85\\x95|\\xf0\\x9b\\x85[\\xa4-\\xa7]|\\xf0\\x9b(?:\\x85[\\xb0-\\xbf]|[\\x86-\\x8a][\\x80-\\xbf]|\\x8b[\\x80-\\xbb])|\\xf0\\x9b(?:\\xb0[\\x80-\\xbf]|\\xb1[\\x80-\\xaa])|\\xf0\\x9b\\xb1[\\xb0-\\xbc]|\\xf0\\x9b\\xb2[\\x80-\\x88]|\\xf0\\x9b\\xb2[\\x90-\\x99]|\\xf0\\x9d(?:\\x90[\\x80-\\xbf]|\\x91[\\x80-\\x94])|\\xf0\\x9d(?:\\x91[\\x96-\\xbf]|\\x92[\\x80-\\x9c])|\\xf0\\x9d\\x92[\\x9e\\x9f]|\\xf0\\x9d\\x92\\xa2|\\xf0\\x9d\\x92[\\xa5\\xa6]|\\xf0\\x9d\\x92[\\xa9-\\xac]|\\xf0\\x9d\\x92[\\xae-\\xb9]|\\xf0\\x9d\\x92\\xbb|\\xf0\\x9d(?:\\x92[\\xbd-\\xbf]|\\x93[\\x80-\\x83])|\\xf0\\x9d(?:\\x93[\\x85-\\xbf]|\\x94[\\x80-\\x85])|\\xf0\\x9d\\x94[\\x87-\\x8a]|\\xf0\\x9d\\x94[\\x8d-\\x94]|\\xf0\\x9d\\x94[\\x96-\\x9c]|\\xf0\\x9d\\x94[\\x9e-\\xb9]|\\xf0\\x9d\\x94[\\xbb-\\xbe]|\\xf0\\x9d\\x95[\\x80-\\x84]|\\xf0\\x9d\\x95\\x86|\\xf0\\x9d\\x95[\\x8a-\\x90]|\\xf0\\x9d(?:\\x95[\\x92-\\xbf]|[\\x96-\\x99][\\x80-\\xbf]|\\x9a[\\x80-\\xa5])|\\xf0\\x9d(?:\\x9a[\\xa8-\\xbf]|\\x9b\\x80)|\\xf0\\x9d\\x9b[\\x82-\\x9a]|\\xf0\\x9d\\x9b[\\x9c-\\xba]|\\xf0\\x9d(?:\\x9b[\\xbc-\\xbf]|\\x9c[\\x80-\\x94])|\\xf0\\x9d\\x9c[\\x96-\\xb4]|\\xf0\\x9d(?:\\x9c[\\xb6-\\xbf]|\\x9d[\\x80-\\x8e])|\\xf0\\x9d\\x9d[\\x90-\\xae]|\\xf0\\x9d(?:\\x9d[\\xb0-\\xbf]|\\x9e[\\x80-\\x88])|\\xf0\\x9d\\x9e[\\x8a-\\xa8]|\\xf0\\x9d(?:\\x9e[\\xaa-\\xbf]|\\x9f[\\x80-\\x82])|\\xf0\\x9d\\x9f[\\x84-\\x8b]|\\xf0\\x9d\\xbc[\\x80-\\x9e]|\\xf0\\x9d\\xbc[\\xa5-\\xaa]|\\xf0\\x9e(?:\\x80[\\xb0-\\xbf]|\\x81[\\x80-\\xad])|\\xf0\\x9e\\x84[\\x80-\\xac]|\\xf0\\x9e\\x84[\\xb7-\\xbd]|\\xf0\\x9e\\x85\\x8e|\\xf0\\x9e\\x8a[\\x90-\\xad]|\\xf0\\x9e\\x8b[\\x80-\\xab]|\\xf0\\x9e\\x93[\\x90-\\xab]|\\xf0\\x9e\\x9f[\\xa0-\\xa6]|\\xf0\\x9e\\x9f[\\xa8-\\xab]|\\xf0\\x9e\\x9f[\\xad\\xae]|\\xf0\\x9e\\x9f[\\xb0-\\xbe]|\\xf0\\x9e(?:[\\xa0-\\xa2][\\x80-\\xbf]|\\xa3[\\x80-\\x84])|\\xf0\\x9e(?:\\xa4[\\x80-\\xbf]|\\xa5[\\x80-\\x83])|\\xf0\\x9e\\xa5\\x8b|\\xf0\\x9e\\xb8[\\x80-\\x83]|\\xf0\\x9e\\xb8[\\x85-\\x9f]|\\xf0\\x9e\\xb8[\\xa1\\xa2]|\\xf0\\x9e\\xb8\\xa4|\\xf0\\x9e\\xb8\\xa7|\\xf0\\x9e\\xb8[\\xa9-\\xb2]|\\xf0\\x9e\\xb8[\\xb4-\\xb7]|\\xf0\\x9e\\xb8\\xb9|\\xf0\\x9e\\xb8\\xbb|\\xf0\\x9e\\xb9\\x82|\\xf0\\x9e\\xb9\\x87|\\xf0\\x9e\\xb9\\x89|\\xf0\\x9e\\xb9\\x8b|\\xf0\\x9e\\xb9[\\x8d-\\x8f]|\\xf0\\x9e\\xb9[\\x91\\x92]|\\xf0\\x9e\\xb9\\x94|\\xf0\\x9e\\xb9\\x97|\\xf0\\x9e\\xb9\\x99|\\xf0\\x9e\\xb9\\x9b|\\xf0\\x9e\\xb9\\x9d|\\xf0\\x9e\\xb9\\x9f|\\xf0\\x9e\\xb9[\\xa1\\xa2]|\\xf0\\x9e\\xb9\\xa4|\\xf0\\x9e\\xb9[\\xa7-\\xaa]|\\xf0\\x9e\\xb9[\\xac-\\xb2]|\\xf0\\x9e\\xb9[\\xb4-\\xb7]|\\xf0\\x9e\\xb9[\\xb9-\\xbc]|\\xf0\\x9e\\xb9\\xbe|\\xf0\\x9e\\xba[\\x80-\\x89]|\\xf0\\x9e\\xba[\\x8b-\\x9b]|\\xf0\\x9e\\xba[\\xa1-\\xa3]|\\xf0\\x9e\\xba[\\xa5-\\xa9]|\\xf0\\x9e\\xba[\\xab-\\xbb]|\\xf0(?:[\\xa0-\\xa9][\\x80-\\xbf][\\x80-\\xbf]|\\xaa(?:[\\x80-\\x9a][\\x80-\\xbf]|\\x9b[\\x80-\\x9f]))|\\xf0(?:\\xaa[\\x9c-\\xbf][\\x80-\\xbf]|\\xab(?:[\\x80-\\x9b][\\x80-\\xbf]|\\x9c[\\x80-\\xb9]))|\\xf0\\xab(?:[\\x9d-\\x9f][\\x80-\\xbf]|\\xa0[\\x80-\\x9d])|\\xf0(?:\\xab(?:[\\xa1-\\xbf][\\x80-\\xbf]|\\xa0[\\xa0-\\xbf])|\\xac(?:[\\x80-\\xb9][\\x80-\\xbf]|\\xba[\\x80-\\xa1]))|\\xf0(?:\\xac(?:[\\xbb-\\xbf][\\x80-\\xbf]|\\xba[\\xb0-\\xbf])|\\xad[\\x80-\\xbf][\\x80-\\xbf]|\\xae(?:[\\x80-\\xae][\\x80-\\xbf]|\\xaf[\\x80-\\xa0]))|\\xf0\\xae(?:\\xaf[\\xb0-\\xbf]|[\\xb0-\\xb8][\\x80-\\xbf]|\\xb9[\\x80-\\x9d])|\\xf0\\xaf(?:[\\xa0-\\xa7][\\x80-\\xbf]|\\xa8[\\x80-\\x9d])|\\xf0(?:\\xb0[\\x80-\\xbf][\\x80-\\xbf]|\\xb1(?:[\\x80-\\x8c][\\x80-\\xbf]|\\x8d[\\x80-\\x8a]))|\\xf0(?:\\xb1(?:[\\x8e-\\xbf][\\x80-\\xbf]|\\x8d[\\x90-\\xbf])|\\xb2(?:[\\x80-\\x8d][\\x80-\\xbf]|\\x8e[\\x80-\\xaf])))+", - //\\s?\\p{P}+ - "(?:[\\x09-\\x0d]|\\x20|\\xc2\\xa0|\\xe1\\x9a\\x80|\\xe2\\x80[\\x80-\\x8a]|\\xe2\\x80\\xaf|\\xe2\\x81\\x9f|\\xe3\\x80\\x80)?(?:[!-\\x23]|[%-*]|[,-/]|[:;]|[?@]|[\\x5b-\\x5d]|_|\\x7b|\\x7d|\\xc2\\xa1|\\xc2\\xa7|\\xc2\\xab|\\xc2[\\xb6\\xb7]|\\xc2\\xbb|\\xc2\\xbf|\\xcd\\xbe|\\xce\\x87|\\xd5[\\x9a-\\x9f]|\\xd6[\\x89\\x8a]|\\xd6\\xbe|\\xd7\\x80|\\xd7\\x83|\\xd7\\x86|\\xd7[\\xb3\\xb4]|\\xd8[\\x89\\x8a]|\\xd8[\\x8c\\x8d]|\\xd8\\x9b|\\xd8[\\x9d-\\x9f]|\\xd9[\\xaa-\\xad]|\\xdb\\x94|\\xdc[\\x80-\\x8d]|\\xdf[\\xb7-\\xb9]|\\xe0\\xa0[\\xb0-\\xbe]|\\xe0\\xa1\\x9e|\\xe0\\xa5[\\xa4\\xa5]|\\xe0\\xa5\\xb0|\\xe0\\xa7\\xbd|\\xe0\\xa9\\xb6|\\xe0\\xab\\xb0|\\xe0\\xb1\\xb7|\\xe0\\xb2\\x84|\\xe0\\xb7\\xb4|\\xe0\\xb9\\x8f|\\xe0\\xb9[\\x9a\\x9b]|\\xe0\\xbc[\\x84-\\x92]|\\xe0\\xbc\\x94|\\xe0\\xbc[\\xba-\\xbd]|\\xe0\\xbe\\x85|\\xe0\\xbf[\\x90-\\x94]|\\xe0\\xbf[\\x99\\x9a]|\\xe1\\x81[\\x8a-\\x8f]|\\xe1\\x83\\xbb|\\xe1\\x8d[\\xa0-\\xa8]|\\xe1\\x90\\x80|\\xe1\\x99\\xae|\\xe1\\x9a[\\x9b\\x9c]|\\xe1\\x9b[\\xab-\\xad]|\\xe1\\x9c[\\xb5\\xb6]|\\xe1\\x9f[\\x94-\\x96]|\\xe1\\x9f[\\x98-\\x9a]|\\xe1\\xa0[\\x80-\\x8a]|\\xe1\\xa5[\\x84\\x85]|\\xe1\\xa8[\\x9e\\x9f]|\\xe1\\xaa[\\xa0-\\xa6]|\\xe1\\xaa[\\xa8-\\xad]|\\xe1\\xad[\\x9a-\\xa0]|\\xe1\\xad[\\xbd\\xbe]|\\xe1\\xaf[\\xbc-\\xbf]|\\xe1\\xb0[\\xbb-\\xbf]|\\xe1\\xb1[\\xbe\\xbf]|\\xe1\\xb3[\\x80-\\x87]|\\xe1\\xb3\\x93|\\xe2\\x80[\\x90-\\xa7]|\\xe2(?:\\x80[\\xb0-\\xbf]|\\x81[\\x80-\\x83])|\\xe2\\x81[\\x85-\\x91]|\\xe2\\x81[\\x93-\\x9e]|\\xe2\\x81[\\xbd\\xbe]|\\xe2\\x82[\\x8d\\x8e]|\\xe2\\x8c[\\x88-\\x8b]|\\xe2\\x8c[\\xa9\\xaa]|\\xe2\\x9d[\\xa8-\\xb5]|\\xe2\\x9f[\\x85\\x86]|\\xe2\\x9f[\\xa6-\\xaf]|\\xe2\\xa6[\\x83-\\x98]|\\xe2\\xa7[\\x98-\\x9b]|\\xe2\\xa7[\\xbc\\xbd]|\\xe2\\xb3[\\xb9-\\xbc]|\\xe2\\xb3[\\xbe\\xbf]|\\xe2\\xb5\\xb0|\\xe2\\xb8[\\x80-\\xae]|\\xe2(?:\\xb8[\\xb0-\\xbf]|\\xb9[\\x80-\\x8f])|\\xe2\\xb9[\\x92-\\x9d]|\\xe3\\x80[\\x81-\\x83]|\\xe3\\x80[\\x88-\\x91]|\\xe3\\x80[\\x94-\\x9f]|\\xe3\\x80\\xb0|\\xe3\\x80\\xbd|\\xe3\\x82\\xa0|\\xe3\\x83\\xbb|\\xea\\x93[\\xbe\\xbf]|\\xea\\x98[\\x8d-\\x8f]|\\xea\\x99\\xb3|\\xea\\x99\\xbe|\\xea\\x9b[\\xb2-\\xb7]|\\xea\\xa1[\\xb4-\\xb7]|\\xea\\xa3[\\x8e\\x8f]|\\xea\\xa3[\\xb8-\\xba]|\\xea\\xa3\\xbc|\\xea\\xa4[\\xae\\xaf]|\\xea\\xa5\\x9f|\\xea\\xa7[\\x81-\\x8d]|\\xea\\xa7[\\x9e\\x9f]|\\xea\\xa9[\\x9c-\\x9f]|\\xea\\xab[\\x9e\\x9f]|\\xea\\xab[\\xb0\\xb1]|\\xea\\xaf\\xab|\\xef\\xb4[\\xbe\\xbf]|\\xef\\xb8[\\x90-\\x99]|\\xef(?:\\xb8[\\xb0-\\xbf]|\\xb9[\\x80-\\x92])|\\xef\\xb9[\\x94-\\xa1]|\\xef\\xb9\\xa3|\\xef\\xb9\\xa8|\\xef\\xb9[\\xaa\\xab]|\\xef\\xbc[\\x81-\\x83]|\\xef\\xbc[\\x85-\\x8a]|\\xef\\xbc[\\x8c-\\x8f]|\\xef\\xbc[\\x9a\\x9b]|\\xef\\xbc[\\x9f\\xa0]|\\xef\\xbc[\\xbb-\\xbd]|\\xef\\xbc\\xbf|\\xef\\xbd\\x9b|\\xef\\xbd\\x9d|\\xef\\xbd[\\x9f-\\xa5]|\\xf0\\x90\\x84[\\x80-\\x82]|\\xf0\\x90\\x8e\\x9f|\\xf0\\x90\\x8f\\x90|\\xf0\\x90\\x95\\xaf|\\xf0\\x90\\xa1\\x97|\\xf0\\x90\\xa4\\x9f|\\xf0\\x90\\xa4\\xbf|\\xf0\\x90\\xa9[\\x90-\\x98]|\\xf0\\x90\\xa9\\xbf|\\xf0\\x90\\xab[\\xb0-\\xb6]|\\xf0\\x90\\xac[\\xb9-\\xbf]|\\xf0\\x90\\xae[\\x99-\\x9c]|\\xf0\\x90\\xba\\xad|\\xf0\\x90\\xbd[\\x95-\\x99]|\\xf0\\x90\\xbe[\\x86-\\x89]|\\xf0\\x91\\x81[\\x87-\\x8d]|\\xf0\\x91\\x82[\\xbb\\xbc]|\\xf0\\x91(?:\\x82[\\xbe\\xbf]|\\x83[\\x80\\x81])|\\xf0\\x91\\x85[\\x80-\\x83]|\\xf0\\x91\\x85[\\xb4\\xb5]|\\xf0\\x91\\x87[\\x85-\\x88]|\\xf0\\x91\\x87\\x8d|\\xf0\\x91\\x87\\x9b|\\xf0\\x91\\x87[\\x9d-\\x9f]|\\xf0\\x91\\x88[\\xb8-\\xbd]|\\xf0\\x91\\x8a\\xa9|\\xf0\\x91\\x91[\\x8b-\\x8f]|\\xf0\\x91\\x91[\\x9a\\x9b]|\\xf0\\x91\\x91\\x9d|\\xf0\\x91\\x93\\x86|\\xf0\\x91\\x97[\\x81-\\x97]|\\xf0\\x91\\x99[\\x81-\\x83]|\\xf0\\x91\\x99[\\xa0-\\xac]|\\xf0\\x91\\x9a\\xb9|\\xf0\\x91\\x9c[\\xbc-\\xbe]|\\xf0\\x91\\xa0\\xbb|\\xf0\\x91\\xa5[\\x84-\\x86]|\\xf0\\x91\\xa7\\xa2|\\xf0\\x91(?:\\xa8\\xbf|\\xa9[\\x80-\\x86])|\\xf0\\x91\\xaa[\\x9a-\\x9c]|\\xf0\\x91\\xaa[\\x9e-\\xa2]|\\xf0\\x91\\xac[\\x80-\\x89]|\\xf0\\x91\\xb1[\\x81-\\x85]|\\xf0\\x91\\xb1[\\xb0\\xb1]|\\xf0\\x91\\xbb[\\xb7\\xb8]|\\xf0\\x91\\xbd[\\x83-\\x8f]|\\xf0\\x91\\xbf\\xbf|\\xf0\\x92\\x91[\\xb0-\\xb4]|\\xf0\\x92\\xbf[\\xb1\\xb2]|\\xf0\\x96\\xa9[\\xae\\xaf]|\\xf0\\x96\\xab\\xb5|\\xf0\\x96\\xac[\\xb7-\\xbb]|\\xf0\\x96\\xad\\x84|\\xf0\\x96\\xba[\\x97-\\x9a]|\\xf0\\x96\\xbf\\xa2|\\xf0\\x9b\\xb2\\x9f|\\xf0\\x9d\\xaa[\\x87-\\x8b]|\\xf0\\x9e\\xa5[\\x9e\\x9f])+", +static const std::vector deepseek_coder_regex = { + L"[\r\n]", + //\s?\p{L}+ + L"\\s?[\U00000041-\U0000005A\U00000061-\U0000007A\U000000AA-\U000000AA\U000000B5-\U000000B5\U000000BA-\U000000BA\U000000C0-\U000000D6\U000000D8-\U000000F6\U000000F8-\U000002C1\U000002C6-\U000002D1\U000002E0-\U000002E4\U000002EC-\U000002EC\U000002EE-\U000002EE\U00000370-\U00000374\U00000376-\U00000377\U0000037A-\U0000037D\U0000037F-\U0000037F\U00000386-\U00000386\U00000388-\U0000038A\U0000038C-\U0000038C\U0000038E-\U000003A1\U000003A3-\U000003F5\U000003F7-\U00000481\U0000048A-\U0000052F\U00000531-\U00000556\U00000559-\U00000559\U00000560-\U00000588\U000005D0-\U000005EA\U000005EF-\U000005F2\U00000620-\U0000064A\U0000066E-\U0000066F\U00000671-\U000006D3\U000006D5-\U000006D5\U000006E5-\U000006E6\U000006EE-\U000006EF\U000006FA-\U000006FC\U000006FF-\U000006FF\U00000710-\U00000710\U00000712-\U0000072F\U0000074D-\U000007A5\U000007B1-\U000007B1\U000007CA-\U000007EA\U000007F4-\U000007F5\U000007FA-\U000007FA\U00000800-\U00000815\U0000081A-\U0000081A\U00000824-\U00000824\U00000828-\U00000828\U00000840-\U00000858\U00000860-\U0000086A\U000008A0-\U000008B4\U000008B6-\U000008C7\U00000904-\U00000939\U0000093D-\U0000093D\U00000950-\U00000950\U00000958-\U00000961\U00000971-\U00000980\U00000985-\U0000098C\U0000098F-\U00000990\U00000993-\U000009A8\U000009AA-\U000009B0\U000009B2-\U000009B2\U000009B6-\U000009B9\U000009BD-\U000009BD\U000009CE-\U000009CE\U000009DC-\U000009DD\U000009DF-\U000009E1\U000009F0-\U000009F1\U000009FC-\U000009FC\U00000A05-\U00000A0A\U00000A0F-\U00000A10\U00000A13-\U00000A28\U00000A2A-\U00000A30\U00000A32-\U00000A33\U00000A35-\U00000A36\U00000A38-\U00000A39\U00000A59-\U00000A5C\U00000A5E-\U00000A5E\U00000A72-\U00000A74\U00000A85-\U00000A8D\U00000A8F-\U00000A91\U00000A93-\U00000AA8\U00000AAA-\U00000AB0\U00000AB2-\U00000AB3\U00000AB5-\U00000AB9\U00000ABD-\U00000ABD\U00000AD0-\U00000AD0\U00000AE0-\U00000AE1\U00000AF9-\U00000AF9\U00000B05-\U00000B0C\U00000B0F-\U00000B10\U00000B13-\U00000B28\U00000B2A-\U00000B30\U00000B32-\U00000B33\U00000B35-\U00000B39\U00000B3D-\U00000B3D\U00000B5C-\U00000B5D\U00000B5F-\U00000B61\U00000B71-\U00000B71\U00000B83-\U00000B83\U00000B85-\U00000B8A\U00000B8E-\U00000B90\U00000B92-\U00000B95\U00000B99-\U00000B9A\U00000B9C-\U00000B9C\U00000B9E-\U00000B9F\U00000BA3-\U00000BA4\U00000BA8-\U00000BAA\U00000BAE-\U00000BB9\U00000BD0-\U00000BD0\U00000C05-\U00000C0C\U00000C0E-\U00000C10\U00000C12-\U00000C28\U00000C2A-\U00000C39\U00000C3D-\U00000C3D\U00000C58-\U00000C5A\U00000C60-\U00000C61\U00000C80-\U00000C80\U00000C85-\U00000C8C\U00000C8E-\U00000C90\U00000C92-\U00000CA8\U00000CAA-\U00000CB3\U00000CB5-\U00000CB9\U00000CBD-\U00000CBD\U00000CDE-\U00000CDE\U00000CE0-\U00000CE1\U00000CF1-\U00000CF2\U00000D04-\U00000D0C\U00000D0E-\U00000D10\U00000D12-\U00000D3A\U00000D3D-\U00000D3D\U00000D4E-\U00000D4E\U00000D54-\U00000D56\U00000D5F-\U00000D61\U00000D7A-\U00000D7F\U00000D85-\U00000D96\U00000D9A-\U00000DB1\U00000DB3-\U00000DBB\U00000DBD-\U00000DBD\U00000DC0-\U00000DC6\U00000E01-\U00000E30\U00000E32-\U00000E33\U00000E40-\U00000E46\U00000E81-\U00000E82\U00000E84-\U00000E84\U00000E86-\U00000E8A\U00000E8C-\U00000EA3\U00000EA5-\U00000EA5\U00000EA7-\U00000EB0\U00000EB2-\U00000EB3\U00000EBD-\U00000EBD\U00000EC0-\U00000EC4\U00000EC6-\U00000EC6\U00000EDC-\U00000EDF\U00000F00-\U00000F00\U00000F40-\U00000F47\U00000F49-\U00000F6C\U00000F88-\U00000F8C\U00001000-\U0000102A\U0000103F-\U0000103F\U00001050-\U00001055\U0000105A-\U0000105D\U00001061-\U00001061\U00001065-\U00001066\U0000106E-\U00001070\U00001075-\U00001081\U0000108E-\U0000108E\U000010A0-\U000010C5\U000010C7-\U000010C7\U000010CD-\U000010CD\U000010D0-\U000010FA\U000010FC-\U00001248\U0000124A-\U0000124D\U00001250-\U00001256\U00001258-\U00001258\U0000125A-\U0000125D\U00001260-\U00001288\U0000128A-\U0000128D\U00001290-\U000012B0\U000012B2-\U000012B5\U000012B8-\U000012BE\U000012C0-\U000012C0\U000012C2-\U000012C5\U000012C8-\U000012D6\U000012D8-\U00001310\U00001312-\U00001315\U00001318-\U0000135A\U00001380-\U0000138F\U000013A0-\U000013F5\U000013F8-\U000013FD\U00001401-\U0000166C\U0000166F-\U0000167F\U00001681-\U0000169A\U000016A0-\U000016EA\U000016F1-\U000016F8\U00001700-\U0000170C\U0000170E-\U00001711\U00001720-\U00001731\U00001740-\U00001751\U00001760-\U0000176C\U0000176E-\U00001770\U00001780-\U000017B3\U000017D7-\U000017D7\U000017DC-\U000017DC\U00001820-\U00001878\U00001880-\U00001884\U00001887-\U000018A8\U000018AA-\U000018AA\U000018B0-\U000018F5\U00001900-\U0000191E\U00001950-\U0000196D\U00001970-\U00001974\U00001980-\U000019AB\U000019B0-\U000019C9\U00001A00-\U00001A16\U00001A20-\U00001A54\U00001AA7-\U00001AA7\U00001B05-\U00001B33\U00001B45-\U00001B4B\U00001B83-\U00001BA0\U00001BAE-\U00001BAF\U00001BBA-\U00001BE5\U00001C00-\U00001C23\U00001C4D-\U00001C4F\U00001C5A-\U00001C7D\U00001C80-\U00001C88\U00001C90-\U00001CBA\U00001CBD-\U00001CBF\U00001CE9-\U00001CEC\U00001CEE-\U00001CF3\U00001CF5-\U00001CF6\U00001CFA-\U00001CFA\U00001D00-\U00001DBF\U00001E00-\U00001F15\U00001F18-\U00001F1D\U00001F20-\U00001F45\U00001F48-\U00001F4D\U00001F50-\U00001F57\U00001F59-\U00001F59\U00001F5B-\U00001F5B\U00001F5D-\U00001F5D\U00001F5F-\U00001F7D\U00001F80-\U00001FB4\U00001FB6-\U00001FBC\U00001FBE-\U00001FBE\U00001FC2-\U00001FC4\U00001FC6-\U00001FCC\U00001FD0-\U00001FD3\U00001FD6-\U00001FDB\U00001FE0-\U00001FEC\U00001FF2-\U00001FF4\U00001FF6-\U00001FFC\U00002071-\U00002071\U0000207F-\U0000207F\U00002090-\U0000209C\U00002102-\U00002102\U00002107-\U00002107\U0000210A-\U00002113\U00002115-\U00002115\U00002119-\U0000211D\U00002124-\U00002124\U00002126-\U00002126\U00002128-\U00002128\U0000212A-\U0000212D\U0000212F-\U00002139\U0000213C-\U0000213F\U00002145-\U00002149\U0000214E-\U0000214E\U00002183-\U00002184\U00002C00-\U00002C2E\U00002C30-\U00002C5E\U00002C60-\U00002CE4\U00002CEB-\U00002CEE\U00002CF2-\U00002CF3\U00002D00-\U00002D25\U00002D27-\U00002D27\U00002D2D-\U00002D2D\U00002D30-\U00002D67\U00002D6F-\U00002D6F\U00002D80-\U00002D96\U00002DA0-\U00002DA6\U00002DA8-\U00002DAE\U00002DB0-\U00002DB6\U00002DB8-\U00002DBE\U00002DC0-\U00002DC6\U00002DC8-\U00002DCE\U00002DD0-\U00002DD6\U00002DD8-\U00002DDE\U00002E2F-\U00002E2F\U00003005-\U00003006\U00003031-\U00003035\U0000303B-\U0000303C\U00003041-\U00003096\U0000309D-\U0000309F\U000030A1-\U000030FA\U000030FC-\U000030FF\U00003105-\U0000312F\U00003131-\U0000318E\U000031A0-\U000031BF\U000031F0-\U000031FF\U00003400-\U00004DBF\U00004E00-\U00009FFC\U0000A000-\U0000A48C\U0000A4D0-\U0000A4FD\U0000A500-\U0000A60C\U0000A610-\U0000A61F\U0000A62A-\U0000A62B\U0000A640-\U0000A66E\U0000A67F-\U0000A69D\U0000A6A0-\U0000A6E5\U0000A717-\U0000A71F\U0000A722-\U0000A788\U0000A78B-\U0000A7BF\U0000A7C2-\U0000A7CA\U0000A7F5-\U0000A801\U0000A803-\U0000A805\U0000A807-\U0000A80A\U0000A80C-\U0000A822\U0000A840-\U0000A873\U0000A882-\U0000A8B3\U0000A8F2-\U0000A8F7\U0000A8FB-\U0000A8FB\U0000A8FD-\U0000A8FE\U0000A90A-\U0000A925\U0000A930-\U0000A946\U0000A960-\U0000A97C\U0000A984-\U0000A9B2\U0000A9CF-\U0000A9CF\U0000A9E0-\U0000A9E4\U0000A9E6-\U0000A9EF\U0000A9FA-\U0000A9FE\U0000AA00-\U0000AA28\U0000AA40-\U0000AA42\U0000AA44-\U0000AA4B\U0000AA60-\U0000AA76\U0000AA7A-\U0000AA7A\U0000AA7E-\U0000AAAF\U0000AAB1-\U0000AAB1\U0000AAB5-\U0000AAB6\U0000AAB9-\U0000AABD\U0000AAC0-\U0000AAC0\U0000AAC2-\U0000AAC2\U0000AADB-\U0000AADD\U0000AAE0-\U0000AAEA\U0000AAF2-\U0000AAF4\U0000AB01-\U0000AB06\U0000AB09-\U0000AB0E\U0000AB11-\U0000AB16\U0000AB20-\U0000AB26\U0000AB28-\U0000AB2E\U0000AB30-\U0000AB5A\U0000AB5C-\U0000AB69\U0000AB70-\U0000ABE2\U0000AC00-\U0000D7A3\U0000D7B0-\U0000D7C6\U0000D7CB-\U0000D7FB\U0000F900-\U0000FA6D\U0000FA70-\U0000FAD9\U0000FB00-\U0000FB06\U0000FB13-\U0000FB17\U0000FB1D-\U0000FB1D\U0000FB1F-\U0000FB28\U0000FB2A-\U0000FB36\U0000FB38-\U0000FB3C\U0000FB3E-\U0000FB3E\U0000FB40-\U0000FB41\U0000FB43-\U0000FB44\U0000FB46-\U0000FBB1\U0000FBD3-\U0000FD3D\U0000FD50-\U0000FD8F\U0000FD92-\U0000FDC7\U0000FDF0-\U0000FDFB\U0000FE70-\U0000FE74\U0000FE76-\U0000FEFC\U0000FF21-\U0000FF3A\U0000FF41-\U0000FF5A\U0000FF66-\U0000FFBE\U0000FFC2-\U0000FFC7\U0000FFCA-\U0000FFCF\U0000FFD2-\U0000FFD7\U0000FFDA-\U0000FFDC\U00010000-\U0001000B\U0001000D-\U00010026\U00010028-\U0001003A\U0001003C-\U0001003D\U0001003F-\U0001004D\U00010050-\U0001005D\U00010080-\U000100FA\U00010280-\U0001029C\U000102A0-\U000102D0\U00010300-\U0001031F\U0001032D-\U00010340\U00010342-\U00010349\U00010350-\U00010375\U00010380-\U0001039D\U000103A0-\U000103C3\U000103C8-\U000103CF\U00010400-\U0001049D\U000104B0-\U000104D3\U000104D8-\U000104FB\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808-\U00010808\U0001080A-\U00010835\U00010837-\U00010838\U0001083C-\U0001083C\U0001083F-\U00010855\U00010860-\U00010876\U00010880-\U0001089E\U000108E0-\U000108F2\U000108F4-\U000108F5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109B7\U000109BE-\U000109BF\U00010A00-\U00010A00\U00010A10-\U00010A13\U00010A15-\U00010A17\U00010A19-\U00010A35\U00010A60-\U00010A7C\U00010A80-\U00010A9C\U00010AC0-\U00010AC7\U00010AC9-\U00010AE4\U00010B00-\U00010B35\U00010B40-\U00010B55\U00010B60-\U00010B72\U00010B80-\U00010B91\U00010C00-\U00010C48\U00010C80-\U00010CB2\U00010CC0-\U00010CF2\U00010D00-\U00010D23\U00010E80-\U00010EA9\U00010EB0-\U00010EB1\U00010F00-\U00010F1C\U00010F27-\U00010F27\U00010F30-\U00010F45\U00010FB0-\U00010FC4\U00010FE0-\U00010FF6\U00011003-\U00011037\U00011083-\U000110AF\U000110D0-\U000110E8\U00011103-\U00011126\U00011144-\U00011144\U00011147-\U00011147\U00011150-\U00011172\U00011176-\U00011176\U00011183-\U000111B2\U000111C1-\U000111C4\U000111DA-\U000111DA\U000111DC-\U000111DC\U00011200-\U00011211\U00011213-\U0001122B\U00011280-\U00011286\U00011288-\U00011288\U0001128A-\U0001128D\U0001128F-\U0001129D\U0001129F-\U000112A8\U000112B0-\U000112DE\U00011305-\U0001130C\U0001130F-\U00011310\U00011313-\U00011328\U0001132A-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133D-\U0001133D\U00011350-\U00011350\U0001135D-\U00011361\U00011400-\U00011434\U00011447-\U0001144A\U0001145F-\U00011461\U00011480-\U000114AF\U000114C4-\U000114C5\U000114C7-\U000114C7\U00011580-\U000115AE\U000115D8-\U000115DB\U00011600-\U0001162F\U00011644-\U00011644\U00011680-\U000116AA\U000116B8-\U000116B8\U00011700-\U0001171A\U00011800-\U0001182B\U000118A0-\U000118DF\U000118FF-\U00011906\U00011909-\U00011909\U0001190C-\U00011913\U00011915-\U00011916\U00011918-\U0001192F\U0001193F-\U0001193F\U00011941-\U00011941\U000119A0-\U000119A7\U000119AA-\U000119D0\U000119E1-\U000119E1\U000119E3-\U000119E3\U00011A00-\U00011A00\U00011A0B-\U00011A32\U00011A3A-\U00011A3A\U00011A50-\U00011A50\U00011A5C-\U00011A89\U00011A9D-\U00011A9D\U00011AC0-\U00011AF8\U00011C00-\U00011C08\U00011C0A-\U00011C2E\U00011C40-\U00011C40\U00011C72-\U00011C8F\U00011D00-\U00011D06\U00011D08-\U00011D09\U00011D0B-\U00011D30\U00011D46-\U00011D46\U00011D60-\U00011D65\U00011D67-\U00011D68\U00011D6A-\U00011D89\U00011D98-\U00011D98\U00011EE0-\U00011EF2\U00011FB0-\U00011FB0\U00012000-\U00012399\U00012480-\U00012543\U00013000-\U0001342E\U00014400-\U00014646\U00016800-\U00016A38\U00016A40-\U00016A5E\U00016AD0-\U00016AED\U00016B00-\U00016B2F\U00016B40-\U00016B43\U00016B63-\U00016B77\U00016B7D-\U00016B8F\U00016E40-\U00016E7F\U00016F00-\U00016F4A\U00016F50-\U00016F50\U00016F93-\U00016F9F\U00016FE0-\U00016FE1\U00016FE3-\U00016FE3\U00017000-\U000187F7\U00018800-\U00018CD5\U00018D00-\U00018D08\U0001B000-\U0001B11E\U0001B150-\U0001B152\U0001B164-\U0001B167\U0001B170-\U0001B2FB\U0001BC00-\U0001BC6A\U0001BC70-\U0001BC7C\U0001BC80-\U0001BC88\U0001BC90-\U0001BC99\U0001D400-\U0001D454\U0001D456-\U0001D49C\U0001D49E-\U0001D49F\U0001D4A2-\U0001D4A2\U0001D4A5-\U0001D4A6\U0001D4A9-\U0001D4AC\U0001D4AE-\U0001D4B9\U0001D4BB-\U0001D4BB\U0001D4BD-\U0001D4C3\U0001D4C5-\U0001D505\U0001D507-\U0001D50A\U0001D50D-\U0001D514\U0001D516-\U0001D51C\U0001D51E-\U0001D539\U0001D53B-\U0001D53E\U0001D540-\U0001D544\U0001D546-\U0001D546\U0001D54A-\U0001D550\U0001D552-\U0001D6A5\U0001D6A8-\U0001D6C0\U0001D6C2-\U0001D6DA\U0001D6DC-\U0001D6FA\U0001D6FC-\U0001D714\U0001D716-\U0001D734\U0001D736-\U0001D74E\U0001D750-\U0001D76E\U0001D770-\U0001D788\U0001D78A-\U0001D7A8\U0001D7AA-\U0001D7C2\U0001D7C4-\U0001D7CB\U0001E100-\U0001E12C\U0001E137-\U0001E13D\U0001E14E-\U0001E14E\U0001E2C0-\U0001E2EB\U0001E800-\U0001E8C4\U0001E900-\U0001E943\U0001E94B-\U0001E94B\U0001EE00-\U0001EE03\U0001EE05-\U0001EE1F\U0001EE21-\U0001EE22\U0001EE24-\U0001EE24\U0001EE27-\U0001EE27\U0001EE29-\U0001EE32\U0001EE34-\U0001EE37\U0001EE39-\U0001EE39\U0001EE3B-\U0001EE3B\U0001EE42-\U0001EE42\U0001EE47-\U0001EE47\U0001EE49-\U0001EE49\U0001EE4B-\U0001EE4B\U0001EE4D-\U0001EE4F\U0001EE51-\U0001EE52\U0001EE54-\U0001EE54\U0001EE57-\U0001EE57\U0001EE59-\U0001EE59\U0001EE5B-\U0001EE5B\U0001EE5D-\U0001EE5D\U0001EE5F-\U0001EE5F\U0001EE61-\U0001EE62\U0001EE64-\U0001EE64\U0001EE67-\U0001EE6A\U0001EE6C-\U0001EE72\U0001EE74-\U0001EE77\U0001EE79-\U0001EE7C\U0001EE7E-\U0001EE7E\U0001EE80-\U0001EE89\U0001EE8B-\U0001EE9B\U0001EEA1-\U0001EEA3\U0001EEA5-\U0001EEA9\U0001EEAB-\U0001EEBB\U00020000-\U0002A6DD\U0002A700-\U0002B734\U0002B740-\U0002B81D\U0002B820-\U0002CEA1\U0002CEB0-\U0002EBE0\U0002F800-\U0002FA1D\U00030000-\U0003134A]+", + //\s?\p{P}+ + L"\\s?[\U00000021-\U00000023\U00000025-\\\U0000002A\U0000002C-\U0000002F\U0000003A-\U0000003B\\\U0000003F-\U00000040\\\U0000005B-\\\U0000005D\U0000005F-\U0000005F\U0000007B-\U0000007B\U0000007D-\U0000007D\U000000A1-\U000000A1\U000000A7-\U000000A7\U000000AB-\U000000AB\U000000B6-\U000000B7\U000000BB-\U000000BB\U000000BF-\U000000BF\U0000037E-\U0000037E\U00000387-\U00000387\U0000055A-\U0000055F\U00000589-\U0000058A\U000005BE-\U000005BE\U000005C0-\U000005C0\U000005C3-\U000005C3\U000005C6-\U000005C6\U000005F3-\U000005F4\U00000609-\U0000060A\U0000060C-\U0000060D\U0000061B-\U0000061B\U0000061E-\U0000061F\U0000066A-\U0000066D\U000006D4-\U000006D4\U00000700-\U0000070D\U000007F7-\U000007F9\U00000830-\U0000083E\U0000085E-\U0000085E\U00000964-\U00000965\U00000970-\U00000970\U000009FD-\U000009FD\U00000A76-\U00000A76\U00000AF0-\U00000AF0\U00000C77-\U00000C77\U00000C84-\U00000C84\U00000DF4-\U00000DF4\U00000E4F-\U00000E4F\U00000E5A-\U00000E5B\U00000F04-\U00000F12\U00000F14-\U00000F14\U00000F3A-\U00000F3D\U00000F85-\U00000F85\U00000FD0-\U00000FD4\U00000FD9-\U00000FDA\U0000104A-\U0000104F\U000010FB-\U000010FB\U00001360-\U00001368\U00001400-\U00001400\U0000166E-\U0000166E\U0000169B-\U0000169C\U000016EB-\U000016ED\U00001735-\U00001736\U000017D4-\U000017D6\U000017D8-\U000017DA\U00001800-\U0000180A\U00001944-\U00001945\U00001A1E-\U00001A1F\U00001AA0-\U00001AA6\U00001AA8-\U00001AAD\U00001B5A-\U00001B60\U00001BFC-\U00001BFF\U00001C3B-\U00001C3F\U00001C7E-\U00001C7F\U00001CC0-\U00001CC7\U00001CD3-\U00001CD3\U00002010-\U00002027\U00002030-\U00002043\U00002045-\U00002051\U00002053-\U0000205E\U0000207D-\U0000207E\U0000208D-\U0000208E\U00002308-\U0000230B\U00002329-\U0000232A\U00002768-\U00002775\U000027C5-\U000027C6\U000027E6-\U000027EF\U00002983-\U00002998\U000029D8-\U000029DB\U000029FC-\U000029FD\U00002CF9-\U00002CFC\U00002CFE-\U00002CFF\U00002D70-\U00002D70\U00002E00-\U00002E2E\U00002E30-\U00002E4F\U00002E52-\U00002E52\U00003001-\U00003003\U00003008-\U00003011\U00003014-\U0000301F\U00003030-\U00003030\U0000303D-\U0000303D\U000030A0-\U000030A0\U000030FB-\U000030FB\U0000A4FE-\U0000A4FF\U0000A60D-\U0000A60F\U0000A673-\U0000A673\U0000A67E-\U0000A67E\U0000A6F2-\U0000A6F7\U0000A874-\U0000A877\U0000A8CE-\U0000A8CF\U0000A8F8-\U0000A8FA\U0000A8FC-\U0000A8FC\U0000A92E-\U0000A92F\U0000A95F-\U0000A95F\U0000A9C1-\U0000A9CD\U0000A9DE-\U0000A9DF\U0000AA5C-\U0000AA5F\U0000AADE-\U0000AADF\U0000AAF0-\U0000AAF1\U0000ABEB-\U0000ABEB\U0000FD3E-\U0000FD3F\U0000FE10-\U0000FE19\U0000FE30-\U0000FE52\U0000FE54-\U0000FE61\U0000FE63-\U0000FE63\U0000FE68-\U0000FE68\U0000FE6A-\U0000FE6B\U0000FF01-\U0000FF03\U0000FF05-\U0000FF0A\U0000FF0C-\U0000FF0F\U0000FF1A-\U0000FF1B\U0000FF1F-\U0000FF20\U0000FF3B-\U0000FF3D\U0000FF3F-\U0000FF3F\U0000FF5B-\U0000FF5B\U0000FF5D-\U0000FF5D\U0000FF5F-\U0000FF65\U00010100-\U00010102\U0001039F-\U0001039F\U000103D0-\U000103D0\U0001056F-\U0001056F\U00010857-\U00010857\U0001091F-\U0001091F\U0001093F-\U0001093F\U00010A50-\U00010A58\U00010A7F-\U00010A7F\U00010AF0-\U00010AF6\U00010B39-\U00010B3F\U00010B99-\U00010B9C\U00010EAD-\U00010EAD\U00010F55-\U00010F59\U00011047-\U0001104D\U000110BB-\U000110BC\U000110BE-\U000110C1\U00011140-\U00011143\U00011174-\U00011175\U000111C5-\U000111C8\U000111CD-\U000111CD\U000111DB-\U000111DB\U000111DD-\U000111DF\U00011238-\U0001123D\U000112A9-\U000112A9\U0001144B-\U0001144F\U0001145A-\U0001145B\U0001145D-\U0001145D\U000114C6-\U000114C6\U000115C1-\U000115D7\U00011641-\U00011643\U00011660-\U0001166C\U0001173C-\U0001173E\U0001183B-\U0001183B\U00011944-\U00011946\U000119E2-\U000119E2\U00011A3F-\U00011A46\U00011A9A-\U00011A9C\U00011A9E-\U00011AA2\U00011C41-\U00011C45\U00011C70-\U00011C71\U00011EF7-\U00011EF8\U00011FFF-\U00011FFF\U00012470-\U00012474\U00016A6E-\U00016A6F\U00016AF5-\U00016AF5\U00016B37-\U00016B3B\U00016B44-\U00016B44\U00016E97-\U00016E9A\U00016FE2-\U00016FE2\U0001BC9F-\U0001BC9F\U0001DA87-\U0001DA8B\U0001E95E-\U0001E95F]+", + //cjk + L"[\u4e00-\u9fa5\u0800-\u4e00\uac00-\ud7ff]+", //digits - "(?:[0-9]|\\xc2[\\xb2\\xb3]|\\xc2\\xb9|\\xc2[\\xbc-\\xbe]|\\xd9[\\xa0-\\xa9]|\\xdb[\\xb0-\\xb9]|\\xdf[\\x80-\\x89]|\\xe0\\xa5[\\xa6-\\xaf]|\\xe0\\xa7[\\xa6-\\xaf]|\\xe0\\xa7[\\xb4-\\xb9]|\\xe0\\xa9[\\xa6-\\xaf]|\\xe0\\xab[\\xa6-\\xaf]|\\xe0\\xad[\\xa6-\\xaf]|\\xe0\\xad[\\xb2-\\xb7]|\\xe0\\xaf[\\xa6-\\xb2]|\\xe0\\xb1[\\xa6-\\xaf]|\\xe0\\xb1[\\xb8-\\xbe]|\\xe0\\xb3[\\xa6-\\xaf]|\\xe0\\xb5[\\x98-\\x9e]|\\xe0\\xb5[\\xa6-\\xb8]|\\xe0\\xb7[\\xa6-\\xaf]|\\xe0\\xb9[\\x90-\\x99]|\\xe0\\xbb[\\x90-\\x99]|\\xe0\\xbc[\\xa0-\\xb3]|\\xe1\\x81[\\x80-\\x89]|\\xe1\\x82[\\x90-\\x99]|\\xe1\\x8d[\\xa9-\\xbc]|\\xe1\\x9b[\\xae-\\xb0]|\\xe1\\x9f[\\xa0-\\xa9]|\\xe1\\x9f[\\xb0-\\xb9]|\\xe1\\xa0[\\x90-\\x99]|\\xe1\\xa5[\\x86-\\x8f]|\\xe1\\xa7[\\x90-\\x9a]|\\xe1\\xaa[\\x80-\\x89]|\\xe1\\xaa[\\x90-\\x99]|\\xe1\\xad[\\x90-\\x99]|\\xe1\\xae[\\xb0-\\xb9]|\\xe1\\xb1[\\x80-\\x89]|\\xe1\\xb1[\\x90-\\x99]|\\xe2\\x81\\xb0|\\xe2\\x81[\\xb4-\\xb9]|\\xe2\\x82[\\x80-\\x89]|\\xe2(?:\\x85[\\x90-\\xbf]|\\x86[\\x80-\\x82])|\\xe2\\x86[\\x85-\\x89]|\\xe2(?:\\x91[\\xa0-\\xbf]|\\x92[\\x80-\\x9b])|\\xe2\\x93[\\xaa-\\xbf]|\\xe2(?:\\x9d[\\xb6-\\xbf]|\\x9e[\\x80-\\x93])|\\xe2\\xb3\\xbd|\\xe3\\x80\\x87|\\xe3\\x80[\\xa1-\\xa9]|\\xe3\\x80[\\xb8-\\xba]|\\xe3\\x86[\\x92-\\x95]|\\xe3\\x88[\\xa0-\\xa9]|\\xe3\\x89[\\x88-\\x8f]|\\xe3\\x89[\\x91-\\x9f]|\\xe3\\x8a[\\x80-\\x89]|\\xe3\\x8a[\\xb1-\\xbf]|\\xea\\x98[\\xa0-\\xa9]|\\xea\\x9b[\\xa6-\\xaf]|\\xea\\xa0[\\xb0-\\xb5]|\\xea\\xa3[\\x90-\\x99]|\\xea\\xa4[\\x80-\\x89]|\\xea\\xa7[\\x90-\\x99]|\\xea\\xa7[\\xb0-\\xb9]|\\xea\\xa9[\\x90-\\x99]|\\xea\\xaf[\\xb0-\\xb9]|\\xef\\xbc[\\x90-\\x99]|\\xf0\\x90\\x84[\\x87-\\xb3]|\\xf0\\x90\\x85[\\x80-\\xb8]|\\xf0\\x90\\x86[\\x8a\\x8b]|\\xf0\\x90\\x8b[\\xa1-\\xbb]|\\xf0\\x90\\x8c[\\xa0-\\xa3]|\\xf0\\x90\\x8d\\x81|\\xf0\\x90\\x8d\\x8a|\\xf0\\x90\\x8f[\\x91-\\x95]|\\xf0\\x90\\x92[\\xa0-\\xa9]|\\xf0\\x90\\xa1[\\x98-\\x9f]|\\xf0\\x90\\xa1[\\xb9-\\xbf]|\\xf0\\x90\\xa2[\\xa7-\\xaf]|\\xf0\\x90\\xa3[\\xbb-\\xbf]|\\xf0\\x90\\xa4[\\x96-\\x9b]|\\xf0\\x90\\xa6[\\xbc\\xbd]|\\xf0\\x90\\xa7[\\x80-\\x8f]|\\xf0\\x90\\xa7[\\x92-\\xbf]|\\xf0\\x90\\xa9[\\x80-\\x88]|\\xf0\\x90\\xa9[\\xbd\\xbe]|\\xf0\\x90\\xaa[\\x9d-\\x9f]|\\xf0\\x90\\xab[\\xab-\\xaf]|\\xf0\\x90\\xad[\\x98-\\x9f]|\\xf0\\x90\\xad[\\xb8-\\xbf]|\\xf0\\x90\\xae[\\xa9-\\xaf]|\\xf0\\x90\\xb3[\\xba-\\xbf]|\\xf0\\x90\\xb4[\\xb0-\\xb9]|\\xf0\\x90\\xb9[\\xa0-\\xbe]|\\xf0\\x90\\xbc[\\x9d-\\xa6]|\\xf0\\x90\\xbd[\\x91-\\x94]|\\xf0\\x90\\xbf[\\x85-\\x8b]|\\xf0\\x91\\x81[\\x92-\\xaf]|\\xf0\\x91\\x83[\\xb0-\\xb9]|\\xf0\\x91\\x84[\\xb6-\\xbf]|\\xf0\\x91\\x87[\\x90-\\x99]|\\xf0\\x91\\x87[\\xa1-\\xb4]|\\xf0\\x91\\x8b[\\xb0-\\xb9]|\\xf0\\x91\\x91[\\x90-\\x99]|\\xf0\\x91\\x93[\\x90-\\x99]|\\xf0\\x91\\x99[\\x90-\\x99]|\\xf0\\x91\\x9b[\\x80-\\x89]|\\xf0\\x91\\x9c[\\xb0-\\xbb]|\\xf0\\x91\\xa3[\\xa0-\\xb2]|\\xf0\\x91\\xa5[\\x90-\\x99]|\\xf0\\x91\\xb1[\\x90-\\xac]|\\xf0\\x91\\xb5[\\x90-\\x99]|\\xf0\\x91\\xb6[\\xa0-\\xa9]|\\xf0\\x91\\xbd[\\x90-\\x99]|\\xf0\\x91\\xbf[\\x80-\\x94]|\\xf0\\x92(?:\\x90[\\x80-\\xbf]|\\x91[\\x80-\\xae])|\\xf0\\x96\\xa9[\\xa0-\\xa9]|\\xf0\\x96\\xab[\\x80-\\x89]|\\xf0\\x96\\xad[\\x90-\\x99]|\\xf0\\x96\\xad[\\x9b-\\xa1]|\\xf0\\x96\\xba[\\x80-\\x96]|\\xf0\\x9d\\x8b[\\x80-\\x93]|\\xf0\\x9d\\x8b[\\xa0-\\xb3]|\\xf0\\x9d\\x8d[\\xa0-\\xb8]|\\xf0\\x9d\\x9f[\\x8e-\\xbf]|\\xf0\\x9e\\x85[\\x80-\\x89]|\\xf0\\x9e\\x8b[\\xb0-\\xb9]|\\xf0\\x9e\\x93[\\xb0-\\xb9]|\\xf0\\x9e\\xa3[\\x87-\\x8f]|\\xf0\\x9e\\xa5[\\x90-\\x99]|\\xf0\\x9e(?:\\xb1[\\xb1-\\xbf]|\\xb2[\\x80-\\xab])|\\xf0\\x9e\\xb2[\\xad-\\xaf]|\\xf0\\x9e\\xb2[\\xb1-\\xb4]|\\xf0\\x9e\\xb4[\\x81-\\xad]|\\xf0\\x9e\\xb4[\\xaf-\\xbd]|\\xf0\\x9f\\x84[\\x80-\\x8c]|\\xf0\\x9f\\xaf[\\xb0-\\xb9])", + L"[\U00000030-\U00000039\U000000B2-\U000000B3\U000000B9-\U000000B9\U00000660-\U00000669\U000006F0-\U000006F9\U000007C0-\U000007C9\U00000966-\U0000096F\U000009E6-\U000009EF\U00000A66-\U00000A6F\U00000AE6-\U00000AEF\U00000B66-\U00000B6F\U00000BE6-\U00000BEF\U00000C66-\U00000C6F\U00000CE6-\U00000CEF\U00000D66-\U00000D6F\U00000DE6-\U00000DEF\U00000E50-\U00000E59\U00000ED0-\U00000ED9\U00000F20-\U00000F29\U00001040-\U00001049\U00001090-\U00001099\U00001369-\U00001371\U000017E0-\U000017E9\U00001810-\U00001819\U00001946-\U0000194F\U000019D0-\U000019DA\U00001A80-\U00001A89\U00001A90-\U00001A99\U00001B50-\U00001B59\U00001BB0-\U00001BB9\U00001C40-\U00001C49\U00001C50-\U00001C59\U00002070-\U00002070\U00002074-\U00002079\U00002080-\U00002089\U00002460-\U00002468\U00002474-\U0000247C\U00002488-\U00002490\U000024EA-\U000024EA\U000024F5-\U000024FD\U000024FF-\U000024FF\U00002776-\U0000277E\U00002780-\U00002788\U0000278A-\U00002792\U0000A620-\U0000A629\U0000A8D0-\U0000A8D9\U0000A900-\U0000A909\U0000A9D0-\U0000A9D9\U0000A9F0-\U0000A9F9\U0000AA50-\U0000AA59\U0000ABF0-\U0000ABF9\U0000FF10-\U0000FF19\U000104A0-\U000104A9\U00010A40-\U00010A43\U00010D30-\U00010D39\U00010E60-\U00010E68\U00011052-\U0001105A\U00011066-\U0001106F\U000110F0-\U000110F9\U00011136-\U0001113F\U000111D0-\U000111D9\U000112F0-\U000112F9\U00011450-\U00011459\U000114D0-\U000114D9\U00011650-\U00011659\U000116C0-\U000116C9\U00011730-\U00011739\U000118E0-\U000118E9\U00011950-\U00011959\U00011C50-\U00011C59\U00011D50-\U00011D59\U00011DA0-\U00011DA9\U00016A60-\U00016A69\U00016B50-\U00016B59\U0001D7CE-\U0001D7FF\U0001E140-\U0001E149\U0001E2F0-\U0001E2F9\U0001E950-\U0001E959\U0001F100-\U0001F10A\U0001FBF0-\U0001FBF9]" }; inline std::wstring from_utf8(const std::string& s)