summaryrefslogtreecommitdiff
path: root/Userland/Libraries
diff options
context:
space:
mode:
authorRodrigo Tobar <rtobarc@gmail.com>2023-01-23 21:49:59 +0800
committerAndreas Kling <kling@serenityos.org>2023-02-02 14:50:38 +0100
commit2f773b3c5ce68dc753e1dc7eb1eb44c4db337617 (patch)
tree9546b3408e820154131f059b11295d227da224bb /Userland/Libraries
parent5577d5f7890edd18ddcb01647adeeec395597523 (diff)
downloadserenity-2f773b3c5ce68dc753e1dc7eb1eb44c4db337617.zip
LibPDF: Stop storing unicode code points in Encoding
In PDF's fonts, encoding objects are used to translate bytes into fonts' glyphs. Glyphs (in the fonts we currently support) organise their glyphs in such a way that they are accessed by name, and thus encoding translate between a byte sequence and a glyph name. Note that an no point this translation includes a Unicode character, and therefore assigning a character to a glyph in the Encoding object is the wrong thing to do. Moreover, using the code point for this character during the byte-sequence-to-glyph translation sequence is double-wrong. This commit removes the characters associated to each translation in the built-in Encoding objects. In order to keep commits short and sweet, I'm currently simply removing the character from the enumeration, leaving the old structure this information was held on intact. Instead, I'm filling the "code_point" member with a zero, and filling both mappings (which will be changed later on too) with the glyph name and the associated char code.
Diffstat (limited to 'Userland/Libraries')
-rw-r--r--Userland/Libraries/LibPDF/Encoding.cpp42
-rw-r--r--Userland/Libraries/LibPDF/Encoding.h1216
2 files changed, 626 insertions, 632 deletions
diff --git a/Userland/Libraries/LibPDF/Encoding.cpp b/Userland/Libraries/LibPDF/Encoding.cpp
index 086e77092f..9c951da309 100644
--- a/Userland/Libraries/LibPDF/Encoding.cpp
+++ b/Userland/Libraries/LibPDF/Encoding.cpp
@@ -79,10 +79,9 @@ NonnullRefPtr<Encoding> Encoding::standard_encoding()
{
static NonnullRefPtr<Encoding> encoding = adopt_ref(*new Encoding());
if (encoding->m_descriptors.is_empty()) {
-#define ENUMERATE(string, name, standard_code, mac_code, win_code, pdf_code) \
- auto name##_code_point = *Utf8View(string##sv).begin(); \
- encoding->m_descriptors.set(standard_code, { string, name##_code_point }); \
- encoding->m_name_mapping.set(#name, name##_code_point);
+#define ENUMERATE(name, standard_code, mac_code, win_code, pdf_code) \
+ encoding->m_descriptors.set(standard_code, { #name, 0 }); \
+ encoding->m_name_mapping.set(#name, standard_code);
ENUMERATE_LATIN_CHARACTER_SET(ENUMERATE)
#undef ENUMERATE
}
@@ -94,10 +93,9 @@ NonnullRefPtr<Encoding> Encoding::mac_encoding()
{
static NonnullRefPtr<Encoding> encoding = adopt_ref(*new Encoding());
if (encoding->m_descriptors.is_empty()) {
-#define ENUMERATE(string, name, standard_code, mac_code, win_code, pdf_code) \
- auto name##_code_point = *Utf8View(string##sv).begin(); \
- encoding->m_descriptors.set(mac_code, { string, name##_code_point }); \
- encoding->m_name_mapping.set(#name, name##_code_point);
+#define ENUMERATE(name, standard_code, mac_code, win_code, pdf_code) \
+ encoding->m_descriptors.set(mac_code, { #name, 0 }); \
+ encoding->m_name_mapping.set(#name, mac_code);
ENUMERATE_LATIN_CHARACTER_SET(ENUMERATE)
#undef ENUMERATE
}
@@ -109,10 +107,9 @@ NonnullRefPtr<Encoding> Encoding::windows_encoding()
{
static NonnullRefPtr<Encoding> encoding = adopt_ref(*new Encoding());
if (encoding->m_descriptors.is_empty()) {
-#define ENUMERATE(string, name, standard_code, mac_code, win_code, pdf_code) \
- auto name##_code_point = *Utf8View(string##sv).begin(); \
- encoding->m_descriptors.set(win_code, { string, name##_code_point }); \
- encoding->m_name_mapping.set(#name, name##_code_point);
+#define ENUMERATE(name, standard_code, mac_code, win_code, pdf_code) \
+ encoding->m_descriptors.set(win_code, { #name, 0 }); \
+ encoding->m_name_mapping.set(#name, win_code);
ENUMERATE_LATIN_CHARACTER_SET(ENUMERATE)
#undef ENUMERATE
encoding->m_windows = true;
@@ -125,10 +122,9 @@ NonnullRefPtr<Encoding> Encoding::pdf_doc_encoding()
{
static NonnullRefPtr<Encoding> encoding = adopt_ref(*new Encoding());
if (encoding->m_descriptors.is_empty()) {
-#define ENUMERATE(string, name, standard_code, mac_code, win_code, pdf_code) \
- auto name##_code_point = *Utf8View(string##sv).begin(); \
- encoding->m_descriptors.set(pdf_code, { string, name##_code_point }); \
- encoding->m_name_mapping.set(#name, name##_code_point);
+#define ENUMERATE(name, standard_code, mac_code, win_code, pdf_code) \
+ encoding->m_descriptors.set(pdf_code, { #name, 0 }); \
+ encoding->m_name_mapping.set(#name, pdf_code);
ENUMERATE_LATIN_CHARACTER_SET(ENUMERATE)
#undef ENUMERATE
}
@@ -140,10 +136,9 @@ NonnullRefPtr<Encoding> Encoding::symbol_encoding()
{
static NonnullRefPtr<Encoding> encoding = adopt_ref(*new Encoding());
if (encoding->m_descriptors.is_empty()) {
-#define ENUMERATE(string, name, code) \
- auto name##_code_point = *Utf8View(string##sv).begin(); \
- encoding->m_descriptors.set(code, { string, name##_code_point }); \
- encoding->m_name_mapping.set(#name, name##_code_point);
+#define ENUMERATE(name, code) \
+ encoding->m_descriptors.set(code, { #name, 0 }); \
+ encoding->m_name_mapping.set(#name, code);
ENUMERATE_SYMBOL_CHARACTER_SET(ENUMERATE)
#undef ENUMERATE
}
@@ -155,10 +150,9 @@ NonnullRefPtr<Encoding> Encoding::zapf_encoding()
{
static NonnullRefPtr<Encoding> encoding = adopt_ref(*new Encoding());
if (encoding->m_descriptors.is_empty()) {
-#define ENUMERATE(string, name, code) \
- auto name##_code_point = *Utf8View(string##sv).begin(); \
- encoding->m_descriptors.set(code, { string, name##_code_point }); \
- encoding->m_name_mapping.set(#name, name##_code_point);
+#define ENUMERATE(name, code) \
+ encoding->m_descriptors.set(code, { #name, 0 }); \
+ encoding->m_name_mapping.set(#name, code);
ENUMERATE_ZAPF_DINGBATS_CHARACTER_SET(ENUMERATE)
#undef ENUMERATE
}
diff --git a/Userland/Libraries/LibPDF/Encoding.h b/Userland/Libraries/LibPDF/Encoding.h
index f34dde17fe..781a056c7b 100644
--- a/Userland/Libraries/LibPDF/Encoding.h
+++ b/Userland/Libraries/LibPDF/Encoding.h
@@ -10,618 +10,618 @@
#include <LibPDF/ObjectDerivatives.h>
// Appendix D.2: Latin Character Set and Encodings
-#define ENUMERATE_LATIN_CHARACTER_SET(FN) \
- FN("A", A, 65, 65, 65, 65) \
- FN("Æ", AE, 225, 174, 198, 198) \
- FN("Á", Aacute, -1, 231, 193, 193) \
- FN("Â", Acircumflex, -1, 229, 194, 194) \
- FN("Ä", Adieresis, -1, 128, 196, 196) \
- FN("À", Agrave, -1, 203, 192, 192) \
- FN("Å", Aring, -1, 129, 197, 197) \
- FN("Ã", Atilde, -1, 204, 195, 195) \
- FN("B", B, 66, 66, 66, 66) \
- FN("C", C, 67, 67, 67, 67) \
- FN("Ç", Ccedilla, -1, 130, 199, 199) \
- FN("D", D, 68, 68, 68, 68) \
- FN("E", E, 69, 69, 69, 69) \
- FN("É", Eacute, -1, 131, 201, 201) \
- FN("Ê", Ecircumflex, -1, 230, 202, 202) \
- FN("Ë", Edieresis, -1, 232, 203, 203) \
- FN("È", Egrave, -1, 233, 200, 200) \
- FN("Ð", Eth, -1, -1, 208, 208) \
- FN("€", Euro, -1, -1, 128, 160) /* FIXME: Note 1 */ \
- FN("F", F, 70, 70, 70, 70) \
- FN("G", G, 71, 71, 71, 71) \
- FN("H", H, 72, 72, 72, 72) \
- FN("I", I, 73, 73, 73, 73) \
- FN("Í", Iacute, -1, 234, 205, 205) \
- FN("Î", Icircumflex, -1, 235, 206, 206) \
- FN("Ï", Idieresis, -1, 236, 207, 207) \
- FN("Ì", Igrave, -1, 237, 204, 204) \
- FN("J", J, 74, 74, 74, 74) \
- FN("K", K, 75, 75, 75, 75) \
- FN("L", L, 76, 76, 76, 76) \
- FN("Ł", Lslash, 232, -1, -1, 149) \
- FN("M", M, 77, 77, 77, 77) \
- FN("N", N, 78, 78, 78, 78) \
- FN("Ñ", Ntilde, -1, 132, 209, 209) \
- FN("O", O, 79, 79, 79, 79) \
- FN("Œ", OE, 234, 206, 140, 150) \
- FN("Ó", Oacute, -1, 238, 211, 211) \
- FN("Ô", Ocircumflex, -1, 239, 212, 212) \
- FN("Ö", Odieresis, -1, 133, 214, 214) \
- FN("Ò", Ograve, -1, 241, 210, 210) \
- FN("Ø", Oslash, 233, 175, 216, 216) \
- FN("Õ", Otilde, -1, 205, 213, 213) \
- FN("P", P, 80, 80, 80, 80) \
- FN("Q", Q, 81, 81, 81, 81) \
- FN("R", R, 82, 82, 82, 82) \
- FN("S", S, 83, 83, 83, 83) \
- FN("Š", Scaron, -1, -1, 138, 151) \
- FN("T", T, 84, 84, 84, 84) \
- FN("Þ", Thorn, -1, -1, 222, 222) \
- FN("U", U, 85, 85, 85, 85) \
- FN("Ú", Uacute, -1, 242, 218, 218) \
- FN("Û", Ucircumflex, -1, 243, 219, 219) \
- FN("Ü", Udieresis, -1, 134, 220, 220) \
- FN("Ù", Ugrave, -1, 244, 217, 217) \
- FN("V", V, 86, 86, 86, 86) \
- FN("W", W, 87, 87, 87, 87) \
- FN("X", X, 88, 88, 88, 88) \
- FN("Y", Y, 89, 89, 89, 89) \
- FN("Ý", Yacute, -1, -1, 221, 221) \
- FN("Ÿ", Ydieresis, -1, 217, 159, 152) \
- FN("Z", Z, 90, 90, 90, 90) \
- FN("Ž", Zcaron, -1, -1, 142, 153) /* FIXME: Note 2 */ \
- FN("a", a, 97, 97, 97, 97) \
- FN("á", aacute, -1, 135, 225, 225) \
- FN("â", acircumflex, -1, 137, 226, 226) \
- FN("́", acute, 194, 171, 180, 180) \
- FN("ä", adieresis, -1, 138, 228, 228) \
- FN("æ", ae, 241, 190, 230, 230) \
- FN("à", agrave, -1, 136, 224, 224) \
- FN("&", ampersand, 38, 38, 38, 38) \
- FN("å", aring, -1, 140, 229, 229) \
- FN("^", asciicircum, 94, 94, 94, 94) \
- FN("~", asciitilde, 126, 126, 126, 126) \
- FN("*", asterisk, 42, 42, 42, 42) \
- FN("@", at, 64, 64, 64, 64) \
- FN("ã", atilde, -1, 139, 227, 227) \
- FN("b", b, 98, 98, 98, 98) \
- FN("\\", backslash, 92, 92, 92, 92) \
- FN("|", bar, 124, 124, 124, 124) \
- FN("{", braceleft, 123, 123, 123, 123) \
- FN("}", braceright, 125, 125, 125, 125) \
- FN("[", bracketleft, 91, 91, 91, 91) \
- FN("]", bracketright, 93, 93, 93, 93) \
- FN(" ̆", breve, 198, 249, -1, 24) \
- FN("¦", brokenbar, -1, -1, 166, 166) \
- FN("•", bullet, 183, 165, 149, 128) \
- FN("c", c, 99, 99, 99, 99) \
- FN("ˇ", caron, 207, 255, -1, 25) \
- FN("ç", ccedilla, -1, 141, 231, 231) \
- FN("̧", cedilla, 203, 252, 184, 184) \
- FN("¢", cent, 162, 162, 162, 162) \
- FN("ˆ", circumflex, 195, 246, 136, 26) \
- FN(":", colon, 58, 58, 58, 58) \
- FN(",", comma, 44, 44, 44, 44) \
- FN("©", copyright, -1, 169, 169, 169) \
- FN("¤", currency, 168, 219, 164, 164) /* FIXME: Note 1 */ \
- FN("d", d, 100, 100, 100, 100) \
- FN("†", dagger, 178, 160, 134, 129) \
- FN("‡", daggerdbl, 179, 224, 135, 130) \
- FN("°", degree, -1, 161, 176, 176) \
- FN("̈", dieresis, 200, 172, 168, 168) \
- FN("÷", divide, -1, 214, 247, 247) \
- FN("$", dollar, 36, 36, 36, 36) \
- FN("̇", dotaccent, 199, 250, -1, 27) \
- FN("ı", dotlessi, 245, 245, -1, 154) \
- FN("e", e, 101, 101, 101, 101) \
- FN("é", eacute, -1, 142, 233, 233) \
- FN("ê", ecircumflex, -1, 144, 234, 234) \
- FN("ë", edieresis, -1, 145, 235, 235) \
- FN("è", egrave, -1, 143, 232, 232) \
- FN("8", eight, 56, 56, 56, 56) \
- FN("…", ellipsis, 188, 201, 133, 131) \
- FN("—", emdash, 208, 209, 151, 132) \
- FN("–", endash, 177, 208, 150, 133) \
- FN("=", equal, 61, 61, 61, 61) \
- FN("ð", eth, -1, -1, 240, 240) \
- FN("!", exclam, 33, 33, 33, 33) \
- FN("¡", exclamdown, 161, 193, 161, 161) \
- FN("f", f, 102, 102, 102, 102) \
- FN("fi", fi, 174, 222, -1, 147) \
- FN("5", five, 53, 53, 53, 53) \
- FN("fl", fl, 175, 223, -1, 148) \
- FN("ƒ", florin, 166, 196, 131, 134) \
- FN("4", four, 52, 52, 52, 52) \
- FN("⁄", fraction, 164, 218, -1, 135) \
- FN("g", g, 103, 103, 103, 103) \
- FN("ß", germandbls, 251, 167, 223, 223) \
- FN("`", grave, 193, 96, 96, 96) \
- FN(">", greater, 62, 62, 62, 62) \
- FN("«", guillemotleft, 171, 199, 171, 171) /* FIXME: Note 4 */ \
- FN("»", guillemotright, 187, 200, 187, 187) /* FIXME: Note 4 */ \
- FN("‹", guilsinglleft, 172, 220, 139, 136) \
- FN("›", guilsinglright, 173, 221, 155, 137) \
- FN("h", h, 104, 104, 104, 104) \
- FN("̋", hungarumlaut, 205, 253, -1, 28) \
- FN("-", hyphen, 45, 45, 45, 45) /* FIXME: Note 5 */ \
- FN("i", i, 105, 105, 105, 105) \
- FN("í", iacute, -1, 146, 237, 237) \
- FN("î", icircumflex, -1, 148, 238, 238) \
- FN("ï", idieresis, -1, 149, 239, 239) \
- FN("ì", igrave, -1, 147, 236, 236) \
- FN("j", j, 106, 106, 106, 106) \
- FN("k", k, 107, 107, 107, 107) \
- FN("l", l, 108, 108, 108, 108) \
- FN("<", less, 60, 60, 60, 60) \
- FN("¬", logicalnot, -1, 194, 172, 172) \
- FN("ł", lslash, 248, -1, -1, 155) \
- FN("m", m, 109, 109, 109, 109) \
- FN("̄", macron, 197, 248, 175, 175) \
- FN("−", minus, -1, -1, -1, 138) \
- FN("μ", mu, -1, 181, 181, 181) \
- FN("×", multiply, -1, -1, 215, 215) \
- FN("n", n, 110, 110, 110, 110) \
- FN("9", nine, 57, 57, 57, 57) \
- FN("ñ", ntilde, -1, 150, 241, 241) \
- FN("#", numbersign, 35, 35, 35, 35) \
- FN("o", o, 111, 111, 111, 111) \
- FN("ó", oacute, -1, 151, 243, 243) \
- FN("ô", ocircumflex, -1, 153, 244, 244) \
- FN("ö", odieresis, -1, 154, 246, 246) \
- FN("œ", oe, 250, 207, 156, 156) \
- FN("̨", ogonek, 206, 254, -1, 29) \
- FN("ò", ograve, -1, 152, 242, 242) \
- FN("1", one, 49, 49, 49, 49) \
- FN("½", onehalf, -1, -1, 189, 189) \
- FN("¼", onequarter, -1, -1, 188, 188) \
- FN("¹", onesuperior, -1, -1, 185, 185) \
- FN("ª", ordfeminine, 227, 187, 170, 170) \
- FN("º", ordmasculine, 235, 188, 186, 186) \
- FN("ø", oslash, 249, 191, 248, 248) \
- FN("õ", otilde, -1, 155, 245, 245) \
- FN("p", p, 112, 112, 112, 112) \
- FN("¶", paragraph, 182, 166, 182, 182) \
- FN("(", parenleft, 40, 40, 40, 40) \
- FN(")", parenright, 41, 41, 41, 41) \
- FN("%", percent, 37, 37, 37, 37) \
- FN(".", period, 46, 46, 46, 46) \
- FN("·", periodcentered, 180, 225, 183, 183) \
- FN("‰", perthousand, 189, 228, 137, 139) \
- FN("+", plus, 43, 43, 43, 43) \
- FN("±", plusminus, -1, 177, 177, 177) \
- FN("q", q, 113, 113, 113, 113) \
- FN("?", question, 63, 63, 63, 63) \
- FN("¿", questiondown, 191, 192, 191, 191) \
- FN("\"", quotedbl, 34, 34, 34, 34) \
- FN("„", quotedblbase, 185, 227, 132, 140) \
- FN("“", quotedblleft, 170, 210, 147, 141) \
- FN("”", quotedblright, 186, 211, 148, 142) \
- FN("‘", quoteleft, 96, 212, 145, 143) \
- FN("’", quoteright, 39, 213, 146, 144) \
- FN("‚", quotesinglbase, 184, 226, 130, 145) \
- FN(",", quotesingle, 169, 39, 39, 39) \
- FN("r", r, 114, 114, 114, 114) \
- FN("®", registered, -1, 168, 174, 174) \
- FN("̊", ring, 202, 251, -1, 30) \
- FN("s", s, 115, 115, 115, 115) \
- FN("š", scaron, -1, -1, 154, 157) \
- FN("§", section, 167, 164, 167, 167) \
- FN(";", semicolon, 59, 59, 59, 59) \
- FN("7", seven, 55, 55, 55, 55) \
- FN("6", six, 54, 54, 54, 54) \
- FN("/", slash, 47, 47, 47, 47) \
- FN(" ", space, 32, 32, 32, 32) /* FIXME: Note 6 */ \
- FN("£", sterling, 163, 163, 163, 163) \
- FN("t", t, 116, 116, 116, 116) \
- FN("þ", thorn, -1, -1, 254, 254) \
- FN("3", three, 51, 51, 51, 51) \
- FN("¾", threequarters, -1, -1, 190, 190) \
- FN("³", threesuperior, -1, -1, 179, 179) \
- FN("̃", tilde, 196, 247, 152, 31) \
- FN("™", trademark, -1, 170, 153, 146) \
- FN("2", two, 50, 50, 50, 50) \
- FN("²", twosuperior, -1, -1, 178, 178) \
- FN("u", u, 117, 117, 117, 117) \
- FN("ú", uacute, -1, 156, 250, 250) \
- FN("û", ucircumflex, -1, 158, 251, 251) \
- FN("ü", udieresis, -1, 159, 252, 252) \
- FN("ù", ugrave, -1, 157, 249, 249) \
- FN("_", underscore, 95, 95, 95, 95) \
- FN("v", v, 118, 118, 118, 118) \
- FN("w", w, 119, 119, 119, 119) \
- FN("x", x, 120, 120, 120, 120) \
- FN("y", y, 121, 121, 121, 121) \
- FN("ý", yacute, -1, -1, 253, 253) \
- FN("ÿ", ydieresis, -1, 216, 255, 255) \
- FN("¥", yen, 165, 180, 165, 165) \
- FN("z", z, 122, 122, 122, 122) \
- FN("ž", zcaron, -1, -1, 158, 158) /* FIXME: Note 2 */ \
- FN("0", zero, 48, 48, 48, 48)
+#define ENUMERATE_LATIN_CHARACTER_SET(FN) \
+ FN(A, 65, 65, 65, 65) \
+ FN(AE, 225, 174, 198, 198) \
+ FN(Aacute, -1, 231, 193, 193) \
+ FN(Acircumflex, -1, 229, 194, 194) \
+ FN(Adieresis, -1, 128, 196, 196) \
+ FN(Agrave, -1, 203, 192, 192) \
+ FN(Aring, -1, 129, 197, 197) \
+ FN(Atilde, -1, 204, 195, 195) \
+ FN(B, 66, 66, 66, 66) \
+ FN(C, 67, 67, 67, 67) \
+ FN(Ccedilla, -1, 130, 199, 199) \
+ FN(D, 68, 68, 68, 68) \
+ FN(E, 69, 69, 69, 69) \
+ FN(Eacute, -1, 131, 201, 201) \
+ FN(Ecircumflex, -1, 230, 202, 202) \
+ FN(Edieresis, -1, 232, 203, 203) \
+ FN(Egrave, -1, 233, 200, 200) \
+ FN(Eth, -1, -1, 208, 208) \
+ FN(Euro, -1, -1, 128, 160) /* FIXME: Note 1 */ \
+ FN(F, 70, 70, 70, 70) \
+ FN(G, 71, 71, 71, 71) \
+ FN(H, 72, 72, 72, 72) \
+ FN(I, 73, 73, 73, 73) \
+ FN(Iacute, -1, 234, 205, 205) \
+ FN(Icircumflex, -1, 235, 206, 206) \
+ FN(Idieresis, -1, 236, 207, 207) \
+ FN(Igrave, -1, 237, 204, 204) \
+ FN(J, 74, 74, 74, 74) \
+ FN(K, 75, 75, 75, 75) \
+ FN(L, 76, 76, 76, 76) \
+ FN(Lslash, 232, -1, -1, 149) \
+ FN(M, 77, 77, 77, 77) \
+ FN(N, 78, 78, 78, 78) \
+ FN(Ntilde, -1, 132, 209, 209) \
+ FN(O, 79, 79, 79, 79) \
+ FN(OE, 234, 206, 140, 150) \
+ FN(Oacute, -1, 238, 211, 211) \
+ FN(Ocircumflex, -1, 239, 212, 212) \
+ FN(Odieresis, -1, 133, 214, 214) \
+ FN(Ograve, -1, 241, 210, 210) \
+ FN(Oslash, 233, 175, 216, 216) \
+ FN(Otilde, -1, 205, 213, 213) \
+ FN(P, 80, 80, 80, 80) \
+ FN(Q, 81, 81, 81, 81) \
+ FN(R, 82, 82, 82, 82) \
+ FN(S, 83, 83, 83, 83) \
+ FN(Scaron, -1, -1, 138, 151) \
+ FN(T, 84, 84, 84, 84) \
+ FN(Thorn, -1, -1, 222, 222) \
+ FN(U, 85, 85, 85, 85) \
+ FN(Uacute, -1, 242, 218, 218) \
+ FN(Ucircumflex, -1, 243, 219, 219) \
+ FN(Udieresis, -1, 134, 220, 220) \
+ FN(Ugrave, -1, 244, 217, 217) \
+ FN(V, 86, 86, 86, 86) \
+ FN(W, 87, 87, 87, 87) \
+ FN(X, 88, 88, 88, 88) \
+ FN(Y, 89, 89, 89, 89) \
+ FN(Yacute, -1, -1, 221, 221) \
+ FN(Ydieresis, -1, 217, 159, 152) \
+ FN(Z, 90, 90, 90, 90) \
+ FN(Zcaron, -1, -1, 142, 153) /* FIXME: Note 2 */ \
+ FN(a, 97, 97, 97, 97) \
+ FN(aacute, -1, 135, 225, 225) \
+ FN(acircumflex, -1, 137, 226, 226) \
+ FN(acute, 194, 171, 180, 180) \
+ FN(adieresis, -1, 138, 228, 228) \
+ FN(ae, 241, 190, 230, 230) \
+ FN(agrave, -1, 136, 224, 224) \
+ FN(ampersand, 38, 38, 38, 38) \
+ FN(aring, -1, 140, 229, 229) \
+ FN(asciicircum, 94, 94, 94, 94) \
+ FN(asciitilde, 126, 126, 126, 126) \
+ FN(asterisk, 42, 42, 42, 42) \
+ FN(at, 64, 64, 64, 64) \
+ FN(atilde, -1, 139, 227, 227) \
+ FN(b, 98, 98, 98, 98) \
+ FN(backslash, 92, 92, 92, 92) \
+ FN(bar, 124, 124, 124, 124) \
+ FN(braceleft, 123, 123, 123, 123) \
+ FN(braceright, 125, 125, 125, 125) \
+ FN(bracketleft, 91, 91, 91, 91) \
+ FN(bracketright, 93, 93, 93, 93) \
+ FN(breve, 198, 249, -1, 24) \
+ FN(brokenbar, -1, -1, 166, 166) \
+ FN(bullet, 183, 165, 149, 128) \
+ FN(c, 99, 99, 99, 99) \
+ FN(caron, 207, 255, -1, 25) \
+ FN(ccedilla, -1, 141, 231, 231) \
+ FN(cedilla, 203, 252, 184, 184) \
+ FN(cent, 162, 162, 162, 162) \
+ FN(circumflex, 195, 246, 136, 26) \
+ FN(colon, 58, 58, 58, 58) \
+ FN(comma, 44, 44, 44, 44) \
+ FN(copyright, -1, 169, 169, 169) \
+ FN(currency, 168, 219, 164, 164) /* FIXME: Note 1 */ \
+ FN(d, 100, 100, 100, 100) \
+ FN(dagger, 178, 160, 134, 129) \
+ FN(daggerdbl, 179, 224, 135, 130) \
+ FN(degree, -1, 161, 176, 176) \
+ FN(dieresis, 200, 172, 168, 168) \
+ FN(divide, -1, 214, 247, 247) \
+ FN(dollar, 36, 36, 36, 36) \
+ FN(dotaccent, 199, 250, -1, 27) \
+ FN(dotlessi, 245, 245, -1, 154) \
+ FN(e, 101, 101, 101, 101) \
+ FN(eacute, -1, 142, 233, 233) \
+ FN(ecircumflex, -1, 144, 234, 234) \
+ FN(edieresis, -1, 145, 235, 235) \
+ FN(egrave, -1, 143, 232, 232) \
+ FN(eight, 56, 56, 56, 56) \
+ FN(ellipsis, 188, 201, 133, 131) \
+ FN(emdash, 208, 209, 151, 132) \
+ FN(endash, 177, 208, 150, 133) \
+ FN(equal, 61, 61, 61, 61) \
+ FN(eth, -1, -1, 240, 240) \
+ FN(exclam, 33, 33, 33, 33) \
+ FN(exclamdown, 161, 193, 161, 161) \
+ FN(f, 102, 102, 102, 102) \
+ FN(fi, 174, 222, -1, 147) \
+ FN(five, 53, 53, 53, 53) \
+ FN(fl, 175, 223, -1, 148) \
+ FN(florin, 166, 196, 131, 134) \
+ FN(four, 52, 52, 52, 52) \
+ FN(fraction, 164, 218, -1, 135) \
+ FN(g, 103, 103, 103, 103) \
+ FN(germandbls, 251, 167, 223, 223) \
+ FN(grave, 193, 96, 96, 96) \
+ FN(greater, 62, 62, 62, 62) \
+ FN(guillemotleft, 171, 199, 171, 171) /* FIXME: Note 4 */ \
+ FN(guillemotright, 187, 200, 187, 187) /* FIXME: Note 4 */ \
+ FN(guilsinglleft, 172, 220, 139, 136) \
+ FN(guilsinglright, 173, 221, 155, 137) \
+ FN(h, 104, 104, 104, 104) \
+ FN(hungarumlaut, 205, 253, -1, 28) \
+ FN(hyphen, 45, 45, 45, 45) /* FIXME: Note 5 */ \
+ FN(i, 105, 105, 105, 105) \
+ FN(iacute, -1, 146, 237, 237) \
+ FN(icircumflex, -1, 148, 238, 238) \
+ FN(idieresis, -1, 149, 239, 239) \
+ FN(igrave, -1, 147, 236, 236) \
+ FN(j, 106, 106, 106, 106) \
+ FN(k, 107, 107, 107, 107) \
+ FN(l, 108, 108, 108, 108) \
+ FN(less, 60, 60, 60, 60) \
+ FN(logicalnot, -1, 194, 172, 172) \
+ FN(lslash, 248, -1, -1, 155) \
+ FN(m, 109, 109, 109, 109) \
+ FN(macron, 197, 248, 175, 175) \
+ FN(minus, -1, -1, -1, 138) \
+ FN(mu, -1, 181, 181, 181) \
+ FN(multiply, -1, -1, 215, 215) \
+ FN(n, 110, 110, 110, 110) \
+ FN(nine, 57, 57, 57, 57) \
+ FN(ntilde, -1, 150, 241, 241) \
+ FN(numbersign, 35, 35, 35, 35) \
+ FN(o, 111, 111, 111, 111) \
+ FN(oacute, -1, 151, 243, 243) \
+ FN(ocircumflex, -1, 153, 244, 244) \
+ FN(odieresis, -1, 154, 246, 246) \
+ FN(oe, 250, 207, 156, 156) \
+ FN(ogonek, 206, 254, -1, 29) \
+ FN(ograve, -1, 152, 242, 242) \
+ FN(one, 49, 49, 49, 49) \
+ FN(onehalf, -1, -1, 189, 189) \
+ FN(onequarter, -1, -1, 188, 188) \
+ FN(onesuperior, -1, -1, 185, 185) \
+ FN(ordfeminine, 227, 187, 170, 170) \
+ FN(ordmasculine, 235, 188, 186, 186) \
+ FN(oslash, 249, 191, 248, 248) \
+ FN(otilde, -1, 155, 245, 245) \
+ FN(p, 112, 112, 112, 112) \
+ FN(paragraph, 182, 166, 182, 182) \
+ FN(parenleft, 40, 40, 40, 40) \
+ FN(parenright, 41, 41, 41, 41) \
+ FN(percent, 37, 37, 37, 37) \
+ FN(period, 46, 46, 46, 46) \
+ FN(periodcentered, 180, 225, 183, 183) \
+ FN(perthousand, 189, 228, 137, 139) \
+ FN(plus, 43, 43, 43, 43) \
+ FN(plusminus, -1, 177, 177, 177) \
+ FN(q, 113, 113, 113, 113) \
+ FN(question, 63, 63, 63, 63) \
+ FN(questiondown, 191, 192, 191, 191) \
+ FN(quotedbl, 34, 34, 34, 34) \
+ FN(quotedblbase, 185, 227, 132, 140) \
+ FN(quotedblleft, 170, 210, 147, 141) \
+ FN(quotedblright, 186, 211, 148, 142) \
+ FN(quoteleft, 96, 212, 145, 143) \
+ FN(quoteright, 39, 213, 146, 144) \
+ FN(quotesinglbase, 184, 226, 130, 145) \
+ FN(quotesingle, 169, 39, 39, 39) \
+ FN(r, 114, 114, 114, 114) \
+ FN(registered, -1, 168, 174, 174) \
+ FN(ring, 202, 251, -1, 30) \
+ FN(s, 115, 115, 115, 115) \
+ FN(scaron, -1, -1, 154, 157) \
+ FN(section, 167, 164, 167, 167) \
+ FN(semicolon, 59, 59, 59, 59) \
+ FN(seven, 55, 55, 55, 55) \
+ FN(six, 54, 54, 54, 54) \
+ FN(slash, 47, 47, 47, 47) \
+ FN(space, 32, 32, 32, 32) /* FIXME: Note 6 */ \
+ FN(sterling, 163, 163, 163, 163) \
+ FN(t, 116, 116, 116, 116) \
+ FN(thorn, -1, -1, 254, 254) \
+ FN(three, 51, 51, 51, 51) \
+ FN(threequarters, -1, -1, 190, 190) \
+ FN(threesuperior, -1, -1, 179, 179) \
+ FN(tilde, 196, 247, 152, 31) \
+ FN(trademark, -1, 170, 153, 146) \
+ FN(two, 50, 50, 50, 50) \
+ FN(twosuperior, -1, -1, 178, 178) \
+ FN(u, 117, 117, 117, 117) \
+ FN(uacute, -1, 156, 250, 250) \
+ FN(ucircumflex, -1, 158, 251, 251) \
+ FN(udieresis, -1, 159, 252, 252) \
+ FN(ugrave, -1, 157, 249, 249) \
+ FN(underscore, 95, 95, 95, 95) \
+ FN(v, 118, 118, 118, 118) \
+ FN(w, 119, 119, 119, 119) \
+ FN(x, 120, 120, 120, 120) \
+ FN(y, 121, 121, 121, 121) \
+ FN(yacute, -1, -1, 253, 253) \
+ FN(ydieresis, -1, 216, 255, 255) \
+ FN(yen, 165, 180, 165, 165) \
+ FN(z, 122, 122, 122, 122) \
+ FN(zcaron, -1, -1, 158, 158) /* FIXME: Note 2 */ \
+ FN(zero, 48, 48, 48, 48)
// https://help.adobe.com/en_US/framemaker/2015/using/using-framemaker-2015/frm_references_re/frm_character_sets_cs/Symbol_and_ZapfDingbats_character_sets-.htm
-#define ENUMERATE_SYMBOL_CHARACTER_SET(V) \
- V("Α", Alpha, 65) \
- V("Β", Beta, 66) \
- V("Χ", Chi, 67) \
- V("Δ", Delta, 68) \
- V("Ε", Epsilon, 69) \
- V("Η", Eta, 72) \
- V("€", Euro, 160) \
- V("Γ", Gamma, 71) \
- V("ℑ", Ifraktur, 193) \
- V("Ι", Iota, 73) \
- V("Κ", Kappa, 75) \
- V("Λ", Lambda, 76) \
- V("Μ", Mu, 77) \
- V("Ν", Nu, 78) \
- V("Ω", Omega, 87) \
- V("Ο", Omicron, 79) \
- V("Φ", Phi, 70) \
- V("Π", Pi, 80) \
- V("Ψ", Psi, 89) \
- V("ℜ", Rfraktur, 194) \
- V("Ρ", Rho, 82) \
- V("Σ", Sigma, 83) \
- V("Τ", Tau, 84) \
- V("Θ", Theta, 81) \
- V("Υ", Upsilon, 85) \
- V("ϒ", Upsilon1, 161) \
- V("Ξ", Xi, 88) \
- V("Ζ", Zeta, 90) \
- V("ℵ", aleph, 192) \
- V("α", alpha, 97) \
- V("&", ampersand, 38) \
- V("∠", angle, 208) \
- V("〈", angleleft, 225) \
- V("〉", angleright, 241) \
- V("≈", approxequal, 187) \
- V("↔", arrowboth, 171) \
- V("⇔", arrowdblboth, 219) \
- V("⇓", arrowdbldown, 223) \
- V("⇐", arrowdblleft, 220) \
- V("⇒", arrowdblright, 222) \
- V("⇑", arrowdblup, 221) \
- V("↓", arrowdown, 175) \
- V("", arrowhorizex, 190) \
- V("←", arrowleft, 172) \
- V("→", arrowright, 174) \
- V("↑", arrowup, 173) \
- V("", arrowvertex, 189) \
- V("∗", asteriskmath, 42) \
- V("|", bar, 124) \
- V("β", beta, 98) \
- V("{", braceleft, 123) \
- V("}", braceright, 125) \
- V("", bracelefttp, 236) \
- V("", braceleftmid, 237) \
- V("", braceleftbt, 238) \
- V("", bracerighttp, 252) \
- V("", bracerightmid, 253) \
- V("", bracerightbt, 254) \
- V("", braceex, 239) \
- V("[", bracketleft, 91) \
- V("]", bracketright, 93) \
- V("", bracketlefttp, 233) \
- V("", bracketleftex, 234) \
- V("", bracketleftbt, 235) \
- V("", bracketrighttp, 249) \
- V("", bracketrightex, 250) \
- V("", bracketrightbt, 251) \
- V("•", bullet, 183) \
- V("↵", carriagereturn, 191) \
- V("χ", chi, 99) \
- V("⊗", circlemultiply, 196) \
- V("⊕", circleplus, 197) \
- V("♣", club, 167) \
- V(":", colon, 58) \
- V(",", comma, 44) \
- V("≅", congruent, 64) \
- V("", copyrightsans, 227) \
- V("©", copyrightserif, 211) \
- V("°", degree, 176) \
- V("δ", delta, 100) \
- V("♦", diamond, 168) \
- V("÷", divide, 184) \
- V("⋅", dotmath, 215) \
- V("8", eight, 56) \
- V("∈", element, 206) \
- V("…", ellipsis, 188) \
- V("∅", emptyset, 198) \
- V("ε", epsilon, 101) \
- V("=", equal, 61) \
- V("≡", equivalence, 186) \
- V("η", eta, 104) \
- V("!", exclam, 33) \
- V("∃", existential, 36) \
- V("5", five, 53) \
- V("ƒ", florin, 166) \
- V("4", four, 52) \
- V("⁄", fraction, 164) \
- V("γ", gamma, 103) \
- V("∇", gradient, 209) \
- V(">", greater, 62) \
- V("≥", greaterequal, 179) \
- V("♥", heart, 169) \
- V("∞", infinity, 165) \
- V("`", integral, 242) \
- V("∫", integraltp, 243) \
- V("", integralex, 244) \
- V("⌡", integralbt, 245) \
- V("∩", intersection, 199) \
- V("ι", iota, 105) \
- V("κ", kappa, 107) \
- V("λ", lambda, 108) \
- V("<", less, 60) \
- V("≤", lessequal, 163) \
- V("∧", logicaland, 217) \
- V("¬", logicalnot, 216) \
- V("∨", logicalor, 218) \
- V("⋄", lozenge, 224) \
- V("−", minus, 45) \
- V("′", minute, 162) \
- V("μ", mu, 109) \
- V("×", multiply, 180) \
- V("9", nine, 57) \
- V("∉", notelement, 207) \
- V("≠", notequal, 185) \
- V("⊄", notsubset, 203) \
- V("ν", nu, 110) \
- V("#", numbersign, 35) \
- V("ω", omega, 119) \
- V("v", omega1, 118) \
- V("ϖ", omicron, 111) \
- V("1", one, 49) \
- V("(", parenleft, 40) \
- V(")", parenright, 41) \
- V("", parenlefttp, 230) \
- V("", parenleftex, 231) \
- V("", parenleftbt, 232) \
- V("", parenrighttp, 246) \
- V("", parenrightex, 247) \
- V("", parenrightbt, 248) \
- V("∂", partialdiff, 182) \
- V("%", percent, 37) \
- V(".", period, 46) \
- V("⊥", perpendicular, 94) \
- V("φ", phi, 102) \
- V("ϕ", phi1, 106) \
- V("π", pi, 112) \
- V("+", plus, 43) \
- V("±", plusminus, 177) \
- V("∏", product, 213) \
- V("⊂", propersubset, 204) \
- V("⊃", propersuperset, 201) \
- V("∝", proportional, 181) \
- V("ψ", psi, 121) \
- V("?", question, 63) \
- V("√", radical, 214) \
- V("?", radicalex, 96) /* FIXME: What is this character, ? */ \
- V("⊆", reflexsubset, 205) \
- V("⊇", reflexsuperset, 202) \
- V("", registersans, 226) \
- V("®", registerserif, 210) \
- V("ρ", rho, 114) \
- V("″", second, 178) \
- V(";", semicolon, 59) \
- V("7", seven, 55) \
- V("σ", sigma, 115) \
- V("ς", sigma1, 86) \
- V("∼", similar, 126) \
- V("6", six, 54) \
- V("/", slash, 47) \
- V(" ", space, 32) \
- V("¤", spade, 170) \
- V("∋", suchthat, 39) \
- V("∑", summation, 229) \
- V("τ", tau, 116) \
- V("∴", therefore, 92) \
- V("θ", theta, 113) \
- V("ϑ", theta1, 74) \
- V("3", three, 51) \
- V("", trademarksans, 228) \
- V("™", trademarkserif, 212) \
- V("2", two, 50) \
- V("_", underscore, 95) \
- V("∪", union, 200) \
- V("∀", universal, 34) \
- V("υ", upsilon, 117) \
- V("℘", weierstrass, 195) \
- V("ξ", xi, 120) \
- V("0", zero, 48) \
- V("ζ", zeta, 15)
+#define ENUMERATE_SYMBOL_CHARACTER_SET(V) \
+ V(Alpha, 65) \
+ V(Beta, 66) \
+ V(Chi, 67) \
+ V(Delta, 68) \
+ V(Epsilon, 69) \
+ V(Eta, 72) \
+ V(Euro, 160) \
+ V(Gamma, 71) \
+ V(Ifraktur, 193) \
+ V(Iota, 73) \
+ V(Kappa, 75) \
+ V(Lambda, 76) \
+ V(Mu, 77) \
+ V(Nu, 78) \
+ V(Omega, 87) \
+ V(Omicron, 79) \
+ V(Phi, 70) \
+ V(Pi, 80) \
+ V(Psi, 89) \
+ V(Rfraktur, 194) \
+ V(Rho, 82) \
+ V(Sigma, 83) \
+ V(Tau, 84) \
+ V(Theta, 81) \
+ V(Upsilon, 85) \
+ V(Upsilon1, 161) \
+ V(Xi, 88) \
+ V(Zeta, 90) \
+ V(aleph, 192) \
+ V(alpha, 97) \
+ V(ampersand, 38) \
+ V(angle, 208) \
+ V(angleleft, 225) \
+ V(angleright, 241) \
+ V(approxequal, 187) \
+ V(arrowboth, 171) \
+ V(arrowdblboth, 219) \
+ V(arrowdbldown, 223) \
+ V(arrowdblleft, 220) \
+ V(arrowdblright, 222) \
+ V(arrowdblup, 221) \
+ V(arrowdown, 175) \
+ V(arrowhorizex, 190) \
+ V(arrowleft, 172) \
+ V(arrowright, 174) \
+ V(arrowup, 173) \
+ V(arrowvertex, 189) \
+ V(asteriskmath, 42) \
+ V(bar, 124) \
+ V(beta, 98) \
+ V(braceleft, 123) \
+ V(braceright, 125) \
+ V(bracelefttp, 236) \
+ V(braceleftmid, 237) \
+ V(braceleftbt, 238) \
+ V(bracerighttp, 252) \
+ V(bracerightmid, 253) \
+ V(bracerightbt, 254) \
+ V(braceex, 239) \
+ V(bracketleft, 91) \
+ V(bracketright, 93) \
+ V(bracketlefttp, 233) \
+ V(bracketleftex, 234) \
+ V(bracketleftbt, 235) \
+ V(bracketrighttp, 249) \
+ V(bracketrightex, 250) \
+ V(bracketrightbt, 251) \
+ V(bullet, 183) \
+ V(carriagereturn, 191) \
+ V(chi, 99) \
+ V(circlemultiply, 196) \
+ V(circleplus, 197) \
+ V(club, 167) \
+ V(colon, 58) \
+ V(comma, 44) \
+ V(congruent, 64) \
+ V(copyrightsans, 227) \
+ V(copyrightserif, 211) \
+ V(degree, 176) \
+ V(delta, 100) \
+ V(diamond, 168) \
+ V(divide, 184) \
+ V(dotmath, 215) \
+ V(eight, 56) \
+ V(element, 206) \
+ V(ellipsis, 188) \
+ V(emptyset, 198) \
+ V(epsilon, 101) \
+ V(equal, 61) \
+ V(equivalence, 186) \
+ V(eta, 104) \
+ V(exclam, 33) \
+ V(existential, 36) \
+ V(five, 53) \
+ V(florin, 166) \
+ V(four, 52) \
+ V(fraction, 164) \
+ V(gamma, 103) \
+ V(gradient, 209) \
+ V(greater, 62) \
+ V(greaterequal, 179) \
+ V(heart, 169) \
+ V(infinity, 165) \
+ V(integral, 242) \
+ V(integraltp, 243) \
+ V(integralex, 244) \
+ V(integralbt, 245) \
+ V(intersection, 199) \
+ V(iota, 105) \
+ V(kappa, 107) \
+ V(lambda, 108) \
+ V(less, 60) \
+ V(lessequal, 163) \
+ V(logicaland, 217) \
+ V(logicalnot, 216) \
+ V(logicalor, 218) \
+ V(lozenge, 224) \
+ V(minus, 45) \
+ V(minute, 162) \
+ V(mu, 109) \
+ V(multiply, 180) \
+ V(nine, 57) \
+ V(notelement, 207) \
+ V(notequal, 185) \
+ V(notsubset, 203) \
+ V(nu, 110) \
+ V(numbersign, 35) \
+ V(omega, 119) \
+ V(omega1, 118) \
+ V(omicron, 111) \
+ V(one, 49) \
+ V(parenleft, 40) \
+ V(parenright, 41) \
+ V(parenlefttp, 230) \
+ V(parenleftex, 231) \
+ V(parenleftbt, 232) \
+ V(parenrighttp, 246) \
+ V(parenrightex, 247) \
+ V(parenrightbt, 248) \
+ V(partialdiff, 182) \
+ V(percent, 37) \
+ V(period, 46) \
+ V(perpendicular, 94) \
+ V(phi, 102) \
+ V(phi1, 106) \
+ V(pi, 112) \
+ V(plus, 43) \
+ V(plusminus, 177) \
+ V(product, 213) \
+ V(propersubset, 204) \
+ V(propersuperset, 201) \
+ V(proportional, 181) \
+ V(psi, 121) \
+ V(question, 63) \
+ V(radical, 214) \
+ V(radicalex, 96) /* FIXME: What is this character, ? */ \
+ V(reflexsubset, 205) \
+ V(reflexsuperset, 202) \
+ V(registersans, 226) \
+ V(registerserif, 210) \
+ V(rho, 114) \
+ V(second, 178) \
+ V(semicolon, 59) \
+ V(seven, 55) \
+ V(sigma, 115) \
+ V(sigma1, 86) \
+ V(similar, 126) \
+ V(six, 54) \
+ V(slash, 47) \
+ V(space, 32) \
+ V(spade, 170) \
+ V(suchthat, 39) \
+ V(summation, 229) \
+ V(tau, 116) \
+ V(therefore, 92) \
+ V(theta, 113) \
+ V(theta1, 74) \
+ V(three, 51) \
+ V(trademarksans, 228) \
+ V(trademarkserif, 212) \
+ V(two, 50) \
+ V(underscore, 95) \
+ V(union, 200) \
+ V(universal, 34) \
+ V(upsilon, 117) \
+ V(weierstrass, 195) \
+ V(xi, 120) \
+ V(zero, 48) \
+ V(zeta, 15)
#define ENUMERATE_ZAPF_DINGBATS_CHARACTER_SET(V) \
- V(" ", space, 040) \
- V("✁", a1, 041) \
- V("✂", a2, 042) \
- V("✃", a202, 043) \
- V("✄", a3, 044) \
- V("☎", a4, 045) \
- V("✆", a5, 046) \
- V("✇", a119, 047) \
- V("✈", a118, 050) \
- V("✉", a117, 051) \
- V("☛", a11, 052) \
- V("☞", a12, 053) \
- V("✌", a13, 054) \
- V("✍", a14, 055) \
- V("✎", a15, 056) \
- V("✏", a16, 057) \
- V("✐", a105, 060) \
- V("✑", a17, 061) \
- V("✒", a18, 062) \
- V("✓", a19, 063) \
- V("✔", a20, 064) \
- V("✕", a21, 065) \
- V("✖", a22, 066) \
- V("✗", a23, 067) \
- V("✘", a24, 070) \
- V("✙", a25, 071) \
- V("✚", a26, 072) \
- V("✛", a27, 073) \
- V("✜", a28, 074) \
- V("✝", a6, 075) \
- V("✞", a7, 076) \
- V("✟", a8, 077) \
- V("✠", a9, 100) \
- V("✡", a10, 101) \
- V("✢", a29, 102) \
- V("✣", a30, 103) \
- V("✤", a31, 104) \
- V("✥", a32, 105) \
- V("✦", a33, 106) \
- V("✧", a34, 107) \
- V("★", a35, 110) \
- V("✩", a36, 111) \
- V("✪", a37, 112) \
- V("✫", a38, 113) \
- V("✬", a39, 114) \
- V("✭", a40, 115) \
- V("✮", a41, 116) \
- V("✯", a42, 117) \
- V("✰", a43, 120) \
- V("✱", a44, 121) \
- V("✲", a45, 122) \
- V("✳", a46, 123) \
- V("✴", a47, 124) \
- V("✵", a48, 125) \
- V("✶", a49, 126) \
- V("✷", a50, 127) \
- V("✸", a51, 130) \
- V("✹", a52, 131) \
- V("✺", a53, 132) \
- V("✻", a54, 133) \
- V("✼", a55, 134) \
- V("✽", a56, 135) \
- V("✾", a57, 136) \
- V("✿", a58, 137) \
- V("❀", a59, 140) \
- V("❁", a60, 141) \
- V("❂", a61, 142) \
- V("❃", a62, 143) \
- V("❄", a63, 144) \
- V("❅", a64, 145) \
- V("❆", a65, 146) \
- V("❇", a66, 147) \
- V("❈", a67, 150) \
- V("❉", a68, 151) \
- V("❊", a69, 152) \
- V("❋", a70, 153) \
- V("●", a71, 154) \
- V("❍", a72, 155) \
- V("■", a73, 156) \
- V("❏", a74, 157) \
- V("❐", a203, 160) \
- V("❑", a75, 161) \
- V("❒", a204, 162) \
- V("▲", a76, 163) \
- V("▼", a77, 164) \
- V("◆", a78, 165) \
- V("❖", a79, 166) \
- V("◗", a81, 167) \
- V("❘", a82, 170) \
- V("❙", a83, 171) \
- V("❚", a84, 172) \
- V("❛", a97, 173) \
- V("❜", a98, 174) \
- V("❝", a99, 175) \
- V("❞", a100, 176) \
- V("❡", a101, 241) \
- V("❢", a102, 242) \
- V("❣", a103, 243) \
- V("❤", a104, 244) \
- V("❥", a106, 245) \
- V("❦", a107, 246) \
- V("❧", a108, 247) \
- V("♣", a112, 250) \
- V("♦", a111, 251) \
- V("♥", a110, 252) \
- V("♠", a109, 253) \
- V("①", a120, 254) \
- V("②", a121, 255) \
- V("③", a122, 256) \
- V("④", a123, 257) \
- V("⑤", a124, 260) \
- V("⑥", a125, 261) \
- V("⑦", a126, 262) \
- V("⑧", a127, 263) \
- V("⑨", a128, 264) \
- V("⑩", a129, 265) \
- V("❶", a130, 266) \
- V("❷", a131, 267) \
- V("❸", a132, 270) \
- V("❹", a133, 271) \
- V("❺", a134, 272) \
- V("❻", a135, 273) \
- V("❼", a136, 274) \
- V("❽", a137, 275) \
- V("❾", a138, 276) \
- V("❿", a139, 277) \
- V("➀", a140, 300) \
- V("➁", a141, 301) \
- V("➂", a142, 302) \
- V("➃", a143, 303) \
- V("➄", a144, 304) \
- V("➅", a145, 305) \
- V("➆", a146, 306) \
- V("➇", a147, 307) \
- V("➈", a148, 310) \
- V("➉", a149, 311) \
- V("➊", a150, 312) \
- V("➋", a151, 313) \
- V("➌", a152, 314) \
- V("➍", a153, 315) \
- V("➎", a154, 316) \
- V("➏", a155, 317) \
- V("➐", a156, 320) \
- V("➑", a157, 321) \
- V("➒", a158, 322) \
- V("➓", a159, 323) \
- V("➔", a160, 324) \
- V("→", a161, 325) \
- V("↔", a163, 326) \
- V("↕", a164, 327) \
- V("➘", a196, 330) \
- V("➙", a165, 331) \
- V("➚", a192, 332) \
- V("➛", a166, 333) \
- V("➜", a167, 334) \
- V("➝", a168, 335) \
- V("➞", a169, 336) \
- V("➟", a170, 337) \
- V("➠", a171, 340) \
- V("➡", a172, 341) \
- V("➢", a173, 342) \
- V("➣", a162, 343) \
- V("➤", a174, 344) \
- V("➥", a175, 345) \
- V("➦", a176, 346) \
- V("➧", a177, 347) \
- V("➨", a178, 350) \
- V("➩", a179, 351) \
- V("➪", a193, 352) \
- V("➫", a180, 353) \
- V("➬", a199, 354) \
- V("➭", a181, 355) \
- V("➮", a200, 356) \
- V("➯", a182, 357) \
- V("➱", a201, 361) \
- V("➲", a183, 362) \
- V("➳", a184, 363) \
- V("➴", a197, 364) \
- V("➵", a185, 365) \
- V("➶", a194, 366) \
- V("➷", a198, 367) \
- V("➸", a186, 370) \
- V("➹", a195, 371) \
- V("➺", a187, 372) \
- V("➻", a188, 373) \
- V("➼", a189, 374) \
- V("➽", a190, 375) \
- V("➾", a191, 376)
+ V(space, 040) \
+ V(a1, 041) \
+ V(a2, 042) \
+ V(a202, 043) \
+ V(a3, 044) \
+ V(a4, 045) \
+ V(a5, 046) \
+ V(a119, 047) \
+ V(a118, 050) \
+ V(a117, 051) \
+ V(a11, 052) \
+ V(a12, 053) \
+ V(a13, 054) \
+ V(a14, 055) \
+ V(a15, 056) \
+ V(a16, 057) \
+ V(a105, 060) \
+ V(a17, 061) \
+ V(a18, 062) \
+ V(a19, 063) \
+ V(a20, 064) \
+ V(a21, 065) \
+ V(a22, 066) \
+ V(a23, 067) \
+ V(a24, 070) \
+ V(a25, 071) \
+ V(a26, 072) \
+ V(a27, 073) \
+ V(a28, 074) \
+ V(a6, 075) \
+ V(a7, 076) \
+ V(a8, 077) \
+ V(a9, 100) \
+ V(a10, 101) \
+ V(a29, 102) \
+ V(a30, 103) \
+ V(a31, 104) \
+ V(a32, 105) \
+ V(a33, 106) \
+ V(a34, 107) \
+ V(a35, 110) \
+ V(a36, 111) \
+ V(a37, 112) \
+ V(a38, 113) \
+ V(a39, 114) \
+ V(a40, 115) \
+ V(a41, 116) \
+ V(a42, 117) \
+ V(a43, 120) \
+ V(a44, 121) \
+ V(a45, 122) \
+ V(a46, 123) \
+ V(a47, 124) \
+ V(a48, 125) \
+ V(a49, 126) \
+ V(a50, 127) \
+ V(a51, 130) \
+ V(a52, 131) \
+ V(a53, 132) \
+ V(a54, 133) \
+ V(a55, 134) \
+ V(a56, 135) \
+ V(a57, 136) \
+ V(a58, 137) \
+ V(a59, 140) \
+ V(a60, 141) \
+ V(a61, 142) \
+ V(a62, 143) \
+ V(a63, 144) \
+ V(a64, 145) \
+ V(a65, 146) \
+ V(a66, 147) \
+ V(a67, 150) \
+ V(a68, 151) \
+ V(a69, 152) \
+ V(a70, 153) \
+ V(a71, 154) \
+ V(a72, 155) \
+ V(a73, 156) \
+ V(a74, 157) \
+ V(a203, 160) \
+ V(a75, 161) \
+ V(a204, 162) \
+ V(a76, 163) \
+ V(a77, 164) \
+ V(a78, 165) \
+ V(a79, 166) \
+ V(a81, 167) \
+ V(a82, 170) \
+ V(a83, 171) \
+ V(a84, 172) \
+ V(a97, 173) \
+ V(a98, 174) \
+ V(a99, 175) \
+ V(a100, 176) \
+ V(a101, 241) \
+ V(a102, 242) \
+ V(a103, 243) \
+ V(a104, 244) \
+ V(a106, 245) \
+ V(a107, 246) \
+ V(a108, 247) \
+ V(a112, 250) \
+ V(a111, 251) \
+ V(a110, 252) \
+ V(a109, 253) \
+ V(a120, 254) \
+ V(a121, 255) \
+ V(a122, 256) \
+ V(a123, 257) \
+ V(a124, 260) \
+ V(a125, 261) \
+ V(a126, 262) \
+ V(a127, 263) \
+ V(a128, 264) \
+ V(a129, 265) \
+ V(a130, 266) \
+ V(a131, 267) \
+ V(a132, 270) \
+ V(a133, 271) \
+ V(a134, 272) \
+ V(a135, 273) \
+ V(a136, 274) \
+ V(a137, 275) \
+ V(a138, 276) \
+ V(a139, 277) \
+ V(a140, 300) \
+ V(a141, 301) \
+ V(a142, 302) \
+ V(a143, 303) \
+ V(a144, 304) \
+ V(a145, 305) \
+ V(a146, 306) \
+ V(a147, 307) \
+ V(a148, 310) \
+ V(a149, 311) \
+ V(a150, 312) \
+ V(a151, 313) \
+ V(a152, 314) \
+ V(a153, 315) \
+ V(a154, 316) \
+ V(a155, 317) \
+ V(a156, 320) \
+ V(a157, 321) \
+ V(a158, 322) \
+ V(a159, 323) \
+ V(a160, 324) \
+ V(a161, 325) \
+ V(a163, 326) \
+ V(a164, 327) \
+ V(a196, 330) \
+ V(a165, 331) \
+ V(a192, 332) \
+ V(a166, 333) \
+ V(a167, 334) \
+ V(a168, 335) \
+ V(a169, 336) \
+ V(a170, 337) \
+ V(a171, 340) \
+ V(a172, 341) \
+ V(a173, 342) \
+ V(a162, 343) \
+ V(a174, 344) \
+ V(a175, 345) \
+ V(a176, 346) \
+ V(a177, 347) \
+ V(a178, 350) \
+ V(a179, 351) \
+ V(a193, 352) \
+ V(a180, 353) \
+ V(a199, 354) \
+ V(a181, 355) \
+ V(a200, 356) \
+ V(a182, 357) \
+ V(a201, 361) \
+ V(a183, 362) \
+ V(a184, 363) \
+ V(a197, 364) \
+ V(a185, 365) \
+ V(a194, 366) \
+ V(a198, 367) \
+ V(a186, 370) \
+ V(a195, 371) \
+ V(a187, 372) \
+ V(a188, 373) \
+ V(a189, 374) \
+ V(a190, 375) \
+ V(a191, 376)
namespace PDF {