summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:39:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:39:03 +0000
commit408c608fc7bf1557ee987dd7fbe662fabed21a53 (patch)
tree8b07135336de378134bfedc808d49747174810d3 /examples
parentInitial commit. (diff)
downloadfrozen-408c608fc7bf1557ee987dd7fbe662fabed21a53.tar.xz
frozen-408c608fc7bf1557ee987dd7fbe662fabed21a53.zip
Adding upstream version 1.1.1.upstream/1.1.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'examples')
-rw-r--r--examples/CMakeLists.txt16
-rw-r--r--examples/enum_to_string.cpp172
-rw-r--r--examples/enum_to_string_hash.cpp127
-rw-r--r--examples/html_entities_map.cpp2147
-rw-r--r--examples/pixel_art.cpp120
-rw-r--r--examples/static_assert.cpp9
-rw-r--r--examples/value_modification.cpp37
7 files changed, 2628 insertions, 0 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 0000000..2ae5917
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,16 @@
+set(frozen.examples.srcs enum_to_string enum_to_string_hash pixel_art static_assert value_modification)
+
+if ("${CMAKE_CXX_COMPILER_ID}" MATCHES ".*Clang")
+ list(APPEND frozen.examples.srcs html_entities_map)
+endif()
+
+foreach(src IN LISTS frozen.examples.srcs)
+ add_executable(frozen.example.${src} ${src}.cpp)
+ target_link_libraries(frozen.example.${src} PUBLIC frozen::frozen)
+endforeach()
+
+if (TARGET frozen.example.html_entities_map)
+ target_compile_options(frozen.example.html_entities_map PUBLIC
+ $<$<CXX_COMPILER_ID:Clang>:-fconstexpr-steps=123456789>
+ $<$<CXX_COMPILER_ID:AppleClang>:-fconstexpr-steps=123456789>)
+endif()
diff --git a/examples/enum_to_string.cpp b/examples/enum_to_string.cpp
new file mode 100644
index 0000000..a602400
--- /dev/null
+++ b/examples/enum_to_string.cpp
@@ -0,0 +1,172 @@
+#include <cstdio> // for std::puts
+
+/* ELF Relocations */
+
+#define ELF_RELOC(name, value) name = value,
+
+/** i386 relocations. */
+enum RELOC_i386 {
+
+#ifndef ELF_RELOC
+#error "ELF_RELOC must be defined"
+#endif
+
+/* TODO: this is just a subset */
+ELF_RELOC(R_386_NONE, 0)
+ELF_RELOC(R_386_32, 1)
+ELF_RELOC(R_386_PC32, 2)
+ELF_RELOC(R_386_GOT32, 3)
+ELF_RELOC(R_386_PLT32, 4)
+ELF_RELOC(R_386_COPY, 5)
+ELF_RELOC(R_386_GLOB_DAT, 6)
+ELF_RELOC(R_386_JUMP_SLOT, 7)
+ELF_RELOC(R_386_RELATIVE, 8)
+ELF_RELOC(R_386_GOTOFF, 9)
+ELF_RELOC(R_386_GOTPC, 10)
+ELF_RELOC(R_386_32PLT, 11)
+ELF_RELOC(R_386_TLS_TPOFF, 14)
+ELF_RELOC(R_386_TLS_IE, 15)
+ELF_RELOC(R_386_TLS_GOTIE, 16)
+ELF_RELOC(R_386_TLS_LE, 17)
+ELF_RELOC(R_386_TLS_GD, 18)
+ELF_RELOC(R_386_TLS_LDM, 19)
+ELF_RELOC(R_386_16, 20)
+ELF_RELOC(R_386_PC16, 21)
+ELF_RELOC(R_386_8, 22)
+ELF_RELOC(R_386_PC8, 23)
+ELF_RELOC(R_386_TLS_GD_32, 24)
+ELF_RELOC(R_386_TLS_GD_PUSH, 25)
+ELF_RELOC(R_386_TLS_GD_CALL, 26)
+ELF_RELOC(R_386_TLS_GD_POP, 27)
+ELF_RELOC(R_386_TLS_LDM_32, 28)
+ELF_RELOC(R_386_TLS_LDM_PUSH, 29)
+ELF_RELOC(R_386_TLS_LDM_CALL, 30)
+ELF_RELOC(R_386_TLS_LDM_POP, 31)
+ELF_RELOC(R_386_TLS_LDO_32, 32)
+ELF_RELOC(R_386_TLS_IE_32, 33)
+ELF_RELOC(R_386_TLS_LE_32, 34)
+ELF_RELOC(R_386_TLS_DTPMOD32, 35)
+ELF_RELOC(R_386_TLS_DTPOFF32, 36)
+ELF_RELOC(R_386_TLS_TPOFF32, 37)
+ELF_RELOC(R_386_TLS_GOTDESC, 39)
+ELF_RELOC(R_386_TLS_DESC_CALL, 40)
+ELF_RELOC(R_386_TLS_DESC, 41)
+ELF_RELOC(R_386_IRELATIVE, 42)
+ELF_RELOC(R_386_NUM, 43)
+};
+
+#ifndef SWITCH_VERSION
+
+#ifdef FROZEN_VERSION
+#include "frozen/map.h"
+#else
+#include <map>
+#endif
+
+#ifdef FROZEN_VERSION
+constexpr
+frozen::map<RELOC_i386, const char*, 41>
+#else
+const
+std::map<RELOC_i386, const char*>
+#endif
+e2s = {
+ { RELOC_i386::R_386_NONE, "NONE"},
+ { RELOC_i386::R_386_32, "R32"},
+ { RELOC_i386::R_386_PC32, "PC32"},
+ { RELOC_i386::R_386_GOT32, "GOT32"},
+ { RELOC_i386::R_386_PLT32, "PLT32"},
+ { RELOC_i386::R_386_COPY, "COPY"},
+ { RELOC_i386::R_386_GLOB_DAT, "GLOB_DAT"},
+ { RELOC_i386::R_386_JUMP_SLOT, "JUMP_SLOT"},
+ { RELOC_i386::R_386_RELATIVE, "RELATIVE"},
+ { RELOC_i386::R_386_GOTOFF, "GOTOFF"},
+ { RELOC_i386::R_386_GOTPC, "GOTPC"},
+ { RELOC_i386::R_386_32PLT, "R32PLT"},
+ { RELOC_i386::R_386_TLS_TPOFF, "TLS_TPOFF"},
+ { RELOC_i386::R_386_TLS_IE, "TLS_IE"},
+ { RELOC_i386::R_386_TLS_GOTIE, "TLS_GOTIE"},
+ { RELOC_i386::R_386_TLS_LE, "TLS_LE"},
+ { RELOC_i386::R_386_TLS_GD, "TLS_GD"},
+ { RELOC_i386::R_386_TLS_LDM, "TLS_LDM"},
+ { RELOC_i386::R_386_16, "R16"},
+ { RELOC_i386::R_386_PC16, "PC16"},
+ { RELOC_i386::R_386_8, "R8"},
+ { RELOC_i386::R_386_PC8, "PC8"},
+ { RELOC_i386::R_386_TLS_GD_32, "TLS_GD_32"},
+ { RELOC_i386::R_386_TLS_GD_PUSH, "TLS_GD_PUSH"},
+ { RELOC_i386::R_386_TLS_GD_CALL, "TLS_GD_CALL"},
+ { RELOC_i386::R_386_TLS_GD_POP, "TLS_GD_POP"},
+ { RELOC_i386::R_386_TLS_LDM_32, "TLS_LDM_32"},
+ { RELOC_i386::R_386_TLS_LDM_PUSH, "TLS_LDM_PUSH"},
+ { RELOC_i386::R_386_TLS_LDM_CALL, "TLS_LDM_CALL"},
+ { RELOC_i386::R_386_TLS_LDM_POP, "TLS_LDM_POP"},
+ { RELOC_i386::R_386_TLS_LDO_32, "TLS_LDO_32"},
+ { RELOC_i386::R_386_TLS_IE_32, "TLS_IE_32"},
+ { RELOC_i386::R_386_TLS_LE_32, "TLS_LE_32"},
+ { RELOC_i386::R_386_TLS_DTPMOD32, "TLS_DTPMOD32"},
+ { RELOC_i386::R_386_TLS_DTPOFF32, "TLS_DTPOFF32"},
+ { RELOC_i386::R_386_TLS_TPOFF32, "TLS_TPOFF32"},
+ { RELOC_i386::R_386_TLS_GOTDESC, "TLS_GOTDESC"},
+ { RELOC_i386::R_386_TLS_DESC_CALL, "TLS_DESC_CALL"},
+ { RELOC_i386::R_386_TLS_DESC, "TLS_DESC"},
+ { RELOC_i386::R_386_IRELATIVE, "IRELATIVE"},
+ { RELOC_i386::R_386_NUM, "NUM"},
+};
+
+char const * enum_to_string(RELOC_i386 e) {
+ return e2s.at(e);
+}
+#else
+char const * enum_to_string(RELOC_i386 e) {
+ switch(e) {
+ case RELOC_i386::R_386_NONE: return "NONE";
+ case RELOC_i386::R_386_32: return "R32";
+ case RELOC_i386::R_386_PC32: return "PC32";
+ case RELOC_i386::R_386_GOT32: return "GOT32";
+ case RELOC_i386::R_386_PLT32: return "PLT32";
+ case RELOC_i386::R_386_COPY: return "COPY";
+ case RELOC_i386::R_386_GLOB_DAT: return "GLOB_DAT";
+ case RELOC_i386::R_386_JUMP_SLOT: return "JUMP_SLOT";
+ case RELOC_i386::R_386_RELATIVE: return "RELATIVE";
+ case RELOC_i386::R_386_GOTOFF: return "GOTOFF";
+ case RELOC_i386::R_386_GOTPC: return "GOTPC";
+ case RELOC_i386::R_386_32PLT: return "R32PLT";
+ case RELOC_i386::R_386_TLS_TPOFF: return "TLS_TPOFF";
+ case RELOC_i386::R_386_TLS_IE: return "TLS_IE";
+ case RELOC_i386::R_386_TLS_GOTIE: return "TLS_GOTIE";
+ case RELOC_i386::R_386_TLS_LE: return "TLS_LE";
+ case RELOC_i386::R_386_TLS_GD: return "TLS_GD";
+ case RELOC_i386::R_386_TLS_LDM: return "TLS_LDM";
+ case RELOC_i386::R_386_16: return "R16";
+ case RELOC_i386::R_386_PC16: return "PC16";
+ case RELOC_i386::R_386_8: return "R8";
+ case RELOC_i386::R_386_PC8: return "PC8";
+ case RELOC_i386::R_386_TLS_GD_32: return "TLS_GD_32";
+ case RELOC_i386::R_386_TLS_GD_PUSH: return "TLS_GD_PUSH";
+ case RELOC_i386::R_386_TLS_GD_CALL: return "TLS_GD_CALL";
+ case RELOC_i386::R_386_TLS_GD_POP: return "TLS_GD_POP";
+ case RELOC_i386::R_386_TLS_LDM_32: return "TLS_LDM_32";
+ case RELOC_i386::R_386_TLS_LDM_PUSH: return "TLS_LDM_PUSH";
+ case RELOC_i386::R_386_TLS_LDM_CALL: return "TLS_LDM_CALL";
+ case RELOC_i386::R_386_TLS_LDM_POP: return "TLS_LDM_POP";
+ case RELOC_i386::R_386_TLS_LDO_32: return "TLS_LDO_32";
+ case RELOC_i386::R_386_TLS_IE_32: return "TLS_IE_32";
+ case RELOC_i386::R_386_TLS_LE_32: return "TLS_LE_32";
+ case RELOC_i386::R_386_TLS_DTPMOD32: return "TLS_DTPMOD32";
+ case RELOC_i386::R_386_TLS_DTPOFF32: return "TLS_DTPOFF32";
+ case RELOC_i386::R_386_TLS_TPOFF32: return "TLS_TPOFF32";
+ case RELOC_i386::R_386_TLS_GOTDESC: return "TLS_GOTDESC";
+ case RELOC_i386::R_386_TLS_DESC_CALL: return "TLS_DESC_CALL";
+ case RELOC_i386::R_386_TLS_DESC: return "TLS_DESC";
+ case RELOC_i386::R_386_IRELATIVE: return "IRELATIVE";
+ case RELOC_i386::R_386_NUM: return "NUM";
+ }
+}
+
+#endif
+
+int main() {
+ std::puts(enum_to_string(RELOC_i386::R_386_8));
+ return 0;
+}
diff --git a/examples/enum_to_string_hash.cpp b/examples/enum_to_string_hash.cpp
new file mode 100644
index 0000000..18b0b69
--- /dev/null
+++ b/examples/enum_to_string_hash.cpp
@@ -0,0 +1,127 @@
+#include <cstdio> // for std::puts
+
+/* ELF Relocations */
+
+#define ELF_RELOC(name, value) name = value,
+
+/** i386 relocations. */
+enum RELOC_i386 {
+
+#ifndef ELF_RELOC
+#error "ELF_RELOC must be defined"
+#endif
+
+/* TODO: this is just a subset */
+ELF_RELOC(R_386_NONE, 0)
+ELF_RELOC(R_386_32, 1)
+ELF_RELOC(R_386_PC32, 2)
+ELF_RELOC(R_386_GOT32, 3)
+ELF_RELOC(R_386_PLT32, 4)
+ELF_RELOC(R_386_COPY, 5)
+ELF_RELOC(R_386_GLOB_DAT, 6)
+ELF_RELOC(R_386_JUMP_SLOT, 7)
+ELF_RELOC(R_386_RELATIVE, 8)
+ELF_RELOC(R_386_GOTOFF, 9)
+ELF_RELOC(R_386_GOTPC, 10)
+ELF_RELOC(R_386_32PLT, 11)
+ELF_RELOC(R_386_TLS_TPOFF, 14)
+ELF_RELOC(R_386_TLS_IE, 15)
+ELF_RELOC(R_386_TLS_GOTIE, 16)
+ELF_RELOC(R_386_TLS_LE, 17)
+ELF_RELOC(R_386_TLS_GD, 18)
+ELF_RELOC(R_386_TLS_LDM, 19)
+ELF_RELOC(R_386_16, 20)
+ELF_RELOC(R_386_PC16, 21)
+ELF_RELOC(R_386_8, 22)
+ELF_RELOC(R_386_PC8, 23)
+ELF_RELOC(R_386_TLS_GD_32, 24)
+ELF_RELOC(R_386_TLS_GD_PUSH, 25)
+ELF_RELOC(R_386_TLS_GD_CALL, 26)
+ELF_RELOC(R_386_TLS_GD_POP, 27)
+ELF_RELOC(R_386_TLS_LDM_32, 28)
+ELF_RELOC(R_386_TLS_LDM_PUSH, 29)
+ELF_RELOC(R_386_TLS_LDM_CALL, 30)
+ELF_RELOC(R_386_TLS_LDM_POP, 31)
+ELF_RELOC(R_386_TLS_LDO_32, 32)
+ELF_RELOC(R_386_TLS_IE_32, 33)
+ELF_RELOC(R_386_TLS_LE_32, 34)
+ELF_RELOC(R_386_TLS_DTPMOD32, 35)
+ELF_RELOC(R_386_TLS_DTPOFF32, 36)
+ELF_RELOC(R_386_TLS_TPOFF32, 37)
+ELF_RELOC(R_386_TLS_GOTDESC, 39)
+ELF_RELOC(R_386_TLS_DESC_CALL, 40)
+ELF_RELOC(R_386_TLS_DESC, 41)
+ELF_RELOC(R_386_IRELATIVE, 42)
+ELF_RELOC(R_386_NUM, 43)
+};
+
+#ifdef FROZEN_VERSION
+#include "frozen/unordered_map.h"
+namespace frozen {
+ template <> struct elsa<RELOC_i386> : elsa<int> {
+ };
+}
+#else
+#include <unordered_map>
+#endif
+
+#ifdef FROZEN_VERSION
+constexpr
+frozen::unordered_map<RELOC_i386, const char*, 41>
+#else
+const
+std::unordered_map<RELOC_i386, const char*>
+#endif
+e2s = {
+ { RELOC_i386::R_386_NONE, "NONE"},
+ { RELOC_i386::R_386_32, "R32"},
+ { RELOC_i386::R_386_PC32, "PC32"},
+ { RELOC_i386::R_386_GOT32, "GOT32"},
+ { RELOC_i386::R_386_PLT32, "PLT32"},
+ { RELOC_i386::R_386_COPY, "COPY"},
+ { RELOC_i386::R_386_GLOB_DAT, "GLOB_DAT"},
+ { RELOC_i386::R_386_JUMP_SLOT, "JUMP_SLOT"},
+ { RELOC_i386::R_386_RELATIVE, "RELATIVE"},
+ { RELOC_i386::R_386_GOTOFF, "GOTOFF"},
+ { RELOC_i386::R_386_GOTPC, "GOTPC"},
+ { RELOC_i386::R_386_32PLT, "R32PLT"},
+ { RELOC_i386::R_386_TLS_TPOFF, "TLS_TPOFF"},
+ { RELOC_i386::R_386_TLS_IE, "TLS_IE"},
+ { RELOC_i386::R_386_TLS_GOTIE, "TLS_GOTIE"},
+ { RELOC_i386::R_386_TLS_LE, "TLS_LE"},
+ { RELOC_i386::R_386_TLS_GD, "TLS_GD"},
+ { RELOC_i386::R_386_TLS_LDM, "TLS_LDM"},
+ { RELOC_i386::R_386_16, "R16"},
+ { RELOC_i386::R_386_PC16, "PC16"},
+ { RELOC_i386::R_386_8, "R8"},
+ { RELOC_i386::R_386_PC8, "PC8"},
+ { RELOC_i386::R_386_TLS_GD_32, "TLS_GD_32"},
+ { RELOC_i386::R_386_TLS_GD_PUSH, "TLS_GD_PUSH"},
+ { RELOC_i386::R_386_TLS_GD_CALL, "TLS_GD_CALL"},
+ { RELOC_i386::R_386_TLS_GD_POP, "TLS_GD_POP"},
+ { RELOC_i386::R_386_TLS_LDM_32, "TLS_LDM_32"},
+ { RELOC_i386::R_386_TLS_LDM_PUSH, "TLS_LDM_PUSH"},
+ { RELOC_i386::R_386_TLS_LDM_CALL, "TLS_LDM_CALL"},
+ { RELOC_i386::R_386_TLS_LDM_POP, "TLS_LDM_POP"},
+ { RELOC_i386::R_386_TLS_LDO_32, "TLS_LDO_32"},
+ { RELOC_i386::R_386_TLS_IE_32, "TLS_IE_32"},
+ { RELOC_i386::R_386_TLS_LE_32, "TLS_LE_32"},
+ { RELOC_i386::R_386_TLS_DTPMOD32, "TLS_DTPMOD32"},
+ { RELOC_i386::R_386_TLS_DTPOFF32, "TLS_DTPOFF32"},
+ { RELOC_i386::R_386_TLS_TPOFF32, "TLS_TPOFF32"},
+ { RELOC_i386::R_386_TLS_GOTDESC, "TLS_GOTDESC"},
+ { RELOC_i386::R_386_TLS_DESC_CALL, "TLS_DESC_CALL"},
+ { RELOC_i386::R_386_TLS_DESC, "TLS_DESC"},
+ { RELOC_i386::R_386_IRELATIVE, "IRELATIVE"},
+ { RELOC_i386::R_386_NUM, "NUM"},
+};
+
+char const * enum_to_string(RELOC_i386 e) {
+ return e2s.at(e);
+}
+
+int main() {
+ std::puts(enum_to_string(RELOC_i386::R_386_8));
+ return 0;
+}
+
diff --git a/examples/html_entities_map.cpp b/examples/html_entities_map.cpp
new file mode 100644
index 0000000..ac7d922
--- /dev/null
+++ b/examples/html_entities_map.cpp
@@ -0,0 +1,2147 @@
+
+#include <cinttypes>
+#include <frozen/unordered_map.h>
+#include <frozen/string.h>
+
+struct codes_t
+{
+ uint32_t iCodepoint1;
+ uint32_t iCodepoint2{0};
+};
+
+static constexpr std::pair<frozen::string, codes_t> s_Entities[]
+{
+ { "AElig" , { 0xC6 }},
+ { "AMP" , { 0x26 }},
+ { "Aacute" , { 0xC1 }},
+ { "Abreve" , { 0x0102 }},
+ { "Acirc" , { 0xC2 }},
+ { "Acy" , { 0x0410 }},
+ { "Afr" , { 0x01D504 }},
+ { "Agrave" , { 0xC0 }},
+ { "Alpha" , { 0x0391 }},
+ { "Amacr" , { 0x0100 }},
+ { "And" , { 0x2A53 }},
+ { "Aogon" , { 0x0104 }},
+ { "Aopf" , { 0x01D538 }},
+ { "ApplyFunction" , { 0x2061 }},
+ { "Aring" , { 0xC5 }},
+ { "Ascr" , { 0x01D49C }},
+ { "Assign" , { 0x2254 }},
+ { "Atilde" , { 0xC3 }},
+ { "Auml" , { 0xC4 }},
+ { "Backslash" , { 0x2216 }},
+ { "Barv" , { 0x2AE7 }},
+ { "Barwed" , { 0x2306 }},
+ { "Bcy" , { 0x0411 }},
+ { "Because" , { 0x2235 }},
+ { "Bernoullis" , { 0x212C }},
+ { "Beta" , { 0x0392 }},
+ { "Bfr" , { 0x01D505 }},
+ { "Bopf" , { 0x01D539 }},
+ { "Breve" , { 0x02D8 }},
+ { "Bscr" , { 0x212C }},
+ { "Bumpeq" , { 0x224E }},
+ { "CHcy" , { 0x0427 }},
+ { "COPY" , { 0xA9 }},
+ { "Cacute" , { 0x0106 }},
+ { "Cap" , { 0x22D2 }},
+ { "CapitalDifferentialD" , { 0x2145 }},
+ { "Cayleys" , { 0x212D }},
+ { "Ccaron" , { 0x010C }},
+ { "Ccedil" , { 0xC7 }},
+ { "Ccirc" , { 0x0108 }},
+ { "Cconint" , { 0x2230 }},
+ { "Cdot" , { 0x010A }},
+ { "Cedilla" , { 0xB8 }},
+ { "CenterDot" , { 0xB7 }},
+ { "Cfr" , { 0x212D }},
+ { "Chi" , { 0x03A7 }},
+ { "CircleDot" , { 0x2299 }},
+ { "CircleMinus" , { 0x2296 }},
+ { "CirclePlus" , { 0x2295 }},
+ { "CircleTimes" , { 0x2297 }},
+ { "ClockwiseContourIntegral" , { 0x2232 }},
+ { "CloseCurlyDoubleQuote" , { 0x201D }},
+ { "CloseCurlyQuote" , { 0x2019 }},
+ { "Colon" , { 0x2237 }},
+ { "Colone" , { 0x2A74 }},
+ { "Congruent" , { 0x2261 }},
+ { "Conint" , { 0x222F }},
+ { "ContourIntegral" , { 0x222E }},
+ { "Copf" , { 0x2102 }},
+ { "Coproduct" , { 0x2210 }},
+ { "CounterClockwiseContourIntegral" , { 0x2233 }},
+ { "Cross" , { 0x2A2F }},
+ { "Cscr" , { 0x01D49E }},
+ { "Cup" , { 0x22D3 }},
+ { "CupCap" , { 0x224D }},
+ { "DD" , { 0x2145 }},
+ { "DDotrahd" , { 0x2911 }},
+ { "DJcy" , { 0x0402 }},
+ { "DScy" , { 0x0405 }},
+ { "DZcy" , { 0x040F }},
+ { "Dagger" , { 0x2021 }},
+ { "Darr" , { 0x21A1 }},
+ { "Dashv" , { 0x2AE4 }},
+ { "Dcaron" , { 0x010E }},
+ { "Dcy" , { 0x0414 }},
+ { "Del" , { 0x2207 }},
+ { "Delta" , { 0x0394 }},
+ { "Dfr" , { 0x01D507 }},
+ { "DiacriticalAcute" , { 0xB4 }},
+ { "DiacriticalDot" , { 0x02D9 }},
+ { "DiacriticalDoubleAcute" , { 0x02DD }},
+ { "DiacriticalGrave" , { 0x60 }},
+ { "DiacriticalTilde" , { 0x02DC }},
+ { "Diamond" , { 0x22C4 }},
+ { "DifferentialD" , { 0x2146 }},
+ { "Dopf" , { 0x01D53B }},
+ { "Dot" , { 0xA8 }},
+ { "DotDot" , { 0x20DC }},
+ { "DotEqual" , { 0x2250 }},
+ { "DoubleContourIntegral" , { 0x222F }},
+ { "DoubleDot" , { 0xA8 }},
+ { "DoubleDownArrow" , { 0x21D3 }},
+ { "DoubleLeftArrow" , { 0x21D0 }},
+ { "DoubleLeftRightArrow" , { 0x21D4 }},
+ { "DoubleLeftTee" , { 0x2AE4 }},
+ { "DoubleLongLeftArrow" , { 0x27F8 }},
+ { "DoubleLongLeftRightArrow" , { 0x27FA }},
+ { "DoubleLongRightArrow" , { 0x27F9 }},
+ { "DoubleRightArrow" , { 0x21D2 }},
+ { "DoubleRightTee" , { 0x22A8 }},
+ { "DoubleUpArrow" , { 0x21D1 }},
+ { "DoubleUpDownArrow" , { 0x21D5 }},
+ { "DoubleVerticalBar" , { 0x2225 }},
+ { "DownArrow" , { 0x2193 }},
+ { "DownArrowBar" , { 0x2913 }},
+ { "DownArrowUpArrow" , { 0x21F5 }},
+ { "DownBreve" , { 0x0311 }},
+ { "DownLeftRightVector" , { 0x2950 }},
+ { "DownLeftTeeVector" , { 0x295E }},
+ { "DownLeftVector" , { 0x21BD }},
+ { "DownLeftVectorBar" , { 0x2956 }},
+ { "DownRightTeeVector" , { 0x295F }},
+ { "DownRightVector" , { 0x21C1 }},
+ { "DownRightVectorBar" , { 0x2957 }},
+ { "DownTee" , { 0x22A4 }},
+ { "DownTeeArrow" , { 0x21A7 }},
+ { "Downarrow" , { 0x21D3 }},
+ { "Dscr" , { 0x01D49F }},
+ { "Dstrok" , { 0x0110 }},
+ { "ENG" , { 0x014A }},
+ { "ETH" , { 0xD0 }},
+ { "Eacute" , { 0xC9 }},
+ { "Ecaron" , { 0x011A }},
+ { "Ecirc" , { 0xCA }},
+ { "Ecy" , { 0x042D }},
+ { "Edot" , { 0x0116 }},
+ { "Efr" , { 0x01D508 }},
+ { "Egrave" , { 0xC8 }},
+ { "Element" , { 0x2208 }},
+ { "Emacr" , { 0x0112 }},
+ { "EmptySmallSquare" , { 0x25FB }},
+ { "EmptyVerySmallSquare" , { 0x25AB }},
+ { "Eogon" , { 0x0118 }},
+ { "Eopf" , { 0x01D53C }},
+ { "Epsilon" , { 0x0395 }},
+ { "Equal" , { 0x2A75 }},
+ { "EqualTilde" , { 0x2242 }},
+ { "Equilibrium" , { 0x21CC }},
+ { "Escr" , { 0x2130 }},
+ { "Esim" , { 0x2A73 }},
+ { "Eta" , { 0x0397 }},
+ { "Euml" , { 0xCB }},
+ { "Exists" , { 0x2203 }},
+ { "ExponentialE" , { 0x2147 }},
+ { "Fcy" , { 0x0424 }},
+ { "Ffr" , { 0x01D509 }},
+ { "FilledSmallSquare" , { 0x25FC }},
+ { "FilledVerySmallSquare" , { 0x25AA }},
+ { "Fopf" , { 0x01D53D }},
+ { "ForAll" , { 0x2200 }},
+ { "Fouriertrf" , { 0x2131 }},
+ { "Fscr" , { 0x2131 }},
+ { "GJcy" , { 0x0403 }},
+ { "GT" , { 0x3E }},
+ { "Gamma" , { 0x0393 }},
+ { "Gammad" , { 0x03DC }},
+ { "Gbreve" , { 0x011E }},
+ { "Gcedil" , { 0x0122 }},
+ { "Gcirc" , { 0x011C }},
+ { "Gcy" , { 0x0413 }},
+ { "Gdot" , { 0x0120 }},
+ { "Gfr" , { 0x01D50A }},
+ { "Gg" , { 0x22D9 }},
+ { "Gopf" , { 0x01D53E }},
+ { "GreaterEqual" , { 0x2265 }},
+ { "GreaterEqualLess" , { 0x22DB }},
+ { "GreaterFullEqual" , { 0x2267 }},
+ { "GreaterGreater" , { 0x2AA2 }},
+ { "GreaterLess" , { 0x2277 }},
+ { "GreaterSlantEqual" , { 0x2A7E }},
+ { "GreaterTilde" , { 0x2273 }},
+ { "Gscr" , { 0x01D4A2 }},
+ { "Gt" , { 0x226B }},
+ { "HARDcy" , { 0x042A }},
+ { "Hacek" , { 0x02C7 }},
+ { "Hat" , { 0x5E }},
+ { "Hcirc" , { 0x0124 }},
+ { "Hfr" , { 0x210C }},
+ { "HilbertSpace" , { 0x210B }},
+ { "Hopf" , { 0x210D }},
+ { "HorizontalLine" , { 0x2500 }},
+ { "Hscr" , { 0x210B }},
+ { "Hstrok" , { 0x0126 }},
+ { "HumpDownHump" , { 0x224E }},
+ { "HumpEqual" , { 0x224F }},
+ { "IEcy" , { 0x0415 }},
+ { "IJlig" , { 0x0132 }},
+ { "IOcy" , { 0x0401 }},
+ { "Iacute" , { 0xCD }},
+ { "Icirc" , { 0xCE }},
+ { "Icy" , { 0x0418 }},
+ { "Idot" , { 0x0130 }},
+ { "Ifr" , { 0x2111 }},
+ { "Igrave" , { 0xCC }},
+ { "Im" , { 0x2111 }},
+ { "Imacr" , { 0x012A }},
+ { "ImaginaryI" , { 0x2148 }},
+ { "Implies" , { 0x21D2 }},
+ { "Int" , { 0x222C }},
+ { "Integral" , { 0x222B }},
+ { "Intersection" , { 0x22C2 }},
+ { "InvisibleComma" , { 0x2063 }},
+ { "InvisibleTimes" , { 0x2062 }},
+ { "Iogon" , { 0x012E }},
+ { "Iopf" , { 0x01D540 }},
+ { "Iota" , { 0x0399 }},
+ { "Iscr" , { 0x2110 }},
+ { "Itilde" , { 0x0128 }},
+ { "Iukcy" , { 0x0406 }},
+ { "Iuml" , { 0xCF }},
+ { "Jcirc" , { 0x0134 }},
+ { "Jcy" , { 0x0419 }},
+ { "Jfr" , { 0x01D50D }},
+ { "Jopf" , { 0x01D541 }},
+ { "Jscr" , { 0x01D4A5 }},
+ { "Jsercy" , { 0x0408 }},
+ { "Jukcy" , { 0x0404 }},
+ { "KHcy" , { 0x0425 }},
+ { "KJcy" , { 0x040C }},
+ { "Kappa" , { 0x039A }},
+ { "Kcedil" , { 0x0136 }},
+ { "Kcy" , { 0x041A }},
+ { "Kfr" , { 0x01D50E }},
+ { "Kopf" , { 0x01D542 }},
+ { "Kscr" , { 0x01D4A6 }},
+ { "LJcy" , { 0x0409 }},
+ { "LT" , { 0x3C }},
+ { "Lacute" , { 0x0139 }},
+ { "Lambda" , { 0x039B }},
+ { "Lang" , { 0x27EA }},
+ { "Laplacetrf" , { 0x2112 }},
+ { "Larr" , { 0x219E }},
+ { "Lcaron" , { 0x013D }},
+ { "Lcedil" , { 0x013B }},
+ { "Lcy" , { 0x041B }},
+ { "LeftAngleBracket" , { 0x27E8 }},
+ { "LeftArrow" , { 0x2190 }},
+ { "LeftArrowBar" , { 0x21E4 }},
+ { "LeftArrowRightArrow" , { 0x21C6 }},
+ { "LeftCeiling" , { 0x2308 }},
+ { "LeftDoubleBracket" , { 0x27E6 }},
+ { "LeftDownTeeVector" , { 0x2961 }},
+ { "LeftDownVector" , { 0x21C3 }},
+ { "LeftDownVectorBar" , { 0x2959 }},
+ { "LeftFloor" , { 0x230A }},
+ { "LeftRightArrow" , { 0x2194 }},
+ { "LeftRightVector" , { 0x294E }},
+ { "LeftTee" , { 0x22A3 }},
+ { "LeftTeeArrow" , { 0x21A4 }},
+ { "LeftTeeVector" , { 0x295A }},
+ { "LeftTriangle" , { 0x22B2 }},
+ { "LeftTriangleBar" , { 0x29CF }},
+ { "LeftTriangleEqual" , { 0x22B4 }},
+ { "LeftUpDownVector" , { 0x2951 }},
+ { "LeftUpTeeVector" , { 0x2960 }},
+ { "LeftUpVector" , { 0x21BF }},
+ { "LeftUpVectorBar" , { 0x2958 }},
+ { "LeftVector" , { 0x21BC }},
+ { "LeftVectorBar" , { 0x2952 }},
+ { "Leftarrow" , { 0x21D0 }},
+ { "Leftrightarrow" , { 0x21D4 }},
+ { "LessEqualGreater" , { 0x22DA }},
+ { "LessFullEqual" , { 0x2266 }},
+ { "LessGreater" , { 0x2276 }},
+ { "LessLess" , { 0x2AA1 }},
+ { "LessSlantEqual" , { 0x2A7D }},
+ { "LessTilde" , { 0x2272 }},
+ { "Lfr" , { 0x01D50F }},
+ { "Ll" , { 0x22D8 }},
+ { "Lleftarrow" , { 0x21DA }},
+ { "Lmidot" , { 0x013F }},
+ { "LongLeftArrow" , { 0x27F5 }},
+ { "LongLeftRightArrow" , { 0x27F7 }},
+ { "LongRightArrow" , { 0x27F6 }},
+ { "Longleftarrow" , { 0x27F8 }},
+ { "Longleftrightarrow" , { 0x27FA }},
+ { "Longrightarrow" , { 0x27F9 }},
+ { "Lopf" , { 0x01D543 }},
+ { "LowerLeftArrow" , { 0x2199 }},
+ { "LowerRightArrow" , { 0x2198 }},
+ { "Lscr" , { 0x2112 }},
+ { "Lsh" , { 0x21B0 }},
+ { "Lstrok" , { 0x0141 }},
+ { "Lt" , { 0x226A }},
+ { "Map" , { 0x2905 }},
+ { "Mcy" , { 0x041C }},
+ { "MediumSpace" , { 0x205F }},
+ { "Mellintrf" , { 0x2133 }},
+ { "Mfr" , { 0x01D510 }},
+ { "MinusPlus" , { 0x2213 }},
+ { "Mopf" , { 0x01D544 }},
+ { "Mscr" , { 0x2133 }},
+ { "Mu" , { 0x039C }},
+ { "NJcy" , { 0x040A }},
+ { "Nacute" , { 0x0143 }},
+ { "Ncaron" , { 0x0147 }},
+ { "Ncedil" , { 0x0145 }},
+ { "Ncy" , { 0x041D }},
+ { "NegativeMediumSpace" , { 0x200B }},
+ { "NegativeThickSpace" , { 0x200B }},
+ { "NegativeThinSpace" , { 0x200B }},
+ { "NegativeVeryThinSpace" , { 0x200B }},
+ { "NestedGreaterGreater" , { 0x226B }},
+ { "NestedLessLess" , { 0x226A }},
+ { "NewLine" , { 0x0A }},
+ { "Nfr" , { 0x01D511 }},
+ { "NoBreak" , { 0x2060 }},
+ { "NonBreakingSpace" , { 0xA0 }},
+ { "Nopf" , { 0x2115 }},
+ { "Not" , { 0x2AEC }},
+ { "NotCongruent" , { 0x2262 }},
+ { "NotCupCap" , { 0x226D }},
+ { "NotDoubleVerticalBar" , { 0x2226 }},
+ { "NotElement" , { 0x2209 }},
+ { "NotEqual" , { 0x2260 }},
+ { "NotEqualTilde" , { 0x2242, 0x0338 }},
+ { "NotExists" , { 0x2204 }},
+ { "NotGreater" , { 0x226F }},
+ { "NotGreaterEqual" , { 0x2271 }},
+ { "NotGreaterFullEqual" , { 0x2267, 0x0338 }},
+ { "NotGreaterGreater" , { 0x226B, 0x0338 }},
+ { "NotGreaterLess" , { 0x2279 }},
+ { "NotGreaterSlantEqual" , { 0x2A7E, 0x0338 }},
+ { "NotGreaterTilde" , { 0x2275 }},
+ { "NotHumpDownHump" , { 0x224E, 0x0338 }},
+ { "NotHumpEqual" , { 0x224F, 0x0338 }},
+ { "NotLeftTriangle" , { 0x22EA }},
+ { "NotLeftTriangleBar" , { 0x29CF, 0x0338 }},
+ { "NotLeftTriangleEqual" , { 0x22EC }},
+ { "NotLess" , { 0x226E }},
+ { "NotLessEqual" , { 0x2270 }},
+ { "NotLessGreater" , { 0x2278 }},
+ { "NotLessLess" , { 0x226A, 0x0338 }},
+ { "NotLessSlantEqual" , { 0x2A7D, 0x0338 }},
+ { "NotLessTilde" , { 0x2274 }},
+ { "NotNestedGreaterGreater" , { 0x2AA2, 0x0338 }},
+ { "NotNestedLessLess" , { 0x2AA1, 0x0338 }},
+ { "NotPrecedes" , { 0x2280 }},
+ { "NotPrecedesEqual" , { 0x2AAF, 0x0338 }},
+ { "NotPrecedesSlantEqual" , { 0x22E0 }},
+ { "NotReverseElement" , { 0x220C }},
+ { "NotRightTriangle" , { 0x22EB }},
+ { "NotRightTriangleBar" , { 0x29D0, 0x0338 }},
+ { "NotRightTriangleEqual" , { 0x22ED }},
+ { "NotSquareSubset" , { 0x228F, 0x0338 }},
+ { "NotSquareSubsetEqual" , { 0x22E2 }},
+ { "NotSquareSuperset" , { 0x2290, 0x0338 }},
+ { "NotSquareSupersetEqual" , { 0x22E3 }},
+ { "NotSubset" , { 0x2282, 0x20D2 }},
+ { "NotSubsetEqual" , { 0x2288 }},
+ { "NotSucceeds" , { 0x2281 }},
+ { "NotSucceedsEqual" , { 0x2AB0, 0x0338 }},
+ { "NotSucceedsSlantEqual" , { 0x22E1 }},
+ { "NotSucceedsTilde" , { 0x227F, 0x0338 }},
+ { "NotSuperset" , { 0x2283, 0x20D2 }},
+ { "NotSupersetEqual" , { 0x2289 }},
+ { "NotTilde" , { 0x2241 }},
+ { "NotTildeEqual" , { 0x2244 }},
+ { "NotTildeFullEqual" , { 0x2247 }},
+ { "NotTildeTilde" , { 0x2249 }},
+ { "NotVerticalBar" , { 0x2224 }},
+ { "Nscr" , { 0x01D4A9 }},
+ { "Ntilde" , { 0xD1 }},
+ { "Nu" , { 0x039D }},
+ { "OElig" , { 0x0152 }},
+ { "Oacute" , { 0xD3 }},
+ { "Ocirc" , { 0xD4 }},
+ { "Ocy" , { 0x041E }},
+ { "Odblac" , { 0x0150 }},
+ { "Ofr" , { 0x01D512 }},
+ { "Ograve" , { 0xD2 }},
+ { "Omacr" , { 0x014C }},
+ { "Omega" , { 0x03A9 }},
+ { "Omicron" , { 0x039F }},
+ { "Oopf" , { 0x01D546 }},
+ { "OpenCurlyDoubleQuote" , { 0x201C }},
+ { "OpenCurlyQuote" , { 0x2018 }},
+ { "Or" , { 0x2A54 }},
+ { "Oscr" , { 0x01D4AA }},
+ { "Oslash" , { 0xD8 }},
+ { "Otilde" , { 0xD5 }},
+ { "Otimes" , { 0x2A37 }},
+ { "Ouml" , { 0xD6 }},
+ { "OverBar" , { 0x203E }},
+ { "OverBrace" , { 0x23DE }},
+ { "OverBracket" , { 0x23B4 }},
+ { "OverParenthesis" , { 0x23DC }},
+ { "PartialD" , { 0x2202 }},
+ { "Pcy" , { 0x041F }},
+ { "Pfr" , { 0x01D513 }},
+ { "Phi" , { 0x03A6 }},
+ { "Pi" , { 0x03A0 }},
+ { "PlusMinus" , { 0xB1 }},
+ { "Poincareplane" , { 0x210C }},
+ { "Popf" , { 0x2119 }},
+ { "Pr" , { 0x2ABB }},
+ { "Precedes" , { 0x227A }},
+ { "PrecedesEqual" , { 0x2AAF }},
+ { "PrecedesSlantEqual" , { 0x227C }},
+ { "PrecedesTilde" , { 0x227E }},
+ { "Prime" , { 0x2033 }},
+ { "Product" , { 0x220F }},
+ { "Proportion" , { 0x2237 }},
+ { "Proportional" , { 0x221D }},
+ { "Pscr" , { 0x01D4AB }},
+ { "Psi" , { 0x03A8 }},
+ { "QUOT" , { 0x22 }},
+ { "Qfr" , { 0x01D514 }},
+ { "Qopf" , { 0x211A }},
+ { "Qscr" , { 0x01D4AC }},
+ { "RBarr" , { 0x2910 }},
+ { "REG" , { 0xAE }},
+ { "Racute" , { 0x0154 }},
+ { "Rang" , { 0x27EB }},
+ { "Rarr" , { 0x21A0 }},
+ { "Rarrtl" , { 0x2916 }},
+ { "Rcaron" , { 0x0158 }},
+ { "Rcedil" , { 0x0156 }},
+ { "Rcy" , { 0x0420 }},
+ { "Re" , { 0x211C }},
+ { "ReverseElement" , { 0x220B }},
+ { "ReverseEquilibrium" , { 0x21CB }},
+ { "ReverseUpEquilibrium" , { 0x296F }},
+ { "Rfr" , { 0x211C }},
+ { "Rho" , { 0x03A1 }},
+ { "RightAngleBracket" , { 0x27E9 }},
+ { "RightArrow" , { 0x2192 }},
+ { "RightArrowBar" , { 0x21E5 }},
+ { "RightArrowLeftArrow" , { 0x21C4 }},
+ { "RightCeiling" , { 0x2309 }},
+ { "RightDoubleBracket" , { 0x27E7 }},
+ { "RightDownTeeVector" , { 0x295D }},
+ { "RightDownVector" , { 0x21C2 }},
+ { "RightDownVectorBar" , { 0x2955 }},
+ { "RightFloor" , { 0x230B }},
+ { "RightTee" , { 0x22A2 }},
+ { "RightTeeArrow" , { 0x21A6 }},
+ { "RightTeeVector" , { 0x295B }},
+ { "RightTriangle" , { 0x22B3 }},
+ { "RightTriangleBar" , { 0x29D0 }},
+ { "RightTriangleEqual" , { 0x22B5 }},
+ { "RightUpDownVector" , { 0x294F }},
+ { "RightUpTeeVector" , { 0x295C }},
+ { "RightUpVector" , { 0x21BE }},
+ { "RightUpVectorBar" , { 0x2954 }},
+ { "RightVector" , { 0x21C0 }},
+ { "RightVectorBar" , { 0x2953 }},
+ { "Rightarrow" , { 0x21D2 }},
+ { "Ropf" , { 0x211D }},
+ { "RoundImplies" , { 0x2970 }},
+ { "Rrightarrow" , { 0x21DB }},
+ { "Rscr" , { 0x211B }},
+ { "Rsh" , { 0x21B1 }},
+ { "RuleDelayed" , { 0x29F4 }},
+ { "SHCHcy" , { 0x0429 }},
+ { "SHcy" , { 0x0428 }},
+ { "SOFTcy" , { 0x042C }},
+ { "Sacute" , { 0x015A }},
+ { "Sc" , { 0x2ABC }},
+ { "Scaron" , { 0x0160 }},
+ { "Scedil" , { 0x015E }},
+ { "Scirc" , { 0x015C }},
+ { "Scy" , { 0x0421 }},
+ { "Sfr" , { 0x01D516 }},
+ { "ShortDownArrow" , { 0x2193 }},
+ { "ShortLeftArrow" , { 0x2190 }},
+ { "ShortRightArrow" , { 0x2192 }},
+ { "ShortUpArrow" , { 0x2191 }},
+ { "Sigma" , { 0x03A3 }},
+ { "SmallCircle" , { 0x2218 }},
+ { "Sopf" , { 0x01D54A }},
+ { "Sqrt" , { 0x221A }},
+ { "Square" , { 0x25A1 }},
+ { "SquareIntersection" , { 0x2293 }},
+ { "SquareSubset" , { 0x228F }},
+ { "SquareSubsetEqual" , { 0x2291 }},
+ { "SquareSuperset" , { 0x2290 }},
+ { "SquareSupersetEqual" , { 0x2292 }},
+ { "SquareUnion" , { 0x2294 }},
+ { "Sscr" , { 0x01D4AE }},
+ { "Star" , { 0x22C6 }},
+ { "Sub" , { 0x22D0 }},
+ { "Subset" , { 0x22D0 }},
+ { "SubsetEqual" , { 0x2286 }},
+ { "Succeeds" , { 0x227B }},
+ { "SucceedsEqual" , { 0x2AB0 }},
+ { "SucceedsSlantEqual" , { 0x227D }},
+ { "SucceedsTilde" , { 0x227F }},
+ { "SuchThat" , { 0x220B }},
+ { "Sum" , { 0x2211 }},
+ { "Sup" , { 0x22D1 }},
+ { "Superset" , { 0x2283 }},
+ { "SupersetEqual" , { 0x2287 }},
+ { "Supset" , { 0x22D1 }},
+ { "THORN" , { 0xDE }},
+ { "TRADE" , { 0x2122 }},
+ { "TSHcy" , { 0x040B }},
+ { "TScy" , { 0x0426 }},
+ { "Tab" , { 0x09 }},
+ { "Tau" , { 0x03A4 }},
+ { "Tcaron" , { 0x0164 }},
+ { "Tcedil" , { 0x0162 }},
+ { "Tcy" , { 0x0422 }},
+ { "Tfr" , { 0x01D517 }},
+ { "Therefore" , { 0x2234 }},
+ { "Theta" , { 0x0398 }},
+ { "ThickSpace" , { 0x205F, 0x200A }},
+ { "ThinSpace" , { 0x2009 }},
+ { "Tilde" , { 0x223C }},
+ { "TildeEqual" , { 0x2243 }},
+ { "TildeFullEqual" , { 0x2245 }},
+ { "TildeTilde" , { 0x2248 }},
+ { "Topf" , { 0x01D54B }},
+ { "TripleDot" , { 0x20DB }},
+ { "Tscr" , { 0x01D4AF }},
+ { "Tstrok" , { 0x0166 }},
+ { "Uacute" , { 0xDA }},
+ { "Uarr" , { 0x219F }},
+ { "Uarrocir" , { 0x2949 }},
+ { "Ubrcy" , { 0x040E }},
+ { "Ubreve" , { 0x016C }},
+ { "Ucirc" , { 0xDB }},
+ { "Ucy" , { 0x0423 }},
+ { "Udblac" , { 0x0170 }},
+ { "Ufr" , { 0x01D518 }},
+ { "Ugrave" , { 0xD9 }},
+ { "Umacr" , { 0x016A }},
+ { "UnderBar" , { 0x5F }},
+ { "UnderBrace" , { 0x23DF }},
+ { "UnderBracket" , { 0x23B5 }},
+ { "UnderParenthesis" , { 0x23DD }},
+ { "Union" , { 0x22C3 }},
+ { "UnionPlus" , { 0x228E }},
+ { "Uogon" , { 0x0172 }},
+ { "Uopf" , { 0x01D54C }},
+ { "UpArrow" , { 0x2191 }},
+ { "UpArrowBar" , { 0x2912 }},
+ { "UpArrowDownArrow" , { 0x21C5 }},
+ { "UpDownArrow" , { 0x2195 }},
+ { "UpEquilibrium" , { 0x296E }},
+ { "UpTee" , { 0x22A5 }},
+ { "UpTeeArrow" , { 0x21A5 }},
+ { "Uparrow" , { 0x21D1 }},
+ { "Updownarrow" , { 0x21D5 }},
+ { "UpperLeftArrow" , { 0x2196 }},
+ { "UpperRightArrow" , { 0x2197 }},
+ { "Upsi" , { 0x03D2 }},
+ { "Upsilon" , { 0x03A5 }},
+ { "Uring" , { 0x016E }},
+ { "Uscr" , { 0x01D4B0 }},
+ { "Utilde" , { 0x0168 }},
+ { "Uuml" , { 0xDC }},
+ { "VDash" , { 0x22AB }},
+ { "Vbar" , { 0x2AEB }},
+ { "Vcy" , { 0x0412 }},
+ { "Vdash" , { 0x22A9 }},
+ { "Vdashl" , { 0x2AE6 }},
+ { "Vee" , { 0x22C1 }},
+ { "Verbar" , { 0x2016 }},
+ { "Vert" , { 0x2016 }},
+ { "VerticalBar" , { 0x2223 }},
+ { "VerticalLine" , { 0x7C }},
+ { "VerticalSeparator" , { 0x2758 }},
+ { "VerticalTilde" , { 0x2240 }},
+ { "VeryThinSpace" , { 0x200A }},
+ { "Vfr" , { 0x01D519 }},
+ { "Vopf" , { 0x01D54D }},
+ { "Vscr" , { 0x01D4B1 }},
+ { "Vvdash" , { 0x22AA }},
+ { "Wcirc" , { 0x0174 }},
+ { "Wedge" , { 0x22C0 }},
+ { "Wfr" , { 0x01D51A }},
+ { "Wopf" , { 0x01D54E }},
+ { "Wscr" , { 0x01D4B2 }},
+ { "Xfr" , { 0x01D51B }},
+ { "Xi" , { 0x039E }},
+ { "Xopf" , { 0x01D54F }},
+ { "Xscr" , { 0x01D4B3 }},
+ { "YAcy" , { 0x042F }},
+ { "YIcy" , { 0x0407 }},
+ { "YUcy" , { 0x042E }},
+ { "Yacute" , { 0xDD }},
+ { "Ycirc" , { 0x0176 }},
+ { "Ycy" , { 0x042B }},
+ { "Yfr" , { 0x01D51C }},
+ { "Yopf" , { 0x01D550 }},
+ { "Yscr" , { 0x01D4B4 }},
+ { "Yuml" , { 0x0178 }},
+ { "ZHcy" , { 0x0416 }},
+ { "Zacute" , { 0x0179 }},
+ { "Zcaron" , { 0x017D }},
+ { "Zcy" , { 0x0417 }},
+ { "Zdot" , { 0x017B }},
+ { "ZeroWidthSpace" , { 0x200B }},
+ { "Zeta" , { 0x0396 }},
+ { "Zfr" , { 0x2128 }},
+ { "Zopf" , { 0x2124 }},
+ { "Zscr" , { 0x01D4B5 }},
+ { "aacute" , { 0xE1 }},
+ { "abreve" , { 0x0103 }},
+ { "ac" , { 0x223E }},
+ { "acE" , { 0x223E, 0x0333 }},
+ { "acd" , { 0x223F }},
+ { "acirc" , { 0xE2 }},
+ { "acute" , { 0xB4 }},
+ { "acy" , { 0x0430 }},
+ { "aelig" , { 0xE6 }},
+ { "af" , { 0x2061 }},
+ { "afr" , { 0x01D51E }},
+ { "agrave" , { 0xE0 }},
+ { "alefsym" , { 0x2135 }},
+ { "aleph" , { 0x2135 }},
+ { "alpha" , { 0x03B1 }},
+ { "amacr" , { 0x0101 }},
+ { "amalg" , { 0x2A3F }},
+ { "amp" , { 0x26 }},
+ { "and" , { 0x2227 }},
+ { "andand" , { 0x2A55 }},
+ { "andd" , { 0x2A5C }},
+ { "andslope" , { 0x2A58 }},
+ { "andv" , { 0x2A5A }},
+ { "ang" , { 0x2220 }},
+ { "ange" , { 0x29A4 }},
+ { "angle" , { 0x2220 }},
+ { "angmsd" , { 0x2221 }},
+ { "angmsdaa" , { 0x29A8 }},
+ { "angmsdab" , { 0x29A9 }},
+ { "angmsdac" , { 0x29AA }},
+ { "angmsdad" , { 0x29AB }},
+ { "angmsdae" , { 0x29AC }},
+ { "angmsdaf" , { 0x29AD }},
+ { "angmsdag" , { 0x29AE }},
+ { "angmsdah" , { 0x29AF }},
+ { "angrt" , { 0x221F }},
+ { "angrtvb" , { 0x22BE }},
+ { "angrtvbd" , { 0x299D }},
+ { "angsph" , { 0x2222 }},
+ { "angst" , { 0xC5 }},
+ { "angzarr" , { 0x237C }},
+ { "aogon" , { 0x0105 }},
+ { "aopf" , { 0x01D552 }},
+ { "ap" , { 0x2248 }},
+ { "apE" , { 0x2A70 }},
+ { "apacir" , { 0x2A6F }},
+ { "ape" , { 0x224A }},
+ { "apid" , { 0x224B }},
+ { "apos" , { 0x27 }},
+ { "approx" , { 0x2248 }},
+ { "approxeq" , { 0x224A }},
+ { "aring" , { 0xE5 }},
+ { "ascr" , { 0x01D4B6 }},
+ { "ast" , { 0x2A }},
+ { "asymp" , { 0x2248 }},
+ { "asympeq" , { 0x224D }},
+ { "atilde" , { 0xE3 }},
+ { "auml" , { 0xE4 }},
+ { "awconint" , { 0x2233 }},
+ { "awint" , { 0x2A11 }},
+ { "bNot" , { 0x2AED }},
+ { "backcong" , { 0x224C }},
+ { "backepsilon" , { 0x03F6 }},
+ { "backprime" , { 0x2035 }},
+ { "backsim" , { 0x223D }},
+ { "backsimeq" , { 0x22CD }},
+ { "barvee" , { 0x22BD }},
+ { "barwed" , { 0x2305 }},
+ { "barwedge" , { 0x2305 }},
+ { "bbrk" , { 0x23B5 }},
+ { "bbrktbrk" , { 0x23B6 }},
+ { "bcong" , { 0x224C }},
+ { "bcy" , { 0x0431 }},
+ { "bdquo" , { 0x201E }},
+ { "becaus" , { 0x2235 }},
+ { "because" , { 0x2235 }},
+ { "bemptyv" , { 0x29B0 }},
+ { "bepsi" , { 0x03F6 }},
+ { "bernou" , { 0x212C }},
+ { "beta" , { 0x03B2 }},
+ { "beth" , { 0x2136 }},
+ { "between" , { 0x226C }},
+ { "bfr" , { 0x01D51F }},
+ { "bigcap" , { 0x22C2 }},
+ { "bigcirc" , { 0x25EF }},
+ { "bigcup" , { 0x22C3 }},
+ { "bigodot" , { 0x2A00 }},
+ { "bigoplus" , { 0x2A01 }},
+ { "bigotimes" , { 0x2A02 }},
+ { "bigsqcup" , { 0x2A06 }},
+ { "bigstar" , { 0x2605 }},
+ { "bigtriangledown" , { 0x25BD }},
+ { "bigtriangleup" , { 0x25B3 }},
+ { "biguplus" , { 0x2A04 }},
+ { "bigvee" , { 0x22C1 }},
+ { "bigwedge" , { 0x22C0 }},
+ { "bkarow" , { 0x290D }},
+ { "blacklozenge" , { 0x29EB }},
+ { "blacksquare" , { 0x25AA }},
+ { "blacktriangle" , { 0x25B4 }},
+ { "blacktriangledown" , { 0x25BE }},
+ { "blacktriangleleft" , { 0x25C2 }},
+ { "blacktriangleright" , { 0x25B8 }},
+ { "blank" , { 0x2423 }},
+ { "blk12" , { 0x2592 }},
+ { "blk14" , { 0x2591 }},
+ { "blk34" , { 0x2593 }},
+ { "block" , { 0x2588 }},
+ { "bne" , { 0x3D, 0x20E5 }},
+ { "bnequiv" , { 0x2261, 0x20E5 }},
+ { "bnot" , { 0x2310 }},
+ { "bopf" , { 0x01D553 }},
+ { "bot" , { 0x22A5 }},
+ { "bottom" , { 0x22A5 }},
+ { "bowtie" , { 0x22C8 }},
+ { "boxDL" , { 0x2557 }},
+ { "boxDR" , { 0x2554 }},
+ { "boxDl" , { 0x2556 }},
+ { "boxDr" , { 0x2553 }},
+ { "boxH" , { 0x2550 }},
+ { "boxHD" , { 0x2566 }},
+ { "boxHU" , { 0x2569 }},
+ { "boxHd" , { 0x2564 }},
+ { "boxHu" , { 0x2567 }},
+ { "boxUL" , { 0x255D }},
+ { "boxUR" , { 0x255A }},
+ { "boxUl" , { 0x255C }},
+ { "boxUr" , { 0x2559 }},
+ { "boxV" , { 0x2551 }},
+ { "boxVH" , { 0x256C }},
+ { "boxVL" , { 0x2563 }},
+ { "boxVR" , { 0x2560 }},
+ { "boxVh" , { 0x256B }},
+ { "boxVl" , { 0x2562 }},
+ { "boxVr" , { 0x255F }},
+ { "boxbox" , { 0x29C9 }},
+ { "boxdL" , { 0x2555 }},
+ { "boxdR" , { 0x2552 }},
+ { "boxdl" , { 0x2510 }},
+ { "boxdr" , { 0x250C }},
+ { "boxh" , { 0x2500 }},
+ { "boxhD" , { 0x2565 }},
+ { "boxhU" , { 0x2568 }},
+ { "boxhd" , { 0x252C }},
+ { "boxhu" , { 0x2534 }},
+ { "boxminus" , { 0x229F }},
+ { "boxplus" , { 0x229E }},
+ { "boxtimes" , { 0x22A0 }},
+ { "boxuL" , { 0x255B }},
+ { "boxuR" , { 0x2558 }},
+ { "boxul" , { 0x2518 }},
+ { "boxur" , { 0x2514 }},
+ { "boxv" , { 0x2502 }},
+ { "boxvH" , { 0x256A }},
+ { "boxvL" , { 0x2561 }},
+ { "boxvR" , { 0x255E }},
+ { "boxvh" , { 0x253C }},
+ { "boxvl" , { 0x2524 }},
+ { "boxvr" , { 0x251C }},
+ { "bprime" , { 0x2035 }},
+ { "breve" , { 0x02D8 }},
+ { "brvbar" , { 0xA6 }},
+ { "bscr" , { 0x01D4B7 }},
+ { "bsemi" , { 0x204F }},
+ { "bsim" , { 0x223D }},
+ { "bsime" , { 0x22CD }},
+ { "bsol" , { 0x5C }},
+ { "bsolb" , { 0x29C5 }},
+ { "bsolhsub" , { 0x27C8 }},
+ { "bull" , { 0x2022 }},
+ { "bullet" , { 0x2022 }},
+ { "bump" , { 0x224E }},
+ { "bumpE" , { 0x2AAE }},
+ { "bumpe" , { 0x224F }},
+ { "bumpeq" , { 0x224F }},
+ { "cacute" , { 0x0107 }},
+ { "cap" , { 0x2229 }},
+ { "capand" , { 0x2A44 }},
+ { "capbrcup" , { 0x2A49 }},
+ { "capcap" , { 0x2A4B }},
+ { "capcup" , { 0x2A47 }},
+ { "capdot" , { 0x2A40 }},
+ { "caps" , { 0x2229, 0xFE00 }},
+ { "caret" , { 0x2041 }},
+ { "caron" , { 0x02C7 }},
+ { "ccaps" , { 0x2A4D }},
+ { "ccaron" , { 0x010D }},
+ { "ccedil" , { 0xE7 }},
+ { "ccirc" , { 0x0109 }},
+ { "ccups" , { 0x2A4C }},
+ { "ccupssm" , { 0x2A50 }},
+ { "cdot" , { 0x010B }},
+ { "cedil" , { 0xB8 }},
+ { "cemptyv" , { 0x29B2 }},
+ { "cent" , { 0xA2 }},
+ { "centerdot" , { 0xB7 }},
+ { "cfr" , { 0x01D520 }},
+ { "chcy" , { 0x0447 }},
+ { "check" , { 0x2713 }},
+ { "checkmark" , { 0x2713 }},
+ { "chi" , { 0x03C7 }},
+ { "cir" , { 0x25CB }},
+ { "cirE" , { 0x29C3 }},
+ { "circ" , { 0x02C6 }},
+ { "circeq" , { 0x2257 }},
+ { "circlearrowleft" , { 0x21BA }},
+ { "circlearrowright" , { 0x21BB }},
+ { "circledR" , { 0xAE }},
+ { "circledS" , { 0x24C8 }},
+ { "circledast" , { 0x229B }},
+ { "circledcirc" , { 0x229A }},
+ { "circleddash" , { 0x229D }},
+ { "cire" , { 0x2257 }},
+ { "cirfnint" , { 0x2A10 }},
+ { "cirmid" , { 0x2AEF }},
+ { "cirscir" , { 0x29C2 }},
+ { "clubs" , { 0x2663 }},
+ { "clubsuit" , { 0x2663 }},
+ { "colon" , { 0x3A }},
+ { "colone" , { 0x2254 }},
+ { "coloneq" , { 0x2254 }},
+ { "comma" , { 0x2C }},
+ { "commat" , { 0x40 }},
+ { "comp" , { 0x2201 }},
+ { "compfn" , { 0x2218 }},
+ { "complement" , { 0x2201 }},
+ { "complexes" , { 0x2102 }},
+ { "cong" , { 0x2245 }},
+ { "congdot" , { 0x2A6D }},
+ { "conint" , { 0x222E }},
+ { "copf" , { 0x01D554 }},
+ { "coprod" , { 0x2210 }},
+ { "copy" , { 0xA9 }},
+ { "copysr" , { 0x2117 }},
+ { "crarr" , { 0x21B5 }},
+ { "cross" , { 0x2717 }},
+ { "cscr" , { 0x01D4B8 }},
+ { "csub" , { 0x2ACF }},
+ { "csube" , { 0x2AD1 }},
+ { "csup" , { 0x2AD0 }},
+ { "csupe" , { 0x2AD2 }},
+ { "ctdot" , { 0x22EF }},
+ { "cudarrl" , { 0x2938 }},
+ { "cudarrr" , { 0x2935 }},
+ { "cuepr" , { 0x22DE }},
+ { "cuesc" , { 0x22DF }},
+ { "cularr" , { 0x21B6 }},
+ { "cularrp" , { 0x293D }},
+ { "cup" , { 0x222A }},
+ { "cupbrcap" , { 0x2A48 }},
+ { "cupcap" , { 0x2A46 }},
+ { "cupcup" , { 0x2A4A }},
+ { "cupdot" , { 0x228D }},
+ { "cupor" , { 0x2A45 }},
+ { "cups" , { 0x222A, 0xFE00 }},
+ { "curarr" , { 0x21B7 }},
+ { "curarrm" , { 0x293C }},
+ { "curlyeqprec" , { 0x22DE }},
+ { "curlyeqsucc" , { 0x22DF }},
+ { "curlyvee" , { 0x22CE }},
+ { "curlywedge" , { 0x22CF }},
+ { "curren" , { 0xA4 }},
+ { "curvearrowleft" , { 0x21B6 }},
+ { "curvearrowright" , { 0x21B7 }},
+ { "cuvee" , { 0x22CE }},
+ { "cuwed" , { 0x22CF }},
+ { "cwconint" , { 0x2232 }},
+ { "cwint" , { 0x2231 }},
+ { "cylcty" , { 0x232D }},
+ { "dArr" , { 0x21D3 }},
+ { "dHar" , { 0x2965 }},
+ { "dagger" , { 0x2020 }},
+ { "daleth" , { 0x2138 }},
+ { "darr" , { 0x2193 }},
+ { "dash" , { 0x2010 }},
+ { "dashv" , { 0x22A3 }},
+ { "dbkarow" , { 0x290F }},
+ { "dblac" , { 0x02DD }},
+ { "dcaron" , { 0x010F }},
+ { "dcy" , { 0x0434 }},
+ { "dd" , { 0x2146 }},
+ { "ddagger" , { 0x2021 }},
+ { "ddarr" , { 0x21CA }},
+ { "ddotseq" , { 0x2A77 }},
+ { "deg" , { 0xB0 }},
+ { "delta" , { 0x03B4 }},
+ { "demptyv" , { 0x29B1 }},
+ { "dfisht" , { 0x297F }},
+ { "dfr" , { 0x01D521 }},
+ { "dharl" , { 0x21C3 }},
+ { "dharr" , { 0x21C2 }},
+ { "diam" , { 0x22C4 }},
+ { "diamond" , { 0x22C4 }},
+ { "diamondsuit" , { 0x2666 }},
+ { "diams" , { 0x2666 }},
+ { "die" , { 0xA8 }},
+ { "digamma" , { 0x03DD }},
+ { "disin" , { 0x22F2 }},
+ { "div" , { 0xF7 }},
+ { "divide" , { 0xF7 }},
+ { "divideontimes" , { 0x22C7 }},
+ { "divonx" , { 0x22C7 }},
+ { "djcy" , { 0x0452 }},
+ { "dlcorn" , { 0x231E }},
+ { "dlcrop" , { 0x230D }},
+ { "dollar" , { 0x24 }},
+ { "dopf" , { 0x01D555 }},
+ { "dot" , { 0x02D9 }},
+ { "doteq" , { 0x2250 }},
+ { "doteqdot" , { 0x2251 }},
+ { "dotminus" , { 0x2238 }},
+ { "dotplus" , { 0x2214 }},
+ { "dotsquare" , { 0x22A1 }},
+ { "doublebarwedge" , { 0x2306 }},
+ { "downarrow" , { 0x2193 }},
+ { "downdownarrows" , { 0x21CA }},
+ { "downharpoonleft" , { 0x21C3 }},
+ { "downharpoonright" , { 0x21C2 }},
+ { "drbkarow" , { 0x2910 }},
+ { "drcorn" , { 0x231F }},
+ { "drcrop" , { 0x230C }},
+ { "dscr" , { 0x01D4B9 }},
+ { "dscy" , { 0x0455 }},
+ { "dsol" , { 0x29F6 }},
+ { "dstrok" , { 0x0111 }},
+ { "dtdot" , { 0x22F1 }},
+ { "dtri" , { 0x25BF }},
+ { "dtrif" , { 0x25BE }},
+ { "duarr" , { 0x21F5 }},
+ { "duhar" , { 0x296F }},
+ { "dwangle" , { 0x29A6 }},
+ { "dzcy" , { 0x045F }},
+ { "dzigrarr" , { 0x27FF }},
+ { "eDDot" , { 0x2A77 }},
+ { "eDot" , { 0x2251 }},
+ { "eacute" , { 0xE9 }},
+ { "easter" , { 0x2A6E }},
+ { "ecaron" , { 0x011B }},
+ { "ecir" , { 0x2256 }},
+ { "ecirc" , { 0xEA }},
+ { "ecolon" , { 0x2255 }},
+ { "ecy" , { 0x044D }},
+ { "edot" , { 0x0117 }},
+ { "ee" , { 0x2147 }},
+ { "efDot" , { 0x2252 }},
+ { "efr" , { 0x01D522 }},
+ { "eg" , { 0x2A9A }},
+ { "egrave" , { 0xE8 }},
+ { "egs" , { 0x2A96 }},
+ { "egsdot" , { 0x2A98 }},
+ { "el" , { 0x2A99 }},
+ { "elinters" , { 0x23E7 }},
+ { "ell" , { 0x2113 }},
+ { "els" , { 0x2A95 }},
+ { "elsdot" , { 0x2A97 }},
+ { "emacr" , { 0x0113 }},
+ { "empty" , { 0x2205 }},
+ { "emptyset" , { 0x2205 }},
+ { "emptyv" , { 0x2205 }},
+ { "emsp13" , { 0x2004 }},
+ { "emsp14" , { 0x2005 }},
+ { "emsp" , { 0x2003 }},
+ { "eng" , { 0x014B }},
+ { "ensp" , { 0x2002 }},
+ { "eogon" , { 0x0119 }},
+ { "eopf" , { 0x01D556 }},
+ { "epar" , { 0x22D5 }},
+ { "eparsl" , { 0x29E3 }},
+ { "eplus" , { 0x2A71 }},
+ { "epsi" , { 0x03B5 }},
+ { "epsilon" , { 0x03B5 }},
+ { "epsiv" , { 0x03F5 }},
+ { "eqcirc" , { 0x2256 }},
+ { "eqcolon" , { 0x2255 }},
+ { "eqsim" , { 0x2242 }},
+ { "eqslantgtr" , { 0x2A96 }},
+ { "eqslantless" , { 0x2A95 }},
+ { "equals" , { 0x3D }},
+ { "equest" , { 0x225F }},
+ { "equiv" , { 0x2261 }},
+ { "equivDD" , { 0x2A78 }},
+ { "eqvparsl" , { 0x29E5 }},
+ { "erDot" , { 0x2253 }},
+ { "erarr" , { 0x2971 }},
+ { "escr" , { 0x212F }},
+ { "esdot" , { 0x2250 }},
+ { "esim" , { 0x2242 }},
+ { "eta" , { 0x03B7 }},
+ { "eth" , { 0xF0 }},
+ { "euml" , { 0xEB }},
+ { "euro" , { 0x20AC }},
+ { "excl" , { 0x21 }},
+ { "exist" , { 0x2203 }},
+ { "expectation" , { 0x2130 }},
+ { "exponentiale" , { 0x2147 }},
+ { "fallingdotseq" , { 0x2252 }},
+ { "fcy" , { 0x0444 }},
+ { "female" , { 0x2640 }},
+ { "ffilig" , { 0xFB03 }},
+ { "fflig" , { 0xFB00 }},
+ { "ffllig" , { 0xFB04 }},
+ { "ffr" , { 0x01D523 }},
+ { "filig" , { 0xFB01 }},
+ { "fjlig" , { 0x66, 0x6A }},
+ { "flat" , { 0x266D }},
+ { "fllig" , { 0xFB02 }},
+ { "fltns" , { 0x25B1 }},
+ { "fnof" , { 0x0192 }},
+ { "fopf" , { 0x01D557 }},
+ { "forall" , { 0x2200 }},
+ { "fork" , { 0x22D4 }},
+ { "forkv" , { 0x2AD9 }},
+ { "fpartint" , { 0x2A0D }},
+ { "frac12" , { 0xBD }},
+ { "frac13" , { 0x2153 }},
+ { "frac14" , { 0xBC }},
+ { "frac15" , { 0x2155 }},
+ { "frac16" , { 0x2159 }},
+ { "frac18" , { 0x215B }},
+ { "frac23" , { 0x2154 }},
+ { "frac25" , { 0x2156 }},
+ { "frac34" , { 0xBE }},
+ { "frac35" , { 0x2157 }},
+ { "frac38" , { 0x215C }},
+ { "frac45" , { 0x2158 }},
+ { "frac56" , { 0x215A }},
+ { "frac58" , { 0x215D }},
+ { "frac78" , { 0x215E }},
+ { "frasl" , { 0x2044 }},
+ { "frown" , { 0x2322 }},
+ { "fscr" , { 0x01D4BB }},
+ { "gE" , { 0x2267 }},
+ { "gEl" , { 0x2A8C }},
+ { "gacute" , { 0x01F5 }},
+ { "gamma" , { 0x03B3 }},
+ { "gammad" , { 0x03DD }},
+ { "gap" , { 0x2A86 }},
+ { "gbreve" , { 0x011F }},
+ { "gcirc" , { 0x011D }},
+ { "gcy" , { 0x0433 }},
+ { "gdot" , { 0x0121 }},
+ { "ge" , { 0x2265 }},
+ { "gel" , { 0x22DB }},
+ { "geq" , { 0x2265 }},
+ { "geqq" , { 0x2267 }},
+ { "geqslant" , { 0x2A7E }},
+ { "ges" , { 0x2A7E }},
+ { "gescc" , { 0x2AA9 }},
+ { "gesdot" , { 0x2A80 }},
+ { "gesdoto" , { 0x2A82 }},
+ { "gesdotol" , { 0x2A84 }},
+ { "gesl" , { 0x22DB, 0xFE00 }},
+ { "gesles" , { 0x2A94 }},
+ { "gfr" , { 0x01D524 }},
+ { "gg" , { 0x226B }},
+ { "ggg" , { 0x22D9 }},
+ { "gimel" , { 0x2137 }},
+ { "gjcy" , { 0x0453 }},
+ { "gl" , { 0x2277 }},
+ { "glE" , { 0x2A92 }},
+ { "gla" , { 0x2AA5 }},
+ { "glj" , { 0x2AA4 }},
+ { "gnE" , { 0x2269 }},
+ { "gnap" , { 0x2A8A }},
+ { "gnapprox" , { 0x2A8A }},
+ { "gne" , { 0x2A88 }},
+ { "gneq" , { 0x2A88 }},
+ { "gneqq" , { 0x2269 }},
+ { "gnsim" , { 0x22E7 }},
+ { "gopf" , { 0x01D558 }},
+ { "grave" , { 0x60 }},
+ { "gscr" , { 0x210A }},
+ { "gsim" , { 0x2273 }},
+ { "gsime" , { 0x2A8E }},
+ { "gsiml" , { 0x2A90 }},
+ { "gt" , { 0x3E }},
+ { "gtcc" , { 0x2AA7 }},
+ { "gtcir" , { 0x2A7A }},
+ { "gtdot" , { 0x22D7 }},
+ { "gtlPar" , { 0x2995 }},
+ { "gtquest" , { 0x2A7C }},
+ { "gtrapprox" , { 0x2A86 }},
+ { "gtrarr" , { 0x2978 }},
+ { "gtrdot" , { 0x22D7 }},
+ { "gtreqless" , { 0x22DB }},
+ { "gtreqqless" , { 0x2A8C }},
+ { "gtrless" , { 0x2277 }},
+ { "gtrsim" , { 0x2273 }},
+ { "gvertneqq" , { 0x2269, 0xFE00 }},
+ { "gvnE" , { 0x2269, 0xFE00 }},
+ { "hArr" , { 0x21D4 }},
+ { "hairsp" , { 0x200A }},
+ { "half" , { 0xBD }},
+ { "hamilt" , { 0x210B }},
+ { "hardcy" , { 0x044A }},
+ { "harr" , { 0x2194 }},
+ { "harrcir" , { 0x2948 }},
+ { "harrw" , { 0x21AD }},
+ { "hbar" , { 0x210F }},
+ { "hcirc" , { 0x0125 }},
+ { "hearts" , { 0x2665 }},
+ { "heartsuit" , { 0x2665 }},
+ { "hellip" , { 0x2026 }},
+ { "hercon" , { 0x22B9 }},
+ { "hfr" , { 0x01D525 }},
+ { "hksearow" , { 0x2925 }},
+ { "hkswarow" , { 0x2926 }},
+ { "hoarr" , { 0x21FF }},
+ { "homtht" , { 0x223B }},
+ { "hookleftarrow" , { 0x21A9 }},
+ { "hookrightarrow" , { 0x21AA }},
+ { "hopf" , { 0x01D559 }},
+ { "horbar" , { 0x2015 }},
+ { "hscr" , { 0x01D4BD }},
+ { "hslash" , { 0x210F }},
+ { "hstrok" , { 0x0127 }},
+ { "hybull" , { 0x2043 }},
+ { "hyphen" , { 0x2010 }},
+ { "iacute" , { 0xED }},
+ { "ic" , { 0x2063 }},
+ { "icirc" , { 0xEE }},
+ { "icy" , { 0x0438 }},
+ { "iecy" , { 0x0435 }},
+ { "iexcl" , { 0xA1 }},
+ { "iff" , { 0x21D4 }},
+ { "ifr" , { 0x01D526 }},
+ { "igrave" , { 0xEC }},
+ { "ii" , { 0x2148 }},
+ { "iiiint" , { 0x2A0C }},
+ { "iiint" , { 0x222D }},
+ { "iinfin" , { 0x29DC }},
+ { "iiota" , { 0x2129 }},
+ { "ijlig" , { 0x0133 }},
+ { "imacr" , { 0x012B }},
+ { "image" , { 0x2111 }},
+ { "imagline" , { 0x2110 }},
+ { "imagpart" , { 0x2111 }},
+ { "imath" , { 0x0131 }},
+ { "imof" , { 0x22B7 }},
+ { "imped" , { 0x01B5 }},
+ { "in" , { 0x2208 }},
+ { "incare" , { 0x2105 }},
+ { "infin" , { 0x221E }},
+ { "infintie" , { 0x29DD }},
+ { "inodot" , { 0x0131 }},
+ { "int" , { 0x222B }},
+ { "intcal" , { 0x22BA }},
+ { "integers" , { 0x2124 }},
+ { "intercal" , { 0x22BA }},
+ { "intlarhk" , { 0x2A17 }},
+ { "intprod" , { 0x2A3C }},
+ { "iocy" , { 0x0451 }},
+ { "iogon" , { 0x012F }},
+ { "iopf" , { 0x01D55A }},
+ { "iota" , { 0x03B9 }},
+ { "iprod" , { 0x2A3C }},
+ { "iquest" , { 0xBF }},
+ { "iscr" , { 0x01D4BE }},
+ { "isin" , { 0x2208 }},
+ { "isinE" , { 0x22F9 }},
+ { "isindot" , { 0x22F5 }},
+ { "isins" , { 0x22F4 }},
+ { "isinsv" , { 0x22F3 }},
+ { "isinv" , { 0x2208 }},
+ { "it" , { 0x2062 }},
+ { "itilde" , { 0x0129 }},
+ { "iukcy" , { 0x0456 }},
+ { "iuml" , { 0xEF }},
+ { "jcirc" , { 0x0135 }},
+ { "jcy" , { 0x0439 }},
+ { "jfr" , { 0x01D527 }},
+ { "jmath" , { 0x0237 }},
+ { "jopf" , { 0x01D55B }},
+ { "jscr" , { 0x01D4BF }},
+ { "jsercy" , { 0x0458 }},
+ { "jukcy" , { 0x0454 }},
+ { "kappa" , { 0x03BA }},
+ { "kappav" , { 0x03F0 }},
+ { "kcedil" , { 0x0137 }},
+ { "kcy" , { 0x043A }},
+ { "kfr" , { 0x01D528 }},
+ { "kgreen" , { 0x0138 }},
+ { "khcy" , { 0x0445 }},
+ { "kjcy" , { 0x045C }},
+ { "kopf" , { 0x01D55C }},
+ { "kscr" , { 0x01D4C0 }},
+ { "lAarr" , { 0x21DA }},
+ { "lArr" , { 0x21D0 }},
+ { "lAtail" , { 0x291B }},
+ { "lBarr" , { 0x290E }},
+ { "lE" , { 0x2266 }},
+ { "lEg" , { 0x2A8B }},
+ { "lHar" , { 0x2962 }},
+ { "lacute" , { 0x013A }},
+ { "laemptyv" , { 0x29B4 }},
+ { "lagran" , { 0x2112 }},
+ { "lambda" , { 0x03BB }},
+ { "lang" , { 0x27E8 }},
+ { "langd" , { 0x2991 }},
+ { "langle" , { 0x27E8 }},
+ { "lap" , { 0x2A85 }},
+ { "laquo" , { 0xAB }},
+ { "larr" , { 0x2190 }},
+ { "larrb" , { 0x21E4 }},
+ { "larrbfs" , { 0x291F }},
+ { "larrfs" , { 0x291D }},
+ { "larrhk" , { 0x21A9 }},
+ { "larrlp" , { 0x21AB }},
+ { "larrpl" , { 0x2939 }},
+ { "larrsim" , { 0x2973 }},
+ { "larrtl" , { 0x21A2 }},
+ { "lat" , { 0x2AAB }},
+ { "latail" , { 0x2919 }},
+ { "late" , { 0x2AAD }},
+ { "lates" , { 0x2AAD, 0xFE00 }},
+ { "lbarr" , { 0x290C }},
+ { "lbbrk" , { 0x2772 }},
+ { "lbrace" , { 0x7B }},
+ { "lbrack" , { 0x5B }},
+ { "lbrke" , { 0x298B }},
+ { "lbrksld" , { 0x298F }},
+ { "lbrkslu" , { 0x298D }},
+ { "lcaron" , { 0x013E }},
+ { "lcedil" , { 0x013C }},
+ { "lceil" , { 0x2308 }},
+ { "lcub" , { 0x7B }},
+ { "lcy" , { 0x043B }},
+ { "ldca" , { 0x2936 }},
+ { "ldquo" , { 0x201C }},
+ { "ldquor" , { 0x201E }},
+ { "ldrdhar" , { 0x2967 }},
+ { "ldrushar" , { 0x294B }},
+ { "ldsh" , { 0x21B2 }},
+ { "le" , { 0x2264 }},
+ { "leftarrow" , { 0x2190 }},
+ { "leftarrowtail" , { 0x21A2 }},
+ { "leftharpoondown" , { 0x21BD }},
+ { "leftharpoonup" , { 0x21BC }},
+ { "leftleftarrows" , { 0x21C7 }},
+ { "leftrightarrow" , { 0x2194 }},
+ { "leftrightarrows" , { 0x21C6 }},
+ { "leftrightharpoons" , { 0x21CB }},
+ { "leftrightsquigarrow" , { 0x21AD }},
+ { "leftthreetimes" , { 0x22CB }},
+ { "leg" , { 0x22DA }},
+ { "leq" , { 0x2264 }},
+ { "leqq" , { 0x2266 }},
+ { "leqslant" , { 0x2A7D }},
+ { "les" , { 0x2A7D }},
+ { "lescc" , { 0x2AA8 }},
+ { "lesdot" , { 0x2A7F }},
+ { "lesdoto" , { 0x2A81 }},
+ { "lesdotor" , { 0x2A83 }},
+ { "lesg" , { 0x22DA, 0xFE00 }},
+ { "lesges" , { 0x2A93 }},
+ { "lessapprox" , { 0x2A85 }},
+ { "lessdot" , { 0x22D6 }},
+ { "lesseqgtr" , { 0x22DA }},
+ { "lesseqqgtr" , { 0x2A8B }},
+ { "lessgtr" , { 0x2276 }},
+ { "lesssim" , { 0x2272 }},
+ { "lfisht" , { 0x297C }},
+ { "lfloor" , { 0x230A }},
+ { "lfr" , { 0x01D529 }},
+ { "lg" , { 0x2276 }},
+ { "lgE" , { 0x2A91 }},
+ { "lhard" , { 0x21BD }},
+ { "lharu" , { 0x21BC }},
+ { "lharul" , { 0x296A }},
+ { "lhblk" , { 0x2584 }},
+ { "ljcy" , { 0x0459 }},
+ { "ll" , { 0x226A }},
+ { "llarr" , { 0x21C7 }},
+ { "llcorner" , { 0x231E }},
+ { "llhard" , { 0x296B }},
+ { "lltri" , { 0x25FA }},
+ { "lmidot" , { 0x0140 }},
+ { "lmoust" , { 0x23B0 }},
+ { "lmoustache" , { 0x23B0 }},
+ { "lnE" , { 0x2268 }},
+ { "lnap" , { 0x2A89 }},
+ { "lnapprox" , { 0x2A89 }},
+ { "lne" , { 0x2A87 }},
+ { "lneq" , { 0x2A87 }},
+ { "lneqq" , { 0x2268 }},
+ { "lnsim" , { 0x22E6 }},
+ { "loang" , { 0x27EC }},
+ { "loarr" , { 0x21FD }},
+ { "lobrk" , { 0x27E6 }},
+ { "longleftarrow" , { 0x27F5 }},
+ { "longleftrightarrow" , { 0x27F7 }},
+ { "longmapsto" , { 0x27FC }},
+ { "longrightarrow" , { 0x27F6 }},
+ { "looparrowleft" , { 0x21AB }},
+ { "looparrowright" , { 0x21AC }},
+ { "lopar" , { 0x2985 }},
+ { "lopf" , { 0x01D55D }},
+ { "loplus" , { 0x2A2D }},
+ { "lotimes" , { 0x2A34 }},
+ { "lowast" , { 0x2217 }},
+ { "lowbar" , { 0x5F }},
+ { "loz" , { 0x25CA }},
+ { "lozenge" , { 0x25CA }},
+ { "lozf" , { 0x29EB }},
+ { "lpar" , { 0x28 }},
+ { "lparlt" , { 0x2993 }},
+ { "lrarr" , { 0x21C6 }},
+ { "lrcorner" , { 0x231F }},
+ { "lrhar" , { 0x21CB }},
+ { "lrhard" , { 0x296D }},
+ { "lrm" , { 0x200E }},
+ { "lrtri" , { 0x22BF }},
+ { "lsaquo" , { 0x2039 }},
+ { "lscr" , { 0x01D4C1 }},
+ { "lsh" , { 0x21B0 }},
+ { "lsim" , { 0x2272 }},
+ { "lsime" , { 0x2A8D }},
+ { "lsimg" , { 0x2A8F }},
+ { "lsqb" , { 0x5B }},
+ { "lsquo" , { 0x2018 }},
+ { "lsquor" , { 0x201A }},
+ { "lstrok" , { 0x0142 }},
+ { "lt" , { 0x3C }},
+ { "ltcc" , { 0x2AA6 }},
+ { "ltcir" , { 0x2A79 }},
+ { "ltdot" , { 0x22D6 }},
+ { "lthree" , { 0x22CB }},
+ { "ltimes" , { 0x22C9 }},
+ { "ltlarr" , { 0x2976 }},
+ { "ltquest" , { 0x2A7B }},
+ { "ltrPar" , { 0x2996 }},
+ { "ltri" , { 0x25C3 }},
+ { "ltrie" , { 0x22B4 }},
+ { "ltrif" , { 0x25C2 }},
+ { "lurdshar" , { 0x294A }},
+ { "luruhar" , { 0x2966 }},
+ { "lvertneqq" , { 0x2268, 0xFE00 }},
+ { "lvnE" , { 0x2268, 0xFE00 }},
+ { "mDDot" , { 0x223A }},
+ { "macr" , { 0xAF }},
+ { "male" , { 0x2642 }},
+ { "malt" , { 0x2720 }},
+ { "maltese" , { 0x2720 }},
+ { "map" , { 0x21A6 }},
+ { "mapsto" , { 0x21A6 }},
+ { "mapstodown" , { 0x21A7 }},
+ { "mapstoleft" , { 0x21A4 }},
+ { "mapstoup" , { 0x21A5 }},
+ { "marker" , { 0x25AE }},
+ { "mcomma" , { 0x2A29 }},
+ { "mcy" , { 0x043C }},
+ { "mdash" , { 0x2014 }},
+ { "measuredangle" , { 0x2221 }},
+ { "mfr" , { 0x01D52A }},
+ { "mho" , { 0x2127 }},
+ { "micro" , { 0xB5 }},
+ { "mid" , { 0x2223 }},
+ { "midast" , { 0x2A }},
+ { "midcir" , { 0x2AF0 }},
+ { "middot" , { 0xB7 }},
+ { "minus" , { 0x2212 }},
+ { "minusb" , { 0x229F }},
+ { "minusd" , { 0x2238 }},
+ { "minusdu" , { 0x2A2A }},
+ { "mlcp" , { 0x2ADB }},
+ { "mldr" , { 0x2026 }},
+ { "mnplus" , { 0x2213 }},
+ { "models" , { 0x22A7 }},
+ { "mopf" , { 0x01D55E }},
+ { "mp" , { 0x2213 }},
+ { "mscr" , { 0x01D4C2 }},
+ { "mstpos" , { 0x223E }},
+ { "mu" , { 0x03BC }},
+ { "multimap" , { 0x22B8 }},
+ { "mumap" , { 0x22B8 }},
+ { "nGg" , { 0x22D9, 0x0338 }},
+ { "nGt" , { 0x226B, 0x20D2 }},
+ { "nGtv" , { 0x226B, 0x0338 }},
+ { "nLeftarrow" , { 0x21CD }},
+ { "nLeftrightarrow" , { 0x21CE }},
+ { "nLl" , { 0x22D8, 0x0338 }},
+ { "nLt" , { 0x226A, 0x20D2 }},
+ { "nLtv" , { 0x226A, 0x0338 }},
+ { "nRightarrow" , { 0x21CF }},
+ { "nVDash" , { 0x22AF }},
+ { "nVdash" , { 0x22AE }},
+ { "nabla" , { 0x2207 }},
+ { "nacute" , { 0x0144 }},
+ { "nang" , { 0x2220, 0x20D2 }},
+ { "nap" , { 0x2249 }},
+ { "napE" , { 0x2A70, 0x0338 }},
+ { "napid" , { 0x224B, 0x0338 }},
+ { "napos" , { 0x0149 }},
+ { "napprox" , { 0x2249 }},
+ { "natur" , { 0x266E }},
+ { "natural" , { 0x266E }},
+ { "naturals" , { 0x2115 }},
+ { "nbsp" , { 0xA0 }},
+ { "nbump" , { 0x224E, 0x0338 }},
+ { "nbumpe" , { 0x224F, 0x0338 }},
+ { "ncap" , { 0x2A43 }},
+ { "ncaron" , { 0x0148 }},
+ { "ncedil" , { 0x0146 }},
+ { "ncong" , { 0x2247 }},
+ { "ncongdot" , { 0x2A6D, 0x0338 }},
+ { "ncup" , { 0x2A42 }},
+ { "ncy" , { 0x043D }},
+ { "ndash" , { 0x2013 }},
+ { "ne" , { 0x2260 }},
+ { "neArr" , { 0x21D7 }},
+ { "nearhk" , { 0x2924 }},
+ { "nearr" , { 0x2197 }},
+ { "nearrow" , { 0x2197 }},
+ { "nedot" , { 0x2250, 0x0338 }},
+ { "nequiv" , { 0x2262 }},
+ { "nesear" , { 0x2928 }},
+ { "nesim" , { 0x2242, 0x0338 }},
+ { "nexist" , { 0x2204 }},
+ { "nexists" , { 0x2204 }},
+ { "nfr" , { 0x01D52B }},
+ { "ngE" , { 0x2267, 0x0338 }},
+ { "nge" , { 0x2271 }},
+ { "ngeq" , { 0x2271 }},
+ { "ngeqq" , { 0x2267, 0x0338 }},
+ { "ngeqslant" , { 0x2A7E, 0x0338 }},
+ { "nges" , { 0x2A7E, 0x0338 }},
+ { "ngsim" , { 0x2275 }},
+ { "ngt" , { 0x226F }},
+ { "ngtr" , { 0x226F }},
+ { "nhArr" , { 0x21CE }},
+ { "nharr" , { 0x21AE }},
+ { "nhpar" , { 0x2AF2 }},
+ { "ni" , { 0x220B }},
+ { "nis" , { 0x22FC }},
+ { "nisd" , { 0x22FA }},
+ { "niv" , { 0x220B }},
+ { "njcy" , { 0x045A }},
+ { "nlArr" , { 0x21CD }},
+ { "nlE" , { 0x2266, 0x0338 }},
+ { "nlarr" , { 0x219A }},
+ { "nldr" , { 0x2025 }},
+ { "nle" , { 0x2270 }},
+ { "nleftarrow" , { 0x219A }},
+ { "nleftrightarrow" , { 0x21AE }},
+ { "nleq" , { 0x2270 }},
+ { "nleqq" , { 0x2266, 0x0338 }},
+ { "nleqslant" , { 0x2A7D, 0x0338 }},
+ { "nles" , { 0x2A7D, 0x0338 }},
+ { "nless" , { 0x226E }},
+ { "nlsim" , { 0x2274 }},
+ { "nlt" , { 0x226E }},
+ { "nltri" , { 0x22EA }},
+ { "nltrie" , { 0x22EC }},
+ { "nmid" , { 0x2224 }},
+ { "nopf" , { 0x01D55F }},
+ { "not" , { 0xAC }},
+ { "notin" , { 0x2209 }},
+ { "notinE" , { 0x22F9, 0x0338 }},
+ { "notindot" , { 0x22F5, 0x0338 }},
+ { "notinva" , { 0x2209 }},
+ { "notinvb" , { 0x22F7 }},
+ { "notinvc" , { 0x22F6 }},
+ { "notni" , { 0x220C }},
+ { "notniva" , { 0x220C }},
+ { "notnivb" , { 0x22FE }},
+ { "notnivc" , { 0x22FD }},
+ { "npar" , { 0x2226 }},
+ { "nparallel" , { 0x2226 }},
+ { "nparsl" , { 0x2AFD, 0x20E5 }},
+ { "npart" , { 0x2202, 0x0338 }},
+ { "npolint" , { 0x2A14 }},
+ { "npr" , { 0x2280 }},
+ { "nprcue" , { 0x22E0 }},
+ { "npre" , { 0x2AAF, 0x0338 }},
+ { "nprec" , { 0x2280 }},
+ { "npreceq" , { 0x2AAF, 0x0338 }},
+ { "nrArr" , { 0x21CF }},
+ { "nrarr" , { 0x219B }},
+ { "nrarrc" , { 0x2933, 0x0338 }},
+ { "nrarrw" , { 0x219D, 0x0338 }},
+ { "nrightarrow" , { 0x219B }},
+ { "nrtri" , { 0x22EB }},
+ { "nrtrie" , { 0x22ED }},
+ { "nsc" , { 0x2281 }},
+ { "nsccue" , { 0x22E1 }},
+ { "nsce" , { 0x2AB0, 0x0338 }},
+ { "nscr" , { 0x01D4C3 }},
+ { "nshortmid" , { 0x2224 }},
+ { "nshortparallel" , { 0x2226 }},
+ { "nsim" , { 0x2241 }},
+ { "nsime" , { 0x2244 }},
+ { "nsimeq" , { 0x2244 }},
+ { "nsmid" , { 0x2224 }},
+ { "nspar" , { 0x2226 }},
+ { "nsqsube" , { 0x22E2 }},
+ { "nsqsupe" , { 0x22E3 }},
+ { "nsub" , { 0x2284 }},
+ { "nsubE" , { 0x2AC5, 0x0338 }},
+ { "nsube" , { 0x2288 }},
+ { "nsubset" , { 0x2282, 0x20D2 }},
+ { "nsubseteq" , { 0x2288 }},
+ { "nsubseteqq" , { 0x2AC5, 0x0338 }},
+ { "nsucc" , { 0x2281 }},
+ { "nsucceq" , { 0x2AB0, 0x0338 }},
+ { "nsup" , { 0x2285 }},
+ { "nsupE" , { 0x2AC6, 0x0338 }},
+ { "nsupe" , { 0x2289 }},
+ { "nsupset" , { 0x2283, 0x20D2 }},
+ { "nsupseteq" , { 0x2289 }},
+ { "nsupseteqq" , { 0x2AC6, 0x0338 }},
+ { "ntgl" , { 0x2279 }},
+ { "ntilde" , { 0xF1 }},
+ { "ntlg" , { 0x2278 }},
+ { "ntriangleleft" , { 0x22EA }},
+ { "ntrianglelefteq" , { 0x22EC }},
+ { "ntriangleright" , { 0x22EB }},
+ { "ntrianglerighteq" , { 0x22ED }},
+ { "nu" , { 0x03BD }},
+ { "num" , { 0x23 }},
+ { "numero" , { 0x2116 }},
+ { "numsp" , { 0x2007 }},
+ { "nvDash" , { 0x22AD }},
+ { "nvHarr" , { 0x2904 }},
+ { "nvap" , { 0x224D, 0x20D2 }},
+ { "nvdash" , { 0x22AC }},
+ { "nvge" , { 0x2265, 0x20D2 }},
+ { "nvgt" , { 0x3E, 0x20D2 }},
+ { "nvinfin" , { 0x29DE }},
+ { "nvlArr" , { 0x2902 }},
+ { "nvle" , { 0x2264, 0x20D2 }},
+ { "nvlt" , { 0x3C, 0x20D2 }},
+ { "nvltrie" , { 0x22B4, 0x20D2 }},
+ { "nvrArr" , { 0x2903 }},
+ { "nvrtrie" , { 0x22B5, 0x20D2 }},
+ { "nvsim" , { 0x223C, 0x20D2 }},
+ { "nwArr" , { 0x21D6 }},
+ { "nwarhk" , { 0x2923 }},
+ { "nwarr" , { 0x2196 }},
+ { "nwarrow" , { 0x2196 }},
+ { "nwnear" , { 0x2927 }},
+ { "oS" , { 0x24C8 }},
+ { "oacute" , { 0xF3 }},
+ { "oast" , { 0x229B }},
+ { "ocir" , { 0x229A }},
+ { "ocirc" , { 0xF4 }},
+ { "ocy" , { 0x043E }},
+ { "odash" , { 0x229D }},
+ { "odblac" , { 0x0151 }},
+ { "odiv" , { 0x2A38 }},
+ { "odot" , { 0x2299 }},
+ { "odsold" , { 0x29BC }},
+ { "oelig" , { 0x0153 }},
+ { "ofcir" , { 0x29BF }},
+ { "ofr" , { 0x01D52C }},
+ { "ogon" , { 0x02DB }},
+ { "ograve" , { 0xF2 }},
+ { "ogt" , { 0x29C1 }},
+ { "ohbar" , { 0x29B5 }},
+ { "ohm" , { 0x03A9 }},
+ { "oint" , { 0x222E }},
+ { "olarr" , { 0x21BA }},
+ { "olcir" , { 0x29BE }},
+ { "olcross" , { 0x29BB }},
+ { "oline" , { 0x203E }},
+ { "olt" , { 0x29C0 }},
+ { "omacr" , { 0x014D }},
+ { "omega" , { 0x03C9 }},
+ { "omicron" , { 0x03BF }},
+ { "omid" , { 0x29B6 }},
+ { "ominus" , { 0x2296 }},
+ { "oopf" , { 0x01D560 }},
+ { "opar" , { 0x29B7 }},
+ { "operp" , { 0x29B9 }},
+ { "oplus" , { 0x2295 }},
+ { "or" , { 0x2228 }},
+ { "orarr" , { 0x21BB }},
+ { "ord" , { 0x2A5D }},
+ { "order" , { 0x2134 }},
+ { "orderof" , { 0x2134 }},
+ { "ordf" , { 0xAA }},
+ { "ordm" , { 0xBA }},
+ { "origof" , { 0x22B6 }},
+ { "oror" , { 0x2A56 }},
+ { "orslope" , { 0x2A57 }},
+ { "orv" , { 0x2A5B }},
+ { "oscr" , { 0x2134 }},
+ { "oslash" , { 0xF8 }},
+ { "osol" , { 0x2298 }},
+ { "otilde" , { 0xF5 }},
+ { "otimes" , { 0x2297 }},
+ { "otimesas" , { 0x2A36 }},
+ { "ouml" , { 0xF6 }},
+ { "ovbar" , { 0x233D }},
+ { "par" , { 0x2225 }},
+ { "para" , { 0xB6 }},
+ { "parallel" , { 0x2225 }},
+ { "parsim" , { 0x2AF3 }},
+ { "parsl" , { 0x2AFD }},
+ { "part" , { 0x2202 }},
+ { "pcy" , { 0x043F }},
+ { "percnt" , { 0x25 }},
+ { "period" , { 0x2E }},
+ { "permil" , { 0x2030 }},
+ { "perp" , { 0x22A5 }},
+ { "pertenk" , { 0x2031 }},
+ { "pfr" , { 0x01D52D }},
+ { "phi" , { 0x03C6 }},
+ { "phiv" , { 0x03D5 }},
+ { "phmmat" , { 0x2133 }},
+ { "phone" , { 0x260E }},
+ { "pi" , { 0x03C0 }},
+ { "pitchfork" , { 0x22D4 }},
+ { "piv" , { 0x03D6 }},
+ { "planck" , { 0x210F }},
+ { "planckh" , { 0x210E }},
+ { "plankv" , { 0x210F }},
+ { "plus" , { 0x2B }},
+ { "plusacir" , { 0x2A23 }},
+ { "plusb" , { 0x229E }},
+ { "pluscir" , { 0x2A22 }},
+ { "plusdo" , { 0x2214 }},
+ { "plusdu" , { 0x2A25 }},
+ { "pluse" , { 0x2A72 }},
+ { "plusmn" , { 0xB1 }},
+ { "plussim" , { 0x2A26 }},
+ { "plustwo" , { 0x2A27 }},
+ { "pm" , { 0xB1 }},
+ { "pointint" , { 0x2A15 }},
+ { "popf" , { 0x01D561 }},
+ { "pound" , { 0xA3 }},
+ { "pr" , { 0x227A }},
+ { "prE" , { 0x2AB3 }},
+ { "prap" , { 0x2AB7 }},
+ { "prcue" , { 0x227C }},
+ { "pre" , { 0x2AAF }},
+ { "prec" , { 0x227A }},
+ { "precapprox" , { 0x2AB7 }},
+ { "preccurlyeq" , { 0x227C }},
+ { "preceq" , { 0x2AAF }},
+ { "precnapprox" , { 0x2AB9 }},
+ { "precneqq" , { 0x2AB5 }},
+ { "precnsim" , { 0x22E8 }},
+ { "precsim" , { 0x227E }},
+ { "prime" , { 0x2032 }},
+ { "primes" , { 0x2119 }},
+ { "prnE" , { 0x2AB5 }},
+ { "prnap" , { 0x2AB9 }},
+ { "prnsim" , { 0x22E8 }},
+ { "prod" , { 0x220F }},
+ { "profalar" , { 0x232E }},
+ { "profline" , { 0x2312 }},
+ { "profsurf" , { 0x2313 }},
+ { "prop" , { 0x221D }},
+ { "propto" , { 0x221D }},
+ { "prsim" , { 0x227E }},
+ { "prurel" , { 0x22B0 }},
+ { "pscr" , { 0x01D4C5 }},
+ { "psi" , { 0x03C8 }},
+ { "puncsp" , { 0x2008 }},
+ { "qfr" , { 0x01D52E }},
+ { "qint" , { 0x2A0C }},
+ { "qopf" , { 0x01D562 }},
+ { "qprime" , { 0x2057 }},
+ { "qscr" , { 0x01D4C6 }},
+ { "quaternions" , { 0x210D }},
+ { "quatint" , { 0x2A16 }},
+ { "quest" , { 0x3F }},
+ { "questeq" , { 0x225F }},
+ { "quot" , { 0x22 }},
+ { "rAarr" , { 0x21DB }},
+ { "rArr" , { 0x21D2 }},
+ { "rAtail" , { 0x291C }},
+ { "rBarr" , { 0x290F }},
+ { "rHar" , { 0x2964 }},
+ { "race" , { 0x223D, 0x0331 }},
+ { "racute" , { 0x0155 }},
+ { "radic" , { 0x221A }},
+ { "raemptyv" , { 0x29B3 }},
+ { "rang" , { 0x27E9 }},
+ { "rangd" , { 0x2992 }},
+ { "range" , { 0x29A5 }},
+ { "rangle" , { 0x27E9 }},
+ { "raquo" , { 0xBB }},
+ { "rarr" , { 0x2192 }},
+ { "rarrap" , { 0x2975 }},
+ { "rarrb" , { 0x21E5 }},
+ { "rarrbfs" , { 0x2920 }},
+ { "rarrc" , { 0x2933 }},
+ { "rarrfs" , { 0x291E }},
+ { "rarrhk" , { 0x21AA }},
+ { "rarrlp" , { 0x21AC }},
+ { "rarrpl" , { 0x2945 }},
+ { "rarrsim" , { 0x2974 }},
+ { "rarrtl" , { 0x21A3 }},
+ { "rarrw" , { 0x219D }},
+ { "ratail" , { 0x291A }},
+ { "ratio" , { 0x2236 }},
+ { "rationals" , { 0x211A }},
+ { "rbarr" , { 0x290D }},
+ { "rbbrk" , { 0x2773 }},
+ { "rbrace" , { 0x7D }},
+ { "rbrack" , { 0x5D }},
+ { "rbrke" , { 0x298C }},
+ { "rbrksld" , { 0x298E }},
+ { "rbrkslu" , { 0x2990 }},
+ { "rcaron" , { 0x0159 }},
+ { "rcedil" , { 0x0157 }},
+ { "rceil" , { 0x2309 }},
+ { "rcub" , { 0x7D }},
+ { "rcy" , { 0x0440 }},
+ { "rdca" , { 0x2937 }},
+ { "rdldhar" , { 0x2969 }},
+ { "rdquo" , { 0x201D }},
+ { "rdquor" , { 0x201D }},
+ { "rdsh" , { 0x21B3 }},
+ { "real" , { 0x211C }},
+ { "realine" , { 0x211B }},
+ { "realpart" , { 0x211C }},
+ { "reals" , { 0x211D }},
+ { "rect" , { 0x25AD }},
+ { "reg" , { 0xAE }},
+ { "rfisht" , { 0x297D }},
+ { "rfloor" , { 0x230B }},
+ { "rfr" , { 0x01D52F }},
+ { "rhard" , { 0x21C1 }},
+ { "rharu" , { 0x21C0 }},
+ { "rharul" , { 0x296C }},
+ { "rho" , { 0x03C1 }},
+ { "rhov" , { 0x03F1 }},
+ { "rightarrow" , { 0x2192 }},
+ { "rightarrowtail" , { 0x21A3 }},
+ { "rightharpoondown" , { 0x21C1 }},
+ { "rightharpoonup" , { 0x21C0 }},
+ { "rightleftarrows" , { 0x21C4 }},
+ { "rightleftharpoons" , { 0x21CC }},
+ { "rightrightarrows" , { 0x21C9 }},
+ { "rightsquigarrow" , { 0x219D }},
+ { "rightthreetimes" , { 0x22CC }},
+ { "ring" , { 0x02DA }},
+ { "risingdotseq" , { 0x2253 }},
+ { "rlarr" , { 0x21C4 }},
+ { "rlhar" , { 0x21CC }},
+ { "rlm" , { 0x200F }},
+ { "rmoust" , { 0x23B1 }},
+ { "rmoustache" , { 0x23B1 }},
+ { "rnmid" , { 0x2AEE }},
+ { "roang" , { 0x27ED }},
+ { "roarr" , { 0x21FE }},
+ { "robrk" , { 0x27E7 }},
+ { "ropar" , { 0x2986 }},
+ { "ropf" , { 0x01D563 }},
+ { "roplus" , { 0x2A2E }},
+ { "rotimes" , { 0x2A35 }},
+ { "rpar" , { 0x29 }},
+ { "rpargt" , { 0x2994 }},
+ { "rppolint" , { 0x2A12 }},
+ { "rrarr" , { 0x21C9 }},
+ { "rsaquo" , { 0x203A }},
+ { "rscr" , { 0x01D4C7 }},
+ { "rsh" , { 0x21B1 }},
+ { "rsqb" , { 0x5D }},
+ { "rsquo" , { 0x2019 }},
+ { "rsquor" , { 0x2019 }},
+ { "rthree" , { 0x22CC }},
+ { "rtimes" , { 0x22CA }},
+ { "rtri" , { 0x25B9 }},
+ { "rtrie" , { 0x22B5 }},
+ { "rtrif" , { 0x25B8 }},
+ { "rtriltri" , { 0x29CE }},
+ { "ruluhar" , { 0x2968 }},
+ { "rx" , { 0x211E }},
+ { "sacute" , { 0x015B }},
+ { "sbquo" , { 0x201A }},
+ { "sc" , { 0x227B }},
+ { "scE" , { 0x2AB4 }},
+ { "scap" , { 0x2AB8 }},
+ { "scaron" , { 0x0161 }},
+ { "sccue" , { 0x227D }},
+ { "sce" , { 0x2AB0 }},
+ { "scedil" , { 0x015F }},
+ { "scirc" , { 0x015D }},
+ { "scnE" , { 0x2AB6 }},
+ { "scnap" , { 0x2ABA }},
+ { "scnsim" , { 0x22E9 }},
+ { "scpolint" , { 0x2A13 }},
+ { "scsim" , { 0x227F }},
+ { "scy" , { 0x0441 }},
+ { "sdot" , { 0x22C5 }},
+ { "sdotb" , { 0x22A1 }},
+ { "sdote" , { 0x2A66 }},
+ { "seArr" , { 0x21D8 }},
+ { "searhk" , { 0x2925 }},
+ { "searr" , { 0x2198 }},
+ { "searrow" , { 0x2198 }},
+ { "sect" , { 0xA7 }},
+ { "semi" , { 0x3B }},
+ { "seswar" , { 0x2929 }},
+ { "setminus" , { 0x2216 }},
+ { "setmn" , { 0x2216 }},
+ { "sext" , { 0x2736 }},
+ { "sfr" , { 0x01D530 }},
+ { "sfrown" , { 0x2322 }},
+ { "sharp" , { 0x266F }},
+ { "shchcy" , { 0x0449 }},
+ { "shcy" , { 0x0448 }},
+ { "shortmid" , { 0x2223 }},
+ { "shortparallel" , { 0x2225 }},
+ { "shy" , { 0xAD }},
+ { "sigma" , { 0x03C3 }},
+ { "sigmaf" , { 0x03C2 }},
+ { "sigmav" , { 0x03C2 }},
+ { "sim" , { 0x223C }},
+ { "simdot" , { 0x2A6A }},
+ { "sime" , { 0x2243 }},
+ { "simeq" , { 0x2243 }},
+ { "simg" , { 0x2A9E }},
+ { "simgE" , { 0x2AA0 }},
+ { "siml" , { 0x2A9D }},
+ { "simlE" , { 0x2A9F }},
+ { "simne" , { 0x2246 }},
+ { "simplus" , { 0x2A24 }},
+ { "simrarr" , { 0x2972 }},
+ { "slarr" , { 0x2190 }},
+ { "smallsetminus" , { 0x2216 }},
+ { "smashp" , { 0x2A33 }},
+ { "smeparsl" , { 0x29E4 }},
+ { "smid" , { 0x2223 }},
+ { "smile" , { 0x2323 }},
+ { "smt" , { 0x2AAA }},
+ { "smte" , { 0x2AAC }},
+ { "smtes" , { 0x2AAC, 0xFE00 }},
+ { "softcy" , { 0x044C }},
+ { "sol" , { 0x2F }},
+ { "solb" , { 0x29C4 }},
+ { "solbar" , { 0x233F }},
+ { "sopf" , { 0x01D564 }},
+ { "spades" , { 0x2660 }},
+ { "spadesuit" , { 0x2660 }},
+ { "spar" , { 0x2225 }},
+ { "sqcap" , { 0x2293 }},
+ { "sqcaps" , { 0x2293, 0xFE00 }},
+ { "sqcup" , { 0x2294 }},
+ { "sqcups" , { 0x2294, 0xFE00 }},
+ { "sqsub" , { 0x228F }},
+ { "sqsube" , { 0x2291 }},
+ { "sqsubset" , { 0x228F }},
+ { "sqsubseteq" , { 0x2291 }},
+ { "sqsup" , { 0x2290 }},
+ { "sqsupe" , { 0x2292 }},
+ { "sqsupset" , { 0x2290 }},
+ { "sqsupseteq" , { 0x2292 }},
+ { "squ" , { 0x25A1 }},
+ { "square" , { 0x25A1 }},
+ { "squarf" , { 0x25AA }},
+ { "squf" , { 0x25AA }},
+ { "srarr" , { 0x2192 }},
+ { "sscr" , { 0x01D4C8 }},
+ { "ssetmn" , { 0x2216 }},
+ { "ssmile" , { 0x2323 }},
+ { "sstarf" , { 0x22C6 }},
+ { "star" , { 0x2606 }},
+ { "starf" , { 0x2605 }},
+ { "straightepsilon" , { 0x03F5 }},
+ { "straightphi" , { 0x03D5 }},
+ { "strns" , { 0xAF }},
+ { "sub" , { 0x2282 }},
+ { "subE" , { 0x2AC5 }},
+ { "subdot" , { 0x2ABD }},
+ { "sube" , { 0x2286 }},
+ { "subedot" , { 0x2AC3 }},
+ { "submult" , { 0x2AC1 }},
+ { "subnE" , { 0x2ACB }},
+ { "subne" , { 0x228A }},
+ { "subplus" , { 0x2ABF }},
+ { "subrarr" , { 0x2979 }},
+ { "subset" , { 0x2282 }},
+ { "subseteq" , { 0x2286 }},
+ { "subseteqq" , { 0x2AC5 }},
+ { "subsetneq" , { 0x228A }},
+ { "subsetneqq" , { 0x2ACB }},
+ { "subsim" , { 0x2AC7 }},
+ { "subsub" , { 0x2AD5 }},
+ { "subsup" , { 0x2AD3 }},
+ { "succ" , { 0x227B }},
+ { "succapprox" , { 0x2AB8 }},
+ { "succcurlyeq" , { 0x227D }},
+ { "succeq" , { 0x2AB0 }},
+ { "succnapprox" , { 0x2ABA }},
+ { "succneqq" , { 0x2AB6 }},
+ { "succnsim" , { 0x22E9 }},
+ { "succsim" , { 0x227F }},
+ { "sum" , { 0x2211 }},
+ { "sung" , { 0x266A }},
+ { "sup1" , { 0xB9 }},
+ { "sup2" , { 0xB2 }},
+ { "sup3" , { 0xB3 }},
+ { "sup" , { 0x2283 }},
+ { "supE" , { 0x2AC6 }},
+ { "supdot" , { 0x2ABE }},
+ { "supdsub" , { 0x2AD8 }},
+ { "supe" , { 0x2287 }},
+ { "supedot" , { 0x2AC4 }},
+ { "suphsol" , { 0x27C9 }},
+ { "suphsub" , { 0x2AD7 }},
+ { "suplarr" , { 0x297B }},
+ { "supmult" , { 0x2AC2 }},
+ { "supnE" , { 0x2ACC }},
+ { "supne" , { 0x228B }},
+ { "supplus" , { 0x2AC0 }},
+ { "supset" , { 0x2283 }},
+ { "supseteq" , { 0x2287 }},
+ { "supseteqq" , { 0x2AC6 }},
+ { "supsetneq" , { 0x228B }},
+ { "supsetneqq" , { 0x2ACC }},
+ { "supsim" , { 0x2AC8 }},
+ { "supsub" , { 0x2AD4 }},
+ { "supsup" , { 0x2AD6 }},
+ { "swArr" , { 0x21D9 }},
+ { "swarhk" , { 0x2926 }},
+ { "swarr" , { 0x2199 }},
+ { "swarrow" , { 0x2199 }},
+ { "swnwar" , { 0x292A }},
+ { "szlig" , { 0xDF }},
+ { "target" , { 0x2316 }},
+ { "tau" , { 0x03C4 }},
+ { "tbrk" , { 0x23B4 }},
+ { "tcaron" , { 0x0165 }},
+ { "tcedil" , { 0x0163 }},
+ { "tcy" , { 0x0442 }},
+ { "tdot" , { 0x20DB }},
+ { "telrec" , { 0x2315 }},
+ { "tfr" , { 0x01D531 }},
+ { "there4" , { 0x2234 }},
+ { "therefore" , { 0x2234 }},
+ { "theta" , { 0x03B8 }},
+ { "thetasym" , { 0x03D1 }},
+ { "thetav" , { 0x03D1 }},
+ { "thickapprox" , { 0x2248 }},
+ { "thicksim" , { 0x223C }},
+ { "thinsp" , { 0x2009 }},
+ { "thkap" , { 0x2248 }},
+ { "thksim" , { 0x223C }},
+ { "thorn" , { 0xFE }},
+ { "tilde" , { 0x02DC }},
+ { "times" , { 0xD7 }},
+ { "timesb" , { 0x22A0 }},
+ { "timesbar" , { 0x2A31 }},
+ { "timesd" , { 0x2A30 }},
+ { "tint" , { 0x222D }},
+ { "toea" , { 0x2928 }},
+ { "top" , { 0x22A4 }},
+ { "topbot" , { 0x2336 }},
+ { "topcir" , { 0x2AF1 }},
+ { "topf" , { 0x01D565 }},
+ { "topfork" , { 0x2ADA }},
+ { "tosa" , { 0x2929 }},
+ { "tprime" , { 0x2034 }},
+ { "trade" , { 0x2122 }},
+ { "triangle" , { 0x25B5 }},
+ { "triangledown" , { 0x25BF }},
+ { "triangleleft" , { 0x25C3 }},
+ { "trianglelefteq" , { 0x22B4 }},
+ { "triangleq" , { 0x225C }},
+ { "triangleright" , { 0x25B9 }},
+ { "trianglerighteq" , { 0x22B5 }},
+ { "tridot" , { 0x25EC }},
+ { "trie" , { 0x225C }},
+ { "triminus" , { 0x2A3A }},
+ { "triplus" , { 0x2A39 }},
+ { "trisb" , { 0x29CD }},
+ { "tritime" , { 0x2A3B }},
+ { "trpezium" , { 0x23E2 }},
+ { "tscr" , { 0x01D4C9 }},
+ { "tscy" , { 0x0446 }},
+ { "tshcy" , { 0x045B }},
+ { "tstrok" , { 0x0167 }},
+ { "twixt" , { 0x226C }},
+ { "twoheadleftarrow" , { 0x219E }},
+ { "twoheadrightarrow" , { 0x21A0 }},
+ { "uArr" , { 0x21D1 }},
+ { "uHar" , { 0x2963 }},
+ { "uacute" , { 0xFA }},
+ { "uarr" , { 0x2191 }},
+ { "ubrcy" , { 0x045E }},
+ { "ubreve" , { 0x016D }},
+ { "ucirc" , { 0xFB }},
+ { "ucy" , { 0x0443 }},
+ { "udarr" , { 0x21C5 }},
+ { "udblac" , { 0x0171 }},
+ { "udhar" , { 0x296E }},
+ { "ufisht" , { 0x297E }},
+ { "ufr" , { 0x01D532 }},
+ { "ugrave" , { 0xF9 }},
+ { "uharl" , { 0x21BF }},
+ { "uharr" , { 0x21BE }},
+ { "uhblk" , { 0x2580 }},
+ { "ulcorn" , { 0x231C }},
+ { "ulcorner" , { 0x231C }},
+ { "ulcrop" , { 0x230F }},
+ { "ultri" , { 0x25F8 }},
+ { "umacr" , { 0x016B }},
+ { "uml" , { 0xA8 }},
+ { "uogon" , { 0x0173 }},
+ { "uopf" , { 0x01D566 }},
+ { "uparrow" , { 0x2191 }},
+ { "updownarrow" , { 0x2195 }},
+ { "upharpoonleft" , { 0x21BF }},
+ { "upharpoonright" , { 0x21BE }},
+ { "uplus" , { 0x228E }},
+ { "upsi" , { 0x03C5 }},
+ { "upsih" , { 0x03D2 }},
+ { "upsilon" , { 0x03C5 }},
+ { "upuparrows" , { 0x21C8 }},
+ { "urcorn" , { 0x231D }},
+ { "urcorner" , { 0x231D }},
+ { "urcrop" , { 0x230E }},
+ { "uring" , { 0x016F }},
+ { "urtri" , { 0x25F9 }},
+ { "uscr" , { 0x01D4CA }},
+ { "utdot" , { 0x22F0 }},
+ { "utilde" , { 0x0169 }},
+ { "utri" , { 0x25B5 }},
+ { "utrif" , { 0x25B4 }},
+ { "uuarr" , { 0x21C8 }},
+ { "uuml" , { 0xFC }},
+ { "uwangle" , { 0x29A7 }},
+ { "vArr" , { 0x21D5 }},
+ { "vBar" , { 0x2AE8 }},
+ { "vBarv" , { 0x2AE9 }},
+ { "vDash" , { 0x22A8 }},
+ { "vangrt" , { 0x299C }},
+ { "varepsilon" , { 0x03F5 }},
+ { "varkappa" , { 0x03F0 }},
+ { "varnothing" , { 0x2205 }},
+ { "varphi" , { 0x03D5 }},
+ { "varpi" , { 0x03D6 }},
+ { "varpropto" , { 0x221D }},
+ { "varr" , { 0x2195 }},
+ { "varrho" , { 0x03F1 }},
+ { "varsigma" , { 0x03C2 }},
+ { "varsubsetneq" , { 0x228A, 0xFE00 }},
+ { "varsubsetneqq" , { 0x2ACB, 0xFE00 }},
+ { "varsupsetneq" , { 0x228B, 0xFE00 }},
+ { "varsupsetneqq" , { 0x2ACC, 0xFE00 }},
+ { "vartheta" , { 0x03D1 }},
+ { "vartriangleleft" , { 0x22B2 }},
+ { "vartriangleright" , { 0x22B3 }},
+ { "vcy" , { 0x0432 }},
+ { "vdash" , { 0x22A2 }},
+ { "vee" , { 0x2228 }},
+ { "veebar" , { 0x22BB }},
+ { "veeeq" , { 0x225A }},
+ { "vellip" , { 0x22EE }},
+ { "verbar" , { 0x7C }},
+ { "vert" , { 0x7C }},
+ { "vfr" , { 0x01D533 }},
+ { "vltri" , { 0x22B2 }},
+ { "vnsub" , { 0x2282, 0x20D2 }},
+ { "vnsup" , { 0x2283, 0x20D2 }},
+ { "vopf" , { 0x01D567 }},
+ { "vprop" , { 0x221D }},
+ { "vrtri" , { 0x22B3 }},
+ { "vscr" , { 0x01D4CB }},
+ { "vsubnE" , { 0x2ACB, 0xFE00 }},
+ { "vsubne" , { 0x228A, 0xFE00 }},
+ { "vsupnE" , { 0x2ACC, 0xFE00 }},
+ { "vsupne" , { 0x228B, 0xFE00 }},
+ { "vzigzag" , { 0x299A }},
+ { "wcirc" , { 0x0175 }},
+ { "wedbar" , { 0x2A5F }},
+ { "wedge" , { 0x2227 }},
+ { "wedgeq" , { 0x2259 }},
+ { "weierp" , { 0x2118 }},
+ { "wfr" , { 0x01D534 }},
+ { "wopf" , { 0x01D568 }},
+ { "wp" , { 0x2118 }},
+ { "wr" , { 0x2240 }},
+ { "wreath" , { 0x2240 }},
+ { "wscr" , { 0x01D4CC }},
+ { "xcap" , { 0x22C2 }},
+ { "xcirc" , { 0x25EF }},
+ { "xcup" , { 0x22C3 }},
+ { "xdtri" , { 0x25BD }},
+ { "xfr" , { 0x01D535 }},
+ { "xhArr" , { 0x27FA }},
+ { "xharr" , { 0x27F7 }},
+ { "xi" , { 0x03BE }},
+ { "xlArr" , { 0x27F8 }},
+ { "xlarr" , { 0x27F5 }},
+ { "xmap" , { 0x27FC }},
+ { "xnis" , { 0x22FB }},
+ { "xodot" , { 0x2A00 }},
+ { "xopf" , { 0x01D569 }},
+ { "xoplus" , { 0x2A01 }},
+ { "xotime" , { 0x2A02 }},
+ { "xrArr" , { 0x27F9 }},
+ { "xrarr" , { 0x27F6 }},
+ { "xscr" , { 0x01D4CD }},
+ { "xsqcup" , { 0x2A06 }},
+ { "xuplus" , { 0x2A04 }},
+ { "xutri" , { 0x25B3 }},
+ { "xvee" , { 0x22C1 }},
+ { "xwedge" , { 0x22C0 }},
+ { "yacute" , { 0xFD }},
+ { "yacy" , { 0x044F }},
+ { "ycirc" , { 0x0177 }},
+ { "ycy" , { 0x044B }},
+ { "yen" , { 0xA5 }},
+ { "yfr" , { 0x01D536 }},
+ { "yicy" , { 0x0457 }},
+ { "yopf" , { 0x01D56A }},
+ { "yscr" , { 0x01D4CE }},
+ { "yucy" , { 0x044E }},
+ { "yuml" , { 0xFF }},
+ { "zacute" , { 0x017A }},
+ { "zcaron" , { 0x017E }},
+ { "zcy" , { 0x0437 }},
+ { "zdot" , { 0x017C }},
+ { "zeetrf" , { 0x2128 }},
+ { "zeta" , { 0x03B6 }},
+ { "zfr" , { 0x01D537 }},
+ { "zhcy" , { 0x0436 }},
+ { "zigrarr" , { 0x21DD }},
+ { "zopf" , { 0x01D56B }},
+ { "zscr" , { 0x01D4CF }},
+ { "zwj" , { 0x200D }},
+ { "zwnj" , { 0x200C }},
+};
+
+static constexpr auto s_NamedEntitiesHTML4 = frozen::make_unordered_map(s_Entities);
+
+int main(int argv, char** argc)
+{
+ return (s_NamedEntitiesHTML4.find("real") == s_NamedEntitiesHTML4.end());
+}
+
diff --git a/examples/pixel_art.cpp b/examples/pixel_art.cpp
new file mode 100644
index 0000000..003ffe9
--- /dev/null
+++ b/examples/pixel_art.cpp
@@ -0,0 +1,120 @@
+#if 0
+g++ $0 -std=c++14 -Iinclude && ./a.out && rm -f a.out && qiv panda.ppm 1up.ppm
+exit
+#else
+
+#include <array>
+#include <frozen/map.h>
+#include <fstream>
+
+constexpr frozen::map<char, std::array<char, 3>, 5> Tans{
+ {'R', {(char)0xFF, (char)0x00, (char)0x00}},
+ {'G', {(char)0x00, (char)0xFF, (char)0x00}},
+ {'B', {(char)0x00, (char)0x00, (char)0xFF}},
+ {'#', {(char)0x00, (char)0x00, (char)0x00}},
+ {' ', {(char)0xFF, (char)0xFF, (char)0xFF}},
+};
+
+constexpr unsigned itoa(unsigned char * start, unsigned i) {
+ constexpr unsigned step = sizeof(unsigned) * 3;
+ for(unsigned k = 0; k < step; ++k)
+ *start++ = ' ';
+ do {
+ *--start = '0' + i % 10;
+ i /= 10;
+ } while(i);
+ return step;
+}
+
+template <unsigned H, unsigned W> struct ppm {
+ unsigned char bytes[9 /* fixed header*/ + sizeof(unsigned) * 3 * 2 /* to hold sizes */ + 3 * H * W];
+
+ constexpr ppm(unsigned char const *data) : bytes{0} {
+ unsigned j = 0;
+ bytes[j++] = 'P';
+ bytes[j++] = '6';
+ bytes[j++] = ' ';
+
+ j += itoa(bytes + j, H);
+
+ bytes[j++] = ' ';
+
+ j += itoa(bytes + j, W);
+
+ bytes[j++] = ' ';
+ bytes[j++] = '2';
+ bytes[j++] = '5';
+ bytes[j++] = '5';
+ bytes[j++] = '\n';
+ for (unsigned i = 0; i < H * W; ++i) {
+ auto const code = Tans.find(data[i])->second;
+ bytes[j + 3 * i + 0] = code[0];
+ bytes[j + 3 * i + 1] = code[1];
+ bytes[j + 3 * i + 2] = code[2];
+ }
+ }
+
+ void save(char const path[]) const {
+ std::ofstream out{path, std::ios::binary};
+ out.write((char *)bytes, sizeof bytes);
+ }
+};
+
+void make_panda() {
+ constexpr unsigned char bytes[] = " ### ### "
+ " ##### ########## ##### "
+ " ####### ####### "
+ " #### #### "
+ " ### ### "
+ " # # "
+ " # # "
+ " # ### ### # "
+ " # ##### ##### # "
+ " # #### # # #### # "
+ " # #### # # #### # "
+ " # ##### ##### # "
+ " # ### ## ### # "
+ " # ## # "
+ " #### RRR RRR #### "
+ " ######RRRRR RRRRR###### "
+ " ######RRRRRRRRRRRR###### "
+ " ######RRRRRRRRRRRR###### "
+ " ######RRRRRRRRRRRR###### "
+ " #######RRRRRRRRRR####### "
+ " ##### RRRRRRRR #### "
+ " ### RRRRRR ## "
+ " RRRR ";
+ constexpr ppm<26, 22> some{bytes};
+ some.save("panda.ppm");
+}
+
+void make_1up() {
+ constexpr unsigned char bytes[] = " ###### "
+ " ##GGGG ## "
+ " # GGGG # "
+ " # GGGGGG # "
+ " # GG GG # "
+ " #GGG GGGGG# "
+ " #GGG GG G# "
+ " # GG G # "
+ " # GG GG # "
+ " # GGGGGGGGG G# "
+ " # GG########GGG# "
+ " ### # # ### "
+ " # # # # "
+ " # # "
+ " # # "
+ " ######## "
+
+ ;
+ constexpr ppm<18, 16> some{bytes};
+ some.save("1up.ppm");
+}
+
+int main() {
+ make_panda();
+ make_1up();
+ return 0;
+}
+
+#endif
diff --git a/examples/static_assert.cpp b/examples/static_assert.cpp
new file mode 100644
index 0000000..0899292
--- /dev/null
+++ b/examples/static_assert.cpp
@@ -0,0 +1,9 @@
+#include <frozen/set.h>
+
+static constexpr frozen::set<unsigned, 3> supported_sizes = {
+ 1, 2, 4
+};
+
+static_assert(supported_sizes.count(sizeof(short)), "unsupported size");
+
+int main() { return 0; }
diff --git a/examples/value_modification.cpp b/examples/value_modification.cpp
new file mode 100644
index 0000000..2584efd
--- /dev/null
+++ b/examples/value_modification.cpp
@@ -0,0 +1,37 @@
+#include <frozen/set.h>
+#include <frozen/string.h>
+#include <frozen/unordered_map.h>
+#include <iostream>
+
+/// MAYBE_CONSTINIT expands to `constinit` if available.
+#if __cpp_constinit
+#define MAYBE_CONSTINIT constinit
+#else
+#define MAYBE_CONSTINIT
+#endif
+
+// To make a frozen::unordered_map where you can modify the values, make a
+// non-constexpr instance. If available, prefer to use constinit. It will
+// initialize the map during compilation and detect any exceptions.
+MAYBE_CONSTINIT static frozen::unordered_map<frozen::string, int, 2> fruits = {
+ {"n_apples", 0},
+ {"n_pears", 0},
+};
+
+int main() {
+ // Update the values using at()
+ fruits.at("n_apples") = 10;
+ fruits.at("n_pears") = fruits.at("n_apples") * 2;
+ std::cout << "n_apples: " << fruits.at("n_apples") << std::endl;
+ std::cout << "n_pears: " << fruits.at("n_pears") << std::endl;
+
+ // You can also update values via the iterator returned by find()
+ auto found = fruits.find("n_apples");
+ found->second = 0;
+ std::cout << "n_apples: " << fruits.at("n_apples") << std::endl;
+
+ // Range also works
+ auto range = fruits.equal_range("n_apples");
+ range.first->second = 1337;
+ std::cout << "n_apples: " << fruits.at("n_apples") << std::endl;
+} \ No newline at end of file