diff --git a/UnitTests/.gitignore b/UnitTests/.gitignore new file mode 100644 index 000000000..aead46e2e --- /dev/null +++ b/UnitTests/.gitignore @@ -0,0 +1,5 @@ +/.vs +/*.user +/Debug +/Release +/x64 diff --git a/UnitTests/UnitTests.sln b/UnitTests/UnitTests.sln new file mode 100644 index 000000000..36bb406ab --- /dev/null +++ b/UnitTests/UnitTests.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.32126.315 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests", "UnitTests.vcxproj", "{9AFC377D-C32D-4D42-82C2-09FC818020A2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9AFC377D-C32D-4D42-82C2-09FC818020A2}.Debug|Win32.ActiveCfg = Debug|Win32 + {9AFC377D-C32D-4D42-82C2-09FC818020A2}.Debug|Win32.Build.0 = Debug|Win32 + {9AFC377D-C32D-4D42-82C2-09FC818020A2}.Debug|x64.ActiveCfg = Debug|x64 + {9AFC377D-C32D-4D42-82C2-09FC818020A2}.Debug|x64.Build.0 = Debug|x64 + {9AFC377D-C32D-4D42-82C2-09FC818020A2}.Release|Win32.ActiveCfg = Release|Win32 + {9AFC377D-C32D-4D42-82C2-09FC818020A2}.Release|Win32.Build.0 = Release|Win32 + {9AFC377D-C32D-4D42-82C2-09FC818020A2}.Release|x64.ActiveCfg = Release|x64 + {9AFC377D-C32D-4D42-82C2-09FC818020A2}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BBDB843D-98C3-46EF-BDE8-0E80FD851852} + EndGlobalSection +EndGlobal diff --git a/UnitTests/UnitTests.vcxproj b/UnitTests/UnitTests.vcxproj new file mode 100644 index 000000000..52f7d4f59 --- /dev/null +++ b/UnitTests/UnitTests.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {9AFC377D-C32D-4D42-82C2-09FC818020A2} + Win32Proj + UnitTests + 10.0 + NativeUnitTestProject + + + + DynamicLibrary + true + $(DefaultPlatformToolset) + Unicode + false + + + true + + + false + true + + + + + + + + + + + + + + + + + + + + + + + + + true + NativeRecommendedRules.ruleset + + + true + + + false + + + + Use + Level4 + true + true + ..\include;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + true + pch.h + + + Windows + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + Advapi32.lib;Shlwapi.lib;%(AdditionalDependencies) + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + true + true + + + + + WIN32;%(PreprocessorDefinitions) + + + + + + + + + Create + + + + + + + + + + \ No newline at end of file diff --git a/UnitTests/UnitTests.vcxproj.filters b/UnitTests/UnitTests.vcxproj.filters new file mode 100644 index 000000000..3c41d8037 --- /dev/null +++ b/UnitTests/UnitTests.vcxproj.filters @@ -0,0 +1,30 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/UnitTests/pch.cpp b/UnitTests/pch.cpp new file mode 100644 index 000000000..d496a04ce --- /dev/null +++ b/UnitTests/pch.cpp @@ -0,0 +1,6 @@ +/* + SPDX-License-Identifier: MIT + Copyright © 2023 Amebis +*/ + +#include "pch.h" diff --git a/UnitTests/pch.h b/UnitTests/pch.h new file mode 100644 index 000000000..720e3e21d --- /dev/null +++ b/UnitTests/pch.h @@ -0,0 +1,25 @@ +/* + SPDX-License-Identifier: MIT + Copyright © 2023 Amebis +*/ + +#pragma once + +#define SECURITY_WIN32 +#define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h + +#include +#include +#include +#include +#include +#include +#include +//#include +#include +#include +#include +#include +#include + +#include diff --git a/UnitTests/sgml.cpp b/UnitTests/sgml.cpp new file mode 100644 index 000000000..e0fcd6bf7 --- /dev/null +++ b/UnitTests/sgml.cpp @@ -0,0 +1,59 @@ +/* + SPDX-License-Identifier: MIT + Copyright © 2023 Amebis +*/ + +#include "pch.h" + +using namespace std; +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTests +{ + TEST_CLASS(sgml) + { + public: + TEST_METHOD(sgml2str) + { + Assert::AreEqual(L"This is a test.", stdex::sgml2str("This is a test.", (size_t)-1).c_str()); + Assert::AreEqual(L"Th\u00ed\u0161 i\u22c5 a te\u0073\u0304t.&unknown;😀😅", stdex::sgml2str("Thíš i⋅ a te&smacr;t.&unknown;😀😅", (size_t)-1).c_str()); + Assert::AreEqual(L"This", stdex::sgml2str("This is a test.", 4).c_str()); + Assert::AreEqual(L"T\u0068\u0301", stdex::sgml2str("T&hacute;is is a test.", 9).c_str()); + Assert::AreEqual(L"T&hac", stdex::sgml2str("T&hacute;is is a test.", 5).c_str()); + Assert::AreEqual(L"The "quoted" & text.", stdex::sgml2str("The "quoted" & text.", (size_t)-1, stdex::sgml_c).c_str()); + + stdex::mapping_vector map; + constexpr size_t i = 0; + constexpr size_t j = 0; + stdex::sgml2str("Thíš i⋅ a te&smacr;t.&unknown;😀😅", (size_t)-1, 0, stdex::mapping(i, j), &map); + Assert::IsTrue(stdex::mapping_vector{ + { i + 2, j + 2 }, + { i + 10, j + 3 }, + { i + 10, j + 3 }, + { i + 18, j + 4 }, + { i + 20, j + 6 }, + { i + 26, j + 7 }, + { i + 27, j + 8 }, + { i + 32, j + 9 }, + { i + 35, j + 12 }, + { i + 42, j + 14 }, + { i + 53, j + 25 }, + { i + 62, j + 27 }, + { i + 62, j + 27 }, + { i + 71, j + 29 }, + } == map); + } + + TEST_METHOD(str2sgml) + { + Assert::AreEqual("This is a test.", stdex::str2sgml(L"This is a test.", (size_t)-1).c_str()); + Assert::AreEqual("Thíš i⋅ a te&smacr;t.&unknown;😀😅", stdex::str2sgml(L"Th\u00ed\u0161 i\u22c5 a te\u0073\u0304t.&unknown;😀😅", (size_t)-1).c_str()); + Assert::AreEqual("This", stdex::str2sgml(L"This is a test.", 4).c_str()); + Assert::AreEqual("te&smacr;", stdex::str2sgml(L"te\u0073\u0304t", 4).c_str()); + Assert::AreEqual("tes", stdex::str2sgml(L"te\u0073\u0304t", 3).c_str()); + Assert::AreEqual("⌘‰͢", stdex::str2sgml(L"⌘‰͢", (size_t)-1).c_str()); + Assert::AreEqual("$\"<>&", stdex::str2sgml(L"$\"<>&", (size_t)-1).c_str()); + Assert::AreEqual("$"<>&", stdex::str2sgml(L"$\"<>&", (size_t)-1, stdex::sgml_c).c_str()); + } + }; +} diff --git a/include/stdex/mapping.h b/include/stdex/mapping.h new file mode 100644 index 000000000..7c6f1f283 --- /dev/null +++ b/include/stdex/mapping.h @@ -0,0 +1,31 @@ +/* + SPDX-License-Identifier: MIT + Copyright © 2023 Amebis +*/ + +#pragma once + +#include "sal.h" +#include + +namespace stdex +{ + /// + /// Maps index in source string to index in destination string + /// + template + struct mapping { + T from; // index in source string + T to; // index in destination string + + inline mapping() : from(0), to(0) {} + inline mapping(_In_ T x) : from(x), to(x) {} + inline mapping(_In_ T _from, _In_ T _to) : from(_from), to(_to) {} + + friend bool operator ==(_In_ stdex::mapping const& a, _In_ stdex::mapping const& b) noexcept { return a.from == b.from && a.to == b.to; } + friend bool operator !=(_In_ stdex::mapping const& a, _In_ stdex::mapping const& b) noexcept { return !(a == b); } + }; + + template >> + using mapping_vector = std::vector, _Alloc>; +} diff --git a/include/stdex/sgml.h b/include/stdex/sgml.h new file mode 100644 index 000000000..121b341a7 --- /dev/null +++ b/include/stdex/sgml.h @@ -0,0 +1,308 @@ +/* + SPDX-License-Identifier: MIT + Copyright © 2023 Amebis +*/ + +#pragma once + +#include "mapping.h" +#include "sal.h" +#include "sgml_unicode.h" +#include "string.h" +#include + +namespace stdex +{ + /// \cond internal + template + inline const wchar_t* sgml2uni(_In_reads_or_z_(count) const T* entity, _In_ size_t count) + { + assert(entity && count); + assert(count < 2 || entity[0] != '#'); // No numeric entities + + for (size_t i = 0, j = _countof(sgml_unicode); i < j; ) { + size_t m = (i + j) / 2; + if (sgml_unicode[m].sgml[0] < entity[0]) + i = m + 1; + else if (sgml_unicode[m].sgml[0] > entity[0]) + j = m; + else { + auto r = strncmp(sgml_unicode[m].sgml + 1, _countof(sgml_unicode[0].sgml) - 1, entity + 1, count - 1); + if (r < 0) + i = m + 1; + else if (r > 0) + j = m; + else { + for (; i < m && strncmp(sgml_unicode[m - 1].sgml, _countof(sgml_unicode[0].sgml), entity, count) == 0; m--); + return sgml_unicode[m].unicode; + } + } + } + return nullptr; + } + + template + inline const T* sgmlend( + _In_reads_or_z_(count) const T* str, + _In_ size_t count) + { + assert(str || !count); + for (size_t i = 0; i < count; i++) { + if (str[i] == ';') + return str + i; + if (!str[i] || str[i] == '&' || isspace(str[i])) + break; + } + return nullptr; + } + /// \endcond + + constexpr int sgml_full = 0x80000000; + constexpr int sgml_quot = 0x00000001; + constexpr int sgml_apos = 0x00000002; + constexpr int sgml_quot_apos = sgml_quot | sgml_apos; + constexpr int sgml_amp = 0x00000004; + constexpr int sgml_lt_gt = 0x00000008; + constexpr int sgml_bsol = 0x00000010; + constexpr int sgml_dollar = 0x00000020; + constexpr int sgml_percnt = 0x00000040; + constexpr int sgml_commat = 0x00000080; + constexpr int sgml_num = 0x00000100; + constexpr int sgml_lpar_rpar = 0x00000200; + constexpr int sgml_lcub_rcub = 0x00000400; + constexpr int sgml_lsqb_rsqb = 0x00000800; + constexpr int sgml_sgml = sgml_amp | sgml_lt_gt; + constexpr int sgml_ml_attrib = sgml_amp | sgml_quot_apos; + constexpr int sgml_c = sgml_amp | sgml_bsol | sgml_quot_apos; + // constexpr int sgml_ajt_lemma = sgml_amp | sgml_quot | sgml_dollar | sgml_percnt; + // constexpr int sgml_ajt_form = sgml_ajt_lemma; + // constexpr int sgml_kolos = sgml_amp | sgml_quot | sgml_dollar | sgml_percnt | sgml_lt_gt | sgml_bsol/* | sgml_commat | sgml_num*/ | sgml_lpar_rpar | sgml_lcub_rcub | sgml_lsqb_rsqb; + + /// + /// Convert SGML string to Unicode string (UTF-16 on Windows) + /// + /// \param[in] src SGML string + /// \param[in] count_src SGML string character count limit + /// \param[in] skip Bitwise flag of stdex::sgml_* constants that list SGML entities to skip converting + /// \param[in] offset Logical starting offset of source and destination strings. Unused when map parameter is nullptr. + /// \param[out] map The vector to append index mapping between source and destination string to. + /// + /// \return Unicode string + /// + template + inline std::wstring sgml2str( + _In_reads_or_z_(count_src) const T* src, _In_ size_t count_src, + _In_ int skip = 0, + _In_ const mapping& offset = mapping(0, 0), + _Inout_opt_ mapping_vector* map = nullptr) + { + assert(src || !count_src); + + const bool + skip_quot = (skip & sgml_quot) == 0, + skip_apos = (skip & sgml_apos) == 0, + skip_amp = (skip & sgml_amp) == 0, + skip_lt_gt = (skip & sgml_lt_gt) == 0, + skip_bsol = (skip & sgml_bsol) == 0, + skip_dollar = (skip & sgml_dollar) == 0, + skip_percnt = (skip & sgml_percnt) == 0, + skip_commat = (skip & sgml_commat) == 0, + skip_num = (skip & sgml_num) == 0, + skip_lpar_rpar = (skip & sgml_lpar_rpar) == 0, + skip_lcub_rcub = (skip & sgml_lcub_rcub) == 0, + skip_lsqb_rsqb = (skip & sgml_lsqb_rsqb) == 0; + + count_src = strnlen(src, count_src); + std::wstring dst; + dst.reserve(count_src); + for (size_t i = 0; i < count_src;) { + if (src[i] == '&') { + auto end = sgmlend(src + i + 1, count_src - i - 1); + if (end) { + const wchar_t* entity_w; + wchar_t chr[3]; + size_t n = end - src - i - 1; + if (n >= 2 && src[i + 1] == '#') { + uint32_t unicode; + if (src[i + 2] == 'x' || src[i + 2] == 'X') + unicode = strtou32(src + i + 3, n - 2, nullptr, 16); + else + unicode = strtou32(src + i + 2, n - 1, nullptr, 10); +#ifdef _WIN32 + if (unicode < 0x10000) { + chr[0] = (wchar_t)unicode; + chr[1] = 0; + } else { + ucs4_to_surrogate_pair(chr, unicode); + chr[2] = 0; + } +#else + chr[0] = (wchar_t)unicode; + chr[1] = 0; +#endif + entity_w = chr; + } + else + entity_w = sgml2uni(src + i + 1, n); + + if (entity_w && + (skip_quot || (entity_w[0] != L'"')) && + (skip_apos || (entity_w[0] != L'\'')) && + (skip_amp || (entity_w[0] != L'&')) && + (skip_lt_gt || (entity_w[0] != L'<' && entity_w[0] != L'>')) && + (skip_bsol || (entity_w[0] != L'\\')) && + (skip_dollar || (entity_w[0] != L'$')) && + (skip_percnt || (entity_w[0] != L'%')) && + (skip_commat || (entity_w[0] != L'@')) && + (skip_num || (entity_w[0] != L'#')) && + (skip_lpar_rpar || (entity_w[0] != L'(' && entity_w[0] != L')')) && + (skip_lcub_rcub || (entity_w[0] != L'{' && entity_w[0] != L'}')) && + (skip_lsqb_rsqb || (entity_w[0] != L'[' && entity_w[0] != L']'))) + { + if (map) map->push_back(mapping(offset.from + i, offset.to + dst.size())); + dst.append(entity_w); + i = end - src + 1; + if (map) map->push_back(mapping(offset.from + i, offset.to + dst.size())); + continue; + } + } + } + dst.append(1, src[i++]); + } + return dst; + } + + /// \cond internal + inline const char* chr2sgml(_In_reads_or_z_(count) const wchar_t* entity, _In_ size_t count) + { + assert(entity && count); + + const wchar_t e2 = entity[0]; + for (size_t i = 0, j = _countof(unicode_sgml); i < j; ) { + size_t m = (i + j) / 2; + wchar_t e1 = sgml_unicode[unicode_sgml[m]].unicode[0]; + if (e1 < e2) + i = m + 1; + else if (e1 > e2) + j = m; + else { + auto r = strncmp(sgml_unicode[unicode_sgml[m]].unicode + 1, _countof(sgml_unicode[0].unicode) - 1, entity + 1, count - 1); + if (r < 0) + i = m + 1; + else if (r > 0) + j = m; + else { + for (; i < m && sgml_unicode[unicode_sgml[m - 1]].unicode[0] == e2 && strncmp(sgml_unicode[unicode_sgml[m - 1]].unicode + 1, _countof(sgml_unicode[0].unicode) - 1, entity + 1, count - 1) == 0; m--); + return sgml_unicode[unicode_sgml[m]].sgml; + } + } + } + return nullptr; + } + /// \endcond + + /// + /// Convert Unicode string (UTF-16 on Windows) to SGML string + /// + /// \param[in] src Unicode string + /// \param[in] count_src Unicode string character count limit + /// \param[in] what Bitwise flag of stdex::sgml_* constants that force extra characters otherwise not converted to SGML + /// + /// \return SGML string + /// + inline std::string str2sgml( + _In_reads_or_z_(count_src) const wchar_t* src, + _In_ size_t count_src, + _In_ size_t what = 0) + { + assert(src || !count_src); + + const bool + do_ascii = (what & sgml_full) == 0, + do_quot = (what & sgml_quot) == 0, + do_apos = (what & sgml_apos) == 0, + do_lt_gt = (what & sgml_lt_gt) == 0, + do_bsol = (what & sgml_bsol) == 0, + do_dollar = (what & sgml_dollar) == 0, + do_percnt = (what & sgml_percnt) == 0, + do_commat = (what & sgml_commat) == 0, + do_num = (what & sgml_num) == 0, + do_lpar_rpar = (what & sgml_lpar_rpar) == 0, + do_lcub_rcub = (what & sgml_lcub_rcub) == 0, + do_lsqb_rsqb = (what & sgml_lsqb_rsqb) == 0; + + count_src = wcsnlen(src, count_src); + std::string dst; + dst.reserve(count_src); + for (size_t i = 0; i < count_src;) { + size_t n = glyphlen(src + i, count_src - i); + if (n == 1 && + do_ascii && (unsigned int)src[i] < 128 && + src[i] != L'&' && + (do_quot || (src[i] != L'"')) && + (do_apos || (src[i] != L'\'')) && + (do_lt_gt || (src[i] != L'<' && src[i] != L'>')) && + (do_bsol || (src[i] != L'\\')) && + (do_dollar || (src[i] != L'$')) && + (do_percnt || (src[i] != L'%')) && + (do_commat || (src[i] != L'@')) && + (do_num || (src[i] != L'#')) && + (do_lpar_rpar || (src[i] != L'(' && src[i] != L')')) && + (do_lcub_rcub || (src[i] != L'{' && src[i] != L'}')) && + (do_lsqb_rsqb || (src[i] != L'[' && src[i] != L']'))) + { + // 7-bit ASCII and no desire to encode it as an SGML entity. + dst.append(1, (char)src[i++]); + } + else { + const char* entity = chr2sgml(src + i, n); + if (entity) { + dst.append(1, '&'); + dst.append(entity); + dst.append(1, ';'); + i += n; + } + else if (n == 1) { + // Trivial character (1 code unit, 1 glyph), no entity available. + if ((unsigned int)src[i] < 128) + dst.append(1, (char)src[i++]); + else { + char tmp[3 + 8 + 1 + 1]; + snprintf(tmp, _countof(tmp), "&#x%x;", src[i++]); + dst.append(tmp); + } + } + else { + // Non-trivial character. Decompose. + const size_t end = i + n; + while (i < end) { + if ((entity = chr2sgml(src + i, 1)) != nullptr) { + dst.append(1, '&'); + dst.append(entity); + dst.append(1, ';'); + i++; + } + else if ((unsigned int)src[i] < 128) + dst.append(1, (char)src[i++]); + else { + uint32_t unicode; +#ifdef _WIN32 + if (i + 1 < end && is_surrogate_pair(src + i)) { + unicode = surrogate_pair_to_ucs4(src + i); + i += 2; + } else +#endif + { + unicode = src[i++]; + } + char tmp[3 + 8 + 1 + 1]; + snprintf(tmp, _countof(tmp), "&#x%x;", unicode); + dst.append(tmp); + } + } + } + } + } + return dst; + } +} diff --git a/include/stdex/sgml_unicode.h b/include/stdex/sgml_unicode.h new file mode 100644 index 000000000..ce6e31fd9 --- /dev/null +++ b/include/stdex/sgml_unicode.h @@ -0,0 +1,3092 @@ +/* + SPDX-License-Identifier: MIT + Copyright © 2023 Amebis +*/ + +#pragma once + +namespace stdex +{ + /// \cond internal + struct sgml_unicode_pair { + char sgml[12]; ///< Entity name (without leading & and trailing ;) + wchar_t unicode[3]; ///< Unicode string representation + }; + + static const sgml_unicode_pair sgml_unicode[] = { + { "AElig", L"\u00c6" }, + { "Aacgr", L"\u0386" }, + { "Aacute", L"\u00c1" }, + { "Aacute", L"\u0041\u0301" }, + { "Abreve", L"\u0102" }, + { "Abreve", L"\u0041\u0306" }, + { "Abring", L"\u0041\u032f" }, + { "Acaron", L"\u0041\u030c" }, + { "Acirc", L"\u00c2" }, + { "Acirc", L"\u0041\u0302" }, + { "Acy", L"\u0410" }, + { "Adot", L"\u0041\u0307" }, + { "Agr", L"\u0391" }, + { "Agrave", L"\u00c0" }, + { "Agrave", L"\u0041\u0300" }, + { "Alpha", L"\u0391" }, + { "Amacr", L"\u0100" }, + { "Amacr", L"\u0041\u0304" }, + { "Aogon", L"\u0104" }, + { "Aring", L"\u00c5" }, + { "Atilde", L"\u00c3" }, + { "Atilde", L"\u0041\u0303" }, + { "Auml", L"\u00c4" }, + { "Auml", L"\u0041\u0308" }, + { "Bacute", L"\u0042\u0301" }, + { "Barwed", L"\u2306" }, + { "Bbreve", L"\u0042\u0306" }, + { "Bbring", L"\u0042\u032f" }, + { "Bcaron", L"\u0042\u030c" }, + { "Bcirc", L"\u0042\u0302" }, + { "Bcy", L"\u0411" }, + { "Bdot", L"\u0042\u0307" }, + { "Beta", L"\u0392" }, + { "Bgr", L"\u0392" }, + { "Bgrave", L"\u0042\u0300" }, + { "Bmacr", L"\u0042\u0304" }, + { "Btilde", L"\u0042\u0303" }, + { "Buml", L"\u0042\u0308" }, + { "CHcy", L"\u0427" }, + { "Cacute", L"\u0106" }, + { "Cacute", L"\u0043\u0301" }, + { "Cap", L"\u22d2" }, + { "Cbreve", L"\u0043\u0306" }, + { "Cbring", L"\u0043\u032f" }, + { "Ccaron", L"\u010c" }, + { "Ccaron", L"\u0043\u030c" }, + { "Ccedil", L"\u00c7" }, + { "Ccirc", L"\u0108" }, + { "Ccirc", L"\u0043\u0302" }, + { "Cdot", L"\u010a" }, + { "Cdot", L"\u0043\u0307" }, + { "Cgrave", L"\u0043\u0300" }, + { "Chi", L"\u03a7" }, + { "Cmacr", L"\u0043\u0304" }, + { "Ctilde", L"\u0043\u0303" }, + { "Cuml", L"\u0043\u0308" }, + { "Cup", L"\u22d3" }, + { "DJcy", L"\u0402" }, + { "DScy", L"\u0405" }, + { "DZcy", L"\u040f" }, + { "Dacute", L"\u0044\u0301" }, + { "Dagger", L"\u2021" }, + { "Dbreve", L"\u0044\u0306" }, + { "Dbring", L"\u0044\u032f" }, + { "Dcaron", L"\u010e" }, + { "Dcaron", L"\u0044\u030c" }, + { "Dcirc", L"\u0044\u0302" }, + { "Dcy", L"\u0414" }, + { "Ddot", L"\u0044\u0307" }, + { "Delta", L"\u0394" }, + { "Dgr", L"\u0394" }, + { "Dgrave", L"\u0044\u0300" }, + { "Dmacr", L"\u0044\u0304" }, + { "Dot", L"\u00a8" }, + { "DotDot", L"\u20dc" }, + { "Dstrok", L"\u0110" }, + { "Dtilde", L"\u0044\u0303" }, + { "Duml", L"\u0044\u0308" }, + { "EEacgr", L"\u0389" }, + { "EEgr", L"\u0397" }, + { "ENG", L"\u014a" }, + { "ETH", L"\u00d0" }, + { "Eacgr", L"\u0388" }, + { "Eacute", L"\u00c9" }, + { "Eacute", L"\u0045\u0301" }, + { "Ebreve", L"\u0045\u0306" }, + { "Ebring", L"\u0045\u032f" }, + { "Ecaron", L"\u011a" }, + { "Ecaron", L"\u0045\u030c" }, + { "Ecirc", L"\u00ca" }, + { "Ecirc", L"\u0045\u0302" }, + { "Ecy", L"\u042d" }, + { "Edot", L"\u0116" }, + { "Edot", L"\u0045\u0307" }, + { "Edotb", L"\u1eb8" }, + { "Egr", L"\u0395" }, + { "Egrave", L"\u00c8" }, + { "Egrave", L"\u0045\u0300" }, + { "Emacr", L"\u0112" }, + { "Emacr", L"\u0045\u0304" }, + { "Eogon", L"\u0118" }, + { "Epsilon", L"\u0395" }, + { "Eta", L"\u0397" }, + { "Etilde", L"\u0045\u0303" }, + { "Euml", L"\u00cb" }, + { "Euml", L"\u0045\u0308" }, + { "Facute", L"\u0046\u0301" }, + { "Fbreve", L"\u0046\u0306" }, + { "Fbring", L"\u0046\u032f" }, + { "Fcaron", L"\u0046\u030c" }, + { "Fcirc", L"\u0046\u0302" }, + { "Fcy", L"\u0424" }, + { "Fdot", L"\u0046\u0307" }, + { "Fgrave", L"\u0046\u0300" }, + { "Fmacr", L"\u0046\u0304" }, + { "Ftilde", L"\u0046\u0303" }, + { "Fuml", L"\u0046\u0308" }, + { "GJcy", L"\u0403" }, + { "Gacute", L"\u0047\u0301" }, + { "Gamma", L"\u0393" }, + { "Gbreve", L"\u011e" }, + { "Gbreve", L"\u0047\u0306" }, + { "Gbring", L"\u0047\u032f" }, + { "Gcaron", L"\u0047\u030c" }, + { "Gcedil", L"\u0122" }, + { "Gcirc", L"\u011c" }, + { "Gcirc", L"\u0047\u0302" }, + { "Gcy", L"\u0413" }, + { "Gdot", L"\u0120" }, + { "Gdot", L"\u0047\u0307" }, + { "Gg", L"\u22d9" }, + { "Ggr", L"\u0393" }, + { "Ggrave", L"\u0047\u0300" }, + { "Gmacr", L"\u0047\u0304" }, + { "Gt", L"\u226b" }, + { "Gtilde", L"\u0047\u0303" }, + { "Guml", L"\u0047\u0308" }, + { "HARDcy", L"\u042a" }, + { "Hacute", L"\u0048\u0301" }, + { "Hbreve", L"\u0048\u0306" }, + { "Hbring", L"\u0048\u032f" }, + { "Hcaron", L"\u0048\u030c" }, + { "Hcirc", L"\u0124" }, + { "Hcirc", L"\u0048\u0302" }, + { "Hdot", L"\u0048\u0307" }, + { "Hgrave", L"\u0048\u0300" }, + { "Hmacr", L"\u0048\u0304" }, + { "Hstrok", L"\u0126" }, + { "Htilde", L"\u0048\u0303" }, + { "Huml", L"\u0048\u0308" }, + { "IEcy", L"\u0415" }, + { "IJlig", L"\u0132" }, + { "IOcy", L"\u0401" }, + { "Iacgr", L"\u038a" }, + { "Iacute", L"\u00cd" }, + { "Iacute", L"\u0049\u0301" }, + { "Ibreve", L"\u0049\u0306" }, + { "Ibring", L"\u0049\u032f" }, + { "Icaron", L"\u0049\u030c" }, + { "Icirc", L"\u00ce" }, + { "Icirc", L"\u0049\u0302" }, + { "Icy", L"\u0418" }, + { "Idigr", L"\u03aa" }, + { "Idot", L"\u0130" }, + { "Idot", L"\u0049\u0307" }, + { "Igr", L"\u0399" }, + { "Igrave", L"\u00cc" }, + { "Igrave", L"\u0049\u0300" }, + { "Imacr", L"\u012a" }, + { "Imacr", L"\u0049\u0304" }, + { "Iogon", L"\u012e" }, + { "Iota", L"\u0399" }, + { "Itilde", L"\u0128" }, + { "Itilde", L"\u0049\u0303" }, + { "Iukcy", L"\u0406" }, + { "Iuml", L"\u00cf" }, + { "Iuml", L"\u0049\u0308" }, + { "Jacute", L"\u004a\u0301" }, + { "Jbreve", L"\u004a\u0306" }, + { "Jbring", L"\u004a\u032f" }, + { "Jcaron", L"\u004a\u030c" }, + { "Jcirc", L"\u0134" }, + { "Jcirc", L"\u004a\u0302" }, + { "Jcy", L"\u0419" }, + { "Jdot", L"\u004a\u0307" }, + { "Jgrave", L"\u004a\u0300" }, + { "Jmacr", L"\u004a\u0304" }, + { "Jsercy", L"\u0408" }, + { "Jtilde", L"\u004a\u0303" }, + { "Jukcy", L"\u0404" }, + { "Juml", L"\u004a\u0308" }, + { "KHcy", L"\u0425" }, + { "KHgr", L"\u03a7" }, + { "KJcy", L"\u040c" }, + { "Kacute", L"\u004b\u0301" }, + { "Kappa", L"\u039a" }, + { "Kbreve", L"\u004b\u0306" }, + { "Kbring", L"\u004b\u032f" }, + { "Kcaron", L"\u004b\u030c" }, + { "Kcedil", L"\u0136" }, + { "Kcirc", L"\u004b\u0302" }, + { "Kcy", L"\u041a" }, + { "Kdot", L"\u004b\u0307" }, + { "Kgr", L"\u039a" }, + { "Kgrave", L"\u004b\u0300" }, + { "Kmacr", L"\u004b\u0304" }, + { "Ktilde", L"\u004b\u0303" }, + { "Kuml", L"\u004b\u0308" }, + { "LJcy", L"\u0409" }, + { "Lacute", L"\u0139" }, + { "Lacute", L"\u004c\u0301" }, + { "Lambda", L"\u039b" }, + { "Larr", L"\u219e" }, + { "Lbreve", L"\u004c\u0306" }, + { "Lbring", L"\u004c\u032f" }, + { "Lcaron", L"\u013d" }, + { "Lcaron", L"\u004c\u030c" }, + { "Lcedil", L"\u013b" }, + { "Lcirc", L"\u004c\u0302" }, + { "Lcy", L"\u041b" }, + { "Ldot", L"\u004c\u0307" }, + { "Lgr", L"\u039b" }, + { "Lgrave", L"\u004c\u0300" }, + { "Ll", L"\u22d8" }, + { "Lmacr", L"\u004c\u0304" }, + { "Lmidot", L"\u013f" }, + { "Lstrok", L"\u0141" }, + { "Lt", L"\u226a" }, + { "Ltilde", L"\u004c\u0303" }, + { "Luml", L"\u004c\u0308" }, + { "Macute", L"\u004d\u0301" }, + { "Mbreve", L"\u004d\u0306" }, + { "Mbring", L"\u004d\u032f" }, + { "Mcaron", L"\u004d\u030c" }, + { "Mcirc", L"\u004d\u0302" }, + { "Mcy", L"\u041c" }, + { "Mdot", L"\u004d\u0307" }, + { "Mgr", L"\u039c" }, + { "Mgrave", L"\u004d\u0300" }, + { "Mmacr", L"\u004d\u0304" }, + { "Mtilde", L"\u004d\u0303" }, + { "Mu", L"\u039c" }, + { "Muml", L"\u004d\u0308" }, + { "NJcy", L"\u040a" }, + { "Nacute", L"\u0143" }, + { "Nacute", L"\u004e\u0301" }, + { "Nbreve", L"\u004e\u0306" }, + { "Nbring", L"\u004e\u032f" }, + { "Ncaron", L"\u0147" }, + { "Ncaron", L"\u004e\u030c" }, + { "Ncedil", L"\u0145" }, + { "Ncirc", L"\u004e\u0302" }, + { "Ncy", L"\u041d" }, + { "Ndot", L"\u004e\u0307" }, + { "Ngr", L"\u039d" }, + { "Ngrave", L"\u004e\u0300" }, + { "Nmacr", L"\u004e\u0304" }, + { "Ntilde", L"\u00d1" }, + { "Ntilde", L"\u004e\u0303" }, + { "Nu", L"\u039d" }, + { "Numl", L"\u004e\u0308" }, + { "OElig", L"\u0152" }, + { "OHacgr", L"\u038f" }, + { "OHgr", L"\u03a9" }, + { "Oacgr", L"\u038c" }, + { "Oacute", L"\u00d3" }, + { "Oacute", L"\u004f\u0301" }, + { "Obreve", L"\u004f\u0306" }, + { "Obring", L"\u004f\u032f" }, + { "Ocaron", L"\u01d1" }, + { "Ocaron", L"\u004f\u030c" }, + { "Ocirc", L"\u00d4" }, + { "Ocirc", L"\u004f\u0302" }, + { "Ocy", L"\u041e" }, + { "Odblac", L"\u0150" }, + { "Odot", L"\u004f\u0307" }, + { "Odotb", L"\u1ecc" }, + { "Ogr", L"\u039f" }, + { "Ograve", L"\u00d2" }, + { "Ograve", L"\u004f\u0300" }, + { "Omacr", L"\u014c" }, + { "Omacr", L"\u004f\u0304" }, + { "Omega", L"\u03a9" }, + { "Omicron", L"\u039f" }, + { "Oslash", L"\u00d8" }, + { "Otilde", L"\u00d5" }, + { "Otilde", L"\u004f\u0303" }, + { "Ouml", L"\u00d6" }, + { "Ouml", L"\u004f\u0308" }, + { "PHgr", L"\u03a6" }, + { "PSgr", L"\u03a8" }, + { "Pacute", L"\u0050\u0301" }, + { "Pbreve", L"\u0050\u0306" }, + { "Pbring", L"\u0050\u032f" }, + { "Pcaron", L"\u0050\u030c" }, + { "Pcirc", L"\u0050\u0302" }, + { "Pcy", L"\u041f" }, + { "Pdot", L"\u0050\u0307" }, + { "Pgr", L"\u03a0" }, + { "Pgrave", L"\u0050\u0300" }, + { "Phi", L"\u03a6" }, + { "Pi", L"\u03a0" }, + { "Pmacr", L"\u0050\u0304" }, + { "Prime", L"\u2033" }, + { "Psi", L"\u03a8" }, + { "Ptilde", L"\u0050\u0303" }, + { "Puml", L"\u0050\u0308" }, + { "Qacute", L"\u0051\u0301" }, + { "Qbreve", L"\u0051\u0306" }, + { "Qbring", L"\u0051\u032f" }, + { "Qcaron", L"\u0051\u030c" }, + { "Qcirc", L"\u0051\u0302" }, + { "Qdot", L"\u0051\u0307" }, + { "Qgrave", L"\u0051\u0300" }, + { "Qmacr", L"\u0051\u0304" }, + { "Qtilde", L"\u0051\u0303" }, + { "Quml", L"\u0051\u0308" }, + { "Racute", L"\u0154" }, + { "Racute", L"\u0052\u0301" }, + { "Rarr", L"\u21a0" }, + { "Rbreve", L"\u0052\u0306" }, + { "Rbring", L"\u0052\u032f" }, + { "Rcaron", L"\u0158" }, + { "Rcaron", L"\u0052\u030c" }, + { "Rcedil", L"\u0156" }, + { "Rcirc", L"\u0052\u0302" }, + { "Rcy", L"\u0420" }, + { "Rdot", L"\u0052\u0307" }, + { "Rgr", L"\u03a1" }, + { "Rgrave", L"\u0052\u0300" }, + { "Rho", L"\u03a1" }, + { "Rmacr", L"\u0052\u0304" }, + { "Rtilde", L"\u0052\u0303" }, + { "Ruml", L"\u0052\u0308" }, + { "SHCHcy", L"\u0429" }, + { "SHcy", L"\u0428" }, + { "SOFTcy", L"\u042c" }, + { "Sacute", L"\u015a" }, + { "Sacute", L"\u0053\u0301" }, + { "Sbreve", L"\u0053\u0306" }, + { "Sbring", L"\u0053\u032f" }, + { "Scaron", L"\u0160" }, + { "Scaron", L"\u0053\u030c" }, + { "Scedil", L"\u015e" }, + { "Scirc", L"\u015c" }, + { "Scirc", L"\u0053\u0302" }, + { "Scy", L"\u0421" }, + { "Sdot", L"\u0053\u0307" }, + { "Sgr", L"\u03a3" }, + { "Sgrave", L"\u0053\u0300" }, + { "Sigma", L"\u03a3" }, + { "Smacr", L"\u0053\u0304" }, + { "Stilde", L"\u0053\u0303" }, + { "Sub", L"\u22d0" }, + { "Suml", L"\u0053\u0308" }, + { "Sup", L"\u22d1" }, + { "THORN", L"\u00de" }, + { "THgr", L"\u0398" }, + { "TSHcy", L"\u040b" }, + { "TScy", L"\u0426" }, + { "Tacute", L"\u0054\u0301" }, + { "Tau", L"\u03a4" }, + { "Tbreve", L"\u0054\u0306" }, + { "Tbring", L"\u0054\u032f" }, + { "Tcaron", L"\u0164" }, + { "Tcaron", L"\u0054\u030c" }, + { "Tcedil", L"\u0162" }, + { "Tcirc", L"\u0054\u0302" }, + { "Tcy", L"\u0422" }, + { "Tdot", L"\u0054\u0307" }, + { "Tgr", L"\u03a4" }, + { "Tgrave", L"\u0054\u0300" }, + { "Theta", L"\u0398" }, + { "Tmacr", L"\u0054\u0304" }, + { "Tstrok", L"\u0166" }, + { "Ttilde", L"\u0054\u0303" }, + { "Tuml", L"\u0054\u0308" }, + { "Uacgr", L"\u038e" }, + { "Uacute", L"\u00da" }, + { "Uacute", L"\u0055\u0301" }, + { "Ubrcy", L"\u040e" }, + { "Ubreve", L"\u016c" }, + { "Ubreve", L"\u0055\u0306" }, + { "Ubring", L"\u0055\u032f" }, + { "Ucaron", L"\u0055\u030c" }, + { "Ucirc", L"\u00db" }, + { "Ucirc", L"\u0055\u0302" }, + { "Ucy", L"\u0423" }, + { "Udblac", L"\u0170" }, + { "Udigr", L"\u03ab" }, + { "Udot", L"\u0055\u0307" }, + { "Ugr", L"\u03a5" }, + { "Ugrave", L"\u00d9" }, + { "Ugrave", L"\u0055\u0300" }, + { "Umacr", L"\u016a" }, + { "Umacr", L"\u0055\u0304" }, + { "Uogon", L"\u0172" }, + { "Upsi", L"\u03a5" }, + { "Upsilon", L"\u03a5" }, + { "Uring", L"\u016e" }, + { "Utilde", L"\u0168" }, + { "Utilde", L"\u0055\u0303" }, + { "Uuml", L"\u00dc" }, + { "Uuml", L"\u0055\u0308" }, + { "Vacute", L"\u0056\u0301" }, + { "Vbreve", L"\u0056\u0306" }, + { "Vbring", L"\u0056\u032f" }, + { "Vcaron", L"\u0056\u030c" }, + { "Vcirc", L"\u0056\u0302" }, + { "Vcy", L"\u0412" }, + { "Vdash", L"\u22a9" }, + { "Vdot", L"\u0056\u0307" }, + { "Verbar", L"\u2016" }, + { "Vgrave", L"\u0056\u0300" }, + { "Vmacr", L"\u0056\u0304" }, + { "Vtilde", L"\u0056\u0303" }, + { "Vuml", L"\u0056\u0308" }, + { "Vvdash", L"\u22aa" }, + { "Wacute", L"\u0057\u0301" }, + { "Wbreve", L"\u0057\u0306" }, + { "Wbring", L"\u0057\u032f" }, + { "Wcaron", L"\u0057\u030c" }, + { "Wcirc", L"\u0174" }, + { "Wcirc", L"\u0057\u0302" }, + { "Wdot", L"\u0057\u0307" }, + { "Wgrave", L"\u0057\u0300" }, + { "Wmacr", L"\u0057\u0304" }, + { "Wtilde", L"\u0057\u0303" }, + { "Wuml", L"\u0057\u0308" }, + { "Xacute", L"\u0058\u0301" }, + { "Xbreve", L"\u0058\u0306" }, + { "Xbring", L"\u0058\u032f" }, + { "Xcaron", L"\u0058\u030c" }, + { "Xcirc", L"\u0058\u0302" }, + { "Xdot", L"\u0058\u0307" }, + { "Xgr", L"\u039e" }, + { "Xgrave", L"\u0058\u0300" }, + { "Xi", L"\u039e" }, + { "Xmacr", L"\u0058\u0304" }, + { "Xtilde", L"\u0058\u0303" }, + { "Xuml", L"\u0058\u0308" }, + { "YAcy", L"\u042f" }, + { "YIcy", L"\u0407" }, + { "YUcy", L"\u042e" }, + { "Yacute", L"\u00dd" }, + { "Yacute", L"\u0059\u0301" }, + { "Ybreve", L"\u0059\u0306" }, + { "Ybring", L"\u0059\u032f" }, + { "Ycaron", L"\u0059\u030c" }, + { "Ycirc", L"\u0176" }, + { "Ycirc", L"\u0059\u0302" }, + { "Ycy", L"\u042b" }, + { "Ydot", L"\u0059\u0307" }, + { "Ygrave", L"\u0059\u0300" }, + { "Ymacr", L"\u0059\u0304" }, + { "Ytilde", L"\u0059\u0303" }, + { "Yuml", L"\u0178" }, + { "Yuml", L"\u0059\u0308" }, + { "ZHcy", L"\u0416" }, + { "Zacute", L"\u0179" }, + { "Zacute", L"\u005a\u0301" }, + { "Zbreve", L"\u005a\u0306" }, + { "Zbring", L"\u005a\u032f" }, + { "Zcaron", L"\u017d" }, + { "Zcaron", L"\u005a\u030c" }, + { "Zcirc", L"\u005a\u0302" }, + { "Zcy", L"\u0417" }, + { "Zdot", L"\u017b" }, + { "Zdot", L"\u005a\u0307" }, + { "Zeta", L"\u0396" }, + { "Zgr", L"\u0396" }, + { "Zgrave", L"\u005a\u0300" }, + { "Zmacr", L"\u005a\u0304" }, + { "Ztilde", L"\u005a\u0303" }, + { "Zuml", L"\u005a\u0308" }, + { "aacgr", L"\u03ac" }, + { "aacute", L"\u00e1" }, + { "aacute", L"\u0061\u0301" }, + { "abreve", L"\u0103" }, + { "abreve", L"\u0061\u0306" }, + { "abring", L"\u0061\u032f" }, + { "acaron", L"\u0061\u030c" }, + { "acirc", L"\u00e2" }, + { "acirc", L"\u0061\u0302" }, + { "acute", L"\u00b4" }, + { "acy", L"\u0430" }, + { "adot", L"\u0061\u0307" }, + { "aelig", L"\u00e6" }, + { "agr", L"\u03b1" }, + { "agrave", L"\u00e0" }, + { "agrave", L"\u0061\u0300" }, + { "alefsym", L"\u2135" }, + { "aleph", L"\u2135" }, + { "alpha", L"\u03b1" }, + { "amacr", L"\u0101" }, + { "amacr", L"\u0061\u0304" }, + { "amalg", L"\u2210" }, + { "amp", L"\u0026" }, + { "and", L"\u2227" }, + { "ang", L"\u2220" }, + { "ang90", L"\u221f" }, + { "angmsd", L"\u2221" }, + { "angsph", L"\u2222" }, + { "angst", L"\u212b" }, + { "aogon", L"\u0105" }, + { "ap", L"\u2248" }, + { "ape", L"\u224a" }, + { "apos", L"\u0027" }, + { "apos", L"\u02bc" }, + { "aring", L"\u00e5" }, + { "ast", L"\u002a" }, + { "asymp", L"\u2248" }, + { "atilde", L"\u00e3" }, + { "atilde", L"\u0061\u0303" }, + { "auml", L"\u00e4" }, + { "auml", L"\u0061\u0308" }, + { "b.Delta", L"\u0394" }, + { "b.Gamma", L"\u0393" }, + { "b.Lambda", L"\u039b" }, + { "b.Omega", L"\u03a9" }, + { "b.Phi", L"\u03a6" }, + { "b.Pi", L"\u03a0" }, + { "b.Psi", L"\u03a8" }, + { "b.Sigma", L"\u03a3" }, + { "b.Theta", L"\u0398" }, + { "b.Upsi", L"\u03a5" }, + { "b.Xi", L"\u039e" }, + { "b.alpha", L"\u03b1" }, + { "b.beta", L"\u03b2" }, + { "b.chi", L"\u03c7" }, + { "b.delta", L"\u03b4" }, + { "b.epsi", L"\u03b5" }, + { "b.epsis", L"\u03b5" }, + { "b.epsiv", L"\u03b5" }, + { "b.eta", L"\u03b7" }, + { "b.gamma", L"\u03b3" }, + { "b.gammad", L"\u03dc" }, + { "b.iota", L"\u03b9" }, + { "b.kappa", L"\u03ba" }, + { "b.kappav", L"\u03f0" }, + { "b.lambda", L"\u03bb" }, + { "b.mu", L"\u03bc" }, + { "b.nu", L"\u03bd" }, + { "b.omega", L"\u03ce" }, + { "b.phis", L"\u03c6" }, + { "b.phiv", L"\u03d5" }, + { "b.pi", L"\u03c0" }, + { "b.piv", L"\u03d6" }, + { "b.psi", L"\u03c8" }, + { "b.rho", L"\u03c1" }, + { "b.rhov", L"\u03f1" }, + { "b.sigma", L"\u03c3" }, + { "b.sigmav", L"\u03c2" }, + { "b.tau", L"\u03c4" }, + { "b.thetas", L"\u03b8" }, + { "b.thetav", L"\u03d1" }, + { "b.upsi", L"\u03c5" }, + { "b.xi", L"\u03be" }, + { "b.zeta", L"\u03b6" }, + { "bacute", L"\u0062\u0301" }, + { "barwed", L"\u22bc" }, + { "bbreve", L"\u0062\u0306" }, + { "bbring", L"\u0062\u032f" }, + { "bcaron", L"\u0062\u030c" }, + { "bcirc", L"\u0062\u0302" }, + { "bcong", L"\u224c" }, + { "bcy", L"\u0431" }, + { "bdot", L"\u0062\u0307" }, + { "bdquo", L"\u201e" }, + { "becaus", L"\u2235" }, + { "bepsi", L"\u220d" }, + { "bernou", L"\u212c" }, + { "beta", L"\u03b2" }, + { "beth", L"\u2136" }, + { "bgr", L"\u03b2" }, + { "bgrave", L"\u0062\u0300" }, + { "blank", L"\u2423" }, + { "blk12", L"\u2592" }, + { "blk14", L"\u2591" }, + { "blk34", L"\u2593" }, + { "block", L"\u2588" }, + { "bmacr", L"\u0062\u0304" }, + { "bottom", L"\u22a5" }, + { "bowtie", L"\u22c8" }, + { "boxDL", L"\u2557" }, + { "boxDR", L"\u2554" }, + { "boxDl", L"\u2556" }, + { "boxDr", L"\u2553" }, + { "boxH", L"\u2550" }, + { "boxHD", L"\u2566" }, + { "boxHU", L"\u2569" }, + { "boxHd", L"\u2564" }, + { "boxHu", L"\u2567" }, + { "boxUL", L"\u255d" }, + { "boxUR", L"\u255a" }, + { "boxUl", L"\u255c" }, + { "boxUr", L"\u2559" }, + { "boxV", L"\u2551" }, + { "boxVH", L"\u256c" }, + { "boxVL", L"\u2563" }, + { "boxVR", L"\u2560" }, + { "boxVh", L"\u256b" }, + { "boxVl", L"\u2562" }, + { "boxVr", L"\u255f" }, + { "boxdL", L"\u2555" }, + { "boxdR", L"\u2552" }, + { "boxdl", L"\u2510" }, + { "boxdr", L"\u250c" }, + { "boxh", L"\u2500" }, + { "boxhD", L"\u2565" }, + { "boxhU", L"\u2568" }, + { "boxhd", L"\u252c" }, + { "boxhu", L"\u2534" }, + { "boxuL", L"\u255b" }, + { "boxuR", L"\u2558" }, + { "boxul", L"\u2518" }, + { "boxur", L"\u2514" }, + { "boxv", L"\u2502" }, + { "boxvH", L"\u256a" }, + { "boxvL", L"\u2561" }, + { "boxvR", L"\u255e" }, + { "boxvh", L"\u253c" }, + { "boxvl", L"\u2524" }, + { "boxvr", L"\u251c" }, + { "bprime", L"\u2035" }, + { "breve", L"\u02d8" }, + { "brvbar", L"\u00a6" }, + { "bsim", L"\u223d" }, + { "bsime", L"\u22cd" }, + { "bsol", L"\u005c" }, + { "btilde", L"\u0062\u0303" }, + { "bull", L"\u2022" }, + { "buml", L"\u0062\u0308" }, + { "bump", L"\u224e" }, + { "bumpe", L"\u224f" }, + { "cacute", L"\u0107" }, + { "cacute", L"\u0063\u0301" }, + { "cap", L"\u2229" }, + { "caret", L"\u2041" }, + { "caron", L"\u02c7" }, + { "cbreve", L"\u0063\u0306" }, + { "cbring", L"\u0063\u032f" }, + { "ccaron", L"\u010d" }, + { "ccaron", L"\u0063\u030c" }, + { "ccedil", L"\u00e7" }, + { "ccirc", L"\u0109" }, + { "ccirc", L"\u0063\u0302" }, + { "cdot", L"\u010b" }, + { "cdot", L"\u0063\u0307" }, + { "cedil", L"\u00b8" }, + { "cent", L"\u00a2" }, + { "cgrave", L"\u0063\u0300" }, + { "chcy", L"\u0447" }, + { "check", L"\u2713" }, + { "chi", L"\u03c7" }, + { "cir", L"\u25cb" }, + { "circ", L"\u02c6" }, + { "circlef", L"\u25cf" }, + { "circlefb", L"\u25d2" }, + { "circlefl", L"\u25d0" }, + { "circlefr", L"\u25d1" }, + { "circleft", L"\u25d3" }, + { "cire", L"\u2257" }, + { "clubs", L"\u2663" }, + { "cmacr", L"\u0063\u0304" }, + { "colon", L"\u003a" }, + { "colone", L"\u2254" }, + { "comma", L"\u002c" }, + { "commat", L"\u0040" }, + { "comp", L"\u2201" }, + { "compfn", L"\u2218" }, + { "cong", L"\u2245" }, + { "conint", L"\u222e" }, + { "coprod", L"\u2210" }, + { "copy", L"\u00a9" }, + { "copysr", L"\u2117" }, + { "crarr", L"\u21b5" }, + { "cross", L"\u2717" }, + { "ctilde", L"\u0063\u0303" }, + { "cuepr", L"\u22de" }, + { "cuesc", L"\u22df" }, + { "cularr", L"\u21b6" }, + { "cuml", L"\u0063\u0308" }, + { "cup", L"\u222a" }, + { "cupre", L"\u227c" }, + { "curarr", L"\u21b7" }, + { "curren", L"\u00a4" }, + { "cuvee", L"\u22ce" }, + { "cuwed", L"\u22cf" }, + { "dArr", L"\u21d3" }, + { "dacute", L"\u0064\u0301" }, + { "dagger", L"\u2020" }, + { "daleth", L"\u2138" }, + { "darr", L"\u2193" }, + { "darr2", L"\u21ca" }, + { "dash", L"\u2010" }, + { "dashv", L"\u22a3" }, + { "dblac", L"\u02dd" }, + { "dbreve", L"\u0064\u0306" }, + { "dbring", L"\u0064\u032f" }, + { "dcaron", L"\u010f" }, + { "dcaron", L"\u0064\u030c" }, + { "dcirc", L"\u0064\u0302" }, + { "dcy", L"\u0434" }, + { "ddot", L"\u0064\u0307" }, + { "deg", L"\u00b0" }, + { "delta", L"\u03b4" }, + { "dgr", L"\u03b4" }, + { "dgrave", L"\u0064\u0300" }, + { "dharl", L"\u21c3" }, + { "dharr", L"\u21c2" }, + { "diam", L"\u22c4" }, + { "diamondf", L"\u25c6" }, + { "diams", L"\u2666" }, + { "die", L"\u00a8" }, + { "divide", L"\u00f7" }, + { "divonx", L"\u22c7" }, + { "djcy", L"\u0452" }, + { "dlarr", L"\u2199" }, + { "dlcorn", L"\u231e" }, + { "dlcrop", L"\u230d" }, + { "dmacr", L"\u0064\u0304" }, + { "dollar", L"\u0024" }, + { "dot", L"\u02d9" }, + { "drarr", L"\u2198" }, + { "drcorn", L"\u231f" }, + { "drcrop", L"\u230c" }, + { "dscy", L"\u0455" }, + { "dstrok", L"\u0111" }, + { "dtilde", L"\u0064\u0303" }, + { "dtri", L"\u25bf" }, + { "dtrif", L"\u25be" }, + { "duml", L"\u0064\u0308" }, + { "dzcy", L"\u045f" }, + { "eDot", L"\u2251" }, + { "eacgr", L"\u03ad" }, + { "eacute", L"\u00e9" }, + { "eacute", L"\u0065\u0301" }, + { "ebreve", L"\u0065\u0306" }, + { "ebring", L"\u0065\u032f" }, + { "ecaron", L"\u011b" }, + { "ecaron", L"\u0065\u030c" }, + { "ecir", L"\u2256" }, + { "ecirc", L"\u00ea" }, + { "ecirc", L"\u0065\u0302" }, + { "ecolon", L"\u2255" }, + { "ecy", L"\u044d" }, + { "edot", L"\u0117" }, + { "edot", L"\u0065\u0307" }, + { "edotb", L"\u1eb9" }, + { "eeacgr", L"\u03ae" }, + { "eegr", L"\u03b7" }, + { "efDot", L"\u2252" }, + { "egr", L"\u03b5" }, + { "egrave", L"\u00e8" }, + { "egrave", L"\u0065\u0300" }, + { "egs", L"\u22dd" }, + { "ell", L"\u2113" }, + { "els", L"\u22dc" }, + { "emacr", L"\u0113" }, + { "emacr", L"\u0065\u0304" }, + { "empty", L"\u2205" }, + { "emsp", L"\u2003" }, + { "emsp13", L"\u2004" }, + { "emsp14", L"\u2005" }, + { "eng", L"\u014b" }, + { "ensp", L"\u2002" }, + { "eogon", L"\u0119" }, + { "epsi", L"\u03b5" }, + { "epsilon", L"\u03b5" }, + { "epsis", L"\u220a" }, + { "equals", L"\u003d" }, + { "equiv", L"\u2261" }, + { "erDot", L"\u2253" }, + { "esdot", L"\u2250" }, + { "eta", L"\u03b7" }, + { "eth", L"\u00f0" }, + { "etilde", L"\u0065\u0303" }, + { "euml", L"\u00eb" }, + { "euml", L"\u0065\u0308" }, + { "euro", L"\u20ac" }, + { "excl", L"\u0021" }, + { "exist", L"\u2203" }, + { "facute", L"\u0066\u0301" }, + { "fbreve", L"\u0066\u0306" }, + { "fbring", L"\u0066\u032f" }, + { "fcaron", L"\u0066\u030c" }, + { "fcirc", L"\u0066\u0302" }, + { "fcy", L"\u0444" }, + { "fdot", L"\u0066\u0307" }, + { "female", L"\u2640" }, + { "ffilig", L"\ufb03" }, + { "fflig", L"\ufb00" }, + { "ffllig", L"\ufb04" }, + { "fgrave", L"\u0066\u0300" }, + { "filig", L"\ufb01" }, + { "flat", L"\u266d" }, + { "fllig", L"\ufb02" }, + { "fmacr", L"\u0066\u0304" }, + { "fnof", L"\u0192" }, + { "forall", L"\u2200" }, + { "fork", L"\u22d4" }, + { "frac12", L"\u00bd" }, + { "frac13", L"\u2153" }, + { "frac14", L"\u00bc" }, + { "frac15", L"\u2155" }, + { "frac16", L"\u2159" }, + { "frac18", L"\u215b" }, + { "frac23", L"\u2154" }, + { "frac25", L"\u2156" }, + { "frac34", L"\u00be" }, + { "frac35", L"\u2157" }, + { "frac38", L"\u215c" }, + { "frac45", L"\u2158" }, + { "frac56", L"\u215a" }, + { "frac58", L"\u215d" }, + { "frac78", L"\u215e" }, + { "frasl", L"\u2044" }, + { "frown", L"\u2322" }, + { "ftilde", L"\u0066\u0303" }, + { "fuml", L"\u0066\u0308" }, + { "gE", L"\u2267" }, + { "gacute", L"\u01f5" }, + { "gacute", L"\u0067\u0301" }, + { "gamma", L"\u03b3" }, + { "gammad", L"\u03dc" }, + { "gbreve", L"\u011f" }, + { "gbreve", L"\u0067\u0306" }, + { "gbring", L"\u0067\u032f" }, + { "gcaron", L"\u0067\u030c" }, + { "gcedil", L"\u0123" }, + { "gcirc", L"\u011d" }, + { "gcirc", L"\u0067\u0302" }, + { "gcy", L"\u0433" }, + { "gdot", L"\u0121" }, + { "gdot", L"\u0067\u0307" }, + { "ge", L"\u2265" }, + { "gel", L"\u22db" }, + { "ges", L"\u2265" }, + { "ggr", L"\u03b3" }, + { "ggrave", L"\u0067\u0300" }, + { "gimel", L"\u2137" }, + { "gjcy", L"\u0453" }, + { "gl", L"\u2277" }, + { "gmacr", L"\u0067\u0304" }, + { "gnE", L"\u2269" }, + { "gne", L"\u2269" }, + { "gnsim", L"\u22e7" }, + { "grave", L"\u0060" }, + { "gsdot", L"\u22d7" }, + { "gsim", L"\u2273" }, + { "gt", L"\u003e" }, + { "gtilde", L"\u0067\u0303" }, + { "guml", L"\u0067\u0308" }, + { "gvnE", L"\u2269" }, + { "hArr", L"\u21d4" }, + { "hacute", L"\u0068\u0301" }, + { "hairsp", L"\u200a" }, + { "half", L"\u00bd" }, + { "hamilt", L"\u210b" }, + { "hardcy", L"\u044a" }, + { "harr", L"\u2194" }, + { "harrw", L"\u21ad" }, + { "hbreve", L"\u0068\u0306" }, + { "hbring", L"\u0068\u032f" }, + { "hcaron", L"\u0068\u030c" }, + { "hcirc", L"\u0125" }, + { "hcirc", L"\u0068\u0302" }, + { "hdot", L"\u0068\u0307" }, + { "hearts", L"\u2665" }, + { "hellip", L"\u2026" }, + { "hgrave", L"\u0068\u0300" }, + { "hmacr", L"\u0068\u0304" }, + { "horbar", L"\u2015" }, + { "hstrok", L"\u0127" }, + { "htilde", L"\u0068\u0303" }, + { "huml", L"\u0068\u0308" }, + { "hybull", L"\u2043" }, + { "hyphen", L"\u002d" }, + { "iacgr", L"\u03af" }, + { "iacute", L"\u00ed" }, + { "iacute", L"\u0069\u0301" }, + { "ibreve", L"\u0069\u0306" }, + { "ibring", L"\u0069\u032f" }, + { "icaron", L"\u0069\u030c" }, + { "icirc", L"\u00ee" }, + { "icirc", L"\u0069\u0302" }, + { "icy", L"\u0438" }, + { "idiagr", L"\u0390" }, + { "idigr", L"\u03ca" }, + { "idot", L"\u0069\u0307" }, + { "iecy", L"\u0435" }, + { "iexcl", L"\u00a1" }, + { "iff", L"\u21d4" }, + { "igr", L"\u03b9" }, + { "igrave", L"\u00ec" }, + { "igrave", L"\u0069\u0300" }, + { "ijlig", L"\u0133" }, + { "imacr", L"\u012b" }, + { "imacr", L"\u0069\u0304" }, + { "image", L"\u2111" }, + { "incare", L"\u2105" }, + { "infin", L"\u221e" }, + { "inodot", L"\u0131" }, + { "inodot", L"\u0131" }, + { "int", L"\u222b" }, + { "intcal", L"\u22ba" }, + { "iocy", L"\u0451" }, + { "iogon", L"\u012f" }, + { "iota", L"\u03b9" }, + { "iquest", L"\u00bf" }, + { "isin", L"\u2208" }, + { "itilde", L"\u0129" }, + { "itilde", L"\u0069\u0303" }, + { "iukcy", L"\u0456" }, + { "iuml", L"\u00ef" }, + { "iuml", L"\u0069\u0308" }, + { "jacute", L"\u006a\u0301" }, + { "jbreve", L"\u006a\u0306" }, + { "jbring", L"\u006a\u032f" }, + { "jcaron", L"\u006a\u030c" }, + { "jcirc", L"\u0135" }, + { "jcirc", L"\u006a\u0302" }, + { "jcy", L"\u0439" }, + { "jdot", L"\u006a\u0307" }, + { "jgrave", L"\u006a\u0300" }, + { "jmacr", L"\u006a\u0304" }, + { "jsercy", L"\u0458" }, + { "jtilde", L"\u006a\u0303" }, + { "jukcy", L"\u0454" }, + { "juml", L"\u006a\u0308" }, + { "kacute", L"\u006b\u0301" }, + { "kappa", L"\u03ba" }, + { "kappav", L"\u03f0" }, + { "kbreve", L"\u006b\u0306" }, + { "kbring", L"\u006b\u032f" }, + { "kcaron", L"\u006b\u030c" }, + { "kcedil", L"\u0137" }, + { "kcirc", L"\u006b\u0302" }, + { "kcy", L"\u043a" }, + { "kdot", L"\u006b\u0307" }, + { "kgr", L"\u03ba" }, + { "kgrave", L"\u006b\u0300" }, + { "kgreen", L"\u0138" }, + { "khcy", L"\u0445" }, + { "khgr", L"\u03c7" }, + { "kjcy", L"\u045c" }, + { "kmacr", L"\u006b\u0304" }, + { "ktilde", L"\u006b\u0303" }, + { "kuml", L"\u006b\u0308" }, + { "lAarr", L"\u21da" }, + { "lArr", L"\u21d0" }, + { "lE", L"\u2266" }, + { "lacute", L"\u013a" }, + { "lacute", L"\u006c\u0301" }, + { "lagran", L"\u2112" }, + { "lambda", L"\u03bb" }, + { "lang", L"\u2329" }, + { "laquo", L"\u00ab" }, + { "larr", L"\u2190" }, + { "larr2", L"\u21c7" }, + { "larrhk", L"\u21a9" }, + { "larrlp", L"\u21ab" }, + { "larrtl", L"\u21a2" }, + { "lbreve", L"\u006c\u0306" }, + { "lbring", L"\u006c\u032f" }, + { "lcaron", L"\u013e" }, + { "lcaron", L"\u006c\u030c" }, + { "lcedil", L"\u013c" }, + { "lceil", L"\u2308" }, + { "lcirc", L"\u006c\u0302" }, + { "lcub", L"\u007b" }, + { "lcy", L"\u043b" }, + { "ldot", L"\u22d6" }, + { "ldot", L"\u006c\u0307" }, + { "ldquo", L"\u201c" }, + { "ldquor", L"\u201e" }, + { "le", L"\u2264" }, + { "leg", L"\u22da" }, + { "les", L"\u2264" }, + { "lfloor", L"\u230a" }, + { "lg", L"\u2276" }, + { "lgr", L"\u03bb" }, + { "lgrave", L"\u006c\u0300" }, + { "lhard", L"\u21bd" }, + { "lharu", L"\u21bc" }, + { "lhblk", L"\u2584" }, + { "ljcy", L"\u0459" }, + { "lmacr", L"\u006c\u0304" }, + { "lmidot", L"\u0140" }, + { "lnE", L"\u2268" }, + { "lne", L"\u2268" }, + { "lnsim", L"\u22e6" }, + { "lowast", L"\u2217" }, + { "lowbar", L"\u005f" }, + { "loz", L"\u25ca" }, + { "loz", L"\u2727" }, + { "lozf", L"\u2726" }, + { "lpar", L"\u0028" }, + { "lrarr2", L"\u21c6" }, + { "lrhar2", L"\u21cb" }, + { "lrm", L"\u200e" }, + { "lsaquo", L"\u2039" }, + { "lsh", L"\u21b0" }, + { "lsim", L"\u2272" }, + { "lsqb", L"\u005b" }, + { "lsquo", L"\u2018" }, + { "lsquor", L"\u201a" }, + { "lstrok", L"\u0142" }, + { "lt", L"\u003c" }, + { "lthree", L"\u22cb" }, + { "ltilde", L"\u006c\u0303" }, + { "ltimes", L"\u22c9" }, + { "ltri", L"\u25c3" }, + { "ltrie", L"\u22b4" }, + { "ltrif", L"\u25c2" }, + { "luml", L"\u006c\u0308" }, + { "lvnE", L"\u2268" }, + { "macr", L"\u00af" }, + { "macute", L"\u006d\u0301" }, + { "male", L"\u2642" }, + { "malt", L"\u2720" }, + { "map", L"\u21a6" }, + { "marker", L"\u25ae" }, + { "mbreve", L"\u006d\u0306" }, + { "mbring", L"\u006d\u032f" }, + { "mcaron", L"\u006d\u030c" }, + { "mcirc", L"\u006d\u0302" }, + { "mcy", L"\u043c" }, + { "mdash", L"\u2014" }, + { "mdot", L"\u006d\u0307" }, + { "mgr", L"\u03bc" }, + { "mgrave", L"\u006d\u0300" }, + { "micro", L"\u00b5" }, + { "mid", L"\u2223" }, + { "middot", L"\u00b7" }, + { "minus", L"\u2212" }, + { "minusb", L"\u229f" }, + { "mldr", L"\u2026" }, + { "mmacr", L"\u006d\u0304" }, + { "mnplus", L"\u2213" }, + { "models", L"\u22a7" }, + { "mtilde", L"\u006d\u0303" }, + { "mu", L"\u03bc" }, + { "mumap", L"\u22b8" }, + { "muml", L"\u006d\u0308" }, + { "nVDash", L"\u22af" }, + { "nVdash", L"\u22ae" }, + { "nabla", L"\u2207" }, + { "nacute", L"\u0144" }, + { "nacute", L"\u006e\u0301" }, + { "nap", L"\u2249" }, + { "napos", L"\u0149" }, + { "natur", L"\u266e" }, + { "nbreve", L"\u006e\u0306" }, + { "nbring", L"\u006e\u032f" }, + { "nbsp", L"\u00a0" }, + { "ncaron", L"\u0148" }, + { "ncaron", L"\u006e\u030c" }, + { "ncedil", L"\u0146" }, + { "ncirc", L"\u006e\u0302" }, + { "ncong", L"\u2247" }, + { "ncy", L"\u043d" }, + { "ndash", L"\u2013" }, + { "ndot", L"\u006e\u0307" }, + { "ne", L"\u2260" }, + { "nearr", L"\u2197" }, + { "nequiv", L"\u2262" }, + { "nexist", L"\u2204" }, + { "nge", L"\u2271" }, + { "nges", L"\u2271" }, + { "ngr", L"\u03bd" }, + { "ngrave", L"\u006e\u0300" }, + { "ngt", L"\u226f" }, + { "nhArr", L"\u21ce" }, + { "nharr", L"\u21ae" }, + { "ni", L"\u220b" }, + { "njcy", L"\u045a" }, + { "nlArr", L"\u21cd" }, + { "nlarr", L"\u219a" }, + { "nldr", L"\u2025" }, + { "nle", L"\u2270" }, + { "nles", L"\u2270" }, + { "nlt", L"\u226e" }, + { "nltri", L"\u22ea" }, + { "nltrie", L"\u22ec" }, + { "nmacr", L"\u006e\u0304" }, + { "nmid", L"\u2224" }, + { "not", L"\u00ac" }, + { "notin", L"\u2209" }, + { "npar", L"\u2226" }, + { "npr", L"\u2280" }, + { "npre", L"\u22e0" }, + { "nrArr", L"\u21cf" }, + { "nrarr", L"\u219b" }, + { "nrtri", L"\u22eb" }, + { "nrtrie", L"\u22ed" }, + { "nsc", L"\u2281" }, + { "nsce", L"\u22e1" }, + { "nsim", L"\u2241" }, + { "nsime", L"\u2244" }, + { "nspar", L"\u2226" }, + { "nsub", L"\u2284" }, + { "nsubE", L"\u2288" }, + { "nsube", L"\u2288" }, + { "nsup", L"\u2285" }, + { "nsupE", L"\u2289" }, + { "nsupe", L"\u2289" }, + { "ntilde", L"\u00f1" }, + { "ntilde", L"\u006e\u0303" }, + { "nu", L"\u03bd" }, + { "num", L"\u0023" }, + { "numero", L"\u2116" }, + { "numl", L"\u006e\u0308" }, + { "numsp", L"\u2007" }, + { "nvDash", L"\u22ad" }, + { "nvdash", L"\u22ac" }, + { "nwarr", L"\u2196" }, + { "oS", L"\u24c8" }, + { "oacgr", L"\u03cc" }, + { "oacute", L"\u00f3" }, + { "oacute", L"\u006f\u0301" }, + { "oast", L"\u229b" }, + { "obreve", L"\u006f\u0306" }, + { "obring", L"\u006f\u032f" }, + { "ocaron", L"\u01d2" }, + { "ocaron", L"\u006f\u030c" }, + { "ocir", L"\u229a" }, + { "ocirc", L"\u00f4" }, + { "ocirc", L"\u006f\u0302" }, + { "ocy", L"\u043e" }, + { "odash", L"\u229d" }, + { "odblac", L"\u0151" }, + { "odot", L"\u2299" }, + { "odot", L"\u006f\u0307" }, + { "odotb", L"\u1ecd" }, + { "oelig", L"\u0153" }, + { "ogon", L"\u02db" }, + { "ogr", L"\u03bf" }, + { "ograve", L"\u00f2" }, + { "ograve", L"\u006f\u0300" }, + { "ohacgr", L"\u03ce" }, + { "ohgr", L"\u03c9" }, + { "ohm", L"\u2126" }, + { "olarr", L"\u21ba" }, + { "oline", L"\u203e" }, + { "omacr", L"\u014d" }, + { "omacr", L"\u006f\u0304" }, + { "omega", L"\u03c9" }, + { "omicron", L"\u03bf" }, + { "ominus", L"\u2296" }, + { "oplus", L"\u2295" }, + { "or", L"\u2228" }, + { "orarr", L"\u21bb" }, + { "order", L"\u2134" }, + { "ordf", L"\u00aa" }, + { "ordm", L"\u00ba" }, + { "oslash", L"\u00f8" }, + { "osol", L"\u2298" }, + { "otilde", L"\u00f5" }, + { "otilde", L"\u006f\u0303" }, + { "otimes", L"\u2297" }, + { "ouml", L"\u00f6" }, + { "ouml", L"\u006f\u0308" }, + { "pacute", L"\u0070\u0301" }, + { "page", L"\u000c" }, + { "par", L"\u2225" }, + { "para", L"\u00b6" }, + { "part", L"\u2202" }, + { "pbreve", L"\u0070\u0306" }, + { "pbring", L"\u0070\u032f" }, + { "pcaron", L"\u0070\u030c" }, + { "pcirc", L"\u0070\u0302" }, + { "pcy", L"\u043f" }, + { "pdot", L"\u0070\u0307" }, + { "percnt", L"\u0025" }, + { "period", L"\u002e" }, + { "permil", L"\u2030" }, + { "perp", L"\u22a5" }, + { "pgr", L"\u03c0" }, + { "pgrave", L"\u0070\u0300" }, + { "phgr", L"\u03c6" }, + { "phi", L"\u03c6" }, + { "phis", L"\u03c6" }, + { "phiv", L"\u03d5" }, + { "phmmat", L"\u2133" }, + { "phone", L"\u260e" }, + { "pi", L"\u03c0" }, + { "piv", L"\u03d6" }, + { "planck", L"\u210f" }, + { "plus", L"\u002b" }, + { "plusb", L"\u229e" }, + { "plusdo", L"\u2214" }, + { "plusmn", L"\u00b1" }, + { "pmacr", L"\u0070\u0304" }, + { "pound", L"\u00a3" }, + { "pr", L"\u227a" }, + { "pre", L"\u227c" }, + { "prime", L"\u2032" }, + { "prnsim", L"\u22e8" }, + { "prod", L"\u220f" }, + { "prop", L"\u221d" }, + { "prsim", L"\u227e" }, + { "psgr", L"\u03c8" }, + { "psi", L"\u03c8" }, + { "ptilde", L"\u0070\u0303" }, + { "puml", L"\u0070\u0308" }, + { "puncsp", L"\u2008" }, + { "qacute", L"\u0071\u0301" }, + { "qbreve", L"\u0071\u0306" }, + { "qbring", L"\u0071\u032f" }, + { "qcaron", L"\u0071\u030c" }, + { "qcirc", L"\u0071\u0302" }, + { "qdot", L"\u0071\u0307" }, + { "qgrave", L"\u0071\u0300" }, + { "qmacr", L"\u0071\u0304" }, + { "qtilde", L"\u0071\u0303" }, + { "quest", L"\u003f" }, + { "quml", L"\u0071\u0308" }, + { "quot", L"\u0022" }, + { "rAarr", L"\u21db" }, + { "rArr", L"\u21d2" }, + { "racute", L"\u0155" }, + { "racute", L"\u0072\u0301" }, + { "radic", L"\u221a" }, + { "rang", L"\u232a" }, + { "raquo", L"\u00bb" }, + { "rarr", L"\u2192" }, + { "rarr2", L"\u21c9" }, + { "rarrhk", L"\u21aa" }, + { "rarrlp", L"\u21ac" }, + { "rarrtl", L"\u21a3" }, + { "rarrw", L"\u219d" }, + { "rbreve", L"\u0072\u0306" }, + { "rbring", L"\u0072\u032f" }, + { "rcaron", L"\u0159" }, + { "rcaron", L"\u0072\u030c" }, + { "rcedil", L"\u0157" }, + { "rceil", L"\u2309" }, + { "rcirc", L"\u0072\u0302" }, + { "rcub", L"\u007d" }, + { "rcy", L"\u0440" }, + { "rdot", L"\u0072\u0307" }, + { "rdquo", L"\u201d" }, + { "rdquor", L"\u201c" }, + { "real", L"\u211c" }, + { "rect", L"\u25ad" }, + { "reg", L"\u00ae" }, + { "rfloor", L"\u230b" }, + { "rgr", L"\u03c1" }, + { "rgrave", L"\u0072\u0300" }, + { "rhard", L"\u21c1" }, + { "rharu", L"\u21c0" }, + { "rho", L"\u03c1" }, + { "rhov", L"\u03f1" }, + { "ring", L"\u02da" }, + { "rlarr2", L"\u21c4" }, + { "rlhar2", L"\u21cc" }, + { "rlm", L"\u200f" }, + { "rmacr", L"\u0072\u0304" }, + { "rpar", L"\u0029" }, + { "rsaquo", L"\u203a" }, + { "rsh", L"\u21b1" }, + { "rsqb", L"\u005d" }, + { "rsquo", L"\u2019" }, + { "rsquor", L"\u2018" }, + { "rthree", L"\u22cc" }, + { "rtilde", L"\u0072\u0303" }, + { "rtimes", L"\u22ca" }, + { "rtri", L"\u25b9" }, + { "rtrie", L"\u22b5" }, + { "rtrif", L"\u25b8" }, + { "ruml", L"\u0072\u0308" }, + { "rx", L"\u211e" }, + { "sacute", L"\u015b" }, + { "sacute", L"\u0073\u0301" }, + { "samalg", L"\u2210" }, + { "sbquo", L"\u201a" }, + { "sbreve", L"\u0073\u0306" }, + { "sbring", L"\u0073\u032f" }, + { "sbsol", L"\u005c" }, + { "sc", L"\u227b" }, + { "scaron", L"\u0161" }, + { "scaron", L"\u0073\u030c" }, + { "sccue", L"\u227d" }, + { "sce", L"\u227d" }, + { "scedil", L"\u015f" }, + { "schwa", L"\u0259" }, + { "schwaacute", L"\u0259\u0301" }, + { "schwadgrave", L"\u0259\u030f" }, + { "schwagrave", L"\u0259\u0300" }, + { "schwamacr", L"\u0259\u0304" }, + { "scirc", L"\u015d" }, + { "scirc", L"\u0073\u0302" }, + { "scnsim", L"\u22e9" }, + { "scsim", L"\u227f" }, + { "scy", L"\u0441" }, + { "sdot", L"\u22c5" }, + { "sdot", L"\u0073\u0307" }, + { "sdotb", L"\u22a1" }, + { "sect", L"\u00a7" }, + { "semi", L"\u003b" }, + { "setmn", L"\u2216" }, + { "sext", L"\u2736" }, + { "sfgr", L"\u03c2" }, + { "sfrown", L"\u2322" }, + { "sgr", L"\u03c3" }, + { "sgrave", L"\u0073\u0300" }, + { "sharp", L"\u266f" }, + { "shchcy", L"\u0449" }, + { "shcy", L"\u0448" }, + { "shy", L"\u00ad" }, + { "sigma", L"\u03c3" }, + { "sigmaf", L"\u03c2" }, + { "sigmav", L"\u03c2" }, + { "sim", L"\u223c" }, + { "sime", L"\u2243" }, + { "smacr", L"\u0073\u0304" }, + { "smile", L"\u2323" }, + { "softcy", L"\u044c" }, + { "sol", L"\u002f" }, + { "spades", L"\u2660" }, + { "spar", L"\u2225" }, + { "sqcap", L"\u2293" }, + { "sqcup", L"\u2294" }, + { "sqsub", L"\u228f" }, + { "sqsube", L"\u2291" }, + { "sqsup", L"\u2290" }, + { "sqsupe", L"\u2292" }, + { "squ", L"\u25a1" }, + { "square", L"\u25a1" }, + { "squarf", L"\u25a0" }, + { "squf", L"\u25aa" }, + { "ssetmn", L"\u2216" }, + { "ssmile", L"\u2323" }, + { "sstarf", L"\u22c6" }, + { "star", L"\u2606" }, + { "starf", L"\u2605" }, + { "stilde", L"\u0073\u0303" }, + { "sub", L"\u2282" }, + { "subE", L"\u2286" }, + { "sube", L"\u2286" }, + { "subnE", L"\u228a" }, + { "subne", L"\u228a" }, + { "sum", L"\u2211" }, + { "suml", L"\u0073\u0308" }, + { "sung", L"\u266a" }, + { "sup", L"\u2283" }, + { "sup1", L"\u00b9" }, + { "sup2", L"\u00b2" }, + { "sup3", L"\u00b3" }, + { "supE", L"\u2287" }, + { "supe", L"\u2287" }, + { "supnE", L"\u228b" }, + { "supne", L"\u228b" }, + { "szlig", L"\u00df" }, + { "tacute", L"\u0074\u0301" }, + { "target", L"\u2316" }, + { "tau", L"\u03c4" }, + { "tbreve", L"\u0074\u0306" }, + { "tbring", L"\u0074\u032f" }, + { "tcaron", L"\u0165" }, + { "tcaron", L"\u0074\u030c" }, + { "tcedil", L"\u0163" }, + { "tcirc", L"\u0074\u0302" }, + { "tcy", L"\u0442" }, + { "tdot", L"\u20db" }, + { "tdot", L"\u0074\u0307" }, + { "telrec", L"\u2315" }, + { "tgr", L"\u03c4" }, + { "tgrave", L"\u0074\u0300" }, + { "there4", L"\u2234" }, + { "theta", L"\u03b8" }, + { "thetas", L"\u03b8" }, + { "thetasym", L"\u03d1" }, + { "thetav", L"\u03d1" }, + { "thgr", L"\u03b8" }, + { "thinsp", L"\u2009" }, + { "thkap", L"\u2248" }, + { "thksim", L"\u223c" }, + { "thorn", L"\u00fe" }, + { "tilde", L"\u02dc" }, + { "times", L"\u00d7" }, + { "timesb", L"\u22a0" }, + { "tmacr", L"\u0074\u0304" }, + { "top", L"\u22a4" }, + { "tprime", L"\u2034" }, + { "trade", L"\u2122" }, + { "trie", L"\u225c" }, + { "tscy", L"\u0446" }, + { "tshcy", L"\u045b" }, + { "tstrok", L"\u0167" }, + { "ttilde", L"\u0074\u0303" }, + { "tuml", L"\u0074\u0308" }, + { "twixt", L"\u226c" }, + { "uArr", L"\u21d1" }, + { "uacgr", L"\u03cd" }, + { "uacute", L"\u00fa" }, + { "uacute", L"\u0075\u0301" }, + { "uarr", L"\u2191" }, + { "uarr2", L"\u21c8" }, + { "ubrcy", L"\u045e" }, + { "ubreve", L"\u016d" }, + { "ubreve", L"\u0075\u0306" }, + { "ubring", L"\u0075\u032f" }, + { "ucaron", L"\u0075\u030c" }, + { "ucirc", L"\u00fb" }, + { "ucirc", L"\u0075\u0302" }, + { "ucy", L"\u0443" }, + { "udblac", L"\u0171" }, + { "udiagr", L"\u03b0" }, + { "udigr", L"\u03cb" }, + { "udot", L"\u0075\u0307" }, + { "ugr", L"\u03c5" }, + { "ugrave", L"\u00f9" }, + { "ugrave", L"\u0075\u0300" }, + { "uharl", L"\u21bf" }, + { "uharr", L"\u21be" }, + { "uhblk", L"\u2580" }, + { "ulcorn", L"\u231c" }, + { "ulcrop", L"\u230f" }, + { "umacr", L"\u016b" }, + { "umacr", L"\u0075\u0304" }, + { "uml", L"\u00a8" }, + { "uogon", L"\u0173" }, + { "uplus", L"\u228e" }, + { "upsi", L"\u03c5" }, + { "upsih", L"\u03d2" }, + { "upsilon", L"\u03c5" }, + { "urcorn", L"\u231d" }, + { "urcrop", L"\u230e" }, + { "uring", L"\u016f" }, + { "utilde", L"\u0169" }, + { "utilde", L"\u0075\u0303" }, + { "utri", L"\u25b5" }, + { "utrif", L"\u25b4" }, + { "uuml", L"\u00fc" }, + { "uuml", L"\u0075\u0308" }, + { "vArr", L"\u21d5" }, + { "vDash", L"\u22a8" }, + { "vacute", L"\u0076\u0301" }, + { "varr", L"\u2195" }, + { "vbreve", L"\u0076\u0306" }, + { "vbring", L"\u0076\u032f" }, + { "vcaron", L"\u0076\u030c" }, + { "vcirc", L"\u0076\u0302" }, + { "vcy", L"\u0432" }, + { "vdash", L"\u22a2" }, + { "vdot", L"\u0076\u0307" }, + { "veebar", L"\u22bb" }, + { "vellip", L"\u22ee" }, + { "verbar", L"\u007c" }, + { "vgrave", L"\u0076\u0300" }, + { "vltri", L"\u22b2" }, + { "vmacr", L"\u0076\u0304" }, + { "vprime", L"\u2032" }, + { "vprop", L"\u221d" }, + { "vrtri", L"\u22b3" }, + { "vsubnE", L"\u228a" }, + { "vsubne", L"\u228a" }, + { "vsupnE", L"\u228b" }, + { "vsupne", L"\u228b" }, + { "vtab", L"\u000b" }, + { "vtilde", L"\u0076\u0303" }, + { "vuml", L"\u0076\u0308" }, + { "wacute", L"\u0077\u0301" }, + { "wbreve", L"\u0077\u0306" }, + { "wbring", L"\u0077\u032f" }, + { "wcaron", L"\u0077\u030c" }, + { "wcirc", L"\u0175" }, + { "wcirc", L"\u0077\u0302" }, + { "wdot", L"\u0077\u0307" }, + { "wedgeq", L"\u2259" }, + { "weierp", L"\u2118" }, + { "wgrave", L"\u0077\u0300" }, + { "wmacr", L"\u0077\u0304" }, + { "wreath", L"\u2240" }, + { "wtilde", L"\u0077\u0303" }, + { "wuml", L"\u0077\u0308" }, + { "xacute", L"\u0078\u0301" }, + { "xbreve", L"\u0078\u0306" }, + { "xbring", L"\u0078\u032f" }, + { "xcaron", L"\u0078\u030c" }, + { "xcirc", L"\u25cb" }, + { "xcirc", L"\u0078\u0302" }, + { "xdot", L"\u0078\u0307" }, + { "xdtri", L"\u25bd" }, + { "xgr", L"\u03be" }, + { "xgrave", L"\u0078\u0300" }, + { "xhArr", L"\u2194" }, + { "xharr", L"\u2194" }, + { "xi", L"\u03be" }, + { "xlArr", L"\u21d0" }, + { "xmacr", L"\u0078\u0304" }, + { "xrArr", L"\u21d2" }, + { "xtilde", L"\u0078\u0303" }, + { "xuml", L"\u0078\u0308" }, + { "xutri", L"\u25b3" }, + { "yacute", L"\u00fd" }, + { "yacute", L"\u0079\u0301" }, + { "yacy", L"\u044f" }, + { "ybreve", L"\u0079\u0306" }, + { "ybring", L"\u0079\u032f" }, + { "ycaron", L"\u0079\u030c" }, + { "ycirc", L"\u0177" }, + { "ycirc", L"\u0079\u0302" }, + { "ycy", L"\u044b" }, + { "ydot", L"\u0079\u0307" }, + { "yen", L"\u00a5" }, + { "ygrave", L"\u0079\u0300" }, + { "yicy", L"\u0457" }, + { "ymacr", L"\u0079\u0304" }, + { "ytilde", L"\u0079\u0303" }, + { "yucy", L"\u044e" }, + { "yuml", L"\u00ff" }, + { "yuml", L"\u0079\u0308" }, + { "zacute", L"\u017a" }, + { "zacute", L"\u007a\u0301" }, + { "zbreve", L"\u007a\u0306" }, + { "zbring", L"\u007a\u032f" }, + { "zcaron", L"\u017e" }, + { "zcaron", L"\u007a\u030c" }, + { "zcirc", L"\u007a\u0302" }, + { "zcy", L"\u0437" }, + { "zdot", L"\u017c" }, + { "zdot", L"\u007a\u0307" }, + { "zeta", L"\u03b6" }, + { "zgr", L"\u03b6" }, + { "zgrave", L"\u007a\u0300" }, + { "zhcy", L"\u0436" }, + { "zmacr", L"\u007a\u0304" }, + { "ztilde", L"\u007a\u0303" }, + { "zuml", L"\u007a\u0308" }, + { "zwj", L"\u200d" }, + { "zwnj", L"\u200c" }, + }; + + static const size_t unicode_sgml[] = { + 0x5b6, + 0x48d, + 0x30d, + 0x4c3, + 0x457, + 0x2d2, + 0x497, + 0x1f1, + 0x1fb, + 0x3e6, + 0x4ec, + 0x1fe, + 0x4a6, + 0x29b, + 0x36e, + 0x498, + 0x528, + 0x299, + 0x515, + 0x3f1, + 0x303, + 0x353, + 0x4c1, + 0x29c, + 0xe, + 0x3, + 0x9, + 0x15, + 0x11, + 0x5, + 0xb, + 0x17, + 0x7, + 0x6, + 0x22, + 0x18, + 0x1d, + 0x24, + 0x23, + 0x1a, + 0x1f, + 0x25, + 0x1c, + 0x1b, + 0x33, + 0x28, + 0x30, + 0x36, + 0x35, + 0x2a, + 0x32, + 0x37, + 0x2d, + 0x2b, + 0x47, + 0x3c, + 0x42, + 0x4c, + 0x48, + 0x3e, + 0x44, + 0x4d, + 0x41, + 0x3f, + 0x61, + 0x54, + 0x5a, + 0x67, + 0x63, + 0x55, + 0x5d, + 0x69, + 0x58, + 0x56, + 0x71, + 0x6a, + 0x6e, + 0x73, + 0x72, + 0x6b, + 0x70, + 0x74, + 0x6d, + 0x6c, + 0x84, + 0x76, + 0x7e, + 0x87, + 0x85, + 0x79, + 0x81, + 0x88, + 0x7b, + 0x7a, + 0x91, + 0x8a, + 0x8f, + 0x94, + 0x92, + 0x8b, + 0x90, + 0x95, + 0x8d, + 0x8c, + 0xa7, + 0x9b, + 0xa0, + 0xad, + 0xa9, + 0x9c, + 0xa4, + 0xb0, + 0x9e, + 0x9d, + 0xb9, + 0xb1, + 0xb6, + 0xbc, + 0xba, + 0xb2, + 0xb8, + 0xbe, + 0xb4, + 0xb3, + 0xcc, + 0xc2, + 0xc8, + 0xce, + 0xcd, + 0xc4, + 0xca, + 0xcf, + 0xc6, + 0xc5, + 0xde, + 0xd2, + 0xda, + 0xe4, + 0xe0, + 0xd5, + 0xdc, + 0xe5, + 0xd8, + 0xd6, + 0xee, + 0xe6, + 0xea, + 0xf0, + 0xef, + 0xe7, + 0xec, + 0xf2, + 0xe9, + 0xe8, + 0xff, + 0xf5, + 0xfb, + 0x102, + 0x100, + 0xf6, + 0xfd, + 0x104, + 0xf9, + 0xf7, + 0x117, + 0x10a, + 0x110, + 0x11e, + 0x119, + 0x10b, + 0x113, + 0x120, + 0x10e, + 0x10c, + 0x12b, + 0x123, + 0x127, + 0x131, + 0x12e, + 0x124, + 0x129, + 0x132, + 0x126, + 0x125, + 0x139, + 0x133, + 0x137, + 0x13b, + 0x13a, + 0x134, + 0x138, + 0x13c, + 0x136, + 0x135, + 0x149, + 0x13e, + 0x145, + 0x14c, + 0x14b, + 0x140, + 0x147, + 0x14d, + 0x143, + 0x141, + 0x15d, + 0x152, + 0x159, + 0x160, + 0x15f, + 0x153, + 0x15b, + 0x162, + 0x156, + 0x154, + 0x173, + 0x168, + 0x16f, + 0x177, + 0x175, + 0x16a, + 0x171, + 0x178, + 0x16d, + 0x16b, + 0x189, + 0x17b, + 0x182, + 0x191, + 0x18b, + 0x17e, + 0x186, + 0x193, + 0x180, + 0x17f, + 0x19d, + 0x194, + 0x198, + 0x19f, + 0x19e, + 0x195, + 0x19b, + 0x1a0, + 0x197, + 0x196, + 0x1a9, + 0x1a2, + 0x1a7, + 0x1ab, + 0x1aa, + 0x1a3, + 0x1a8, + 0x1ac, + 0x1a5, + 0x1a4, + 0x1b4, + 0x1ad, + 0x1b1, + 0x1b7, + 0x1b6, + 0x1ae, + 0x1b2, + 0x1b8, + 0x1b0, + 0x1af, + 0x1c5, + 0x1bd, + 0x1c2, + 0x1c7, + 0x1c6, + 0x1be, + 0x1c4, + 0x1c9, + 0x1c0, + 0x1bf, + 0x1d7, + 0x1cc, + 0x1d1, + 0x1d9, + 0x1d8, + 0x1cd, + 0x1d4, + 0x1da, + 0x1d0, + 0x1ce, + 0x3ed, + 0x275, + 0x500, + 0x4ef, + 0x3e2, + 0x350, + 0x1ea, + 0x1dd, + 0x1e3, + 0x201, + 0x1ef, + 0x1df, + 0x1e6, + 0x203, + 0x1e1, + 0x1e0, + 0x23f, + 0x22f, + 0x234, + 0x276, + 0x245, + 0x231, + 0x237, + 0x278, + 0x233, + 0x232, + 0x28b, + 0x27c, + 0x286, + 0x2a6, + 0x298, + 0x280, + 0x288, + 0x2aa, + 0x283, + 0x281, + 0x2c4, + 0x2b2, + 0x2be, + 0x2d9, + 0x2d1, + 0x2ba, + 0x2c0, + 0x2dc, + 0x2bd, + 0x2bb, + 0x2f3, + 0x2e1, + 0x2e8, + 0x309, + 0x2f8, + 0x2e2, + 0x2ec, + 0x30b, + 0x2e5, + 0x2e3, + 0x31a, + 0x30f, + 0x313, + 0x333, + 0x31e, + 0x310, + 0x315, + 0x334, + 0x312, + 0x311, + 0x348, + 0x337, + 0x340, + 0x354, + 0x34c, + 0x33b, + 0x343, + 0x355, + 0x33d, + 0x33c, + 0x367, + 0x358, + 0x363, + 0x36b, + 0x368, + 0x35f, + 0x364, + 0x36c, + 0x361, + 0x360, + 0x380, + 0x371, + 0x376, + 0x391, + 0x383, + 0x372, + 0x37a, + 0x394, + 0x374, + 0x373, + 0x39d, + 0x395, + 0x39a, + 0x3a0, + 0x39e, + 0x396, + 0x39c, + 0x3a2, + 0x398, + 0x397, + 0x3ae, + 0x3a3, + 0x3aa, + 0x3b4, + 0x3b3, + 0x3a6, + 0x3ac, + 0x3b5, + 0x3a8, + 0x3a7, + 0x3d7, + 0x3ba, + 0x3ca, + 0x3f3, + 0x3dc, + 0x3c4, + 0x3ce, + 0x3f8, + 0x3c7, + 0x3c5, + 0x408, + 0x3fb, + 0x403, + 0x412, + 0x40f, + 0x400, + 0x406, + 0x415, + 0x402, + 0x401, + 0x430, + 0x41a, + 0x424, + 0x455, + 0x43e, + 0x41e, + 0x428, + 0x459, + 0x422, + 0x41f, + 0x474, + 0x461, + 0x469, + 0x488, + 0x47b, + 0x463, + 0x46e, + 0x48b, + 0x466, + 0x464, + 0x49c, + 0x48c, + 0x494, + 0x4b5, + 0x4aa, + 0x491, + 0x496, + 0x4b6, + 0x493, + 0x492, + 0x4be, + 0x4b8, + 0x4bc, + 0x4c0, + 0x4bf, + 0x4b9, + 0x4bd, + 0x4c2, + 0x4bb, + 0x4ba, + 0x4e2, + 0x4c7, + 0x4d7, + 0x4f3, + 0x4eb, + 0x4d1, + 0x4da, + 0x4f8, + 0x4d4, + 0x4d2, + 0x51b, + 0x4fb, + 0x50d, + 0x53a, + 0x525, + 0x4fe, + 0x512, + 0x541, + 0x503, + 0x4ff, + 0x55a, + 0x54c, + 0x554, + 0x570, + 0x568, + 0x54f, + 0x557, + 0x571, + 0x552, + 0x550, + 0x587, + 0x576, + 0x57f, + 0x599, + 0x58e, + 0x57b, + 0x584, + 0x59d, + 0x57d, + 0x57c, + 0x5ac, + 0x5a0, + 0x5a5, + 0x5b7, + 0x5ae, + 0x5a2, + 0x5a8, + 0x5b8, + 0x5a4, + 0x5a3, + 0x5c2, + 0x5b9, + 0x5be, + 0x5c5, + 0x5c3, + 0x5ba, + 0x5bf, + 0x5c6, + 0x5bc, + 0x5bb, + 0x5d0, + 0x5c7, + 0x5cc, + 0x5d7, + 0x5d5, + 0x5c8, + 0x5cd, + 0x5d8, + 0x5ca, + 0x5c9, + 0x5e5, + 0x5db, + 0x5e1, + 0x5e8, + 0x5e7, + 0x5dd, + 0x5e3, + 0x5eb, + 0x5df, + 0x5de, + 0x5f8, + 0x5ed, + 0x5f2, + 0x5fb, + 0x5fa, + 0x5ee, + 0x5f5, + 0x5fc, + 0x5f1, + 0x5ef, + 0x3cb, + 0x5ab, + 0x4d8, + 0x420, + 0x37c, + 0x28a, + 0x4ab, + 0x2ae, + 0x5e4, + 0x272, + 0x514, + 0x49, + 0x2ca, + 0x58f, + 0x2a2, + 0x483, + 0x3be, + 0x440, + 0x51f, + 0x4df, + 0x3fa, + 0x2c1, + 0x4a9, + 0x545, + 0x546, + 0x1e4, + 0x409, + 0x48f, + 0x40b, + 0x289, + 0x544, + 0x484, + 0x4ca, + 0x324, + 0x322, + 0x35a, + 0x32a, + 0x38e, + 0xd, + 0x2, + 0x8, + 0x14, + 0x16, + 0x13, + 0x0, + 0x2e, + 0x60, + 0x53, + 0x59, + 0x68, + 0xa6, + 0x9a, + 0x9f, + 0xaf, + 0x51, + 0x101, + 0x116, + 0x109, + 0x10f, + 0x11d, + 0x11f, + 0x566, + 0x11c, + 0x188, + 0x17a, + 0x181, + 0x192, + 0x1bc, + 0x164, + 0x54b, + 0x1e9, + 0x1dc, + 0x1e2, + 0x200, + 0x202, + 0x1fd, + 0x1e7, + 0x284, + 0x2f2, + 0x2e0, + 0x2e7, + 0x30a, + 0x37f, + 0x370, + 0x375, + 0x393, + 0x308, + 0x454, + 0x473, + 0x460, + 0x468, + 0x487, + 0x48a, + 0x2cb, + 0x485, + 0x586, + 0x575, + 0x57e, + 0x59c, + 0x5da, + 0x564, + 0x5ea, + 0x10, + 0x1ee, + 0x4, + 0x1de, + 0x12, + 0x1f8, + 0x27, + 0x27b, + 0x2f, + 0x285, + 0x31, + 0x287, + 0x2c, + 0x282, + 0x40, + 0x2bc, + 0x4b, + 0x2d8, + 0x62, + 0x2f7, + 0x5c, + 0x2eb, + 0x64, + 0x2ff, + 0x57, + 0x2e4, + 0x7d, + 0x33f, + 0x78, + 0x33a, + 0x80, + 0x342, + 0x7c, + 0x33e, + 0x8e, + 0x362, + 0x93, + 0x36a, + 0xac, + 0x390, + 0xa8, + 0x382, + 0xaa, + 0x38c, + 0xa3, + 0x387, + 0x388, + 0x97, + 0x381, + 0xb5, + 0x399, + 0xc7, + 0x3a9, + 0x3af, + 0xd1, + 0x3b9, + 0xd9, + 0x3c8, + 0xd7, + 0x3c6, + 0xe1, + 0x3dd, + 0xe2, + 0x3f0, + 0xf4, + 0x419, + 0xfa, + 0x423, + 0xf8, + 0x421, + 0x41c, + 0x50, + 0x2fd, + 0x118, + 0x47a, + 0x112, + 0x46c, + 0x105, + 0x470, + 0x13d, + 0x4c6, + 0x144, + 0x4d5, + 0x142, + 0x4d3, + 0x151, + 0x4fa, + 0x158, + 0x50c, + 0x157, + 0x506, + 0x155, + 0x502, + 0x16e, + 0x553, + 0x16c, + 0x551, + 0x176, + 0x56f, + 0x190, + 0x598, + 0x18a, + 0x58d, + 0x17d, + 0x57a, + 0x18f, + 0x597, + 0x184, + 0x581, + 0x18c, + 0x590, + 0x1a6, + 0x5bd, + 0x1c1, + 0x5e0, + 0x1c8, + 0x1cb, + 0x5ec, + 0x1d3, + 0x5f4, + 0x1cf, + 0x5f0, + 0x31f, + 0x10d, + 0x465, + 0x336, + 0x507, + 0x50a, + 0x508, + 0x50b, + 0x509, + 0x1fc, + 0x290, + 0x27f, + 0x271, + 0x2d3, + 0x4e7, + 0x471, + 0x565, + 0x2b9, + 0x1, + 0x52, + 0x4e, + 0x99, + 0x108, + 0x179, + 0x106, + 0x378, + 0xc, + 0xf, + 0x20, + 0x21, + 0x77, + 0x83, + 0x205, + 0x45, + 0x46, + 0x204, + 0x5f, + 0x65, + 0x1d5, + 0x1d6, + 0x4f, + 0x66, + 0x165, + 0x174, + 0x20c, + 0xa5, + 0xab, + 0xc3, + 0xcb, + 0xd3, + 0xdd, + 0x206, + 0xed, + 0xf1, + 0xfe, + 0x103, + 0x1b3, + 0x1b5, + 0x20e, + 0x115, + 0x11b, + 0x12a, + 0x12d, + 0x209, + 0x148, + 0x14a, + 0x15c, + 0x15e, + 0x20b, + 0x169, + 0x172, + 0x187, + 0x18d, + 0x18e, + 0x20d, + 0x121, + 0x12c, + 0x208, + 0x34, + 0xc0, + 0x122, + 0x130, + 0x20a, + 0x107, + 0x11a, + 0x207, + 0xa2, + 0x185, + 0x1db, + 0x2df, + 0x2ee, + 0x36f, + 0x582, + 0x1e8, + 0x1ed, + 0x20f, + 0x210, + 0x23c, + 0x23e, + 0x217, + 0x338, + 0x347, + 0x212, + 0x2c2, + 0x2c3, + 0x213, + 0x214, + 0x215, + 0x2f1, + 0x300, + 0x301, + 0x22e, + 0x5f6, + 0x5f7, + 0x216, + 0x2ef, + 0x307, + 0x22a, + 0x55c, + 0x55d, + 0x560, + 0x219, + 0x37e, + 0x38d, + 0x21a, + 0x3a4, + 0x3ad, + 0x21c, + 0x3bc, + 0x3d6, + 0x21d, + 0x407, + 0x413, + 0x21e, + 0x42f, + 0x456, + 0x22d, + 0x5cf, + 0x5d3, + 0x472, + 0x47d, + 0x222, + 0x49b, + 0x4a3, + 0x225, + 0x4e1, + 0x4e5, + 0x228, + 0x518, + 0x521, + 0x522, + 0x227, + 0x51a, + 0x520, + 0x229, + 0x54e, + 0x559, + 0x22c, + 0x585, + 0x592, + 0x594, + 0x220, + 0x49d, + 0x49e, + 0x49f, + 0x211, + 0x28e, + 0x3b1, + 0x224, + 0x4b3, + 0x4b4, + 0x476, + 0x47c, + 0x379, + 0x583, + 0x45f, + 0x574, + 0x21f, + 0x475, + 0x22b, + 0x55e, + 0x55f, + 0x593, + 0x221, + 0x4a0, + 0x223, + 0x4a4, + 0x218, + 0x339, + 0x21b, + 0x3a5, + 0x226, + 0x4e6, + 0x98, + 0x39, + 0x75, + 0xbd, + 0x3a, + 0xae, + 0x1ba, + 0xbb, + 0xd0, + 0xf3, + 0x166, + 0xc1, + 0x17c, + 0x3b, + 0xa, + 0x1e, + 0x199, + 0x7f, + 0x43, + 0x96, + 0x1ca, + 0x1d2, + 0xa1, + 0xb7, + 0xc9, + 0xdb, + 0xeb, + 0xfc, + 0x111, + 0x128, + 0x146, + 0x15a, + 0x170, + 0x183, + 0x6f, + 0xbf, + 0x167, + 0x26, + 0x14f, + 0x14e, + 0x89, + 0x1c3, + 0x150, + 0x5b, + 0x1bb, + 0x1b9, + 0x1e5, + 0x236, + 0x5a6, + 0x341, + 0x2bf, + 0x37b, + 0x5f9, + 0x5f3, + 0x377, + 0x39b, + 0x3ab, + 0x3cc, + 0x404, + 0x426, + 0x46a, + 0x495, + 0x4d9, + 0x510, + 0x555, + 0x580, + 0x314, + 0x3b0, + 0x56d, + 0x28c, + 0x51e, + 0x51d, + 0x35c, + 0x5e2, + 0x527, + 0x2ea, + 0x5e9, + 0x5dc, + 0x38b, + 0x2cd, + 0x34a, + 0x3a1, + 0x2d7, + 0x392, + 0x5e6, + 0x39f, + 0x3db, + 0x435, + 0x56e, + 0x3b2, + 0x579, + 0x2dd, + 0x5e, + 0x2ed, + 0x114, + 0x46f, + 0x2fe, + 0x2fa, + 0x2fb, + 0x2fc, + 0x45a, + 0x4b7, + 0x561, + 0x359, + 0x5fe, + 0x5fd, + 0x3e9, + 0x4ea, + 0x2b7, + 0x427, + 0x405, + 0x369, + 0x19c, + 0x3ee, + 0x4f1, + 0x4f0, + 0x3ef, + 0x4fd, + 0x3cf, + 0x4dc, + 0x4db, + 0x238, + 0x3d0, + 0x2b3, + 0x3d, + 0x277, + 0x438, + 0x366, + 0x40e, + 0x499, + 0x4ae, + 0x5af, + 0x12f, + 0x56a, + 0x270, + 0x3ea, + 0x4ed, + 0x479, + 0x27e, + 0x36d, + 0x331, + 0x30c, + 0x556, + 0x4a, + 0x385, + 0x35b, + 0x4a5, + 0x384, + 0x3bb, + 0x2f5, + 0x458, + 0x2a3, + 0x5c1, + 0x4dd, + 0x4f9, + 0x56b, + 0x477, + 0x1f7, + 0x23b, + 0x4a1, + 0x482, + 0x1eb, + 0x1ec, + 0x23d, + 0x349, + 0x2b4, + 0x323, + 0x328, + 0x325, + 0x329, + 0x32b, + 0x32d, + 0x326, + 0x32e, + 0x327, + 0x32c, + 0x32f, + 0x330, + 0x3bf, + 0x577, + 0x4cb, + 0x2b5, + 0x35d, + 0x5d1, + 0x5d2, + 0x5a1, + 0x45d, + 0x42a, + 0x2d4, + 0x2ce, + 0x437, + 0x446, + 0x4d0, + 0xd4, + 0x13f, + 0x3c3, + 0x4cf, + 0x3fe, + 0x3c1, + 0x4cd, + 0x3c2, + 0x4ce, + 0x35e, + 0x433, + 0x3eb, + 0x4ee, + 0x2a4, + 0x2a9, + 0x2ad, + 0x478, + 0x481, + 0x3d9, + 0x3d8, + 0x589, + 0x588, + 0x4e4, + 0x4e3, + 0x2c6, + 0x2c5, + 0x4e8, + 0x3e7, + 0x3c0, + 0x578, + 0x4cc, + 0x2b6, + 0x3e8, + 0x4e9, + 0x436, + 0x432, + 0x445, + 0x3b7, + 0x5d4, + 0x573, + 0x4c5, + 0x5d6, + 0x2b1, + 0x357, + 0x37d, + 0x59e, + 0x3b6, + 0x4c4, + 0x320, + 0x29d, + 0x490, + 0x30e, + 0x42c, + 0x2f9, + 0x418, + 0x38f, + 0x441, + 0x302, + 0x434, + 0x23a, + 0x4b0, + 0x1f0, + 0x2a1, + 0x4fc, + 0x540, + 0x40c, + 0x410, + 0x4a8, + 0x516, + 0x535, + 0x3e1, + 0x29e, + 0x4c8, + 0x4b1, + 0x5b0, + 0x386, + 0x1f4, + 0x1f3, + 0x1f5, + 0x1f6, + 0x40a, + 0x43f, + 0x48e, + 0x52a, + 0x442, + 0x44d, + 0x1f2, + 0x480, + 0x27d, + 0x2ab, + 0x389, + 0x2a0, + 0x55b, + 0x239, + 0x523, + 0x563, + 0x273, + 0x5c4, + 0x44b, + 0x524, + 0x44c, + 0x29f, + 0x425, + 0x1f9, + 0x1ff, + 0x562, + 0x41b, + 0x1fa, + 0x235, + 0x279, + 0x27a, + 0x306, + 0x2de, + 0x2f0, + 0x305, + 0x29a, + 0x2e9, + 0x2e6, + 0x296, + 0x5c0, + 0x56c, + 0x429, + 0x304, + 0x42b, + 0x3d1, + 0x3d3, + 0x344, + 0x346, + 0x3b8, + 0x335, + 0x3de, + 0x3df, + 0x3f9, + 0x34d, + 0x34e, + 0x356, + 0xe3, + 0x86, + 0x572, + 0x43b, + 0x431, + 0x439, + 0x43a, + 0x42d, + 0x42e, + 0x3ec, + 0x352, + 0x3d5, + 0x34b, + 0x4ac, + 0x501, + 0x2ac, + 0x4ad, + 0x504, + 0x505, + 0x4b2, + 0x50f, + 0x443, + 0x449, + 0x53b, + 0x543, + 0x44e, + 0x451, + 0x53c, + 0x53d, + 0x547, + 0x548, + 0x44f, + 0x450, + 0x452, + 0x453, + 0x53e, + 0x53f, + 0x5b2, + 0x5b3, + 0x549, + 0x54a, + 0x5b4, + 0x5b5, + 0x591, + 0x52d, + 0x52f, + 0x52e, + 0x530, + 0x52b, + 0x52c, + 0x47f, + 0x47e, + 0x489, + 0x486, + 0x46d, + 0x467, + 0x462, + 0x46b, + 0x4a7, + 0x40d, + 0x567, + 0x513, + 0x5a7, + 0x2b8, + 0x569, + 0x246, + 0x49a, + 0x411, + 0x59f, + 0x19a, + 0x1a1, + 0x45c, + 0x45b, + 0x417, + 0x416, + 0x5ad, + 0x5b1, + 0x3f6, + 0x4f6, + 0x414, + 0x38a, + 0x5a9, + 0x230, + 0x2c7, + 0x511, + 0x537, + 0x2cc, + 0x247, + 0x3f4, + 0x4f4, + 0x3f2, + 0x4f2, + 0x274, + 0x2af, + 0x2b0, + 0x161, + 0x163, + 0x29, + 0x38, + 0x321, + 0x3cd, + 0x351, + 0xdf, + 0x82, + 0x3d2, + 0x345, + 0x2f6, + 0x2f4, + 0x2a7, + 0x2a8, + 0x444, + 0x44a, + 0x3e0, + 0x34f, + 0x4af, + 0x50e, + 0x43c, + 0x447, + 0x43d, + 0x448, + 0x5aa, + 0x19, + 0x3c9, + 0x4d6, + 0x3d4, + 0x4e0, + 0x2d6, + 0x2d0, + 0x596, + 0x58c, + 0x558, + 0x54d, + 0x58b, + 0x595, + 0x2cf, + 0x2d5, + 0x332, + 0x519, + 0x526, + 0x536, + 0x3bd, + 0x4c9, + 0x240, + 0x45e, + 0x260, + 0x269, + 0x25f, + 0x25e, + 0x268, + 0x267, + 0x26f, + 0x26e, + 0x263, + 0x264, + 0x26d, + 0x24c, + 0x255, + 0x25d, + 0x24b, + 0x249, + 0x25c, + 0x24a, + 0x248, + 0x266, + 0x254, + 0x252, + 0x265, + 0x253, + 0x251, + 0x26c, + 0x25b, + 0x258, + 0x26b, + 0x25a, + 0x257, + 0x24f, + 0x261, + 0x24d, + 0x250, + 0x262, + 0x24e, + 0x26a, + 0x259, + 0x256, + 0x58a, + 0x3da, + 0x244, + 0x242, + 0x241, + 0x243, + 0x533, + 0x531, + 0x532, + 0x534, + 0x4de, + 0x3ff, + 0x5d9, + 0x59b, + 0x59a, + 0x4f7, + 0x4f5, + 0x5ce, + 0x2db, + 0x2da, + 0x3f7, + 0x3f5, + 0x2c8, + 0x3e3, + 0x28f, + 0x5cb, + 0x291, + 0x293, + 0x294, + 0x292, + 0x295, + 0x539, + 0x538, + 0x4a2, + 0x316, + 0x3fc, + 0x529, + 0x297, + 0x365, + 0x2c9, + 0x542, + 0x31c, + 0x41d, + 0x51c, + 0x28d, + 0x2a5, + 0x3fd, + 0x3e5, + 0x3e4, + 0x517, + 0x318, + 0x31b, + 0x31d, + 0x317, + 0x319, + }; + /// \endcond +}