markdown_formatter 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +1 -0
  4. data/.gitignore +12 -0
  5. data/.rspec +3 -0
  6. data/.travis.yml +5 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +46 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/exe/mdfmt +27 -0
  14. data/lib/markdown_formatter.rb +57 -0
  15. data/lib/markdown_formatter/ast.rb +47 -0
  16. data/lib/markdown_formatter/cli.rb +13 -0
  17. data/lib/markdown_formatter/nodes/base.rb +11 -0
  18. data/lib/markdown_formatter/nodes/blank.rb +9 -0
  19. data/lib/markdown_formatter/nodes/block_quote.rb +22 -0
  20. data/lib/markdown_formatter/nodes/code_block.rb +9 -0
  21. data/lib/markdown_formatter/nodes/code_span.rb +9 -0
  22. data/lib/markdown_formatter/nodes/container_block.rb +23 -0
  23. data/lib/markdown_formatter/nodes/emphasis.rb +10 -0
  24. data/lib/markdown_formatter/nodes/entity.rb +9 -0
  25. data/lib/markdown_formatter/nodes/footnote.rb +9 -0
  26. data/lib/markdown_formatter/nodes/header.rb +9 -0
  27. data/lib/markdown_formatter/nodes/html_element.rb +9 -0
  28. data/lib/markdown_formatter/nodes/image.rb +9 -0
  29. data/lib/markdown_formatter/nodes/inline.rb +29 -0
  30. data/lib/markdown_formatter/nodes/leaf_block.rb +27 -0
  31. data/lib/markdown_formatter/nodes/link.rb +9 -0
  32. data/lib/markdown_formatter/nodes/list.rb +23 -0
  33. data/lib/markdown_formatter/nodes/list_item.rb +38 -0
  34. data/lib/markdown_formatter/nodes/paragraph.rb +39 -0
  35. data/lib/markdown_formatter/nodes/smart_quote.rb +14 -0
  36. data/lib/markdown_formatter/nodes/strong.rb +10 -0
  37. data/lib/markdown_formatter/nodes/thematic_break.rb +9 -0
  38. data/lib/markdown_formatter/nodes/typographic_sym.rb +9 -0
  39. data/lib/markdown_formatter/version.rb +3 -0
  40. data/lib/monkey_patches/kramdown/parser/gfm.rb +21 -0
  41. data/lib/monkey_patches/kramdown/parser/kramdown/autolink.rb +16 -0
  42. data/lib/monkey_patches/kramdown/parser/kramdown/blockquote.rb +22 -0
  43. data/lib/monkey_patches/kramdown/parser/kramdown/code_block.rb +34 -0
  44. data/lib/monkey_patches/kramdown/parser/kramdown/code_span.rb +31 -0
  45. data/lib/monkey_patches/kramdown/parser/kramdown/emphasis.rb +48 -0
  46. data/lib/monkey_patches/kramdown/parser/kramdown/escaped_chars.rb +12 -0
  47. data/lib/monkey_patches/kramdown/parser/kramdown/footnote.rb +27 -0
  48. data/lib/monkey_patches/kramdown/parser/kramdown/header.rb +38 -0
  49. data/lib/monkey_patches/kramdown/parser/kramdown/horizontal_rule.rb +14 -0
  50. data/lib/monkey_patches/kramdown/parser/kramdown/html.rb +60 -0
  51. data/lib/monkey_patches/kramdown/parser/kramdown/link.rb +116 -0
  52. data/lib/monkey_patches/kramdown/parser/kramdown/list.rb +115 -0
  53. data/lib/monkey_patches/kramdown/parser/kramdown/paragraph.rb +26 -0
  54. data/lib/monkey_patches/kramdown/parser/kramdown/typographic_symbol.rb +26 -0
  55. data/lib/monkey_patches/kramdown/utils/entities.rb +1911 -0
  56. data/markdown_formatter.gemspec +29 -0
  57. metadata +192 -0
  58. metadata.gz.sig +0 -0
