/* * This file is subject to the terms and conditions defined in * file 'LICENSE.md', which is part of this source code package. */ package textencoding import ( "errors" "fmt" "sort" "strings" "github.com/unidoc/unidoc/common" "github.com/unidoc/unidoc/pdf/core" ) // Implementations of the standard 1-byte encodings // MacExpertEncoding // MacRomanEncoding // PdfDocEncoding // StandardEncoding // WinAnsiEncoding // ZapfDingbatsEncoding // SimpleEncoder represents a 1 byte encoding type SimpleEncoder struct { baseName string baseEncoding map[uint16]rune differences map[byte]string codeToGlyph map[uint16]string glyphToCode map[string]uint16 codeToRune map[uint16]rune } // NewCustomSimpleTextEncoder returns a SimpleEncoder based on map `encoding` and difference map // `differences`. func NewCustomSimpleTextEncoder(encoding map[uint16]string, differences map[byte]string) (SimpleEncoder, error) { baseName := "custom" baseEncoding := map[uint16]rune{} if len(encoding) == 0 { return SimpleEncoder{}, errors.New("Empty custom encoding") } for code, glyph := range encoding { r, ok := GlyphToRune(glyph) if !ok { common.Log.Debug("ERROR: Unknown glyph. %q", glyph) continue } baseEncoding[code] = r } return newSimpleTextEncoder(baseEncoding, baseName, differences) } // ApplyDifferences applies the encoding delta `differences` to `se`. func (se *SimpleEncoder) ApplyDifferences(differences map[byte]string) { se.differences = differences se.computeTables() } // NewSimpleTextEncoder returns a SimpleEncoder based on predefined encoding `baseName` and // difference map `differences`. func NewSimpleTextEncoder(baseName string, differences map[byte]string) (SimpleEncoder, error) { baseEncoding, ok := simpleEncodings[baseName] if !ok { common.Log.Debug("ERROR: NewSimpleTextEncoder. Unknown encoding %q", baseName) return SimpleEncoder{}, errors.New("Unsupported font encoding") } return newSimpleTextEncoder(baseEncoding, baseName, differences) } // newSimpleTextEncoder returns a SimpleEncoder based on map `encoding` and difference map // `differences`. func newSimpleTextEncoder(baseEncoding map[uint16]rune, baseName string, differences map[byte]string) (SimpleEncoder, error) { se := SimpleEncoder{ baseName: baseName, baseEncoding: baseEncoding, differences: differences, } se.computeTables() return se, nil } // simpleEncoderNumEntries is the maximum number of encoding entries shown in SimpleEncoder.String() const simpleEncoderNumEntries = 0 // String returns a string that describes `se`. func (se SimpleEncoder) String() string { name := se.baseName if len(se.differences) > 0 { name = fmt.Sprintf("%s(diff)", se.baseName) } parts := []string{ fmt.Sprintf("%#q %d entries %d differences", name, len(se.codeToGlyph), len(se.differences)), fmt.Sprintf("differences=%+v", se.differences), } codes := []int{} for c := range se.codeToGlyph { codes = append(codes, int(c)) } sort.Ints(codes) numCodes := len(codes) if numCodes > simpleEncoderNumEntries { numCodes = simpleEncoderNumEntries } for i := 0; i < numCodes; i++ { c := codes[i] parts = append(parts, fmt.Sprintf("%d=0x%02x: %q", c, c, se.codeToGlyph[uint16(c)])) } return fmt.Sprintf("SIMPLE_ENCODER{%s}", strings.Join(parts, ", ")) } // Encode converts a Go unicode string `raw` to a PDF encoded string. func (se SimpleEncoder) Encode(raw string) string { return doEncode(se, raw) } // CharcodeToGlyph returns the glyph name for character code `code`. // The bool return flag is true if there was a match, and false otherwise. func (se SimpleEncoder) CharcodeToGlyph(code uint16) (string, bool) { glyph, ok := se.codeToGlyph[code] if !ok { common.Log.Debug("Charcode -> Glyph error: charcode not found: 0x%04x", code) } return glyph, ok } // GlyphToCharcode returns character code for glyph `glyph`. // The bool return flag is true if there was a match, and false otherwise. func (se SimpleEncoder) GlyphToCharcode(glyph string) (uint16, bool) { code, ok := se.glyphToCode[glyph] if !ok { common.Log.Debug("Glyph -> Charcode error: glyph not found: %q", glyph) } return code, ok } // RuneToCharcode returns the PDF character code corresponding to rune `r`. // The bool return flag is true if there was a match, and false otherwise. func (se SimpleEncoder) RuneToCharcode(val rune) (uint16, bool) { return doRuneToCharcode(se, val) } // CharcodeToRune returns the rune corresponding to character code `code`. // The bool return flag is true if there was a match, and false otherwise. func (se SimpleEncoder) CharcodeToRune(code uint16) (rune, bool) { r, ok := se.codeToRune[code] if !ok { common.Log.Debug("Charcode -> Rune error: charcode not found: 0x%04x", code) } return r, ok } // RuneToGlyph returns the glyph corresponding to rune `r`. // The bool return flag is true if there was a match, and false otherwise. func (se SimpleEncoder) RuneToGlyph(r rune) (string, bool) { return runeToGlyph(r, glyphlistRuneToGlyphMap) } // GlyphToRune returns the rune corresponding to glyph `glyph`. // The bool return flag is true if there was a match, and false otherwise. func (se SimpleEncoder) GlyphToRune(glyph string) (rune, bool) { return glyphToRune(glyph, glyphlistGlyphToRuneMap) } // ToPdfObject returns `se` as a PdfObject func (se SimpleEncoder) ToPdfObject() core.PdfObject { if se.differences == nil { return core.MakeName(se.baseName) } dict := core.MakeDict() dict.Set("Type", core.MakeName("Encoding")) dict.Set("BaseEncoding", core.MakeName(se.baseName)) dict.Set("Differences", ToFontDifferences(se.differences)) return core.MakeIndirectObject(dict) } // computeTables computes the tables needed for a working SimpleEncoder from the member // fields `baseEncoding` and `differences`. func (se *SimpleEncoder) computeTables() { codeToRune := map[uint16]rune{} for code, r := range se.baseEncoding { codeToRune[code] = r } if se.differences != nil { for code, glyph := range se.differences { r, ok := GlyphToRune(glyph) if !ok { common.Log.Debug("ERROR: No match for glyph=%q differences=%+v", glyph, se.differences) } codeToRune[uint16(code)] = r } } codeToGlyph := map[uint16]string{} glyphToCode := map[string]uint16{} for code, r := range codeToRune { glyph := glyphlistRuneToGlyphMap[r] codeToGlyph[code] = glyph glyphToCode[glyph] = code if glyph == "" { common.Log.Debug("ERROR: Empty glyph code=0x%04x r=%+q=%#q", code, r, r) } } se.codeToGlyph = codeToGlyph se.glyphToCode = glyphToCode se.codeToRune = codeToRune } // FromFontDifferences converts `diffList`, a /Differences array from an /Encoding object to a map // representing character code to glyph mappings. func FromFontDifferences(diffList *core.PdfObjectArray) (map[byte]string, error) { differences := map[byte]string{} var n byte for _, obj := range diffList.Elements() { switch v := obj.(type) { case *core.PdfObjectInteger: n = byte(*v) case *core.PdfObjectName: s := string(*v) differences[n] = s n++ default: common.Log.Debug("ERROR: Bad type. obj=%s", obj) return nil, core.ErrTypeError } } return differences, nil } // ToFontDifferences converts `differences`, a map representing character code to glyph mappings, // to a /Differences array for an /Encoding object. func ToFontDifferences(differences map[byte]string) *core.PdfObjectArray { if len(differences) == 0 { return nil } codes := []byte{} for c := range differences { codes = append(codes, c) } sort.Slice(codes, func(i, j int) bool { return codes[i] < codes[j] }) n := codes[0] diffList := []core.PdfObject{core.MakeInteger(int64(n)), core.MakeName(differences[n])} for _, c := range codes[1:] { if c == n+1 { diffList = append(diffList, core.MakeName(differences[c])) } else { diffList = append(diffList, core.MakeInteger(int64(c))) } n = c } return core.MakeArray(diffList...) } // simpleEncodings is a map of the standard 8 bit character encodings. var simpleEncodings = map[string]map[uint16]rune{ "MacExpertEncoding": map[uint16]rune{ 0x20: '\u0020', // "space" 0x21: '\uf721', // "exclamsmall" 0x22: '\uf6f8', // "Hungarumlautsmall" 0x23: '\uf7a2', // "centoldstyle" 0x24: '\uf724', // "dollaroldstyle" 0x25: '\uf6e4', // "dollarsuperior" 0x26: '\uf726', // "ampersandsmall" 0x27: '\uf7b4', // "Acutesmall" 0x28: '\u207d', // ⁽ "parenleftsuperior" 0x29: '\u207e', // ⁾ "parenrightsuperior" 0x2a: '\u2025', // ‥ "twodotenleader" 0x2b: '\u2024', // ․ "onedotenleader" 0x2c: '\u002c', // , "comma" 0x2d: '\u002d', // - "hyphen" 0x2e: '\u002e', // . "period" 0x2f: '\u2044', // ⁄ "fraction" 0x30: '\uf730', // "zerooldstyle" 0x31: '\uf731', // "oneoldstyle" 0x32: '\uf732', // "twooldstyle" 0x33: '\uf733', // "threeoldstyle" 0x34: '\uf734', // "fouroldstyle" 0x35: '\uf735', // "fiveoldstyle" 0x36: '\uf736', // "sixoldstyle" 0x37: '\uf737', // "sevenoldstyle" 0x38: '\uf738', // "eightoldstyle" 0x39: '\uf739', // "nineoldstyle" 0x3a: '\u003a', // : "colon" 0x3b: '\u003b', // ; "semicolon" 0x3d: '\uf6de', // "threequartersemdash" 0x3f: '\uf73f', // "questionsmall" 0x44: '\uf7f0', // "Ethsmall" 0x47: '\u00bc', // ¼ "onequarter" 0x48: '\u00bd', // ½ "onehalf" 0x49: '\u00be', // ¾ "threequarters" 0x4a: '\u215b', // ⅛ "oneeighth" 0x4b: '\u215c', // ⅜ "threeeighths" 0x4c: '\u215d', // ⅝ "fiveeighths" 0x4d: '\u215e', // ⅞ "seveneighths" 0x4e: '\u2153', // ⅓ "onethird" 0x4f: '\u2154', // ⅔ "twothirds" 0x56: '\ufb00', // ff "ff" 0x57: '\ufb01', // fi "fi" 0x58: '\ufb02', // fl "fl" 0x59: '\ufb03', // ffi "ffi" 0x5a: '\ufb04', // ffl "ffl" 0x5b: '\u208d', // ₍ "parenleftinferior" 0x5d: '\u208e', // ₎ "parenrightinferior" 0x5e: '\uf6f6', // "Circumflexsmall" 0x5f: '\uf6e5', // "hypheninferior" 0x60: '\uf760', // "Gravesmall" 0x61: '\uf761', // "Asmall" 0x62: '\uf762', // "Bsmall" 0x63: '\uf763', // "Csmall" 0x64: '\uf764', // "Dsmall" 0x65: '\uf765', // "Esmall" 0x66: '\uf766', // "Fsmall" 0x67: '\uf767', // "Gsmall" 0x68: '\uf768', // "Hsmall" 0x69: '\uf769', // "Ismall" 0x6a: '\uf76a', // "Jsmall" 0x6b: '\uf76b', // "Ksmall" 0x6c: '\uf76c', // "Lsmall" 0x6d: '\uf76d', // "Msmall" 0x6e: '\uf76e', // "Nsmall" 0x6f: '\uf76f', // "Osmall" 0x70: '\uf770', // "Psmall" 0x71: '\uf771', // "Qsmall" 0x72: '\uf772', // "Rsmall" 0x73: '\uf773', // "Ssmall" 0x74: '\uf774', // "Tsmall" 0x75: '\uf775', // "Usmall" 0x76: '\uf776', // "Vsmall" 0x77: '\uf777', // "Wsmall" 0x78: '\uf778', // "Xsmall" 0x79: '\uf779', // "Ysmall" 0x7a: '\uf77a', // "Zsmall" 0x7b: '\u20a1', // ₡ "colonmonetary" 0x7c: '\uf6dc', // "onefitted" 0x7d: '\uf6dd', // "rupiah" 0x7e: '\uf6fe', // "Tildesmall" 0x81: '\uf6e9', // "asuperior" 0x82: '\uf6e0', // "centsuperior" 0x87: '\uf7e1', // "Aacutesmall" 0x88: '\uf7e0', // "Agravesmall" 0x89: '\uf7e2', // "Acircumflexsmall" 0x8a: '\uf7e4', // "Adieresissmall" 0x8b: '\uf7e3', // "Atildesmall" 0x8c: '\uf7e5', // "Aringsmall" 0x8d: '\uf7e7', // "Ccedillasmall" 0x8e: '\uf7e9', // "Eacutesmall" 0x8f: '\uf7e8', // "Egravesmall" 0x90: '\uf7ea', // "Ecircumflexsmall" 0x91: '\uf7eb', // "Edieresissmall" 0x92: '\uf7ed', // "Iacutesmall" 0x93: '\uf7ec', // "Igravesmall" 0x94: '\uf7ee', // "Icircumflexsmall" 0x95: '\uf7ef', // "Idieresissmall" 0x96: '\uf7f1', // "Ntildesmall" 0x97: '\uf7f3', // "Oacutesmall" 0x98: '\uf7f2', // "Ogravesmall" 0x99: '\uf7f4', // "Ocircumflexsmall" 0x9a: '\uf7f6', // "Odieresissmall" 0x9b: '\uf7f5', // "Otildesmall" 0x9c: '\uf7fa', // "Uacutesmall" 0x9d: '\uf7f9', // "Ugravesmall" 0x9e: '\uf7fb', // "Ucircumflexsmall" 0x9f: '\uf7fc', // "Udieresissmall" 0xa1: '\u2078', // ⁸ "eightsuperior" 0xa2: '\u2084', // ₄ "fourinferior" 0xa3: '\u2083', // ₃ "threeinferior" 0xa4: '\u2086', // ₆ "sixinferior" 0xa5: '\u2088', // ₈ "eightinferior" 0xa6: '\u2087', // ₇ "seveninferior" 0xa7: '\uf6fd', // "Scaronsmall" 0xa9: '\uf6df', // "centinferior" 0xaa: '\u2082', // ₂ "twoinferior" 0xac: '\uf7a8', // "Dieresissmall" 0xae: '\uf6f5', // "Caronsmall" 0xaf: '\uf6f0', // "osuperior" 0xb0: '\u2085', // ₅ "fiveinferior" 0xb2: '\uf6e1', // "commainferior" 0xb3: '\uf6e7', // "periodinferior" 0xb4: '\uf7fd', // "Yacutesmall" 0xb6: '\uf6e3', // "dollarinferior" 0xb9: '\uf7fe', // "Thornsmall" 0xbb: '\u2089', // ₉ "nineinferior" 0xbc: '\u2080', // ₀ "zeroinferior" 0xbd: '\uf6ff', // "Zcaronsmall" 0xbe: '\uf7e6', // "AEsmall" 0xbf: '\uf7f8', // "Oslashsmall" 0xc0: '\uf7bf', // "questiondownsmall" 0xc1: '\u2081', // ₁ "oneinferior" 0xc2: '\uf6f9', // "Lslashsmall" 0xc9: '\uf7b8', // "Cedillasmall" 0xcf: '\uf6fa', // "OEsmall" 0xd0: '\u2012', // ‒ "figuredash" 0xd1: '\uf6e6', // "hyphensuperior" 0xd6: '\uf7a1', // "exclamdownsmall" 0xd8: '\uf7ff', // "Ydieresissmall" 0xda: '\u00b9', // ¹ "onesuperior" 0xdb: '\u00b2', // ² "twosuperior" 0xdc: '\u00b3', // ³ "threesuperior" 0xdd: '\u2074', // ⁴ "foursuperior" 0xde: '\u2075', // ⁵ "fivesuperior" 0xdf: '\u2076', // ⁶ "sixsuperior" 0xe0: '\u2077', // ⁷ "sevensuperior" 0xe1: '\u2079', // ⁹ "ninesuperior" 0xe2: '\u2070', // ⁰ "zerosuperior" 0xe4: '\uf6ec', // "esuperior" 0xe5: '\uf6f1', // "rsuperior" 0xe6: '\uf6f3', // "tsuperior" 0xe9: '\uf6ed', // "isuperior" 0xea: '\uf6f2', // "ssuperior" 0xeb: '\uf6eb', // "dsuperior" 0xf1: '\uf6ee', // "lsuperior" 0xf2: '\uf6fb', // "Ogoneksmall" 0xf3: '\uf6f4', // "Brevesmall" 0xf4: '\uf7af', // "Macronsmall" 0xf5: '\uf6ea', // "bsuperior" 0xf6: '\u207f', // ⁿ "nsuperior" 0xf7: '\uf6ef', // "msuperior" 0xf8: '\uf6e2', // "commasuperior" 0xf9: '\uf6e8', // "periodsuperior" 0xfa: '\uf6f7', // "Dotaccentsmall" 0xfb: '\uf6fc', // "Ringsmall" }, "MacRomanEncoding": map[uint16]rune{ 0x01: '\u0001', // "controlSTX" 0x02: '\u0002', // "controlSOT" 0x03: '\u0003', // "controlETX" 0x04: '\u0004', // "controlEOT" 0x05: '\u0005', // "controlENQ" 0x06: '\u0006', // "controlACK" 0x07: '\u0007', // "controlBEL" 0x08: '\u0008', // "controlBS" 0x09: '\u0009', // "controlHT" 0x0a: '\u000a', // "controlLF" 0x0b: '\u000b', // "controlVT" 0x0c: '\u000c', // "controlFF" 0x0d: '\u000d', // "controlCR" 0x0e: '\u000e', // "controlSO" 0x0f: '\u000f', // "controlSI" 0x10: '\u0010', // "controlDLE" 0x11: '\u0011', // "controlDC1" 0x12: '\u0012', // "controlDC2" 0x13: '\u0013', // "controlDC3" 0x14: '\u0014', // "controlDC4" 0x15: '\u0015', // "controlNAK" 0x16: '\u0016', // "controlSYN" 0x17: '\u0017', // "controlETB" 0x18: '\u0018', // "controlCAN" 0x19: '\u0019', // "controlEM" 0x1a: '\u001a', // "controlSUB" 0x1b: '\u001b', // "controlESC" 0x1c: '\u001c', // "controlFS" 0x1d: '\u001d', // "controlGS" 0x1e: '\u001e', // "controlRS" 0x1f: '\u001f', // "controlUS" 0x20: '\u0020', // "space" 0x21: '\u0021', // ! "exclam" 0x22: '\u0022', // " "quotedbl" 0x23: '\u0023', // # "numbersign" 0x24: '\u0024', // $ "dollar" 0x25: '\u0025', // % "percent" 0x26: '\u0026', // & "ampersand" 0x27: '\u0027', // ' "quotesingle" 0x28: '\u0028', // ( "parenleft" 0x29: '\u0029', // ) "parenright" 0x2a: '\u002a', // * "asterisk" 0x2b: '\u002b', // + "plus" 0x2c: '\u002c', // , "comma" 0x2d: '\u002d', // - "hyphen" 0x2e: '\u002e', // . "period" 0x2f: '\u002f', // / "slash" 0x30: '\u0030', // 0 "zero" 0x31: '\u0031', // 1 "one" 0x32: '\u0032', // 2 "two" 0x33: '\u0033', // 3 "three" 0x34: '\u0034', // 4 "four" 0x35: '\u0035', // 5 "five" 0x36: '\u0036', // 6 "six" 0x37: '\u0037', // 7 "seven" 0x38: '\u0038', // 8 "eight" 0x39: '\u0039', // 9 "nine" 0x3a: '\u003a', // : "colon" 0x3b: '\u003b', // ; "semicolon" 0x3c: '\u003c', // < "less" 0x3d: '\u003d', // = "equal" 0x3e: '\u003e', // > "greater" 0x3f: '\u003f', // ? "question" 0x40: '\u0040', // @ "at" 0x41: '\u0041', // A "A" 0x42: '\u0042', // B "B" 0x43: '\u0043', // C "C" 0x44: '\u0044', // D "D" 0x45: '\u0045', // E "E" 0x46: '\u0046', // F "F" 0x47: '\u0047', // G "G" 0x48: '\u0048', // H "H" 0x49: '\u0049', // I "I" 0x4a: '\u004a', // J "J" 0x4b: '\u004b', // K "K" 0x4c: '\u004c', // L "L" 0x4d: '\u004d', // M "M" 0x4e: '\u004e', // N "N" 0x4f: '\u004f', // O "O" 0x50: '\u0050', // P "P" 0x51: '\u0051', // Q "Q" 0x52: '\u0052', // R "R" 0x53: '\u0053', // S "S" 0x54: '\u0054', // T "T" 0x55: '\u0055', // U "U" 0x56: '\u0056', // V "V" 0x57: '\u0057', // W "W" 0x58: '\u0058', // X "X" 0x59: '\u0059', // Y "Y" 0x5a: '\u005a', // Z "Z" 0x5b: '\u005b', // [ "bracketleft" 0x5c: '\u005c', // \ "backslash" 0x5d: '\u005d', // ] "bracketright" 0x5e: '\u005e', // ^ "asciicircum" 0x5f: '\u005f', // _ "underscore" 0x60: '\u0060', // ` "grave" 0x61: '\u0061', // a "a" 0x62: '\u0062', // b "b" 0x63: '\u0063', // c "c" 0x64: '\u0064', // d "d" 0x65: '\u0065', // e "e" 0x66: '\u0066', // f "f" 0x67: '\u0067', // g "g" 0x68: '\u0068', // h "h" 0x69: '\u0069', // i "i" 0x6a: '\u006a', // j "j" 0x6b: '\u006b', // k "k" 0x6c: '\u006c', // l "l" 0x6d: '\u006d', // m "m" 0x6e: '\u006e', // n "n" 0x6f: '\u006f', // o "o" 0x70: '\u0070', // p "p" 0x71: '\u0071', // q "q" 0x72: '\u0072', // r "r" 0x73: '\u0073', // s "s" 0x74: '\u0074', // t "t" 0x75: '\u0075', // u "u" 0x76: '\u0076', // v "v" 0x77: '\u0077', // w "w" 0x78: '\u0078', // x "x" 0x79: '\u0079', // y "y" 0x7a: '\u007a', // z "z" 0x7b: '\u007b', // { "braceleft" 0x7c: '\u007c', // | "bar" 0x7d: '\u007d', // } "braceright" 0x7e: '\u007e', // ~ "asciitilde" 0x7f: '\u007f', // "controlDEL" 0x80: '\u00c4', // Ä "Adieresis" 0x81: '\u00c5', // Å "Aring" 0x82: '\u00c7', // Ç "Ccedilla" 0x83: '\u00c9', // É "Eacute" 0x84: '\u00d1', // Ñ "Ntilde" 0x85: '\u00d6', // Ö "Odieresis" 0x86: '\u00dc', // Ü "Udieresis" 0x87: '\u00e1', // á "aacute" 0x88: '\u00e0', // à "agrave" 0x89: '\u00e2', // â "acircumflex" 0x8a: '\u00e4', // ä "adieresis" 0x8b: '\u00e3', // ã "atilde" 0x8c: '\u00e5', // å "aring" 0x8d: '\u00e7', // ç "ccedilla" 0x8e: '\u00e9', // é "eacute" 0x8f: '\u00e8', // è "egrave" 0x90: '\u00ea', // ê "ecircumflex" 0x91: '\u00eb', // ë "edieresis" 0x92: '\u00ed', // í "iacute" 0x93: '\u00ec', // ì "igrave" 0x94: '\u00ee', // î "icircumflex" 0x95: '\u00ef', // ï "idieresis" 0x96: '\u00f1', // ñ "ntilde" 0x97: '\u00f3', // ó "oacute" 0x98: '\u00f2', // ò "ograve" 0x99: '\u00f4', // ô "ocircumflex" 0x9a: '\u00f6', // ö "odieresis" 0x9b: '\u00f5', // õ "otilde" 0x9c: '\u00fa', // ú "uacute" 0x9d: '\u00f9', // ù "ugrave" 0x9e: '\u00fb', // û "ucircumflex" 0x9f: '\u00fc', // ü "udieresis" 0xa0: '\u2020', // † "dagger" 0xa1: '\u00b0', // ° "degree" 0xa2: '\u00a2', // ¢ "cent" 0xa3: '\u00a3', // £ "sterling" 0xa4: '\u00a7', // § "section" 0xa5: '\u2022', // • "bullet" 0xa6: '\u00b6', // ¶ "paragraph" 0xa7: '\u00df', // ß "germandbls" 0xa8: '\u00ae', // ® "registered" 0xa9: '\u00a9', // © "copyright" 0xaa: '\u2122', // ™ "trademark" 0xab: '\u00b4', // ´ "acute" 0xac: '\u00a8', // ¨ "dieresis" 0xad: '\u2260', // ≠ "notequal" 0xae: '\u00c6', // Æ "AE" 0xaf: '\u00d8', // Ø "Oslash" 0xb0: '\u221e', // ∞ "infinity" 0xb1: '\u00b1', // ± "plusminus" 0xb2: '\u2264', // ≤ "lessequal" 0xb3: '\u2265', // ≥ "greaterequal" 0xb4: '\u00a5', // ¥ "yen" 0xb5: '\u00b5', // µ "mu" 0xb6: '\u2202', // ∂ "partialdiff" 0xb7: '\u2211', // ∑ "summation" 0xb8: '\u220f', // ∏ "product" 0xb9: '\u03c0', // π "pi" 0xba: '\u222b', // ∫ "integral" 0xbb: '\u00aa', // ª "ordfeminine" 0xbc: '\u00ba', // º "ordmasculine" 0xbd: '\u03a9', // Ω "Omegagreek" 0xbe: '\u00e6', // æ "ae" 0xbf: '\u00f8', // ø "oslash" 0xc0: '\u00bf', // ¿ "questiondown" 0xc1: '\u00a1', // ¡ "exclamdown" 0xc2: '\u00ac', // ¬ "logicalnot" 0xc3: '\u221a', // √ "radical" 0xc4: '\u0192', // ƒ "florin" 0xc5: '\u2248', // ≈ "approxequal" 0xc6: '\u2206', // ∆ "Delta" 0xc7: '\u00ab', // « "guillemotleft" 0xc8: '\u00bb', // » "guillemotright" 0xc9: '\u2026', // … "ellipsis" 0xca: '\u00a0', // "nbspace" 0xcb: '\u00c0', // À "Agrave" 0xcc: '\u00c3', // à "Atilde" 0xcd: '\u00d5', // Õ "Otilde" 0xce: '\u0152', // Œ "OE" 0xcf: '\u0153', // œ "oe" 0xd0: '\u2013', // – "endash" 0xd1: '\u2014', // — "emdash" 0xd2: '\u201c', // “ "quotedblleft" 0xd3: '\u201d', // ” "quotedblright" 0xd4: '\u2018', // ‘ "quoteleft" 0xd5: '\u2019', // ’ "quoteright" 0xd6: '\u00f7', // ÷ "divide" 0xd7: '\u25ca', // ◊ "lozenge" 0xd8: '\u00ff', // ÿ "ydieresis" 0xd9: '\u0178', // Ÿ "Ydieresis" 0xda: '\u2044', // ⁄ "fraction" 0xdb: '\u20ac', // € "Euro" 0xdc: '\u2039', // ‹ "guilsinglleft" 0xdd: '\u203a', // › "guilsinglright" 0xde: '\ufb01', // fi "fi" 0xdf: '\ufb02', // fl "fl" 0xe0: '\u2021', // ‡ "daggerdbl" 0xe1: '\u00b7', // · "middot" 0xe2: '\u201a', // ‚ "quotesinglbase" 0xe3: '\u201e', // „ "quotedblbase" 0xe4: '\u2030', // ‰ "perthousand" 0xe5: '\u00c2', //  "Acircumflex" 0xe6: '\u00ca', // Ê "Ecircumflex" 0xe7: '\u00c1', // Á "Aacute" 0xe8: '\u00cb', // Ë "Edieresis" 0xe9: '\u00c8', // È "Egrave" 0xea: '\u00cd', // Í "Iacute" 0xeb: '\u00ce', // Î "Icircumflex" 0xec: '\u00cf', // Ï "Idieresis" 0xed: '\u00cc', // Ì "Igrave" 0xee: '\u00d3', // Ó "Oacute" 0xef: '\u00d4', // Ô "Ocircumflex" 0xf0: '\uf8ff', // "apple" 0xf1: '\u00d2', // Ò "Ograve" 0xf2: '\u00da', // Ú "Uacute" 0xf3: '\u00db', // Û "Ucircumflex" 0xf4: '\u00d9', // Ù "Ugrave" 0xf5: '\u0131', // ı "dotlessi" 0xf6: '\u02c6', // ˆ "circumflex" 0xf7: '\u02dc', // ˜ "ilde" 0xf8: '\u00af', // ¯ "macron" 0xf9: '\u02d8', // ˘ "breve" 0xfa: '\u02d9', // ˙ "dotaccent" 0xfb: '\u02da', // ˚ "ring" 0xfc: '\u00b8', // ¸ "cedilla" 0xfd: '\u02dd', // ˝ "hungarumlaut" 0xfe: '\u02db', // ˛ "ogonek" 0xff: '\u02c7', // ˇ "caron" }, "PdfDocEncoding": map[uint16]rune{ 0x01: '\u0001', // "controlSTX" 0x02: '\u0002', // "controlSOT" 0x03: '\u0003', // "controlETX" 0x04: '\u0004', // "controlEOT" 0x05: '\u0005', // "controlENQ" 0x06: '\u0006', // "controlACK" 0x07: '\u0007', // "controlBEL" 0x08: '\u0008', // "controlBS" 0x09: '\u0009', // "controlHT" 0x0a: '\u000a', // "controlLF" 0x0b: '\u000b', // "controlVT" 0x0c: '\u000c', // "controlFF" 0x0d: '\u000d', // "controlCR" 0x0e: '\u000e', // "controlSO" 0x0f: '\u000f', // "controlSI" 0x10: '\u0010', // "controlDLE" 0x11: '\u0011', // "controlDC1" 0x12: '\u0012', // "controlDC2" 0x13: '\u0013', // "controlDC3" 0x14: '\u0014', // "controlDC4" 0x15: '\u0015', // "controlNAK" 0x16: '\u0017', // "controlETB" 0x17: '\u0017', // "controlETB" 0x18: '\u02d8', // ˘ "breve" 0x19: '\u02c7', // ˇ "caron" 0x1a: '\u02c6', // ˆ "circumflex" 0x1b: '\u02d9', // ˙ "dotaccent" 0x1c: '\u02dd', // ˝ "hungarumlaut" 0x1d: '\u02db', // ˛ "ogonek" 0x1e: '\u02da', // ˚ "ring" 0x1f: '\u02dc', // ˜ "ilde" 0x20: '\u0020', // "space" 0x21: '\u0021', // ! "exclam" 0x22: '\u0022', // " "quotedbl" 0x23: '\u0023', // # "numbersign" 0x24: '\u0024', // $ "dollar" 0x25: '\u0025', // % "percent" 0x26: '\u0026', // & "ampersand" 0x27: '\u0027', // ' "quotesingle" 0x28: '\u0028', // ( "parenleft" 0x29: '\u0029', // ) "parenright" 0x2a: '\u002a', // * "asterisk" 0x2b: '\u002b', // + "plus" 0x2c: '\u002c', // , "comma" 0x2d: '\u002d', // - "hyphen" 0x2e: '\u002e', // . "period" 0x2f: '\u002f', // / "slash" 0x30: '\u0030', // 0 "zero" 0x31: '\u0031', // 1 "one" 0x32: '\u0032', // 2 "two" 0x33: '\u0033', // 3 "three" 0x34: '\u0034', // 4 "four" 0x35: '\u0035', // 5 "five" 0x36: '\u0036', // 6 "six" 0x37: '\u0037', // 7 "seven" 0x38: '\u0038', // 8 "eight" 0x39: '\u0039', // 9 "nine" 0x3a: '\u003a', // : "colon" 0x3b: '\u003b', // ; "semicolon" 0x3c: '\u003c', // < "less" 0x3d: '\u003d', // = "equal" 0x3e: '\u003e', // > "greater" 0x3f: '\u003f', // ? "question" 0x40: '\u0040', // @ "at" 0x41: '\u0041', // A "A" 0x42: '\u0042', // B "B" 0x43: '\u0043', // C "C" 0x44: '\u0044', // D "D" 0x45: '\u0045', // E "E" 0x46: '\u0046', // F "F" 0x47: '\u0047', // G "G" 0x48: '\u0048', // H "H" 0x49: '\u0049', // I "I" 0x4a: '\u004a', // J "J" 0x4b: '\u004b', // K "K" 0x4c: '\u004c', // L "L" 0x4d: '\u004d', // M "M" 0x4e: '\u004e', // N "N" 0x4f: '\u004f', // O "O" 0x50: '\u0050', // P "P" 0x51: '\u0051', // Q "Q" 0x52: '\u0052', // R "R" 0x53: '\u0053', // S "S" 0x54: '\u0054', // T "T" 0x55: '\u0055', // U "U" 0x56: '\u0056', // V "V" 0x57: '\u0057', // W "W" 0x58: '\u0058', // X "X" 0x59: '\u0059', // Y "Y" 0x5a: '\u005a', // Z "Z" 0x5b: '\u005b', // [ "bracketleft" 0x5c: '\u005c', // \ "backslash" 0x5d: '\u005d', // ] "bracketright" 0x5e: '\u005e', // ^ "asciicircum" 0x5f: '\u005f', // _ "underscore" 0x60: '\u0060', // ` "grave" 0x61: '\u0061', // a "a" 0x62: '\u0062', // b "b" 0x63: '\u0063', // c "c" 0x64: '\u0064', // d "d" 0x65: '\u0065', // e "e" 0x66: '\u0066', // f "f" 0x67: '\u0067', // g "g" 0x68: '\u0068', // h "h" 0x69: '\u0069', // i "i" 0x6a: '\u006a', // j "j" 0x6b: '\u006b', // k "k" 0x6c: '\u006c', // l "l" 0x6d: '\u006d', // m "m" 0x6e: '\u006e', // n "n" 0x6f: '\u006f', // o "o" 0x70: '\u0070', // p "p" 0x71: '\u0071', // q "q" 0x72: '\u0072', // r "r" 0x73: '\u0073', // s "s" 0x74: '\u0074', // t "t" 0x75: '\u0075', // u "u" 0x76: '\u0076', // v "v" 0x77: '\u0077', // w "w" 0x78: '\u0078', // x "x" 0x79: '\u0079', // y "y" 0x7a: '\u007a', // z "z" 0x7b: '\u007b', // { "braceleft" 0x7c: '\u007c', // | "bar" 0x7d: '\u007d', // } "braceright" 0x7e: '\u007e', // ~ "asciitilde" 0x80: '\u2022', // • "bullet" 0x81: '\u2020', // † "dagger" 0x82: '\u2021', // ‡ "daggerdbl" 0x83: '\u2026', // … "ellipsis" 0x84: '\u2014', // — "emdash" 0x85: '\u2013', // – "endash" 0x86: '\u0192', // ƒ "florin" 0x87: '\u2044', // ⁄ "fraction" 0x88: '\u2039', // ‹ "guilsinglleft" 0x89: '\u203a', // › "guilsinglright" 0x8a: '\u2212', // − "minus" 0x8b: '\u2030', // ‰ "perthousand" 0x8c: '\u201e', // „ "quotedblbase" 0x8d: '\u201c', // “ "quotedblleft" 0x8e: '\u201d', // ” "quotedblright" 0x8f: '\u2018', // ‘ "quoteleft" 0x90: '\u2019', // ’ "quoteright" 0x91: '\u201a', // ‚ "quotesinglbase" 0x92: '\u2122', // ™ "trademark" 0x93: '\ufb01', // fi "fi" 0x94: '\ufb02', // fl "fl" 0x95: '\u0141', // Ł "Lslash" 0x96: '\u0152', // Œ "OE" 0x97: '\u0160', // Š "Scaron" 0x98: '\u0178', // Ÿ "Ydieresis" 0x99: '\u017d', // Ž "Zcaron" 0x9a: '\u0131', // ı "dotlessi" 0x9b: '\u0142', // ł "lslash" 0x9c: '\u0153', // œ "oe" 0x9d: '\u0161', // š "scaron" 0x9e: '\u017e', // ž "zcaron" 0xa0: '\u20ac', // € "Euro" 0xa1: '\u00a1', // ¡ "exclamdown" 0xa2: '\u00a2', // ¢ "cent" 0xa3: '\u00a3', // £ "sterling" 0xa4: '\u00a4', // ¤ "currency" 0xa5: '\u00a5', // ¥ "yen" 0xa6: '\u00a6', // ¦ "brokenbar" 0xa7: '\u00a7', // § "section" 0xa8: '\u00a8', // ¨ "dieresis" 0xa9: '\u00a9', // © "copyright" 0xaa: '\u00aa', // ª "ordfeminine" 0xab: '\u00ab', // « "guillemotleft" 0xac: '\u00ac', // ¬ "logicalnot" 0xae: '\u00ae', // ® "registered" 0xaf: '\u00af', // ¯ "macron" 0xb0: '\u00b0', // ° "degree" 0xb1: '\u00b1', // ± "plusminus" 0xb2: '\u00b2', // ² "twosuperior" 0xb3: '\u00b3', // ³ "threesuperior" 0xb4: '\u00b4', // ´ "acute" 0xb5: '\u00b5', // µ "mu" 0xb6: '\u00b6', // ¶ "paragraph" 0xb7: '\u00b7', // · "middot" 0xb8: '\u00b8', // ¸ "cedilla" 0xb9: '\u00b9', // ¹ "onesuperior" 0xba: '\u00ba', // º "ordmasculine" 0xbb: '\u00bb', // » "guillemotright" 0xbc: '\u00bc', // ¼ "onequarter" 0xbd: '\u00bd', // ½ "onehalf" 0xbe: '\u00be', // ¾ "threequarters" 0xbf: '\u00bf', // ¿ "questiondown" 0xc0: '\u00c0', // À "Agrave" 0xc1: '\u00c1', // Á "Aacute" 0xc2: '\u00c2', //  "Acircumflex" 0xc3: '\u00c3', // à "Atilde" 0xc4: '\u00c4', // Ä "Adieresis" 0xc5: '\u00c5', // Å "Aring" 0xc6: '\u00c6', // Æ "AE" 0xc7: '\u00c7', // Ç "Ccedilla" 0xc8: '\u00c8', // È "Egrave" 0xc9: '\u00c9', // É "Eacute" 0xca: '\u00ca', // Ê "Ecircumflex" 0xcb: '\u00cb', // Ë "Edieresis" 0xcc: '\u00cc', // Ì "Igrave" 0xcd: '\u00cd', // Í "Iacute" 0xce: '\u00ce', // Î "Icircumflex" 0xcf: '\u00cf', // Ï "Idieresis" 0xd0: '\u00d0', // Ð "Eth" 0xd1: '\u00d1', // Ñ "Ntilde" 0xd2: '\u00d2', // Ò "Ograve" 0xd3: '\u00d3', // Ó "Oacute" 0xd4: '\u00d4', // Ô "Ocircumflex" 0xd5: '\u00d5', // Õ "Otilde" 0xd6: '\u00d6', // Ö "Odieresis" 0xd7: '\u00d7', // × "multiply" 0xd8: '\u00d8', // Ø "Oslash" 0xd9: '\u00d9', // Ù "Ugrave" 0xda: '\u00da', // Ú "Uacute" 0xdb: '\u00db', // Û "Ucircumflex" 0xdc: '\u00dc', // Ü "Udieresis" 0xdd: '\u00dd', // Ý "Yacute" 0xde: '\u00de', // Þ "Thorn" 0xdf: '\u00df', // ß "germandbls" 0xe0: '\u00e0', // à "agrave" 0xe1: '\u00e1', // á "aacute" 0xe2: '\u00e2', // â "acircumflex" 0xe3: '\u00e3', // ã "atilde" 0xe4: '\u00e4', // ä "adieresis" 0xe5: '\u00e5', // å "aring" 0xe6: '\u00e6', // æ "ae" 0xe7: '\u00e7', // ç "ccedilla" 0xe8: '\u00e8', // è "egrave" 0xe9: '\u00e9', // é "eacute" 0xea: '\u00ea', // ê "ecircumflex" 0xeb: '\u00eb', // ë "edieresis" 0xec: '\u00ec', // ì "igrave" 0xed: '\u00ed', // í "iacute" 0xee: '\u00ee', // î "icircumflex" 0xef: '\u00ef', // ï "idieresis" 0xf0: '\u00f0', // ð "eth" 0xf1: '\u00f1', // ñ "ntilde" 0xf2: '\u00f2', // ò "ograve" 0xf3: '\u00f3', // ó "oacute" 0xf4: '\u00f4', // ô "ocircumflex" 0xf5: '\u00f5', // õ "otilde" 0xf6: '\u00f6', // ö "odieresis" 0xf7: '\u00f7', // ÷ "divide" 0xf8: '\u00f8', // ø "oslash" 0xf9: '\u00f9', // ù "ugrave" 0xfa: '\u00fa', // ú "uacute" 0xfb: '\u00fb', // û "ucircumflex" 0xfc: '\u00fc', // ü "udieresis" 0xfd: '\u00fd', // ý "yacute" 0xfe: '\u00fe', // þ "thorn" 0xff: '\u00ff', // ÿ "ydieresis" }, "StandardEncoding": map[uint16]rune{ 0x20: '\u0020', // "space" 0x21: '\u0021', // ! "exclam" 0x22: '\u0022', // " "quotedbl" 0x23: '\u0023', // # "numbersign" 0x24: '\u0024', // $ "dollar" 0x25: '\u0025', // % "percent" 0x26: '\u0026', // & "ampersand" 0x27: '\u2019', // ’ "quoteright" 0x28: '\u0028', // ( "parenleft" 0x29: '\u0029', // ) "parenright" 0x2a: '\u002a', // * "asterisk" 0x2b: '\u002b', // + "plus" 0x2c: '\u002c', // , "comma" 0x2d: '\u002d', // - "hyphen" 0x2e: '\u002e', // . "period" 0x2f: '\u002f', // / "slash" 0x30: '\u0030', // 0 "zero" 0x31: '\u0031', // 1 "one" 0x32: '\u0032', // 2 "two" 0x33: '\u0033', // 3 "three" 0x34: '\u0034', // 4 "four" 0x35: '\u0035', // 5 "five" 0x36: '\u0036', // 6 "six" 0x37: '\u0037', // 7 "seven" 0x38: '\u0038', // 8 "eight" 0x39: '\u0039', // 9 "nine" 0x3a: '\u003a', // : "colon" 0x3b: '\u003b', // ; "semicolon" 0x3c: '\u003c', // < "less" 0x3d: '\u003d', // = "equal" 0x3e: '\u003e', // > "greater" 0x3f: '\u003f', // ? "question" 0x40: '\u0040', // @ "at" 0x41: '\u0041', // A "A" 0x42: '\u0042', // B "B" 0x43: '\u0043', // C "C" 0x44: '\u0044', // D "D" 0x45: '\u0045', // E "E" 0x46: '\u0046', // F "F" 0x47: '\u0047', // G "G" 0x48: '\u0048', // H "H" 0x49: '\u0049', // I "I" 0x4a: '\u004a', // J "J" 0x4b: '\u004b', // K "K" 0x4c: '\u004c', // L "L" 0x4d: '\u004d', // M "M" 0x4e: '\u004e', // N "N" 0x4f: '\u004f', // O "O" 0x50: '\u0050', // P "P" 0x51: '\u0051', // Q "Q" 0x52: '\u0052', // R "R" 0x53: '\u0053', // S "S" 0x54: '\u0054', // T "T" 0x55: '\u0055', // U "U" 0x56: '\u0056', // V "V" 0x57: '\u0057', // W "W" 0x58: '\u0058', // X "X" 0x59: '\u0059', // Y "Y" 0x5a: '\u005a', // Z "Z" 0x5b: '\u005b', // [ "bracketleft" 0x5c: '\u005c', // \ "backslash" 0x5d: '\u005d', // ] "bracketright" 0x5e: '\u005e', // ^ "asciicircum" 0x5f: '\u005f', // _ "underscore" 0x60: '\u0060', // ` "grave" 0x61: '\u0061', // a "a" 0x62: '\u0062', // b "b" 0x63: '\u0063', // c "c" 0x64: '\u0064', // d "d" 0x65: '\u0065', // e "e" 0x66: '\u0066', // f "f" 0x67: '\u0067', // g "g" 0x68: '\u0068', // h "h" 0x69: '\u0069', // i "i" 0x6a: '\u006a', // j "j" 0x6b: '\u006b', // k "k" 0x6c: '\u006c', // l "l" 0x6d: '\u006d', // m "m" 0x6e: '\u006e', // n "n" 0x6f: '\u006f', // o "o" 0x70: '\u0070', // p "p" 0x71: '\u0071', // q "q" 0x72: '\u0072', // r "r" 0x73: '\u0073', // s "s" 0x74: '\u0074', // t "t" 0x75: '\u0075', // u "u" 0x76: '\u0076', // v "v" 0x77: '\u0077', // w "w" 0x78: '\u0078', // x "x" 0x79: '\u0079', // y "y" 0x7a: '\u007a', // z "z" 0x7b: '\u007b', // { "braceleft" 0x7c: '\u007c', // | "bar" 0x7d: '\u007d', // } "braceright" 0x7e: '\u007e', // ~ "asciitilde" 0xa1: '\u00a1', // ¡ "exclamdown" 0xa2: '\u00a2', // ¢ "cent" 0xa3: '\u00a3', // £ "sterling" 0xa4: '\u2044', // ⁄ "fraction" 0xa5: '\u00a5', // ¥ "yen" 0xa6: '\u0192', // ƒ "florin" 0xa7: '\u00a7', // § "section" 0xa8: '\u00a4', // ¤ "currency" 0xa9: '\u0027', // ' "quotesingle" 0xaa: '\u201c', // “ "quotedblleft" 0xab: '\u00ab', // « "guillemotleft" 0xac: '\u2039', // ‹ "guilsinglleft" 0xad: '\u203a', // › "guilsinglright" 0xae: '\ufb01', // fi "fi" 0xaf: '\ufb02', // fl "fl" 0xb1: '\u2013', // – "endash" 0xb2: '\u2020', // † "dagger" 0xb3: '\u2021', // ‡ "daggerdbl" 0xb4: '\u00b7', // · "middot" 0xb6: '\u00b6', // ¶ "paragraph" 0xb7: '\u2022', // • "bullet" 0xb8: '\u201a', // ‚ "quotesinglbase" 0xb9: '\u201e', // „ "quotedblbase" 0xba: '\u201d', // ” "quotedblright" 0xbb: '\u00bb', // » "guillemotright" 0xbc: '\u2026', // … "ellipsis" 0xbd: '\u2030', // ‰ "perthousand" 0xbf: '\u00bf', // ¿ "questiondown" 0xc1: '\u0060', // ` "grave" 0xc2: '\u00b4', // ´ "acute" 0xc3: '\u02c6', // ˆ "circumflex" 0xc4: '\u02dc', // ˜ "ilde" 0xc5: '\u00af', // ¯ "macron" 0xc6: '\u02d8', // ˘ "breve" 0xc7: '\u02d9', // ˙ "dotaccent" 0xc8: '\u00a8', // ¨ "dieresis" 0xca: '\u02da', // ˚ "ring" 0xcb: '\u00b8', // ¸ "cedilla" 0xcc: '\u02dd', // ˝ "hungarumlaut" 0xcd: '\u02db', // ˛ "ogonek" 0xce: '\u02c7', // ˇ "caron" 0xcf: '\u2014', // — "emdash" 0xe0: '\u00c6', // Æ "AE" 0xe2: '\u00aa', // ª "ordfeminine" 0xe7: '\u0141', // Ł "Lslash" 0xe8: '\u00d8', // Ø "Oslash" 0xe9: '\u0152', // Œ "OE" 0xea: '\u00ba', // º "ordmasculine" 0xf0: '\u00e6', // æ "ae" 0xf4: '\u0131', // ı "dotlessi" 0xf7: '\u0142', // ł "lslash" 0xf8: '\u00f8', // ø "oslash" 0xf9: '\u0153', // œ "oe" 0xfa: '\u00df', // ß "germandbls" }, "SymbolEncoding": map[uint16]rune{ 0x20: '\u0020', // "space" 0x21: '\u0021', // ! "exclam" 0x22: '\u2200', // ∀ "forall" 0x23: '\u0023', // # "numbersign" 0x24: '\u2203', // ∃ "existential" 0x25: '\u0025', // % "percent" 0x26: '\u0026', // & "ampersand" 0x27: '\u220b', // ∋ "suchthat" 0x28: '\u0028', // ( "parenleft" 0x29: '\u0029', // ) "parenright" 0x2a: '\u2217', // ∗ "asteriskmath" 0x2b: '\u002b', // + "plus" 0x2c: '\u002c', // , "comma" 0x2d: '\u2212', // − "minus" 0x2e: '\u002e', // . "period" 0x2f: '\u002f', // / "slash" 0x30: '\u0030', // 0 "zero" 0x31: '\u0031', // 1 "one" 0x32: '\u0032', // 2 "two" 0x33: '\u0033', // 3 "three" 0x34: '\u0034', // 4 "four" 0x35: '\u0035', // 5 "five" 0x36: '\u0036', // 6 "six" 0x37: '\u0037', // 7 "seven" 0x38: '\u0038', // 8 "eight" 0x39: '\u0039', // 9 "nine" 0x3a: '\u003a', // : "colon" 0x3b: '\u003b', // ; "semicolon" 0x3c: '\u003c', // < "less" 0x3d: '\u003d', // = "equal" 0x3e: '\u003e', // > "greater" 0x3f: '\u003f', // ? "question" 0x40: '\u2245', // ≅ "approximatelyequal" 0x41: '\u0391', // Α "Alpha" 0x42: '\u0392', // Β "Beta" 0x43: '\u03a7', // Χ "Chi" 0x44: '\u0394', // Δ "Deltagreek" 0x45: '\u0395', // Ε "Epsilon" 0x46: '\u03a6', // Φ "Phi" 0x47: '\u0393', // Γ "Gamma" 0x48: '\u0397', // Η "Eta" 0x49: '\u0399', // Ι "Iota" 0x4a: '\u03d1', // ϑ "theta1" 0x4b: '\u039a', // Κ "Kappa" 0x4c: '\u039b', // Λ "Lambda" 0x4d: '\u039c', // Μ "Mu" 0x4e: '\u039d', // Ν "Nu" 0x4f: '\u039f', // Ο "Omicron" 0x50: '\u03a0', // Π "Pi" 0x51: '\u0398', // Θ "Theta" 0x52: '\u03a1', // Ρ "Rho" 0x53: '\u03a3', // Σ "Sigma" 0x54: '\u03a4', // Τ "Tau" 0x55: '\u03a5', // Υ "Upsilon" 0x56: '\u03c2', // ς "sigma1" 0x57: '\u03a9', // Ω "Omegagreek" 0x58: '\u039e', // Ξ "Xi" 0x59: '\u03a8', // Ψ "Psi" 0x5a: '\u0396', // Ζ "Zeta" 0x5b: '\u005b', // [ "bracketleft" 0x5c: '\u2234', // ∴ "therefore" 0x5d: '\u005d', // ] "bracketright" 0x5e: '\u22a5', // ⊥ "perpendicular" 0x5f: '\u005f', // _ "underscore" 0x60: '\uf8e5', // "radicalex" 0x61: '\u03b1', // α "alpha" 0x62: '\u03b2', // β "beta" 0x63: '\u03c7', // χ "chi" 0x64: '\u03b4', // δ "delta" 0x65: '\u03b5', // ε "epsilon" 0x66: '\u03c6', // φ "phi" 0x67: '\u03b3', // γ "gamma" 0x68: '\u03b7', // η "eta" 0x69: '\u03b9', // ι "iota" 0x6a: '\u03d5', // ϕ "phi1" 0x6b: '\u03ba', // κ "kappa" 0x6c: '\u03bb', // λ "lambda" 0x6d: '\u03bc', // μ "mugreek" 0x6e: '\u03bd', // ν "nu" 0x6f: '\u03bf', // ο "omicron" 0x70: '\u03c0', // π "pi" 0x71: '\u03b8', // θ "theta" 0x72: '\u03c1', // ρ "rho" 0x73: '\u03c3', // σ "sigma" 0x74: '\u03c4', // τ "tau" 0x75: '\u03c5', // υ "upsilon" 0x76: '\u03d6', // ϖ "omega1" 0x77: '\u03c9', // ω "omega" 0x78: '\u03be', // ξ "xi" 0x79: '\u03c8', // ψ "psi" 0x7a: '\u03b6', // ζ "zeta" 0x7b: '\u007b', // { "braceleft" 0x7c: '\u007c', // | "bar" 0x7d: '\u007d', // } "braceright" 0x7e: '\u223c', // ∼ "similar" 0xa0: '\u20ac', // € "Euro" 0xa1: '\u03d2', // ϒ "Upsilon1" 0xa2: '\u2032', // ′ "minute" 0xa3: '\u2264', // ≤ "lessequal" 0xa4: '\u2044', // ⁄ "fraction" 0xa5: '\u221e', // ∞ "infinity" 0xa6: '\u0192', // ƒ "florin" 0xa7: '\u2663', // ♣ "club" 0xa8: '\u2666', // ♦ "diamond" 0xa9: '\u2665', // ♥ "heart" 0xaa: '\u2660', // ♠ "spade" 0xab: '\u2194', // ↔ "arrowboth" 0xac: '\u2190', // ← "arrowleft" 0xad: '\u2191', // ↑ "arrowup" 0xae: '\u2192', // → "arrowright" 0xaf: '\u2193', // ↓ "arrowdown" 0xb0: '\u00b0', // ° "degree" 0xb1: '\u00b1', // ± "plusminus" 0xb2: '\u2033', // ″ "second" 0xb3: '\u2265', // ≥ "greaterequal" 0xb4: '\u00d7', // × "multiply" 0xb5: '\u221d', // ∝ "proportional" 0xb6: '\u2202', // ∂ "partialdiff" 0xb7: '\u2022', // • "bullet" 0xb8: '\u00f7', // ÷ "divide" 0xb9: '\u2260', // ≠ "notequal" 0xba: '\u2261', // ≡ "equivalence" 0xbb: '\u2248', // ≈ "approxequal" 0xbc: '\u2026', // … "ellipsis" 0xbd: '\uf8e6', // "arrowvertex" 0xbe: '\uf8e7', // "arrowhorizex" 0xbf: '\u21b5', // ↵ "carriagereturn" 0xc0: '\u2135', // ℵ "aleph" 0xc1: '\u2111', // ℑ "Ifraktur" 0xc2: '\u211c', // ℜ "Rfraktur" 0xc3: '\u2118', // ℘ "weierstrass" 0xc4: '\u2297', // ⊗ "circlemultiply" 0xc5: '\u2295', // ⊕ "circleplus" 0xc6: '\u2205', // ∅ "emptyset" 0xc7: '\u2229', // ∩ "intersection" 0xc8: '\u222a', // ∪ "union" 0xc9: '\u2283', // ⊃ "propersuperset" 0xca: '\u2287', // ⊇ "reflexsuperset" 0xcb: '\u2284', // ⊄ "notsubset" 0xcc: '\u2282', // ⊂ "propersubset" 0xcd: '\u2286', // ⊆ "reflexsubset" 0xce: '\u2208', // ∈ "element" 0xcf: '\u2209', // ∉ "notelement" 0xd0: '\u2220', // ∠ "angle" 0xd1: '\u2207', // ∇ "gradient" 0xd2: '\uf6da', // "registerserif" 0xd3: '\uf6d9', // "copyrightserif" 0xd4: '\uf6db', // "trademarkserif" 0xd5: '\u220f', // ∏ "product" 0xd6: '\u221a', // √ "radical" 0xd7: '\u22c5', // ⋅ "dotmath" 0xd8: '\u00ac', // ¬ "logicalnot" 0xd9: '\u2227', // ∧ "logicaland" 0xda: '\u2228', // ∨ "logicalor" 0xdb: '\u21d4', // ⇔ "arrowdblboth" 0xdc: '\u21d0', // ⇐ "arrowdblleft" 0xdd: '\u21d1', // ⇑ "arrowdblup" 0xde: '\u21d2', // ⇒ "arrowdblright" 0xdf: '\u21d3', // ⇓ "arrowdbldown" 0xe0: '\u25ca', // ◊ "lozenge" 0xe1: '\u2329', // 〈 "angleleft" 0xe2: '\uf8e8', // "registersans" 0xe3: '\uf8e9', // "copyrightsans" 0xe4: '\uf8ea', // "trademarksans" 0xe5: '\u2211', // ∑ "summation" 0xe6: '\uf8eb', // "parenlefttp" 0xe7: '\uf8ec', // "parenleftex" 0xe8: '\uf8ed', // "parenleftbt" 0xe9: '\uf8ee', // "bracketlefttp" 0xea: '\uf8ef', // "bracketleftex" 0xeb: '\uf8f0', // "bracketleftbt" 0xec: '\uf8f1', // "bracelefttp" 0xed: '\uf8f2', // "braceleftmid" 0xee: '\uf8f3', // "braceleftbt" 0xef: '\uf8f4', // "braceex" 0xf1: '\u232a', // 〉 "angleright" 0xf2: '\u222b', // ∫ "integral" 0xf3: '\u2320', // ⌠ "integraltop" 0xf4: '\uf8f5', // "integralex" 0xf5: '\u2321', // ⌡ "integralbottom" 0xf6: '\uf8f6', // "parenrighttp" 0xf7: '\uf8f7', // "parenrightex" 0xf8: '\uf8f8', // "parenrightbt" 0xf9: '\uf8f9', // "bracketrighttp" 0xfa: '\uf8fa', // "bracketrightex" 0xfb: '\uf8fb', // "bracketrightbt" 0xfc: '\uf8fc', // "bracerighttp" 0xfd: '\uf8fd', // "bracerightmid" 0xfe: '\uf8fe', // "bracerightbt" }, "WinAnsiEncoding": map[uint16]rune{ 0x01: '\u0001', // "controlSTX" 0x02: '\u0002', // "controlSOT" 0x03: '\u0003', // "controlETX" 0x04: '\u0004', // "controlEOT" 0x05: '\u0005', // "controlENQ" 0x06: '\u0006', // "controlACK" 0x07: '\u0007', // "controlBEL" 0x08: '\u0008', // "controlBS" 0x09: '\u0009', // "controlHT" 0x0a: '\u000a', // "controlLF" 0x0b: '\u000b', // "controlVT" 0x0c: '\u000c', // "controlFF" 0x0d: '\u000d', // "controlCR" 0x0e: '\u000e', // "controlSO" 0x0f: '\u000f', // "controlSI" 0x10: '\u0010', // "controlDLE" 0x11: '\u0011', // "controlDC1" 0x12: '\u0012', // "controlDC2" 0x13: '\u0013', // "controlDC3" 0x14: '\u0014', // "controlDC4" 0x15: '\u0015', // "controlNAK" 0x16: '\u0016', // "controlSYN" 0x17: '\u0017', // "controlETB" 0x18: '\u0018', // "controlCAN" 0x19: '\u0019', // "controlEM" 0x1a: '\u001a', // "controlSUB" 0x1b: '\u001b', // "controlESC" 0x1c: '\u001c', // "controlFS" 0x1d: '\u001d', // "controlGS" 0x1e: '\u001e', // "controlRS" 0x1f: '\u001f', // "controlUS" 0x20: '\u0020', // "space" 0x21: '\u0021', // ! "exclam" 0x22: '\u0022', // " "quotedbl" 0x23: '\u0023', // # "numbersign" 0x24: '\u0024', // $ "dollar" 0x25: '\u0025', // % "percent" 0x26: '\u0026', // & "ampersand" 0x27: '\u0027', // ' "quotesingle" 0x28: '\u0028', // ( "parenleft" 0x29: '\u0029', // ) "parenright" 0x2a: '\u002a', // * "asterisk" 0x2b: '\u002b', // + "plus" 0x2c: '\u002c', // , "comma" 0x2d: '\u002d', // - "hyphen" 0x2e: '\u002e', // . "period" 0x2f: '\u002f', // / "slash" 0x30: '\u0030', // 0 "zero" 0x31: '\u0031', // 1 "one" 0x32: '\u0032', // 2 "two" 0x33: '\u0033', // 3 "three" 0x34: '\u0034', // 4 "four" 0x35: '\u0035', // 5 "five" 0x36: '\u0036', // 6 "six" 0x37: '\u0037', // 7 "seven" 0x38: '\u0038', // 8 "eight" 0x39: '\u0039', // 9 "nine" 0x3a: '\u003a', // : "colon" 0x3b: '\u003b', // ; "semicolon" 0x3c: '\u003c', // < "less" 0x3d: '\u003d', // = "equal" 0x3e: '\u003e', // > "greater" 0x3f: '\u003f', // ? "question" 0x40: '\u0040', // @ "at" 0x41: '\u0041', // A "A" 0x42: '\u0042', // B "B" 0x43: '\u0043', // C "C" 0x44: '\u0044', // D "D" 0x45: '\u0045', // E "E" 0x46: '\u0046', // F "F" 0x47: '\u0047', // G "G" 0x48: '\u0048', // H "H" 0x49: '\u0049', // I "I" 0x4a: '\u004a', // J "J" 0x4b: '\u004b', // K "K" 0x4c: '\u004c', // L "L" 0x4d: '\u004d', // M "M" 0x4e: '\u004e', // N "N" 0x4f: '\u004f', // O "O" 0x50: '\u0050', // P "P" 0x51: '\u0051', // Q "Q" 0x52: '\u0052', // R "R" 0x53: '\u0053', // S "S" 0x54: '\u0054', // T "T" 0x55: '\u0055', // U "U" 0x56: '\u0056', // V "V" 0x57: '\u0057', // W "W" 0x58: '\u0058', // X "X" 0x59: '\u0059', // Y "Y" 0x5a: '\u005a', // Z "Z" 0x5b: '\u005b', // [ "bracketleft" 0x5c: '\u005c', // \ "backslash" 0x5d: '\u005d', // ] "bracketright" 0x5e: '\u005e', // ^ "asciicircum" 0x5f: '\u005f', // _ "underscore" 0x60: '\u0060', // ` "grave" 0x61: '\u0061', // a "a" 0x62: '\u0062', // b "b" 0x63: '\u0063', // c "c" 0x64: '\u0064', // d "d" 0x65: '\u0065', // e "e" 0x66: '\u0066', // f "f" 0x67: '\u0067', // g "g" 0x68: '\u0068', // h "h" 0x69: '\u0069', // i "i" 0x6a: '\u006a', // j "j" 0x6b: '\u006b', // k "k" 0x6c: '\u006c', // l "l" 0x6d: '\u006d', // m "m" 0x6e: '\u006e', // n "n" 0x6f: '\u006f', // o "o" 0x70: '\u0070', // p "p" 0x71: '\u0071', // q "q" 0x72: '\u0072', // r "r" 0x73: '\u0073', // s "s" 0x74: '\u0074', // t "t" 0x75: '\u0075', // u "u" 0x76: '\u0076', // v "v" 0x77: '\u0077', // w "w" 0x78: '\u0078', // x "x" 0x79: '\u0079', // y "y" 0x7a: '\u007a', // z "z" 0x7b: '\u007b', // { "braceleft" 0x7c: '\u007c', // | "bar" 0x7d: '\u007d', // } "braceright" 0x7e: '\u007e', // ~ "asciitilde" 0x7f: '\u007f', // "controlDEL" 0x80: '\u20ac', // € "Euro" 0x82: '\u201a', // ‚ "quotesinglbase" 0x83: '\u0192', // ƒ "florin" 0x84: '\u201e', // „ "quotedblbase" 0x85: '\u2026', // … "ellipsis" 0x86: '\u2020', // † "dagger" 0x87: '\u2021', // ‡ "daggerdbl" 0x88: '\u02c6', // ˆ "circumflex" 0x89: '\u2030', // ‰ "perthousand" 0x8a: '\u0160', // Š "Scaron" 0x8b: '\u2039', // ‹ "guilsinglleft" 0x8c: '\u0152', // Œ "OE" 0x8e: '\u017d', // Ž "Zcaron" 0x91: '\u2018', // ‘ "quoteleft" 0x92: '\u2019', // ’ "quoteright" 0x93: '\u201c', // “ "quotedblleft" 0x94: '\u201d', // ” "quotedblright" 0x95: '\u2022', // • "bullet" 0x96: '\u2013', // – "endash" 0x97: '\u2014', // — "emdash" 0x98: '\u02dc', // ˜ "ilde" 0x99: '\u2122', // ™ "trademark" 0x9a: '\u0161', // š "scaron" 0x9b: '\u203a', // › "guilsinglright" 0x9c: '\u0153', // œ "oe" 0x9e: '\u017e', // ž "zcaron" 0x9f: '\u0178', // Ÿ "Ydieresis" 0xa0: '\u00a0', // "nbspace" 0xa1: '\u00a1', // ¡ "exclamdown" 0xa2: '\u00a2', // ¢ "cent" 0xa3: '\u00a3', // £ "sterling" 0xa4: '\u00a4', // ¤ "currency" 0xa5: '\u00a5', // ¥ "yen" 0xa6: '\u00a6', // ¦ "brokenbar" 0xa7: '\u00a7', // § "section" 0xa8: '\u00a8', // ¨ "dieresis" 0xa9: '\u00a9', // © "copyright" 0xaa: '\u00aa', // ª "ordfeminine" 0xab: '\u00ab', // « "guillemotleft" 0xac: '\u00ac', // ¬ "logicalnot" 0xad: '\u00ad', // "sfthyphen" 0xae: '\u00ae', // ® "registered" 0xaf: '\u00af', // ¯ "macron" 0xb0: '\u00b0', // ° "degree" 0xb1: '\u00b1', // ± "plusminus" 0xb2: '\u00b2', // ² "twosuperior" 0xb3: '\u00b3', // ³ "threesuperior" 0xb4: '\u00b4', // ´ "acute" 0xb5: '\u00b5', // µ "mu" 0xb6: '\u00b6', // ¶ "paragraph" 0xb7: '\u00b7', // · "middot" 0xb8: '\u00b8', // ¸ "cedilla" 0xb9: '\u00b9', // ¹ "onesuperior" 0xba: '\u00ba', // º "ordmasculine" 0xbb: '\u00bb', // » "guillemotright" 0xbc: '\u00bc', // ¼ "onequarter" 0xbd: '\u00bd', // ½ "onehalf" 0xbe: '\u00be', // ¾ "threequarters" 0xbf: '\u00bf', // ¿ "questiondown" 0xc0: '\u00c0', // À "Agrave" 0xc1: '\u00c1', // Á "Aacute" 0xc2: '\u00c2', //  "Acircumflex" 0xc3: '\u00c3', // à "Atilde" 0xc4: '\u00c4', // Ä "Adieresis" 0xc5: '\u00c5', // Å "Aring" 0xc6: '\u00c6', // Æ "AE" 0xc7: '\u00c7', // Ç "Ccedilla" 0xc8: '\u00c8', // È "Egrave" 0xc9: '\u00c9', // É "Eacute" 0xca: '\u00ca', // Ê "Ecircumflex" 0xcb: '\u00cb', // Ë "Edieresis" 0xcc: '\u00cc', // Ì "Igrave" 0xcd: '\u00cd', // Í "Iacute" 0xce: '\u00ce', // Î "Icircumflex" 0xcf: '\u00cf', // Ï "Idieresis" 0xd0: '\u00d0', // Ð "Eth" 0xd1: '\u00d1', // Ñ "Ntilde" 0xd2: '\u00d2', // Ò "Ograve" 0xd3: '\u00d3', // Ó "Oacute" 0xd4: '\u00d4', // Ô "Ocircumflex" 0xd5: '\u00d5', // Õ "Otilde" 0xd6: '\u00d6', // Ö "Odieresis" 0xd7: '\u00d7', // × "multiply" 0xd8: '\u00d8', // Ø "Oslash" 0xd9: '\u00d9', // Ù "Ugrave" 0xda: '\u00da', // Ú "Uacute" 0xdb: '\u00db', // Û "Ucircumflex" 0xdc: '\u00dc', // Ü "Udieresis" 0xdd: '\u00dd', // Ý "Yacute" 0xde: '\u00de', // Þ "Thorn" 0xdf: '\u00df', // ß "germandbls" 0xe0: '\u00e0', // à "agrave" 0xe1: '\u00e1', // á "aacute" 0xe2: '\u00e2', // â "acircumflex" 0xe3: '\u00e3', // ã "atilde" 0xe4: '\u00e4', // ä "adieresis" 0xe5: '\u00e5', // å "aring" 0xe6: '\u00e6', // æ "ae" 0xe7: '\u00e7', // ç "ccedilla" 0xe8: '\u00e8', // è "egrave" 0xe9: '\u00e9', // é "eacute" 0xea: '\u00ea', // ê "ecircumflex" 0xeb: '\u00eb', // ë "edieresis" 0xec: '\u00ec', // ì "igrave" 0xed: '\u00ed', // í "iacute" 0xee: '\u00ee', // î "icircumflex" 0xef: '\u00ef', // ï "idieresis" 0xf0: '\u00f0', // ð "eth" 0xf1: '\u00f1', // ñ "ntilde" 0xf2: '\u00f2', // ò "ograve" 0xf3: '\u00f3', // ó "oacute" 0xf4: '\u00f4', // ô "ocircumflex" 0xf5: '\u00f5', // õ "otilde" 0xf6: '\u00f6', // ö "odieresis" 0xf7: '\u00f7', // ÷ "divide" 0xf8: '\u00f8', // ø "oslash" 0xf9: '\u00f9', // ù "ugrave" 0xfa: '\u00fa', // ú "uacute" 0xfb: '\u00fb', // û "ucircumflex" 0xfc: '\u00fc', // ü "udieresis" 0xfd: '\u00fd', // ý "yacute" 0xfe: '\u00fe', // þ "thorn" 0xff: '\u00ff', // ÿ "ydieresis" }, "ZapfDingbatsEncoding": map[uint16]rune{ 0x20: '\u0020', // "space" 0x21: '\u2701', // ✁ "" 0x22: '\u2702', // ✂ "" 0x23: '\u2703', // ✃ "" 0x24: '\u2704', // ✄ "" 0x25: '\u260e', // ☎ "telephoneblack" 0x26: '\u2706', // ✆ "" 0x27: '\u2707', // ✇ "" 0x28: '\u2708', // ✈ "" 0x29: '\u2709', // ✉ "" 0x2a: '\u261b', // ☛ "" 0x2b: '\u261e', // ☞ "pointingindexrightwhite" 0x2c: '\u270c', // ✌ "" 0x2d: '\u270d', // ✍ "" 0x2e: '\u270e', // ✎ "" 0x2f: '\u270f', // ✏ "" 0x30: '\u2710', // ✐ "" 0x31: '\u2711', // ✑ "" 0x32: '\u2712', // ✒ "" 0x33: '\u2713', // ✓ "checkmark" 0x34: '\u2714', // ✔ "" 0x35: '\u2715', // ✕ "" 0x36: '\u2716', // ✖ "" 0x37: '\u2717', // ✗ "" 0x38: '\u2718', // ✘ "" 0x39: '\u2719', // ✙ "" 0x3a: '\u271a', // ✚ "" 0x3b: '\u271b', // ✛ "" 0x3c: '\u271c', // ✜ "" 0x3d: '\u271d', // ✝ "" 0x3e: '\u271e', // ✞ "" 0x3f: '\u271f', // ✟ "" 0x40: '\u2720', // ✠ "" 0x41: '\u2721', // ✡ "" 0x42: '\u2722', // ✢ "" 0x43: '\u2723', // ✣ "" 0x44: '\u2724', // ✤ "" 0x45: '\u2725', // ✥ "" 0x46: '\u2726', // ✦ "" 0x47: '\u2727', // ✧ "" 0x48: '\u2605', // ★ "blackstar" 0x49: '\u2729', // ✩ "" 0x4a: '\u272a', // ✪ "" 0x4b: '\u272b', // ✫ "" 0x4c: '\u272c', // ✬ "" 0x4d: '\u272d', // ✭ "" 0x4e: '\u272e', // ✮ "" 0x4f: '\u272f', // ✯ "" 0x50: '\u2730', // ✰ "" 0x51: '\u2731', // ✱ "" 0x52: '\u2732', // ✲ "" 0x53: '\u2733', // ✳ "" 0x54: '\u2734', // ✴ "" 0x55: '\u2735', // ✵ "" 0x56: '\u2736', // ✶ "" 0x57: '\u2737', // ✷ "" 0x58: '\u2738', // ✸ "" 0x59: '\u2739', // ✹ "" 0x5a: '\u273a', // ✺ "" 0x5b: '\u273b', // ✻ "" 0x5c: '\u273c', // ✼ "" 0x5d: '\u273d', // ✽ "" 0x5e: '\u273e', // ✾ "" 0x5f: '\u273f', // ✿ "" 0x60: '\u2740', // ❀ "" 0x61: '\u2741', // ❁ "" 0x62: '\u2742', // ❂ "" 0x63: '\u2743', // ❃ "" 0x64: '\u2744', // ❄ "" 0x65: '\u2745', // ❅ "" 0x66: '\u2746', // ❆ "" 0x67: '\u2747', // ❇ "" 0x68: '\u2748', // ❈ "" 0x69: '\u2749', // ❉ "" 0x6a: '\u274a', // ❊ "" 0x6b: '\u274b', // ❋ "" 0x6c: '\u25cf', // ● "H18533" 0x6d: '\u274d', // ❍ "" 0x6e: '\u25a0', // ■ "blacksquare" 0x6f: '\u274f', // ❏ "" 0x70: '\u2750', // ❐ "" 0x71: '\u2751', // ❑ "" 0x72: '\u2752', // ❒ "" 0x73: '\u25b2', // ▲ "blackuppointingtriangle" 0x74: '\u25bc', // ▼ "blackdownpointingtriangle" 0x75: '\u25c6', // ◆ "blackdiamond" 0x76: '\u2756', // ❖ "" 0x77: '\u25d7', // ◗ "" 0x78: '\u2758', // ❘ "" 0x79: '\u2759', // ❙ "" 0x7a: '\u275a', // ❚ "" 0x7b: '\u275b', // ❛ "" 0x7c: '\u275c', // ❜ "" 0x7d: '\u275d', // ❝ "" 0x7e: '\u275e', // ❞ "" 0x80: '\uf8d7', // "" 0x81: '\uf8d8', // "" 0x82: '\uf8d9', // "" 0x83: '\uf8da', // "" 0x84: '\uf8db', // "" 0x85: '\uf8dc', // "" 0x86: '\uf8dd', // "" 0x87: '\uf8de', // "" 0x88: '\uf8df', // "" 0x89: '\uf8e0', // "" 0x8a: '\uf8e1', // "" 0x8b: '\uf8e2', // "" 0x8c: '\uf8e3', // "" 0x8d: '\uf8e4', // "" 0xa1: '\u2761', // ❡ "" 0xa2: '\u2762', // ❢ "" 0xa3: '\u2763', // ❣ "" 0xa4: '\u2764', // ❤ "" 0xa5: '\u2765', // ❥ "" 0xa6: '\u2766', // ❦ "" 0xa7: '\u2767', // ❧ "" 0xa8: '\u2663', // ♣ "club" 0xa9: '\u2666', // ♦ "diamond" 0xaa: '\u2665', // ♥ "heart" 0xab: '\u2660', // ♠ "spade" 0xac: '\u2460', // ① "onecircle" 0xad: '\u2461', // ② "twocircle" 0xae: '\u2462', // ③ "threecircle" 0xaf: '\u2463', // ④ "fourcircle" 0xb0: '\u2464', // ⑤ "fivecircle" 0xb1: '\u2465', // ⑥ "sixcircle" 0xb2: '\u2466', // ⑦ "sevencircle" 0xb3: '\u2467', // ⑧ "eightcircle" 0xb4: '\u2468', // ⑨ "ninecircle" 0xb5: '\u2469', // ⑩ "tencircle" 0xb6: '\u2776', // ❶ "" 0xb7: '\u2777', // ❷ "" 0xb8: '\u2778', // ❸ "" 0xb9: '\u2779', // ❹ "" 0xba: '\u277a', // ❺ "" 0xbb: '\u277b', // ❻ "" 0xbc: '\u277c', // ❼ "" 0xbd: '\u277d', // ❽ "" 0xbe: '\u277e', // ❾ "" 0xbf: '\u277f', // ❿ "" 0xc0: '\u2780', // ➀ "" 0xc1: '\u2781', // ➁ "" 0xc2: '\u2782', // ➂ "" 0xc3: '\u2783', // ➃ "" 0xc4: '\u2784', // ➄ "" 0xc5: '\u2785', // ➅ "" 0xc6: '\u2786', // ➆ "" 0xc7: '\u2787', // ➇ "" 0xc8: '\u2788', // ➈ "" 0xc9: '\u2789', // ➉ "" 0xca: '\u278a', // ➊ "onecircleinversesansserif" 0xcb: '\u278b', // ➋ "twocircleinversesansserif" 0xcc: '\u278c', // ➌ "threecircleinversesansserif" 0xcd: '\u278d', // ➍ "fourcircleinversesansserif" 0xce: '\u278e', // ➎ "fivecircleinversesansserif" 0xcf: '\u278f', // ➏ "sixcircleinversesansserif" 0xd0: '\u2790', // ➐ "sevencircleinversesansserif" 0xd1: '\u2791', // ➑ "eightcircleinversesansserif" 0xd2: '\u2792', // ➒ "ninecircleinversesansserif" 0xd3: '\u2793', // ➓ "" 0xd4: '\u2794', // ➔ "" 0xd5: '\u2192', // → "arrowright" 0xd6: '\u2194', // ↔ "arrowboth" 0xd7: '\u2195', // ↕ "arrowupdn" 0xd8: '\u2798', // ➘ "" 0xd9: '\u2799', // ➙ "" 0xda: '\u279a', // ➚ "" 0xdb: '\u279b', // ➛ "" 0xdc: '\u279c', // ➜ "" 0xdd: '\u279d', // ➝ "" 0xde: '\u279e', // ➞ "arrowrightheavy" 0xdf: '\u279f', // ➟ "" 0xe0: '\u27a0', // ➠ "" 0xe1: '\u27a1', // ➡ "" 0xe2: '\u27a2', // ➢ "" 0xe3: '\u27a3', // ➣ "" 0xe4: '\u27a4', // ➤ "" 0xe5: '\u27a5', // ➥ "" 0xe6: '\u27a6', // ➦ "" 0xe7: '\u27a7', // ➧ "" 0xe8: '\u27a8', // ➨ "" 0xe9: '\u27a9', // ➩ "" 0xea: '\u27aa', // ➪ "" 0xeb: '\u27ab', // ➫ "" 0xec: '\u27ac', // ➬ "" 0xed: '\u27ad', // ➭ "" 0xee: '\u27ae', // ➮ "" 0xef: '\u27af', // ➯ "" 0xf1: '\u27b1', // ➱ "" 0xf2: '\u27b2', // ➲ "" 0xf3: '\u27b3', // ➳ "" 0xf4: '\u27b4', // ➴ "" 0xf5: '\u27b5', // ➵ "" 0xf6: '\u27b6', // ➶ "" 0xf7: '\u27b7', // ➷ "" 0xf8: '\u27b8', // ➸ "" 0xf9: '\u27b9', // ➹ "" 0xfa: '\u27ba', // ➺ "" 0xfb: '\u27bb', // ➻ "" 0xfc: '\u27bc', // ➼ "" 0xfd: '\u27bd', // ➽ "" 0xfe: '\u27be', // ➾ "" }, }