@@ -0,0 +1,38 @@
1
+ module Kramdown
2
+ module Parser
3
+ class Kramdown
4
+
5
+ # Parse the Setext header at the current location.
6
+ def parse_setext_header
7
+ return false if !after_block_boundary?
8
+
9
+ start_line_number = @src.current_line_number
10
+ @src.pos += @src.matched_size
11
+ text, id, level = @src[1], @src[2], @src[3]
12
+ text.strip!
13
+ el = new_block_el(:header, nil, nil, :level => (level == '-' ? 2 : 1), :raw_text => text, :location => start_line_number, :original_text => @src[0].chomp)
14
+ add_text(text, el)
15
+ el.attr['id'] = id if id
16
+ @tree.children << el
17
+ true
18
+ end
19
+
20
+ # Parse the Atx header at the current location.
21
+ def parse_atx_header
22
+ return false if !after_block_boundary?
23
+
24
+ start_line_number = @src.current_line_number
25
+ @src.check(ATX_HEADER_MATCH)
26
+ level, text, id = @src[1], @src[2].to_s.strip, @src[3]
27
+ return false if text.empty?
28
+
29
+ @src.pos += @src.matched_size
30
+ el = new_block_el(:header, nil, nil, :level => level.length, :raw_text => text, :location => start_line_number, :original_text => @src[0].chomp)
31
+ add_text(text, el)
32
+ el.attr['id'] = id if id
33
+ @tree.children << el
34
+ true
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,14 @@
1
+ module Kramdown
2
+ module Parser
3
+ class Kramdown
4
+
5
+ # Parse the horizontal rule at the current location.
6
+ def parse_horizontal_rule
7
+ start_line_number = @src.current_line_number
8
+ @src.pos += @src.matched_size
9
+ @tree.children << new_block_el(:hr, nil, nil, :location => start_line_number, raw_text: @src[0].dup)
10
+ true
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,60 @@
1
+ module Kramdown
2
+ module Parser
3
+ class Kramdown
4
+ # Parse the HTML at the current position as span-level HTML.
5
+ def parse_span_html
6
+ line = @src.current_line_number
7
+ if result = @src.scan(HTML_COMMENT_RE)
8
+ @tree.children << Element.new(:xml_comment, result, nil, :category => :span, :location => line)
9
+ elsif result = @src.scan(HTML_INSTRUCTION_RE)
10
+ @tree.children << Element.new(:xml_pi, result, nil, :category => :span, :location => line)
11
+ elsif result = @src.scan(HTML_TAG_CLOSE_RE)
12
+ warning("Found invalidly used HTML closing tag for '#{@src[1]}' on line #{line}")
13
+ add_text(result)
14
+ elsif result = @src.scan(HTML_TAG_RE)
15
+ tag_name = @src[1]
16
+ tag_name.downcase! if HTML_ELEMENT[tag_name.downcase]
17
+ if HTML_BLOCK_ELEMENTS.include?(tag_name)
18
+ warning("Found block HTML tag '#{tag_name}' in span-level text on line #{line}")
19
+ add_text(result)
20
+ return
21
+ end
22
+
23
+ attrs = parse_html_attributes(@src[2], line, HTML_ELEMENT[tag_name])
24
+ attrs.each { |name, value| value.gsub!(/\n+/, ' ') }
25
+
26
+ do_parsing = (HTML_CONTENT_MODEL[tag_name] == :raw || @tree.options[:content_model] == :raw ? false : @options[:parse_span_html])
27
+ if val = HTML_MARKDOWN_ATTR_MAP[attrs.delete('markdown')]
28
+ if val == :block
29
+ warning("Cannot use block-level parsing in span-level HTML tag (line #{line}) - using default mode")
30
+ elsif val == :span
31
+ do_parsing = true
32
+ elsif val == :default
33
+ do_parsing = HTML_CONTENT_MODEL[tag_name] != :raw
34
+ elsif val == :raw
35
+ do_parsing = false
36
+ end
37
+ end
38
+
39
+ el = Element.new(:html_element, tag_name, attrs, :category => :span, :location => line,
40
+ :content_model => (do_parsing ? :span : :raw), :is_closed => !!@src[4], :opening_tag => result)
41
+ @tree.children << el
42
+ stop_re = /<\/#{Regexp.escape(tag_name)}\s*>/
43
+ stop_re = Regexp.new(stop_re.source, Regexp::IGNORECASE) if HTML_ELEMENT[tag_name]
44
+ if !@src[4] && !HTML_ELEMENTS_WITHOUT_BODY.include?(el.value)
45
+ if parse_spans(el, stop_re, (do_parsing ? nil : [:span_html]))
46
+ @src.scan(stop_re)
47
+ else
48
+ warning("Found no end tag for '#{el.value}' (line #{line}) - auto-closing it")
49
+ add_text(@src.rest, el)
50
+ @src.terminate
51
+ end
52
+ end
53
+ Kramdown::Parser::Html::ElementConverter.convert(@root, el) if @options[:html_to_native]
54
+ else
55
+ add_text(@src.getch)
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,116 @@
1
+ module Kramdown
2
+ module Parser
3
+ class Kramdown
4
+ # This helper methods adds the approriate attributes to the element +el+ of type +a+ or +img+
5
+ # and the element itself to the @tree.
6
+ def add_link(el, href, title, alt_text = nil, ial = nil, link_id = nil)
7
+ el.options[:ial] = ial
8
+ el.options[:link_id] = link_id
9
+
10
+ update_attr_with_ial(el.attr, ial) if ial
11
+ if el.type == :a
12
+ el.attr['href'] = href
13
+ el.options[:link_text] = alt_text
14
+ else
15
+ el.attr['src'] = href
16
+ el.attr['alt'] = alt_text
17
+ el.children.clear
18
+ end
19
+ el.attr['title'] = title if title
20
+ @tree.children << el
21
+ end
22
+
23
+ def parse_link
24
+ start_line_number = @src.current_line_number
25
+ result = @src.scan(LINK_START)
26
+ raw_text = result.dup
27
+ cur_pos = @src.pos
28
+ saved_pos = @src.save_pos
29
+
30
+ link_type = (result =~ /^!/ ? :img : :a)
31
+
32
+ # no nested links allowed
33
+ if link_type == :a && (@tree.type == :img || @tree.type == :a || @stack.any? { |t, s| t && (t.type == :img || t.type == :a) })
34
+ add_text(result)
35
+ return
36
+ end
37
+ el = Element.new(link_type, nil, nil, :location => start_line_number)
38
+
39
+ count = 1
40
+ found = parse_spans(el, LINK_BRACKET_STOP_RE) do
41
+ count = count + (@src[1] ? -1 : 1)
42
+ count - el.children.select { |c| c.type == :img }.size == 0
43
+ end
44
+ unless found
45
+ @src.revert_pos(saved_pos)
46
+ add_text(result)
47
+ return
48
+ end
49
+ alt_text = extract_string(cur_pos...@src.pos, @src).gsub(ESCAPED_CHARS, '\1')
50
+ raw_text << alt_text.dup
51
+ @src.scan(LINK_BRACKET_STOP_RE)
52
+ raw_text << @src[0].dup
53
+
54
+ # reference style link or no link url
55
+ if @src.scan(LINK_INLINE_ID_RE) || !@src.check(/\(/)
56
+ link_id = normalize_link_id(@src[1] || alt_text)
57
+ if @link_defs.has_key?(link_id)
58
+ add_link(el, @link_defs[link_id][0], @link_defs[link_id][1], alt_text,
59
+ @link_defs[link_id][2] && @link_defs[link_id][2].options[:ial], link_id)
60
+ else
61
+ warning("No link definition for link ID '#{link_id}' found on line #{start_line_number}")
62
+ @src.revert_pos(saved_pos)
63
+ add_text(result)
64
+ end
65
+ raw_text << @src[0].dup unless @src[0].nil?
66
+ el.options[:raw_text] = raw_text
67
+ return
68
+ end
69
+
70
+ # link url in parentheses
71
+ if @src.scan(/\(<(.*?)>/)
72
+ link_url = @src[1]
73
+ if @src.scan(/\)/)
74
+ raw_text += "(<#{link_url}>)"
75
+ el.options[:raw_text] = raw_text
76
+ add_link(el, link_url, nil, alt_text)
77
+ return
78
+ end
79
+ else
80
+ link_url = ''
81
+ nr_of_brackets = 0
82
+ while temp = @src.scan_until(LINK_PAREN_STOP_RE)
83
+ link_url << temp
84
+ if @src[2]
85
+ nr_of_brackets -= 1
86
+ break if nr_of_brackets == 0
87
+ elsif @src[1]
88
+ nr_of_brackets += 1
89
+ else
90
+ break
91
+ end
92
+ end
93
+ raw_text << link_url.dup
94
+
95
+ link_url = link_url[1..-2]
96
+ link_url.strip!
97
+
98
+ if nr_of_brackets == 0
99
+ el.options[:raw_text] = raw_text
100
+ add_link(el, link_url, nil, alt_text)
101
+ return
102
+ end
103
+ end
104
+
105
+ if @src.scan(LINK_INLINE_TITLE_RE)
106
+ raw_text << @src[0].dup
107
+ el.options[:raw_text] = raw_text
108
+ add_link(el, link_url, @src[0][0..-2], alt_text)
109
+ else
110
+ @src.revert_pos(saved_pos)
111
+ add_text(result)
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,115 @@
1
+ module Kramdown
2
+ module Parser
3
+ class Kramdown
4
+ def parse_list
5
+ start_line_number = @src.current_line_number
6
+ type, list_start_re = (@src.check(LIST_START_UL) ? [:ul, LIST_START_UL] : [:ol, LIST_START_OL])
7
+ list = new_block_el(type, nil, nil, :location => start_line_number, :raw_text => "")
8
+
9
+ item = nil
10
+ content_re, lazy_re, indent_re = nil
11
+ eob_found = false
12
+ nested_list_found = false
13
+ last_is_blank = false
14
+ while !@src.eos?
15
+ start_line_number = @src.current_line_number
16
+ if last_is_blank && @src.check(HR_START)
17
+ break
18
+ elsif @src.scan(EOB_MARKER)
19
+ eob_found = true
20
+ break
21
+ elsif @src.scan(list_start_re)
22
+ item = Element.new(:li, nil, nil, :location => start_line_number, :raw_text => @src.matched.dup)
23
+ list.options[:raw_text] += @src[0]
24
+ item.value, indentation, content_re, lazy_re, indent_re = parse_first_list_line(@src[1].length, @src[2])
25
+ list.children << item
26
+
27
+ item.value.sub!(self.class::LIST_ITEM_IAL) do |match|
28
+ parse_attribute_list($1, item.options[:ial] ||= {})
29
+ ''
30
+ end
31
+
32
+ list_start_re = (type == :ul ? /^( {0,#{[3, indentation - 1].min}}[+*-])([\t| ].*?\n)/ :
33
+ /^( {0,#{[3, indentation - 1].min}}\d+\.)([\t| ].*?\n)/)
34
+ nested_list_found = (item.value =~ LIST_START)
35
+ last_is_blank = false
36
+ item.value = [item.value]
37
+ elsif (result = @src.scan(content_re)) || (!last_is_blank && (result = @src.scan(lazy_re)))
38
+ result.sub!(/^(\t+)/) { " " * 4 * $1.length }
39
+ indentation_found = result.sub!(indent_re, '')
40
+ if !nested_list_found && indentation_found && result =~ LIST_START
41
+ item.value << ''
42
+ nested_list_found = true
43
+ elsif nested_list_found && !indentation_found && result =~ LIST_START
44
+ result = " " * (indentation + 4) << result
45
+ end
46
+ item.options[:raw_text] += @src[0]
47
+ list.options[:raw_text] += @src[0]
48
+ item.value.last << result
49
+ last_is_blank = false
50
+ elsif result = @src.scan(BLANK_LINE)
51
+ nested_list_found = true
52
+ last_is_blank = true
53
+ item.options[:raw_text] += @src.matched
54
+ list.options[:raw_text] += @src.matched
55
+
56
+ if list.children.last.type != :blank
57
+ bl = new_block_el(:blank, [@src.matched.dup])
58
+ bl.options[:raw_text] = @src.matched.dup
59
+ list.children << bl
60
+ end
61
+
62
+ item.value.last << result
63
+ else
64
+ break
65
+ end
66
+ end
67
+
68
+ list.options[:raw_text].gsub!(/\R{2,}\z/, "\n")
69
+ list.children.pop if list.children.last.type == :blank
70
+ @tree.children << list
71
+
72
+ last = nil
73
+ list.children.each do |it|
74
+ temp = Element.new(:temp, nil, nil, :location => it.options[:location])
75
+
76
+ env = save_env
77
+ location = it.options[:location]
78
+ it.value.each do |val|
79
+ @src = ::Kramdown::Utils::StringScanner.new(val, location)
80
+ parse_blocks(temp)
81
+ location = @src.current_line_number
82
+ end
83
+ restore_env(env)
84
+
85
+ it.children = temp.children
86
+ it.value = nil
87
+ next if it.children.size == 0
88
+
89
+ # Handle the case where an EOB marker is inserted by a block IAL for the first paragraph
90
+ it.children.delete_at(1) if it.children.first.type == :p &&
91
+ it.children.length >= 2 && it.children[1].type == :eob && it.children.first.options[:ial]
92
+
93
+ if it.children.first.type == :p &&
94
+ (it.children.length < 2 || it.children[1].type != :blank ||
95
+ (it == list.children.last && it.children.length == 2 && !eob_found)) &&
96
+ (list.children.last != it || list.children.size == 1 ||
97
+ list.children[0..-2].any? { |cit| !cit.children.first || cit.children.first.type != :p || cit.children.first.options[:transparent] })
98
+ it.children.first.children.first.value << "\n" if it.children.size > 1 && it.children[1].type != :blank
99
+ it.children.first.options[:transparent] = true
100
+ end
101
+
102
+ if it.children.last.type == :blank
103
+ last = it.children.pop
104
+ else
105
+ last = nil
106
+ end
107
+ end
108
+
109
+ @tree.children << last if !last.nil? && !eob_found
110
+
111
+ true
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,26 @@
1
+ module Kramdown
2
+ module Parser
3
+ class Kramdown
4
+
5
+ # Parse the paragraph at the current location.
6
+ def parse_paragraph
7
+ start_line_number = @src.current_line_number
8
+ result = @src.scan(PARAGRAPH_MATCH)
9
+ while !@src.match?(paragraph_end)
10
+ result << @src.scan(PARAGRAPH_MATCH)
11
+ end
12
+ raw_text = result.dup
13
+ result.rstrip!
14
+ if @tree.children.last && @tree.children.last.type == :p
15
+ @tree.children.last.options[:raw_text] += result
16
+ @tree.children.last.children.first.value << "\n" << result
17
+ else
18
+ @tree.children << new_block_el(:p, nil, nil, :location => start_line_number, raw_text: raw_text)
19
+ result.lstrip!
20
+ add_text(result, @tree.children.last)
21
+ end
22
+ true
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module Kramdown
2
+ module Parser
3
+ class Kramdown
4
+
5
+ # Parse the typographic symbols at the current location.
6
+ def parse_typographic_syms
7
+ start_line_number = @src.current_line_number
8
+ @src.pos += @src.matched_size
9
+ val = TYPOGRAPHIC_SYMS_SUBST[@src.matched]
10
+ if val.kind_of?(Symbol)
11
+ @tree.children << Element.new(:typographic_sym, val, nil, :location => start_line_number, symbol: @src.matched)
12
+ elsif @src.matched == '\\<<'
13
+ @tree.children << Element.new(:entity, ::Kramdown::Utils::Entities.entity('lt'),
14
+ nil, :location => start_line_number)
15
+ @tree.children << Element.new(:entity, ::Kramdown::Utils::Entities.entity('lt'),
16
+ nil, :location => start_line_number)
17
+ else
18
+ @tree.children << Element.new(:entity, ::Kramdown::Utils::Entities.entity('gt'),
19
+ nil, :location => start_line_number)
20
+ @tree.children << Element.new(:entity, ::Kramdown::Utils::Entities.entity('gt'),
21
+ nil, :location => start_line_number)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,1911 @@
1
+ module Kramdown
2
+
3
+ module Utils
4
+
5
+ # Provides convenience methods for handling named and numeric entities.
6
+ module Entities
7
+
8
+ # Represents an entity that has a +code_point+ and +name+.
9
+ class Entity
10
+
11
+ # Return the UTF8 representation of the entity.
12
+ def char
13
+ if code_point.instance_of?(Array)
14
+ [*code_point].pack('U*') rescue nil
15
+ else
16
+ [code_point].pack('U*') rescue nil
17
+ end
18
+ end
19
+ end
20
+
21
+ EXTEND_ENTITY_TABLE = [
22
+ [9, "Tab"],
23
+ [10, "NewLine"],
24
+ [33, "excl"],
25
+ [34, "QUOT"],
26
+ [35, "num"],
27
+ [36, "dollar"],
28
+ [37, "percnt"],
29
+ [38, "AMP"],
30
+ [40, "lpar"],
31
+ [41, "rpar"],
32
+ [42, "ast"],
33
+ [42, "midast"],
34
+ [43, "plus"],
35
+ [44, "comma"],
36
+ [46, "period"],
37
+ [47, "sol"],
38
+ [58, "colon"],
39
+ [59, "semi"],
40
+ [60, "LT"],
41
+ [[60, 8402], "nvlt"],
42
+ [61, "equals"],
43
+ [[61, 8421], "bne"],
44
+ [62, "GT"],
45
+ [[62, 8402], "nvgt"],
46
+ [63, "quest"],
47
+ [64, "commat"],
48
+ [91, "lbrack"],
49
+ [91, "lsqb"],
50
+ [92, "bsol"],
51
+ [93, "rsqb"],
52
+ [93, "rbrack"],
53
+ [94, "Hat"],
54
+ [95, "lowbar"],
55
+ [95, "UnderBar"],
56
+ [96, "DiacriticalGrave"],
57
+ [96, "grave"],
58
+ [[102, 106], "fjlig"],
59
+ [123, "lbrace"],
60
+ [123, "lcub"],
61
+ [124, "vert"],
62
+ [124, "VerticalLine"],
63
+ [124, "verbar"],
64
+ [125, "rcub"],
65
+ [125, "rbrace"],
66
+ [160, "NonBreakingSpace"],
67
+ [168, "DoubleDot"],
68
+ [168, "die"],
69
+ [168, "Dot"],
70
+ [169, "COPY"],
71
+ [174, "circledR"],
72
+ [174, "REG"],
73
+ [175, "strns"],
74
+ [177, "pm"],
75
+ [177, "PlusMinus"],
76
+ [180, "DiacriticalAcute"],
77
+ [183, "centerdot"],
78
+ [183, "CenterDot"],
79
+ [184, "Cedilla"],
80
+ [189, "half"],
81
+ [197, "angst"],
82
+ [247, "div"],
83
+ [256, "Amacr"],
84
+ [257, "amacr"],
85
+ [258, "Abreve"],
86
+ [259, "abreve"],
87
+ [260, "Aogon"],
88
+ [261, "aogon"],
89
+ [262, "Cacute"],
90
+ [263, "cacute"],
91
+ [264, "Ccirc"],
92
+ [265, "ccirc"],
93
+ [266, "Cdot"],
94
+ [267, "cdot"],
95
+ [268, "Ccaron"],
96
+ [269, "ccaron"],
97
+ [270, "Dcaron"],
98
+ [271, "dcaron"],
99
+ [272, "Dstrok"],
100
+ [273, "dstrok"],
101
+ [274, "Emacr"],
102
+ [275, "emacr"],
103
+ [278, "Edot"],
104
+ [279, "edot"],
105
+ [280, "Eogon"],
106
+ [281, "eogon"],
107
+ [282, "Ecaron"],
108
+ [283, "ecaron"],
109
+ [284, "Gcirc"],
110
+ [285, "gcirc"],
111
+ [286, "Gbreve"],
112
+ [287, "gbreve"],
113
+ [288, "Gdot"],
114
+ [289, "gdot"],
115
+ [290, "Gcedil"],
116
+ [292, "Hcirc"],
117
+ [293, "hcirc"],
118
+ [294, "Hstrok"],
119
+ [295, "hstrok"],
120
+ [296, "Itilde"],
121
+ [297, "itilde"],
122
+ [298, "Imacr"],
123
+ [299, "imacr"],
124
+ [302, "Iogon"],
125
+ [303, "iogon"],
126
+ [304, "Idot"],
127
+ [305, "inodot"],
128
+ [305, "imath"],
129
+ [306, "IJlig"],
130
+ [307, "ijlig"],
131
+ [308, "Jcirc"],
132
+ [309, "jcirc"],
133
+ [310, "Kcedil"],
134
+ [311, "kcedil"],
135
+ [312, "kgreen"],
136
+ [313, "Lacute"],
137
+ [314, "lacute"],
138
+ [315, "Lcedil"],
139
+ [316, "lcedil"],
140
+ [317, "Lcaron"],
141
+ [318, "lcaron"],
142
+ [319, "Lmidot"],
143
+ [320, "lmidot"],
144
+ [321, "Lstrok"],
145
+ [322, "lstrok"],
146
+ [323, "Nacute"],
147
+ [324, "nacute"],
148
+ [325, "Ncedil"],
149
+ [326, "ncedil"],
150
+ [327, "Ncaron"],
151
+ [328, "ncaron"],
152
+ [329, "napos"],
153
+ [330, "ENG"],
154
+ [331, "eng"],
155
+ [332, "Omacr"],
156
+ [333, "omacr"],
157
+ [336, "Odblac"],
158
+ [337, "odblac"],
159
+ [340, "Racute"],
160
+ [341, "racute"],
161
+ [342, "Rcedil"],
162
+ [343, "rcedil"],
163
+ [344, "Rcaron"],
164
+ [345, "rcaron"],
165
+ [346, "Sacute"],
166
+ [347, "sacute"],
167
+ [348, "Scirc"],
168
+ [349, "scirc"],
169
+ [350, "Scedil"],
170
+ [351, "scedil"],
171
+ [354, "Tcedil"],
172
+ [355, "tcedil"],
173
+ [356, "Tcaron"],
174
+ [357, "tcaron"],
175
+ [358, "Tstrok"],
176
+ [359, "tstrok"],
177
+ [360, "Utilde"],
178
+ [361, "utilde"],
179
+ [362, "Umacr"],
180
+ [363, "umacr"],
181
+ [364, "Ubreve"],
182
+ [365, "ubreve"],
183
+ [366, "Uring"],
184
+ [367, "uring"],
185
+ [368, "Udblac"],
186
+ [369, "udblac"],
187
+ [370, "Uogon"],
188
+ [371, "uogon"],
189
+ [372, "Wcirc"],
190
+ [373, "wcirc"],
191
+ [374, "Ycirc"],
192
+ [375, "ycirc"],
193
+ [377, "Zacute"],
194
+ [378, "zacute"],
195
+ [379, "Zdot"],
196
+ [380, "zdot"],
197
+ [381, "Zcaron"],
198
+ [382, "zcaron"],
199
+ [437, "imped"],
200
+ [501, "gacute"],
201
+ [567, "jmath"],
202
+ [711, "caron"],
203
+ [711, "Hacek"],
204
+ [728, "breve"],
205
+ [728, "Breve"],
206
+ [729, "DiacriticalDot"],
207
+ [729, "dot"],
208
+ [730, "ring"],
209
+ [731, "ogon"],
210
+ [732, "DiacriticalTilde"],
211
+ [733, "dblac"],
212
+ [733, "DiacriticalDoubleAcute"],
213
+ [785, "DownBreve"],
214
+ [937, "ohm"],
215
+ [949, "epsi"],
216
+ [962, "sigmav"],
217
+ [962, "varsigma"],
218
+ [965, "upsi"],
219
+ [977, "vartheta"],
220
+ [977, "thetav"],
221
+ [978, "Upsi"],
222
+ [981, "varphi"],
223
+ [981, "straightphi"],
224
+ [981, "phiv"],
225
+ [982, "varpi"],
226
+ [988, "Gammad"],
227
+ [989, "digamma"],
228
+ [989, "gammad"],
229
+ [1008, "varkappa"],
230
+ [1008, "kappav"],
231
+ [1009, "rhov"],
232
+ [1009, "varrho"],
233
+ [1013, "varepsilon"],
234
+ [1013, "straightepsilon"],
235
+ [1013, "epsiv"],
236
+ [1014, "bepsi"],
237
+ [1014, "backepsilon"],
238
+ [1025, "IOcy"],
239
+ [1026, "DJcy"],
240
+ [1027, "GJcy"],
241
+ [1028, "Jukcy"],
242
+ [1029, "DScy"],
243
+ [1030, "Iukcy"],
244
+ [1031, "YIcy"],
245
+ [1032, "Jsercy"],
246
+ [1033, "LJcy"],
247
+ [1034, "NJcy"],
248
+ [1035, "TSHcy"],
249
+ [1036, "KJcy"],
250
+ [1038, "Ubrcy"],
251
+ [1039, "DZcy"],
252
+ [1040, "Acy"],
253
+ [1041, "Bcy"],
254
+ [1042, "Vcy"],
255
+ [1043, "Gcy"],
256
+ [1044, "Dcy"],
257
+ [1045, "IEcy"],
258
+ [1046, "ZHcy"],
259
+ [1047, "Zcy"],
260
+ [1048, "Icy"],
261
+ [1049, "Jcy"],
262
+ [1050, "Kcy"],
263
+ [1051, "Lcy"],
264
+ [1052, "Mcy"],
265
+ [1053, "Ncy"],
266
+ [1054, "Ocy"],
267
+ [1055, "Pcy"],
268
+ [1056, "Rcy"],
269
+ [1057, "Scy"],
270
+ [1058, "Tcy"],
271
+ [1059, "Ucy"],
272
+ [1060, "Fcy"],
273
+ [1061, "KHcy"],
274
+ [1062, "TScy"],
275
+ [1063, "CHcy"],
276
+ [1064, "SHcy"],
277
+ [1065, "SHCHcy"],
278
+ [1066, "HARDcy"],
279
+ [1067, "Ycy"],
280
+ [1068, "SOFTcy"],
281
+ [1069, "Ecy"],
282
+ [1070, "YUcy"],
283
+ [1071, "YAcy"],
284
+ [1072, "acy"],
285
+ [1073, "bcy"],
286
+ [1074, "vcy"],
287
+ [1075, "gcy"],
288
+ [1076, "dcy"],
289
+ [1077, "iecy"],
290
+ [1078, "zhcy"],
291
+ [1079, "zcy"],
292
+ [1080, "icy"],
293
+ [1081, "jcy"],
294
+ [1082, "kcy"],
295
+ [1083, "lcy"],
296
+ [1084, "mcy"],
297
+ [1085, "ncy"],
298
+ [1086, "ocy"],
299
+ [1087, "pcy"],
300
+ [1088, "rcy"],
301
+ [1089, "scy"],
302
+ [1090, "tcy"],
303
+ [1091, "ucy"],
304
+ [1092, "fcy"],
305
+ [1093, "khcy"],
306
+ [1094, "tscy"],
307
+ [1095, "chcy"],
308
+ [1096, "shcy"],
309
+ [1097, "shchcy"],
310
+ [1098, "hardcy"],
311
+ [1099, "ycy"],
312
+ [1100, "softcy"],
313
+ [1101, "ecy"],
314
+ [1102, "yucy"],
315
+ [1103, "yacy"],
316
+ [1105, "iocy"],
317
+ [1106, "djcy"],
318
+ [1107, "gjcy"],
319
+ [1108, "jukcy"],
320
+ [1109, "dscy"],
321
+ [1110, "iukcy"],
322
+ [1111, "yicy"],
323
+ [1112, "jsercy"],
324
+ [1113, "ljcy"],
325
+ [1114, "njcy"],
326
+ [1115, "tshcy"],
327
+ [1116, "kjcy"],
328
+ [1118, "ubrcy"],
329
+ [1119, "dzcy"],
330
+ [8196, "emsp13"],
331
+ [8197, "emsp14"],
332
+ [8199, "numsp"],
333
+ [8200, "puncsp"],
334
+ [8201, "ThinSpace"],
335
+ [8202, "VeryThinSpace"],
336
+ [8202, "hairsp"],
337
+ [8203, "NegativeThinSpace"],
338
+ [8203, "NegativeThickSpace"],
339
+ [8203, "ZeroWidthSpace"],
340
+ [8203, "NegativeVeryThinSpace"],
341
+ [8203, "NegativeMediumSpace"],
342
+ [8208, "dash"],
343
+ [8208, "hyphen"],
344
+ [8213, "horbar"],
345
+ [8214, "Vert"],
346
+ [8214, "Verbar"],
347
+ [8216, "OpenCurlyQuote"],
348
+ [8217, "CloseCurlyQuote"],
349
+ [8217, "rsquor"],
350
+ [8218, "lsquor"],
351
+ [8220, "OpenCurlyDoubleQuote"],
352
+ [8221, "CloseCurlyDoubleQuote"],
353
+ [8221, "rdquor"],
354
+ [8222, "ldquor"],
355
+ [8225, "ddagger"],
356
+ [8226, "bullet"],
357
+ [8229, "nldr"],
358
+ [8230, "mldr"],
359
+ [8241, "pertenk"],
360
+ [8244, "tprime"],
361
+ [8245, "backprime"],
362
+ [8245, "bprime"],
363
+ [8254, "OverBar"],
364
+ [8257, "caret"],
365
+ [8259, "hybull"],
366
+ [8271, "bsemi"],
367
+ [8279, "qprime"],
368
+ [8287, "MediumSpace"],
369
+ [[8287, 8202], "ThickSpace"],
370
+ [8288, "NoBreak"],
371
+ [8289, "ApplyFunction"],
372
+ [8289, "af"],
373
+ [8290, "it"],
374
+ [8290, "InvisibleTimes"],
375
+ [8291, "ic"],
376
+ [8291, "InvisibleComma"],
377
+ [8411, "TripleDot"],
378
+ [8411, "tdot"],
379
+ [8412, "DotDot"],
380
+ [8450, "Copf"],
381
+ [8450, "complexes"],
382
+ [8453, "incare"],
383
+ [8458, "gscr"],
384
+ [8459, "Hscr"],
385
+ [8459, "HilbertSpace"],
386
+ [8459, "hamilt"],
387
+ [8460, "Poincareplane"],
388
+ [8460, "Hfr"],
389
+ [8461, "quaternions"],
390
+ [8461, "Hopf"],
391
+ [8462, "planckh"],
392
+ [8463, "hslash"],
393
+ [8463, "planck"],
394
+ [8463, "plankv"],
395
+ [8463, "hbar"],
396
+ [8464, "Iscr"],
397
+ [8464, "imagline"],
398
+ [8465, "Im"],
399
+ [8465, "Ifr"],
400
+ [8465, "imagpart"],
401
+ [8466, "Laplacetrf"],
402
+ [8466, "Lscr"],
403
+ [8466, "lagran"],
404
+ [8467, "ell"],
405
+ [8469, "Nopf"],
406
+ [8469, "naturals"],
407
+ [8470, "numero"],
408
+ [8471, "copysr"],
409
+ [8472, "wp"],
410
+ [8473, "primes"],
411
+ [8473, "Popf"],
412
+ [8474, "rationals"],
413
+ [8474, "Qopf"],
414
+ [8475, "realine"],
415
+ [8475, "Rscr"],
416
+ [8476, "realpart"],
417
+ [8476, "Rfr"],
418
+ [8476, "Re"],
419
+ [8477, "reals"],
420
+ [8477, "Ropf"],
421
+ [8478, "rx"],
422
+ [8482, "TRADE"],
423
+ [8484, "integers"],
424
+ [8484, "Zopf"],
425
+ [8487, "mho"],
426
+ [8488, "Zfr"],
427
+ [8488, "zeetrf"],
428
+ [8489, "iiota"],
429
+ [8492, "Bernoullis"],
430
+ [8492, "Bscr"],
431
+ [8492, "bernou"],
432
+ [8493, "Cfr"],
433
+ [8493, "Cayleys"],
434
+ [8495, "escr"],
435
+ [8496, "Escr"],
436
+ [8496, "expectation"],
437
+ [8497, "Fouriertrf"],
438
+ [8497, "Fscr"],
439
+ [8499, "phmmat"],
440
+ [8499, "Mscr"],
441
+ [8499, "Mellintrf"],
442
+ [8500, "orderof"],
443
+ [8500, "order"],
444
+ [8500, "oscr"],
445
+ [8501, "aleph"],
446
+ [8502, "beth"],
447
+ [8503, "gimel"],
448
+ [8504, "daleth"],
449
+ [8517, "DD"],
450
+ [8517, "CapitalDifferentialD"],
451
+ [8518, "DifferentialD"],
452
+ [8518, "dd"],
453
+ [8519, "ExponentialE"],
454
+ [8519, "exponentiale"],
455
+ [8519, "ee"],
456
+ [8520, "ImaginaryI"],
457
+ [8520, "ii"],
458
+ [8531, "frac13"],
459
+ [8532, "frac23"],
460
+ [8533, "frac15"],
461
+ [8534, "frac25"],
462
+ [8535, "frac35"],
463
+ [8536, "frac45"],
464
+ [8537, "frac16"],
465
+ [8538, "frac56"],
466
+ [8539, "frac18"],
467
+ [8540, "frac38"],
468
+ [8541, "frac58"],
469
+ [8542, "frac78"],
470
+ [8592, "LeftArrow"],
471
+ [8592, "slarr"],
472
+ [8592, "ShortLeftArrow"],
473
+ [8592, "leftarrow"],
474
+ [8593, "uparrow"],
475
+ [8593, "UpArrow"],
476
+ [8593, "ShortUpArrow"],
477
+ [8594, "srarr"],
478
+ [8594, "rightarrow"],
479
+ [8594, "RightArrow"],
480
+ [8594, "ShortRightArrow"],
481
+ [8595, "downarrow"],
482
+ [8595, "DownArrow"],
483
+ [8595, "ShortDownArrow"],
484
+ [8596, "LeftRightArrow"],
485
+ [8596, "leftrightarrow"],
486
+ [8597, "UpDownArrow"],
487
+ [8597, "updownarrow"],
488
+ [8597, "varr"],
489
+ [8598, "UpperLeftArrow"],
490
+ [8598, "nwarr"],
491
+ [8598, "nwarrow"],
492
+ [8599, "UpperRightArrow"],
493
+ [8599, "nearr"],
494
+ [8599, "nearrow"],
495
+ [8600, "LowerRightArrow"],
496
+ [8600, "searr"],
497
+ [8600, "searrow"],
498
+ [8601, "LowerLeftArrow"],
499
+ [8601, "swarrow"],
500
+ [8601, "swarr"],
501
+ [8602, "nlarr"],
502
+ [8602, "nleftarrow"],
503
+ [8603, "nrightarrow"],
504
+ [8603, "nrarr"],
505
+ [8605, "rarrw"],
506
+ [8605, "rightsquigarrow"],
507
+ [[8605, 824], "nrarrw"],
508
+ [8606, "Larr"],
509
+ [8606, "twoheadleftarrow"],
510
+ [8607, "Uarr"],
511
+ [8608, "twoheadrightarrow"],
512
+ [8608, "Rarr"],
513
+ [8609, "Darr"],
514
+ [8610, "larrtl"],
515
+ [8610, "leftarrowtail"],
516
+ [8611, "rightarrowtail"],
517
+ [8611, "rarrtl"],
518
+ [8612, "LeftTeeArrow"],
519
+ [8612, "mapstoleft"],
520
+ [8613, "mapstoup"],
521
+ [8613, "UpTeeArrow"],
522
+ [8614, "map"],
523
+ [8614, "RightTeeArrow"],
524
+ [8614, "mapsto"],
525
+ [8615, "mapstodown"],
526
+ [8615, "DownTeeArrow"],
527
+ [8617, "hookleftarrow"],
528
+ [8617, "larrhk"],
529
+ [8618, "rarrhk"],
530
+ [8618, "hookrightarrow"],
531
+ [8619, "larrlp"],
532
+ [8619, "looparrowleft"],
533
+ [8620, "looparrowright"],
534
+ [8620, "rarrlp"],
535
+ [8621, "leftrightsquigarrow"],
536
+ [8621, "harrw"],
537
+ [8622, "nharr"],
538
+ [8622, "nleftrightarrow"],
539
+ [8624, "Lsh"],
540
+ [8624, "lsh"],
541
+ [8625, "rsh"],
542
+ [8625, "Rsh"],
543
+ [8626, "ldsh"],
544
+ [8627, "rdsh"],
545
+ [8630, "cularr"],
546
+ [8630, "curvearrowleft"],
547
+ [8631, "curvearrowright"],
548
+ [8631, "curarr"],
549
+ [8634, "olarr"],
550
+ [8634, "circlearrowleft"],
551
+ [8635, "circlearrowright"],
552
+ [8635, "orarr"],
553
+ [8636, "lharu"],
554
+ [8636, "leftharpoonup"],
555
+ [8636, "LeftVector"],
556
+ [8637, "leftharpoondown"],
557
+ [8637, "DownLeftVector"],
558
+ [8637, "lhard"],
559
+ [8638, "uharr"],
560
+ [8638, "upharpoonright"],
561
+ [8638, "RightUpVector"],
562
+ [8639, "uharl"],
563
+ [8639, "LeftUpVector"],
564
+ [8639, "upharpoonleft"],
565
+ [8640, "rightharpoonup"],
566
+ [8640, "rharu"],
567
+ [8640, "RightVector"],
568
+ [8641, "rhard"],
569
+ [8641, "DownRightVector"],
570
+ [8641, "rightharpoondown"],
571
+ [8642, "downharpoonright"],
572
+ [8642, "RightDownVector"],
573
+ [8642, "dharr"],
574
+ [8643, "downharpoonleft"],
575
+ [8643, "dharl"],
576
+ [8643, "LeftDownVector"],
577
+ [8644, "RightArrowLeftArrow"],
578
+ [8644, "rightleftarrows"],
579
+ [8644, "rlarr"],
580
+ [8645, "UpArrowDownArrow"],
581
+ [8645, "udarr"],
582
+ [8646, "leftrightarrows"],
583
+ [8646, "LeftArrowRightArrow"],
584
+ [8646, "lrarr"],
585
+ [8647, "leftleftarrows"],
586
+ [8647, "llarr"],
587
+ [8648, "uuarr"],
588
+ [8648, "upuparrows"],
589
+ [8649, "rightrightarrows"],
590
+ [8649, "rrarr"],
591
+ [8650, "downdownarrows"],
592
+ [8650, "ddarr"],
593
+ [8651, "lrhar"],
594
+ [8651, "ReverseEquilibrium"],
595
+ [8651, "leftrightharpoons"],
596
+ [8652, "rightleftharpoons"],
597
+ [8652, "Equilibrium"],
598
+ [8652, "rlhar"],
599
+ [8653, "nLeftarrow"],
600
+ [8653, "nlArr"],
601
+ [8654, "nLeftrightarrow"],
602
+ [8654, "nhArr"],
603
+ [8655, "nrArr"],
604
+ [8655, "nRightarrow"],
605
+ [8656, "Leftarrow"],
606
+ [8656, "DoubleLeftArrow"],
607
+ [8657, "DoubleUpArrow"],
608
+ [8657, "Uparrow"],
609
+ [8658, "Implies"],
610
+ [8658, "Rightarrow"],
611
+ [8658, "DoubleRightArrow"],
612
+ [8659, "Downarrow"],
613
+ [8659, "DoubleDownArrow"],
614
+ [8660, "iff"],
615
+ [8660, "Leftrightarrow"],
616
+ [8660, "DoubleLeftRightArrow"],
617
+ [8661, "vArr"],
618
+ [8661, "Updownarrow"],
619
+ [8661, "DoubleUpDownArrow"],
620
+ [8662, "nwArr"],
621
+ [8663, "neArr"],
622
+ [8664, "seArr"],
623
+ [8665, "swArr"],
624
+ [8666, "lAarr"],
625
+ [8666, "Lleftarrow"],
626
+ [8667, "Rrightarrow"],
627
+ [8667, "rAarr"],
628
+ [8669, "zigrarr"],
629
+ [8676, "larrb"],
630
+ [8676, "LeftArrowBar"],
631
+ [8677, "rarrb"],
632
+ [8677, "RightArrowBar"],
633
+ [8693, "duarr"],
634
+ [8693, "DownArrowUpArrow"],
635
+ [8701, "loarr"],
636
+ [8702, "roarr"],
637
+ [8703, "hoarr"],
638
+ [8704, "ForAll"],
639
+ [8705, "comp"],
640
+ [8705, "complement"],
641
+ [8706, "PartialD"],
642
+ [[8706, 824], "npart"],
643
+ [8707, "Exists"],
644
+ [8708, "nexist"],
645
+ [8708, "nexists"],
646
+ [8708, "NotExists"],
647
+ [8709, "emptyv"],
648
+ [8709, "emptyset"],
649
+ [8709, "varnothing"],
650
+ [8711, "Del"],
651
+ [8712, "in"],
652
+ [8712, "isinv"],
653
+ [8712, "Element"],
654
+ [8713, "NotElement"],
655
+ [8713, "notinva"],
656
+ [8715, "ReverseElement"],
657
+ [8715, "SuchThat"],
658
+ [8715, "niv"],
659
+ [8716, "NotReverseElement"],
660
+ [8716, "notniva"],
661
+ [8716, "notni"],
662
+ [8719, "Product"],
663
+ [8720, "Coproduct"],
664
+ [8720, "coprod"],
665
+ [8721, "Sum"],
666
+ [8723, "mp"],
667
+ [8723, "mnplus"],
668
+ [8723, "MinusPlus"],
669
+ [8724, "dotplus"],
670
+ [8724, "plusdo"],
671
+ [8726, "setminus"],
672
+ [8726, "ssetmn"],
673
+ [8726, "setmn"],
674
+ [8726, "smallsetminus"],
675
+ [8726, "Backslash"],
676
+ [8728, "SmallCircle"],
677
+ [8728, "compfn"],
678
+ [8730, "Sqrt"],
679
+ [8733, "varpropto"],
680
+ [8733, "Proportional"],
681
+ [8733, "propto"],
682
+ [8733, "vprop"],
683
+ [8735, "angrt"],
684
+ [8736, "angle"],
685
+ [[8736, 8402], "nang"],
686
+ [8737, "measuredangle"],
687
+ [8737, "angmsd"],
688
+ [8738, "angsph"],
689
+ [8739, "shortmid"],
690
+ [8739, "mid"],
691
+ [8739, "VerticalBar"],
692
+ [8739, "smid"],
693
+ [8740, "nsmid"],
694
+ [8740, "nmid"],
695
+ [8740, "nshortmid"],
696
+ [8740, "NotVerticalBar"],
697
+ [8741, "shortparallel"],
698
+ [8741, "spar"],
699
+ [8741, "DoubleVerticalBar"],
700
+ [8741, "par"],
701
+ [8741, "parallel"],
702
+ [8742, "nshortparallel"],
703
+ [8742, "nparallel"],
704
+ [8742, "npar"],
705
+ [8742, "nspar"],
706
+ [8742, "NotDoubleVerticalBar"],
707
+ [8743, "wedge"],
708
+ [8744, "vee"],
709
+ [8745, "cap"],
710
+ [[8745, 65024], "caps"],
711
+ [8746, "cup"],
712
+ [[8746, 65024], "cups"],
713
+ [8747, "Integral"],
714
+ [8748, "Int"],
715
+ [8749, "iiint"],
716
+ [8749, "tint"],
717
+ [8750, "oint"],
718
+ [8750, "ContourIntegral"],
719
+ [8750, "conint"],
720
+ [8751, "Conint"],
721
+ [8751, "DoubleContourIntegral"],
722
+ [8752, "Cconint"],
723
+ [8753, "cwint"],
724
+ [8754, "ClockwiseContourIntegral"],
725
+ [8754, "cwconint"],
726
+ [8755, "CounterClockwiseContourIntegral"],
727
+ [8755, "awconint"],
728
+ [8756, "therefore"],
729
+ [8756, "Therefore"],
730
+ [8757, "becaus"],
731
+ [8757, "Because"],
732
+ [8757, "because"],
733
+ [8758, "ratio"],
734
+ [8759, "Proportion"],
735
+ [8759, "Colon"],
736
+ [8760, "minusd"],
737
+ [8760, "dotminus"],
738
+ [8762, "mDDot"],
739
+ [8763, "homtht"],
740
+ [8764, "thksim"],
741
+ [8764, "Tilde"],
742
+ [8764, "thicksim"],
743
+ [[8764, 8402], "nvsim"],
744
+ [8765, "backsim"],
745
+ [8765, "bsim"],
746
+ [[8765, 817], "race"],
747
+ [8766, "mstpos"],
748
+ [8766, "ac"],
749
+ [[8766, 819], "acE"],
750
+ [8767, "acd"],
751
+ [8768, "wr"],
752
+ [8768, "VerticalTilde"],
753
+ [8768, "wreath"],
754
+ [8769, "NotTilde"],
755
+ [8769, "nsim"],
756
+ [8770, "eqsim"],
757
+ [8770, "esim"],
758
+ [8770, "EqualTilde"],
759
+ [[8770, 824], "NotEqualTilde"],
760
+ [[8770, 824], "nesim"],
761
+ [8771, "simeq"],
762
+ [8771, "TildeEqual"],
763
+ [8771, "sime"],
764
+ [8772, "nsimeq"],
765
+ [8772, "nsime"],
766
+ [8772, "NotTildeEqual"],
767
+ [8773, "TildeFullEqual"],
768
+ [8774, "simne"],
769
+ [8775, "ncong"],
770
+ [8775, "NotTildeFullEqual"],
771
+ [8776, "thickapprox"],
772
+ [8776, "ap"],
773
+ [8776, "TildeTilde"],
774
+ [8776, "thkap"],
775
+ [8776, "approx"],
776
+ [8777, "napprox"],
777
+ [8777, "NotTildeTilde"],
778
+ [8777, "nap"],
779
+ [8778, "ape"],
780
+ [8778, "approxeq"],
781
+ [8779, "apid"],
782
+ [[8779, 824], "napid"],
783
+ [8780, "bcong"],
784
+ [8780, "backcong"],
785
+ [8781, "asympeq"],
786
+ [8781, "CupCap"],
787
+ [[8781, 8402], "nvap"],
788
+ [8782, "HumpDownHump"],
789
+ [8782, "Bumpeq"],
790
+ [8782, "bump"],
791
+ [[8782, 824], "nbump"],
792
+ [[8782, 824], "NotHumpDownHump"],
793
+ [8783, "bumpe"],
794
+ [8783, "HumpEqual"],
795
+ [8783, "bumpeq"],
796
+ [[8783, 824], "nbumpe"],
797
+ [[8783, 824], "NotHumpEqual"],
798
+ [8784, "esdot"],
799
+ [8784, "DotEqual"],
800
+ [8784, "doteq"],
801
+ [[8784, 824], "nedot"],
802
+ [8785, "eDot"],
803
+ [8785, "doteqdot"],
804
+ [8786, "fallingdotseq"],
805
+ [8786, "efDot"],
806
+ [8787, "erDot"],
807
+ [8787, "risingdotseq"],
808
+ [8788, "Assign"],
809
+ [8788, "colone"],
810
+ [8788, "coloneq"],
811
+ [8789, "ecolon"],
812
+ [8789, "eqcolon"],
813
+ [8790, "ecir"],
814
+ [8790, "eqcirc"],
815
+ [8791, "circeq"],
816
+ [8791, "cire"],
817
+ [8793, "wedgeq"],
818
+ [8794, "veeeq"],
819
+ [8796, "trie"],
820
+ [8796, "triangleq"],
821
+ [8799, "questeq"],
822
+ [8799, "equest"],
823
+ [8800, "NotEqual"],
824
+ [8801, "Congruent"],
825
+ [[8801, 8421], "bnequiv"],
826
+ [8802, "nequiv"],
827
+ [8802, "NotCongruent"],
828
+ [8804, "leq"],
829
+ [[8804, 8402], "nvle"],
830
+ [8805, "GreaterEqual"],
831
+ [8805, "geq"],
832
+ [[8805, 8402], "nvge"],
833
+ [8806, "leqq"],
834
+ [8806, "lE"],
835
+ [8806, "LessFullEqual"],
836
+ [[8806, 824], "nlE"],
837
+ [[8806, 824], "nleqq"],
838
+ [8807, "gE"],
839
+ [8807, "GreaterFullEqual"],
840
+ [8807, "geqq"],
841
+ [[8807, 824], "NotGreaterFullEqual"],
842
+ [[8807, 824], "ngeqq"],
843
+ [[8807, 824], "ngE"],
844
+ [8808, "lneqq"],
845
+ [8808, "lnE"],
846
+ [[8808, 65024], "lvertneqq"],
847
+ [[8808, 65024], "lvnE"],
848
+ [8809, "gnE"],
849
+ [8809, "gneqq"],
850
+ [[8809, 65024], "gvnE"],
851
+ [[8809, 65024], "gvertneqq"],
852
+ [8810, "NestedLessLess"],
853
+ [8810, "ll"],
854
+ [8810, "Lt"],
855
+ [[8810, 824], "NotLessLess"],
856
+ [[8810, 824], "nLtv"],
857
+ [[8810, 8402], "nLt"],
858
+ [8811, "Gt"],
859
+ [8811, "gg"],
860
+ [8811, "NestedGreaterGreater"],
861
+ [[8811, 824], "NotGreaterGreater"],
862
+ [[8811, 824], "nGtv"],
863
+ [[8811, 8402], "nGt"],
864
+ [8812, "between"],
865
+ [8812, "twixt"],
866
+ [8813, "NotCupCap"],
867
+ [8814, "NotLess"],
868
+ [8814, "nless"],
869
+ [8814, "nlt"],
870
+ [8815, "ngt"],
871
+ [8815, "NotGreater"],
872
+ [8815, "ngtr"],
873
+ [8816, "nle"],
874
+ [8816, "nleq"],
875
+ [8816, "NotLessEqual"],
876
+ [8817, "NotGreaterEqual"],
877
+ [8817, "nge"],
878
+ [8817, "ngeq"],
879
+ [8818, "LessTilde"],
880
+ [8818, "lsim"],
881
+ [8818, "lesssim"],
882
+ [8819, "gtrsim"],
883
+ [8819, "gsim"],
884
+ [8819, "GreaterTilde"],
885
+ [8820, "NotLessTilde"],
886
+ [8820, "nlsim"],
887
+ [8821, "NotGreaterTilde"],
888
+ [8821, "ngsim"],
889
+ [8822, "LessGreater"],
890
+ [8822, "lessgtr"],
891
+ [8822, "lg"],
892
+ [8823, "gtrless"],
893
+ [8823, "GreaterLess"],
894
+ [8823, "gl"],
895
+ [8824, "ntlg"],
896
+ [8824, "NotLessGreater"],
897
+ [8825, "NotGreaterLess"],
898
+ [8825, "ntgl"],
899
+ [8826, "prec"],
900
+ [8826, "pr"],
901
+ [8826, "Precedes"],
902
+ [8827, "Succeeds"],
903
+ [8827, "succ"],
904
+ [8827, "sc"],
905
+ [8828, "PrecedesSlantEqual"],
906
+ [8828, "preccurlyeq"],
907
+ [8828, "prcue"],
908
+ [8829, "sccue"],
909
+ [8829, "SucceedsSlantEqual"],
910
+ [8829, "succcurlyeq"],
911
+ [8830, "prsim"],
912
+ [8830, "PrecedesTilde"],
913
+ [8830, "precsim"],
914
+ [8831, "succsim"],
915
+ [8831, "scsim"],
916
+ [8831, "SucceedsTilde"],
917
+ [[8831, 824], "NotSucceedsTilde"],
918
+ [8832, "NotPrecedes"],
919
+ [8832, "npr"],
920
+ [8832, "nprec"],
921
+ [8833, "NotSucceeds"],
922
+ [8833, "nsucc"],
923
+ [8833, "nsc"],
924
+ [8834, "subset"],
925
+ [[8834, 8402], "NotSubset"],
926
+ [[8834, 8402], "vnsub"],
927
+ [[8834, 8402], "nsubset"],
928
+ [8835, "Superset"],
929
+ [8835, "supset"],
930
+ [[8835, 8402], "NotSuperset"],
931
+ [[8835, 8402], "nsupset"],
932
+ [[8835, 8402], "vnsup"],
933
+ [8837, "nsup"],
934
+ [8838, "subseteq"],
935
+ [8838, "SubsetEqual"],
936
+ [8839, "SupersetEqual"],
937
+ [8839, "supseteq"],
938
+ [8840, "nsubseteq"],
939
+ [8840, "NotSubsetEqual"],
940
+ [8840, "nsube"],
941
+ [8841, "NotSupersetEqual"],
942
+ [8841, "nsupseteq"],
943
+ [8841, "nsupe"],
944
+ [8842, "subsetneq"],
945
+ [8842, "subne"],
946
+ [[8842, 65024], "vsubne"],
947
+ [[8842, 65024], "varsubsetneq"],
948
+ [8843, "supne"],
949
+ [8843, "supsetneq"],
950
+ [[8843, 65024], "vsupne"],
951
+ [[8843, 65024], "varsupsetneq"],
952
+ [8845, "cupdot"],
953
+ [8846, "UnionPlus"],
954
+ [8846, "uplus"],
955
+ [8847, "SquareSubset"],
956
+ [8847, "sqsub"],
957
+ [8847, "sqsubset"],
958
+ [[8847, 824], "NotSquareSubset"],
959
+ [8848, "SquareSuperset"],
960
+ [8848, "sqsupset"],
961
+ [8848, "sqsup"],
962
+ [[8848, 824], "NotSquareSuperset"],
963
+ [8849, "sqsubseteq"],
964
+ [8849, "sqsube"],
965
+ [8849, "SquareSubsetEqual"],
966
+ [8850, "SquareSupersetEqual"],
967
+ [8850, "sqsupe"],
968
+ [8850, "sqsupseteq"],
969
+ [8851, "SquareIntersection"],
970
+ [8851, "sqcap"],
971
+ [[8851, 65024], "sqcaps"],
972
+ [8852, "SquareUnion"],
973
+ [8852, "sqcup"],
974
+ [[8852, 65024], "sqcups"],
975
+ [8853, "CirclePlus"],
976
+ [8854, "ominus"],
977
+ [8854, "CircleMinus"],
978
+ [8855, "CircleTimes"],
979
+ [8856, "osol"],
980
+ [8857, "odot"],
981
+ [8857, "CircleDot"],
982
+ [8858, "circledcirc"],
983
+ [8858, "ocir"],
984
+ [8859, "oast"],
985
+ [8859, "circledast"],
986
+ [8861, "circleddash"],
987
+ [8861, "odash"],
988
+ [8862, "boxplus"],
989
+ [8862, "plusb"],
990
+ [8863, "boxminus"],
991
+ [8863, "minusb"],
992
+ [8864, "boxtimes"],
993
+ [8864, "timesb"],
994
+ [8865, "sdotb"],
995
+ [8865, "dotsquare"],
996
+ [8866, "vdash"],
997
+ [8866, "RightTee"],
998
+ [8867, "LeftTee"],
999
+ [8867, "dashv"],
1000
+ [8868, "top"],
1001
+ [8868, "DownTee"],
1002
+ [8869, "bottom"],
1003
+ [8869, "UpTee"],
1004
+ [8869, "bot"],
1005
+ [8871, "models"],
1006
+ [8872, "DoubleRightTee"],
1007
+ [8872, "vDash"],
1008
+ [8873, "Vdash"],
1009
+ [8874, "Vvdash"],
1010
+ [8875, "VDash"],
1011
+ [8876, "nvdash"],
1012
+ [8877, "nvDash"],
1013
+ [8878, "nVdash"],
1014
+ [8879, "nVDash"],
1015
+ [8880, "prurel"],
1016
+ [8882, "LeftTriangle"],
1017
+ [8882, "vltri"],
1018
+ [8882, "vartriangleleft"],
1019
+ [8883, "RightTriangle"],
1020
+ [8883, "vrtri"],
1021
+ [8883, "vartriangleright"],
1022
+ [8884, "LeftTriangleEqual"],
1023
+ [8884, "ltrie"],
1024
+ [8884, "trianglelefteq"],
1025
+ [[8884, 8402], "nvltrie"],
1026
+ [8885, "trianglerighteq"],
1027
+ [8885, "RightTriangleEqual"],
1028
+ [8885, "rtrie"],
1029
+ [[8885, 8402], "nvrtrie"],
1030
+ [8886, "origof"],
1031
+ [8887, "imof"],
1032
+ [8888, "multimap"],
1033
+ [8888, "mumap"],
1034
+ [8889, "hercon"],
1035
+ [8890, "intercal"],
1036
+ [8890, "intcal"],
1037
+ [8891, "veebar"],
1038
+ [8893, "barvee"],
1039
+ [8894, "angrtvb"],
1040
+ [8895, "lrtri"],
1041
+ [8896, "xwedge"],
1042
+ [8896, "bigwedge"],
1043
+ [8896, "Wedge"],
1044
+ [8897, "xvee"],
1045
+ [8897, "Vee"],
1046
+ [8897, "bigvee"],
1047
+ [8898, "xcap"],
1048
+ [8898, "bigcap"],
1049
+ [8898, "Intersection"],
1050
+ [8899, "Union"],
1051
+ [8899, "bigcup"],
1052
+ [8899, "xcup"],
1053
+ [8900, "diam"],
1054
+ [8900, "diamond"],
1055
+ [8900, "Diamond"],
1056
+ [8902, "sstarf"],
1057
+ [8902, "Star"],
1058
+ [8903, "divonx"],
1059
+ [8903, "divideontimes"],
1060
+ [8904, "bowtie"],
1061
+ [8905, "ltimes"],
1062
+ [8906, "rtimes"],
1063
+ [8907, "leftthreetimes"],
1064
+ [8907, "lthree"],
1065
+ [8908, "rightthreetimes"],
1066
+ [8908, "rthree"],
1067
+ [8909, "bsime"],
1068
+ [8909, "backsimeq"],
1069
+ [8910, "curlyvee"],
1070
+ [8910, "cuvee"],
1071
+ [8911, "curlywedge"],
1072
+ [8911, "cuwed"],
1073
+ [8912, "Subset"],
1074
+ [8912, "Sub"],
1075
+ [8913, "Sup"],
1076
+ [8913, "Supset"],
1077
+ [8914, "Cap"],
1078
+ [8915, "Cup"],
1079
+ [8916, "fork"],
1080
+ [8916, "pitchfork"],
1081
+ [8917, "epar"],
1082
+ [8918, "ltdot"],
1083
+ [8918, "lessdot"],
1084
+ [8919, "gtdot"],
1085
+ [8919, "gtrdot"],
1086
+ [8920, "Ll"],
1087
+ [[8920, 824], "nLl"],
1088
+ [8921, "ggg"],
1089
+ [8921, "Gg"],
1090
+ [[8921, 824], "nGg"],
1091
+ [8922, "lesseqgtr"],
1092
+ [8922, "LessEqualGreater"],
1093
+ [8922, "leg"],
1094
+ [[8922, 65024], "lesg"],
1095
+ [8923, "GreaterEqualLess"],
1096
+ [8923, "gtreqless"],
1097
+ [8923, "gel"],
1098
+ [[8923, 65024], "gesl"],
1099
+ [8926, "curlyeqprec"],
1100
+ [8926, "cuepr"],
1101
+ [8927, "cuesc"],
1102
+ [8927, "curlyeqsucc"],
1103
+ [8928, "nprcue"],
1104
+ [8928, "NotPrecedesSlantEqual"],
1105
+ [8929, "nsccue"],
1106
+ [8929, "NotSucceedsSlantEqual"],
1107
+ [8930, "nsqsube"],
1108
+ [8930, "NotSquareSubsetEqual"],
1109
+ [8931, "NotSquareSupersetEqual"],
1110
+ [8931, "nsqsupe"],
1111
+ [8934, "lnsim"],
1112
+ [8935, "gnsim"],
1113
+ [8936, "prnsim"],
1114
+ [8936, "precnsim"],
1115
+ [8937, "succnsim"],
1116
+ [8937, "scnsim"],
1117
+ [8938, "NotLeftTriangle"],
1118
+ [8938, "nltri"],
1119
+ [8938, "ntriangleleft"],
1120
+ [8939, "nrtri"],
1121
+ [8939, "NotRightTriangle"],
1122
+ [8939, "ntriangleright"],
1123
+ [8940, "nltrie"],
1124
+ [8940, "ntrianglelefteq"],
1125
+ [8940, "NotLeftTriangleEqual"],
1126
+ [8941, "ntrianglerighteq"],
1127
+ [8941, "nrtrie"],
1128
+ [8941, "NotRightTriangleEqual"],
1129
+ [8943, "ctdot"],
1130
+ [8944, "utdot"],
1131
+ [8945, "dtdot"],
1132
+ [8946, "disin"],
1133
+ [8947, "isinsv"],
1134
+ [8948, "isins"],
1135
+ [8949, "isindot"],
1136
+ [[8949, 824], "notindot"],
1137
+ [8950, "notinvc"],
1138
+ [8951, "notinvb"],
1139
+ [8953, "isinE"],
1140
+ [[8953, 824], "notinE"],
1141
+ [8954, "nisd"],
1142
+ [8955, "xnis"],
1143
+ [8956, "nis"],
1144
+ [8957, "notnivc"],
1145
+ [8958, "notnivb"],
1146
+ [8965, "barwed"],
1147
+ [8965, "barwedge"],
1148
+ [8966, "Barwed"],
1149
+ [8966, "doublebarwedge"],
1150
+ [8968, "lceil"],
1151
+ [8968, "LeftCeiling"],
1152
+ [8969, "rceil"],
1153
+ [8969, "RightCeiling"],
1154
+ [8970, "LeftFloor"],
1155
+ [8971, "RightFloor"],
1156
+ [8972, "drcrop"],
1157
+ [8973, "dlcrop"],
1158
+ [8974, "urcrop"],
1159
+ [8975, "ulcrop"],
1160
+ [8976, "bnot"],
1161
+ [8978, "profline"],
1162
+ [8979, "profsurf"],
1163
+ [8981, "telrec"],
1164
+ [8982, "target"],
1165
+ [8988, "ulcorn"],
1166
+ [8988, "ulcorner"],
1167
+ [8989, "urcorn"],
1168
+ [8989, "urcorner"],
1169
+ [8990, "llcorner"],
1170
+ [8990, "dlcorn"],
1171
+ [8991, "lrcorner"],
1172
+ [8991, "drcorn"],
1173
+ [8994, "frown"],
1174
+ [8994, "sfrown"],
1175
+ [8995, "ssmile"],
1176
+ [8995, "smile"],
1177
+ [9005, "cylcty"],
1178
+ [9006, "profalar"],
1179
+ [9014, "topbot"],
1180
+ [9021, "ovbar"],
1181
+ [9023, "solbar"],
1182
+ [9084, "angzarr"],
1183
+ [9136, "lmoustache"],
1184
+ [9136, "lmoust"],
1185
+ [9137, "rmoust"],
1186
+ [9137, "rmoustache"],
1187
+ [9140, "tbrk"],
1188
+ [9140, "OverBracket"],
1189
+ [9141, "bbrk"],
1190
+ [9141, "UnderBracket"],
1191
+ [9142, "bbrktbrk"],
1192
+ [9180, "OverParenthesis"],
1193
+ [9181, "UnderParenthesis"],
1194
+ [9182, "OverBrace"],
1195
+ [9183, "UnderBrace"],
1196
+ [9186, "trpezium"],
1197
+ [9191, "elinters"],
1198
+ [9251, "blank"],
1199
+ [9416, "circledS"],
1200
+ [9416, "oS"],
1201
+ [9472, "boxh"],
1202
+ [9472, "HorizontalLine"],
1203
+ [9474, "boxv"],
1204
+ [9484, "boxdr"],
1205
+ [9488, "boxdl"],
1206
+ [9492, "boxur"],
1207
+ [9496, "boxul"],
1208
+ [9500, "boxvr"],
1209
+ [9508, "boxvl"],
1210
+ [9516, "boxhd"],
1211
+ [9524, "boxhu"],
1212
+ [9532, "boxvh"],
1213
+ [9552, "boxH"],
1214
+ [9553, "boxV"],
1215
+ [9554, "boxdR"],
1216
+ [9555, "boxDr"],
1217
+ [9556, "boxDR"],
1218
+ [9557, "boxdL"],
1219
+ [9558, "boxDl"],
1220
+ [9559, "boxDL"],
1221
+ [9560, "boxuR"],
1222
+ [9561, "boxUr"],
1223
+ [9562, "boxUR"],
1224
+ [9563, "boxuL"],
1225
+ [9564, "boxUl"],
1226
+ [9565, "boxUL"],
1227
+ [9566, "boxvR"],
1228
+ [9567, "boxVr"],
1229
+ [9568, "boxVR"],
1230
+ [9569, "boxvL"],
1231
+ [9570, "boxVl"],
1232
+ [9571, "boxVL"],
1233
+ [9572, "boxHd"],
1234
+ [9573, "boxhD"],
1235
+ [9574, "boxHD"],
1236
+ [9575, "boxHu"],
1237
+ [9576, "boxhU"],
1238
+ [9577, "boxHU"],
1239
+ [9578, "boxvH"],
1240
+ [9579, "boxVh"],
1241
+ [9580, "boxVH"],
1242
+ [9600, "uhblk"],
1243
+ [9604, "lhblk"],
1244
+ [9608, "block"],
1245
+ [9617, "blk14"],
1246
+ [9618, "blk12"],
1247
+ [9619, "blk34"],
1248
+ [9633, "squ"],
1249
+ [9633, "square"],
1250
+ [9633, "Square"],
1251
+ [9642, "blacksquare"],
1252
+ [9642, "FilledVerySmallSquare"],
1253
+ [9642, "squf"],
1254
+ [9642, "squarf"],
1255
+ [9643, "EmptyVerySmallSquare"],
1256
+ [9645, "rect"],
1257
+ [9646, "marker"],
1258
+ [9649, "fltns"],
1259
+ [9651, "xutri"],
1260
+ [9651, "bigtriangleup"],
1261
+ [9652, "blacktriangle"],
1262
+ [9652, "utrif"],
1263
+ [9653, "triangle"],
1264
+ [9653, "utri"],
1265
+ [9656, "rtrif"],
1266
+ [9656, "blacktriangleright"],
1267
+ [9657, "rtri"],
1268
+ [9657, "triangleright"],
1269
+ [9661, "xdtri"],
1270
+ [9661, "bigtriangledown"],
1271
+ [9662, "blacktriangledown"],
1272
+ [9662, "dtrif"],
1273
+ [9663, "triangledown"],
1274
+ [9663, "dtri"],
1275
+ [9666, "blacktriangleleft"],
1276
+ [9666, "ltrif"],
1277
+ [9667, "ltri"],
1278
+ [9667, "triangleleft"],
1279
+ [9674, "lozenge"],
1280
+ [9675, "cir"],
1281
+ [9708, "tridot"],
1282
+ [9711, "bigcirc"],
1283
+ [9711, "xcirc"],
1284
+ [9720, "ultri"],
1285
+ [9721, "urtri"],
1286
+ [9722, "lltri"],
1287
+ [9723, "EmptySmallSquare"],
1288
+ [9724, "FilledSmallSquare"],
1289
+ [9733, "starf"],
1290
+ [9733, "bigstar"],
1291
+ [9734, "star"],
1292
+ [9742, "phone"],
1293
+ [9792, "female"],
1294
+ [9794, "male"],
1295
+ [9824, "spadesuit"],
1296
+ [9827, "clubsuit"],
1297
+ [9829, "heartsuit"],
1298
+ [9830, "diamondsuit"],
1299
+ [9834, "sung"],
1300
+ [9837, "flat"],
1301
+ [9838, "natur"],
1302
+ [9838, "natural"],
1303
+ [9839, "sharp"],
1304
+ [10003, "checkmark"],
1305
+ [10003, "check"],
1306
+ [10007, "cross"],
1307
+ [10016, "malt"],
1308
+ [10016, "maltese"],
1309
+ [10038, "sext"],
1310
+ [10072, "VerticalSeparator"],
1311
+ [10098, "lbbrk"],
1312
+ [10099, "rbbrk"],
1313
+ [10184, "bsolhsub"],
1314
+ [10185, "suphsol"],
1315
+ [10214, "LeftDoubleBracket"],
1316
+ [10214, "lobrk"],
1317
+ [10215, "RightDoubleBracket"],
1318
+ [10215, "robrk"],
1319
+ [10216, "lang"],
1320
+ [10216, "langle"],
1321
+ [10216, "LeftAngleBracket"],
1322
+ [10217, "rang"],
1323
+ [10217, "RightAngleBracket"],
1324
+ [10217, "rangle"],
1325
+ [10218, "Lang"],
1326
+ [10219, "Rang"],
1327
+ [10220, "loang"],
1328
+ [10221, "roang"],
1329
+ [10229, "LongLeftArrow"],
1330
+ [10229, "xlarr"],
1331
+ [10229, "longleftarrow"],
1332
+ [10230, "LongRightArrow"],
1333
+ [10230, "xrarr"],
1334
+ [10230, "longrightarrow"],
1335
+ [10231, "longleftrightarrow"],
1336
+ [10231, "LongLeftRightArrow"],
1337
+ [10231, "xharr"],
1338
+ [10232, "Longleftarrow"],
1339
+ [10232, "xlArr"],
1340
+ [10232, "DoubleLongLeftArrow"],
1341
+ [10233, "Longrightarrow"],
1342
+ [10233, "DoubleLongRightArrow"],
1343
+ [10233, "xrArr"],
1344
+ [10234, "xhArr"],
1345
+ [10234, "Longleftrightarrow"],
1346
+ [10234, "DoubleLongLeftRightArrow"],
1347
+ [10236, "xmap"],
1348
+ [10236, "longmapsto"],
1349
+ [10239, "dzigrarr"],
1350
+ [10498, "nvlArr"],
1351
+ [10499, "nvrArr"],
1352
+ [10500, "nvHarr"],
1353
+ [10501, "Map"],
1354
+ [10508, "lbarr"],
1355
+ [10509, "rbarr"],
1356
+ [10509, "bkarow"],
1357
+ [10510, "lBarr"],
1358
+ [10511, "rBarr"],
1359
+ [10511, "dbkarow"],
1360
+ [10512, "drbkarow"],
1361
+ [10512, "RBarr"],
1362
+ [10513, "DDotrahd"],
1363
+ [10514, "UpArrowBar"],
1364
+ [10515, "DownArrowBar"],
1365
+ [10518, "Rarrtl"],
1366
+ [10521, "latail"],
1367
+ [10522, "ratail"],
1368
+ [10523, "lAtail"],
1369
+ [10524, "rAtail"],
1370
+ [10525, "larrfs"],
1371
+ [10526, "rarrfs"],
1372
+ [10527, "larrbfs"],
1373
+ [10528, "rarrbfs"],
1374
+ [10531, "nwarhk"],
1375
+ [10532, "nearhk"],
1376
+ [10533, "searhk"],
1377
+ [10533, "hksearow"],
1378
+ [10534, "swarhk"],
1379
+ [10534, "hkswarow"],
1380
+ [10535, "nwnear"],
1381
+ [10536, "nesear"],
1382
+ [10536, "toea"],
1383
+ [10537, "tosa"],
1384
+ [10537, "seswar"],
1385
+ [10538, "swnwar"],
1386
+ [10547, "rarrc"],
1387
+ [[10547, 824], "nrarrc"],
1388
+ [10549, "cudarrr"],
1389
+ [10550, "ldca"],
1390
+ [10551, "rdca"],
1391
+ [10552, "cudarrl"],
1392
+ [10553, "larrpl"],
1393
+ [10556, "curarrm"],
1394
+ [10557, "cularrp"],
1395
+ [10565, "rarrpl"],
1396
+ [10568, "harrcir"],
1397
+ [10569, "Uarrocir"],
1398
+ [10570, "lurdshar"],
1399
+ [10571, "ldrushar"],
1400
+ [10574, "LeftRightVector"],
1401
+ [10575, "RightUpDownVector"],
1402
+ [10576, "DownLeftRightVector"],
1403
+ [10577, "LeftUpDownVector"],
1404
+ [10578, "LeftVectorBar"],
1405
+ [10579, "RightVectorBar"],
1406
+ [10580, "RightUpVectorBar"],
1407
+ [10581, "RightDownVectorBar"],
1408
+ [10582, "DownLeftVectorBar"],
1409
+ [10583, "DownRightVectorBar"],
1410
+ [10584, "LeftUpVectorBar"],
1411
+ [10585, "LeftDownVectorBar"],
1412
+ [10586, "LeftTeeVector"],
1413
+ [10587, "RightTeeVector"],
1414
+ [10588, "RightUpTeeVector"],
1415
+ [10589, "RightDownTeeVector"],
1416
+ [10590, "DownLeftTeeVector"],
1417
+ [10591, "DownRightTeeVector"],
1418
+ [10592, "LeftUpTeeVector"],
1419
+ [10593, "LeftDownTeeVector"],
1420
+ [10594, "lHar"],
1421
+ [10595, "uHar"],
1422
+ [10596, "rHar"],
1423
+ [10597, "dHar"],
1424
+ [10598, "luruhar"],
1425
+ [10599, "ldrdhar"],
1426
+ [10600, "ruluhar"],
1427
+ [10601, "rdldhar"],
1428
+ [10602, "lharul"],
1429
+ [10603, "llhard"],
1430
+ [10604, "rharul"],
1431
+ [10605, "lrhard"],
1432
+ [10606, "udhar"],
1433
+ [10606, "UpEquilibrium"],
1434
+ [10607, "duhar"],
1435
+ [10607, "ReverseUpEquilibrium"],
1436
+ [10608, "RoundImplies"],
1437
+ [10609, "erarr"],
1438
+ [10610, "simrarr"],
1439
+ [10611, "larrsim"],
1440
+ [10612, "rarrsim"],
1441
+ [10613, "rarrap"],
1442
+ [10614, "ltlarr"],
1443
+ [10616, "gtrarr"],
1444
+ [10617, "subrarr"],
1445
+ [10619, "suplarr"],
1446
+ [10620, "lfisht"],
1447
+ [10621, "rfisht"],
1448
+ [10622, "ufisht"],
1449
+ [10623, "dfisht"],
1450
+ [10629, "lopar"],
1451
+ [10630, "ropar"],
1452
+ [10635, "lbrke"],
1453
+ [10636, "rbrke"],
1454
+ [10637, "lbrkslu"],
1455
+ [10638, "rbrksld"],
1456
+ [10639, "lbrksld"],
1457
+ [10640, "rbrkslu"],
1458
+ [10641, "langd"],
1459
+ [10642, "rangd"],
1460
+ [10643, "lparlt"],
1461
+ [10644, "rpargt"],
1462
+ [10645, "gtlPar"],
1463
+ [10646, "ltrPar"],
1464
+ [10650, "vzigzag"],
1465
+ [10652, "vangrt"],
1466
+ [10653, "angrtvbd"],
1467
+ [10660, "ange"],
1468
+ [10661, "range"],
1469
+ [10662, "dwangle"],
1470
+ [10663, "uwangle"],
1471
+ [10664, "angmsdaa"],
1472
+ [10665, "angmsdab"],
1473
+ [10666, "angmsdac"],
1474
+ [10667, "angmsdad"],
1475
+ [10668, "angmsdae"],
1476
+ [10669, "angmsdaf"],
1477
+ [10670, "angmsdag"],
1478
+ [10671, "angmsdah"],
1479
+ [10672, "bemptyv"],
1480
+ [10673, "demptyv"],
1481
+ [10674, "cemptyv"],
1482
+ [10675, "raemptyv"],
1483
+ [10676, "laemptyv"],
1484
+ [10677, "ohbar"],
1485
+ [10678, "omid"],
1486
+ [10679, "opar"],
1487
+ [10681, "operp"],
1488
+ [10683, "olcross"],
1489
+ [10684, "odsold"],
1490
+ [10686, "olcir"],
1491
+ [10687, "ofcir"],
1492
+ [10688, "olt"],
1493
+ [10689, "ogt"],
1494
+ [10690, "cirscir"],
1495
+ [10691, "cirE"],
1496
+ [10692, "solb"],
1497
+ [10693, "bsolb"],
1498
+ [10697, "boxbox"],
1499
+ [10701, "trisb"],
1500
+ [10702, "rtriltri"],
1501
+ [10703, "LeftTriangleBar"],
1502
+ [[10703, 824], "NotLeftTriangleBar"],
1503
+ [10704, "RightTriangleBar"],
1504
+ [[10704, 824], "NotRightTriangleBar"],
1505
+ [10716, "iinfin"],
1506
+ [10717, "infintie"],
1507
+ [10718, "nvinfin"],
1508
+ [10723, "eparsl"],
1509
+ [10724, "smeparsl"],
1510
+ [10725, "eqvparsl"],
1511
+ [10731, "lozf"],
1512
+ [10731, "blacklozenge"],
1513
+ [10740, "RuleDelayed"],
1514
+ [10742, "dsol"],
1515
+ [10752, "xodot"],
1516
+ [10752, "bigodot"],
1517
+ [10753, "xoplus"],
1518
+ [10753, "bigoplus"],
1519
+ [10754, "xotime"],
1520
+ [10754, "bigotimes"],
1521
+ [10756, "xuplus"],
1522
+ [10756, "biguplus"],
1523
+ [10758, "bigsqcup"],
1524
+ [10758, "xsqcup"],
1525
+ [10764, "qint"],
1526
+ [10764, "iiiint"],
1527
+ [10765, "fpartint"],
1528
+ [10768, "cirfnint"],
1529
+ [10769, "awint"],
1530
+ [10770, "rppolint"],
1531
+ [10771, "scpolint"],
1532
+ [10772, "npolint"],
1533
+ [10773, "pointint"],
1534
+ [10774, "quatint"],
1535
+ [10775, "intlarhk"],
1536
+ [10786, "pluscir"],
1537
+ [10787, "plusacir"],
1538
+ [10788, "simplus"],
1539
+ [10789, "plusdu"],
1540
+ [10790, "plussim"],
1541
+ [10791, "plustwo"],
1542
+ [10793, "mcomma"],
1543
+ [10794, "minusdu"],
1544
+ [10797, "loplus"],
1545
+ [10798, "roplus"],
1546
+ [10799, "Cross"],
1547
+ [10800, "timesd"],
1548
+ [10801, "timesbar"],
1549
+ [10803, "smashp"],
1550
+ [10804, "lotimes"],
1551
+ [10805, "rotimes"],
1552
+ [10806, "otimesas"],
1553
+ [10807, "Otimes"],
1554
+ [10808, "odiv"],
1555
+ [10809, "triplus"],
1556
+ [10810, "triminus"],
1557
+ [10811, "tritime"],
1558
+ [10812, "intprod"],
1559
+ [10812, "iprod"],
1560
+ [10815, "amalg"],
1561
+ [10816, "capdot"],
1562
+ [10818, "ncup"],
1563
+ [10819, "ncap"],
1564
+ [10820, "capand"],
1565
+ [10821, "cupor"],
1566
+ [10822, "cupcap"],
1567
+ [10823, "capcup"],
1568
+ [10824, "cupbrcap"],
1569
+ [10825, "capbrcup"],
1570
+ [10826, "cupcup"],
1571
+ [10827, "capcap"],
1572
+ [10828, "ccups"],
1573
+ [10829, "ccaps"],
1574
+ [10832, "ccupssm"],
1575
+ [10835, "And"],
1576
+ [10836, "Or"],
1577
+ [10837, "andand"],
1578
+ [10838, "oror"],
1579
+ [10839, "orslope"],
1580
+ [10840, "andslope"],
1581
+ [10842, "andv"],
1582
+ [10843, "orv"],
1583
+ [10844, "andd"],
1584
+ [10845, "ord"],
1585
+ [10847, "wedbar"],
1586
+ [10854, "sdote"],
1587
+ [10858, "simdot"],
1588
+ [10861, "congdot"],
1589
+ [[10861, 824], "ncongdot"],
1590
+ [10862, "easter"],
1591
+ [10863, "apacir"],
1592
+ [10864, "apE"],
1593
+ [[10864, 824], "napE"],
1594
+ [10865, "eplus"],
1595
+ [10866, "pluse"],
1596
+ [10867, "Esim"],
1597
+ [10868, "Colone"],
1598
+ [10869, "Equal"],
1599
+ [10871, "eDDot"],
1600
+ [10871, "ddotseq"],
1601
+ [10872, "equivDD"],
1602
+ [10873, "ltcir"],
1603
+ [10874, "gtcir"],
1604
+ [10875, "ltquest"],
1605
+ [10876, "gtquest"],
1606
+ [10877, "les"],
1607
+ [10877, "LessSlantEqual"],
1608
+ [10877, "leqslant"],
1609
+ [[10877, 824], "nleqslant"],
1610
+ [[10877, 824], "NotLessSlantEqual"],
1611
+ [[10877, 824], "nles"],
1612
+ [10878, "GreaterSlantEqual"],
1613
+ [10878, "ges"],
1614
+ [10878, "geqslant"],
1615
+ [[10878, 824], "NotGreaterSlantEqual"],
1616
+ [[10878, 824], "ngeqslant"],
1617
+ [[10878, 824], "nges"],
1618
+ [10879, "lesdot"],
1619
+ [10880, "gesdot"],
1620
+ [10881, "lesdoto"],
1621
+ [10882, "gesdoto"],
1622
+ [10883, "lesdotor"],
1623
+ [10884, "gesdotol"],
1624
+ [10885, "lap"],
1625
+ [10885, "lessapprox"],
1626
+ [10886, "gap"],
1627
+ [10886, "gtrapprox"],
1628
+ [10887, "lneq"],
1629
+ [10887, "lne"],
1630
+ [10888, "gne"],
1631
+ [10888, "gneq"],
1632
+ [10889, "lnap"],
1633
+ [10889, "lnapprox"],
1634
+ [10890, "gnapprox"],
1635
+ [10890, "gnap"],
1636
+ [10891, "lesseqqgtr"],
1637
+ [10891, "lEg"],
1638
+ [10892, "gtreqqless"],
1639
+ [10892, "gEl"],
1640
+ [10893, "lsime"],
1641
+ [10894, "gsime"],
1642
+ [10895, "lsimg"],
1643
+ [10896, "gsiml"],
1644
+ [10897, "lgE"],
1645
+ [10898, "glE"],
1646
+ [10899, "lesges"],
1647
+ [10900, "gesles"],
1648
+ [10901, "els"],
1649
+ [10901, "eqslantless"],
1650
+ [10902, "egs"],
1651
+ [10902, "eqslantgtr"],
1652
+ [10903, "elsdot"],
1653
+ [10904, "egsdot"],
1654
+ [10905, "el"],
1655
+ [10906, "eg"],
1656
+ [10909, "siml"],
1657
+ [10910, "simg"],
1658
+ [10911, "simlE"],
1659
+ [10912, "simgE"],
1660
+ [10913, "LessLess"],
1661
+ [[10913, 824], "NotNestedLessLess"],
1662
+ [10914, "GreaterGreater"],
1663
+ [[10914, 824], "NotNestedGreaterGreater"],
1664
+ [10916, "glj"],
1665
+ [10917, "gla"],
1666
+ [10918, "ltcc"],
1667
+ [10919, "gtcc"],
1668
+ [10920, "lescc"],
1669
+ [10921, "gescc"],
1670
+ [10922, "smt"],
1671
+ [10923, "lat"],
1672
+ [10924, "smte"],
1673
+ [[10924, 65024], "smtes"],
1674
+ [10925, "late"],
1675
+ [[10925, 65024], "lates"],
1676
+ [10926, "bumpE"],
1677
+ [10927, "preceq"],
1678
+ [10927, "PrecedesEqual"],
1679
+ [10927, "pre"],
1680
+ [[10927, 824], "npreceq"],
1681
+ [[10927, 824], "NotPrecedesEqual"],
1682
+ [[10927, 824], "npre"],
1683
+ [10928, "sce"],
1684
+ [10928, "succeq"],
1685
+ [10928, "SucceedsEqual"],
1686
+ [[10928, 824], "nsucceq"],
1687
+ [[10928, 824], "NotSucceedsEqual"],
1688
+ [[10928, 824], "nsce"],
1689
+ [10931, "prE"],
1690
+ [10932, "scE"],
1691
+ [10933, "prnE"],
1692
+ [10933, "precneqq"],
1693
+ [10934, "scnE"],
1694
+ [10934, "succneqq"],
1695
+ [10935, "prap"],
1696
+ [10935, "precapprox"],
1697
+ [10936, "succapprox"],
1698
+ [10936, "scap"],
1699
+ [10937, "precnapprox"],
1700
+ [10937, "prnap"],
1701
+ [10938, "scnap"],
1702
+ [10938, "succnapprox"],
1703
+ [10939, "Pr"],
1704
+ [10940, "Sc"],
1705
+ [10941, "subdot"],
1706
+ [10942, "supdot"],
1707
+ [10943, "subplus"],
1708
+ [10944, "supplus"],
1709
+ [10945, "submult"],
1710
+ [10946, "supmult"],
1711
+ [10947, "subedot"],
1712
+ [10948, "supedot"],
1713
+ [10949, "subE"],
1714
+ [10949, "subseteqq"],
1715
+ [[10949, 824], "nsubseteqq"],
1716
+ [[10949, 824], "nsubE"],
1717
+ [10950, "supE"],
1718
+ [10950, "supseteqq"],
1719
+ [[10950, 824], "nsupE"],
1720
+ [[10950, 824], "nsupseteqq"],
1721
+ [10951, "subsim"],
1722
+ [10952, "supsim"],
1723
+ [10955, "subsetneqq"],
1724
+ [10955, "subnE"],
1725
+ [[10955, 65024], "vsubnE"],
1726
+ [[10955, 65024], "varsubsetneqq"],
1727
+ [10956, "supnE"],
1728
+ [10956, "supsetneqq"],
1729
+ [[10956, 65024], "vsupnE"],
1730
+ [[10956, 65024], "varsupsetneqq"],
1731
+ [10959, "csub"],
1732
+ [10960, "csup"],
1733
+ [10961, "csube"],
1734
+ [10962, "csupe"],
1735
+ [10963, "subsup"],
1736
+ [10964, "supsub"],
1737
+ [10965, "subsub"],
1738
+ [10966, "supsup"],
1739
+ [10967, "suphsub"],
1740
+ [10968, "supdsub"],
1741
+ [10969, "forkv"],
1742
+ [10970, "topfork"],
1743
+ [10971, "mlcp"],
1744
+ [10980, "Dashv"],
1745
+ [10980, "DoubleLeftTee"],
1746
+ [10982, "Vdashl"],
1747
+ [10983, "Barv"],
1748
+ [10984, "vBar"],
1749
+ [10985, "vBarv"],
1750
+ [10987, "Vbar"],
1751
+ [10988, "Not"],
1752
+ [10989, "bNot"],
1753
+ [10990, "rnmid"],
1754
+ [10991, "cirmid"],
1755
+ [10992, "midcir"],
1756
+ [10993, "topcir"],
1757
+ [10994, "nhpar"],
1758
+ [10995, "parsim"],
1759
+ [11005, "parsl"],
1760
+ [[11005, 8421], "nparsl"],
1761
+ [64256, "fflig"],
1762
+ [64257, "filig"],
1763
+ [64258, "fllig"],
1764
+ [64259, "ffilig"],
1765
+ [64260, "ffllig"],
1766
+ [119964, "Ascr"],
1767
+ [119966, "Cscr"],
1768
+ [119967, "Dscr"],
1769
+ [119970, "Gscr"],
1770
+ [119973, "Jscr"],
1771
+ [119974, "Kscr"],
1772
+ [119977, "Nscr"],
1773
+ [119978, "Oscr"],
1774
+ [119979, "Pscr"],
1775
+ [119980, "Qscr"],
1776
+ [119982, "Sscr"],
1777
+ [119983, "Tscr"],
1778
+ [119984, "Uscr"],
1779
+ [119985, "Vscr"],
1780
+ [119986, "Wscr"],
1781
+ [119987, "Xscr"],
1782
+ [119988, "Yscr"],
1783
+ [119989, "Zscr"],
1784
+ [119990, "ascr"],
1785
+ [119991, "bscr"],
1786
+ [119992, "cscr"],
1787
+ [119993, "dscr"],
1788
+ [119995, "fscr"],
1789
+ [119997, "hscr"],
1790
+ [119998, "iscr"],
1791
+ [119999, "jscr"],
1792
+ [120000, "kscr"],
1793
+ [120001, "lscr"],
1794
+ [120002, "mscr"],
1795
+ [120003, "nscr"],
1796
+ [120005, "pscr"],
1797
+ [120006, "qscr"],
1798
+ [120007, "rscr"],
1799
+ [120008, "sscr"],
1800
+ [120009, "tscr"],
1801
+ [120010, "uscr"],
1802
+ [120011, "vscr"],
1803
+ [120012, "wscr"],
1804
+ [120013, "xscr"],
1805
+ [120014, "yscr"],
1806
+ [120015, "zscr"],
1807
+ [120068, "Afr"],
1808
+ [120069, "Bfr"],
1809
+ [120071, "Dfr"],
1810
+ [120072, "Efr"],
1811
+ [120073, "Ffr"],
1812
+ [120074, "Gfr"],
1813
+ [120077, "Jfr"],
1814
+ [120078, "Kfr"],
1815
+ [120079, "Lfr"],
1816
+ [120080, "Mfr"],
1817
+ [120081, "Nfr"],
1818
+ [120082, "Ofr"],
1819
+ [120083, "Pfr"],
1820
+ [120084, "Qfr"],
1821
+ [120086, "Sfr"],
1822
+ [120087, "Tfr"],
1823
+ [120088, "Ufr"],
1824
+ [120089, "Vfr"],
1825
+ [120090, "Wfr"],
1826
+ [120091, "Xfr"],
1827
+ [120092, "Yfr"],
1828
+ [120094, "afr"],
1829
+ [120095, "bfr"],
1830
+ [120096, "cfr"],
1831
+ [120097, "dfr"],
1832
+ [120098, "efr"],
1833
+ [120099, "ffr"],
1834
+ [120100, "gfr"],
1835
+ [120101, "hfr"],
1836
+ [120102, "ifr"],
1837
+ [120103, "jfr"],
1838
+ [120104, "kfr"],
1839
+ [120105, "lfr"],
1840
+ [120106, "mfr"],
1841
+ [120107, "nfr"],
1842
+ [120108, "ofr"],
1843
+ [120109, "pfr"],
1844
+ [120110, "qfr"],
1845
+ [120111, "rfr"],
1846
+ [120112, "sfr"],
1847
+ [120113, "tfr"],
1848
+ [120114, "ufr"],
1849
+ [120115, "vfr"],
1850
+ [120116, "wfr"],
1851
+ [120117, "xfr"],
1852
+ [120118, "yfr"],
1853
+ [120119, "zfr"],
1854
+ [120120, "Aopf"],
1855
+ [120121, "Bopf"],
1856
+ [120123, "Dopf"],
1857
+ [120124, "Eopf"],
1858
+ [120125, "Fopf"],
1859
+ [120126, "Gopf"],
1860
+ [120128, "Iopf"],
1861
+ [120129, "Jopf"],
1862
+ [120130, "Kopf"],
1863
+ [120131, "Lopf"],
1864
+ [120132, "Mopf"],
1865
+ [120134, "Oopf"],
1866
+ [120138, "Sopf"],
1867
+ [120139, "Topf"],
1868
+ [120140, "Uopf"],
1869
+ [120141, "Vopf"],
1870
+ [120142, "Wopf"],
1871
+ [120143, "Xopf"],
1872
+ [120144, "Yopf"],
1873
+ [120146, "aopf"],
1874
+ [120147, "bopf"],
1875
+ [120148, "copf"],
1876
+ [120149, "dopf"],
1877
+ [120150, "eopf"],
1878
+ [120151, "fopf"],
1879
+ [120152, "gopf"],
1880
+ [120153, "hopf"],
1881
+ [120154, "iopf"],
1882
+ [120155, "jopf"],
1883
+ [120156, "kopf"],
1884
+ [120157, "lopf"],
1885
+ [120158, "mopf"],
1886
+ [120159, "nopf"],
1887
+ [120160, "oopf"],
1888
+ [120161, "popf"],
1889
+ [120162, "qopf"],
1890
+ [120163, "ropf"],
1891
+ [120164, "sopf"],
1892
+ [120165, "topf"],
1893
+ [120166, "uopf"],
1894
+ [120167, "vopf"],
1895
+ [120168, "wopf"],
1896
+ [120169, "xopf"],
1897
+ [120170, "yopf"],
1898
+ [120171, "zopf"],
1899
+ ]
1900
+
1901
+ EXTEND_ENTITY_TABLE.each do |code_point, data|
1902
+ if data.kind_of?(String)
1903
+ ENTITY_MAP[code_point] = ENTITY_MAP[data] = Entity.new(code_point, data)
1904
+ else
1905
+ ENTITY_MAP[code_point] = ENTITY_MAP[data]
1906
+ end
1907
+ end
1908
+ end
1909
+ end
1910
+ end
1911
+