summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Tay <sam.chong.tay@gmail.com>2020-06-28 14:14:07 -0700
committerSam Tay <sam.chong.tay@gmail.com>2020-06-28 14:14:07 -0700
commit80c1bc0f339189a49a90562047f5d9def65d3f4a (patch)
tree1ba8608b24f35326ed585002d48e5d3610332d86
parentda6c82fa307278cdeb2c15f9a31282fb80ac768f (diff)
Benchmark & improve md parsing
-rw-r--r--Cargo.toml6
-rw-r--r--benches/html_parsing.rs (renamed from benches/parsing.rs)4
-rw-r--r--benches/md_parsing.rs32
-rw-r--r--src/stackexchange/scraper.rs2
-rw-r--r--src/tui/entities.rs1522
-rw-r--r--src/tui/markdown.rs118
-rw-r--r--src/tui/mod.rs1
7 files changed, 111 insertions, 1574 deletions
diff --git a/Cargo.toml b/Cargo.toml
index b2180c3..70de3f9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -19,7 +19,11 @@ travis-ci = { repository = "samtay/so", branch = "master" }
criterion = "0.3"
[[bench]]
-name = "parsing"
+name = "html_parsing"
+harness = false
+
+[[bench]]
+name = "md_parsing"
harness = false
[dependencies]
diff --git a/benches/parsing.rs b/benches/html_parsing.rs
index ae6ccf0..07c1420 100644
--- a/benches/parsing.rs
+++ b/benches/html_parsing.rs
@@ -19,7 +19,7 @@ use std::time::Duration;
///
/// Still, I could try creating a regex that captures the url encoded SE url and question id and
/// multiline regex the entire HTML document. It might be faster than the scraper library?
-fn bench_parsers(c: &mut Criterion) {
+fn bench_html_parsers(c: &mut Criterion) {
let limit: u16 = 10;
let mut sites = HashMap::new();
sites.insert(
@@ -70,5 +70,5 @@ fn bench_parsers(c: &mut Criterion) {
group.finish();
}
-criterion_group!(benches, bench_parsers);
+criterion_group!(benches, bench_html_parsers);
criterion_main!(benches);
diff --git a/benches/md_parsing.rs b/benches/md_parsing.rs
new file mode 100644
index 0000000..eae9988
--- /dev/null
+++ b/benches/md_parsing.rs
@@ -0,0 +1,32 @@
+use criterion::{black_box, criterion_group, criterion_main, Criterion};
+use so::tui::markdown::parse;
+
+const MD: &str = r####"
+## project
+
+Here's some `inline code`. It should escape `*asterisks*`.
+It should also respect
+
+ indented code blocks
+
+and
+```python
+code fences
+```
+Obviously.
+
+### but also
+I'm on a Mac running OS&nbsp;X&nbsp;v10.6 (Snow&nbsp;Leopard). I have Mercurial 1.1 installed.
+
+After I hit **[Esc]** to exit insert mode I can't figure out how to save and quit. Hitting **[Ctrl]** + **[C]** shows me instructions that say typing "quit<enter>" will write and quit, but it doesn't seem to work.
+
+
+"####;
+
+// TODO bench preprocess as well, separately
+pub fn md_benchmark(c: &mut Criterion) {
+ c.bench_function("markdown::parse", |b| b.iter(|| parse(black_box(MD))));
+}
+
+criterion_group!(benches, md_benchmark);
+criterion_main!(benches);
diff --git a/src/stackexchange/scraper.rs b/src/stackexchange/scraper.rs
index 531d3b0..cdb34d6 100644
--- a/src/stackexchange/scraper.rs
+++ b/src/stackexchange/scraper.rs
@@ -184,7 +184,7 @@ fn question_url_to_id(site_url: &str, input: &str) -> Option<String> {
} else {
input[0..].to_string()
};
- if id.chars().into_iter().all(|c| c.is_digit(10)) {
+ if id.chars().all(|c| c.is_digit(10)) {
Some(id)
} else {
None
diff --git a/src/tui/entities.rs b/src/tui/entities.rs
deleted file mode 100644
index f77e79d..0000000
--- a/src/tui/entities.rs
+++ /dev/null
@@ -1,1522 +0,0 @@
-use phf::phf_set;
-
-static ENTITY_SET: phf::Set<&'static str> = phf_set! {
- "\u{0009}",
- "\u{000A}",
- "\u{0021}",
- "\u{0022}",
- "\u{0023}",
- "\u{0024}",
- "\u{0025}",
- "\u{0026}",
- "\u{0027}",
- "\u{0028}",
- "\u{0029}",
- "\u{002A}",
- "\u{002B}",
- "\u{002C}",
- "\u{002E}",
- "\u{002F}",
- "\u{003A}",
- "\u{003B}",
- "\u{003C}",
- "\u{003C}\u{20d2}",
- "\u{003D}",
- "\u{003D}\u{20e5}",
- "\u{003E}",
- "\u{003E}\u{20d2}",
- "\u{003F}",
- "\u{0040}",
- "\u{005B}",
- "\u{005C}",
- "\u{005D}",
- "\u{005E}",
- "\u{005F}",
- "\u{0060}",
- "\u{0066}j",
- "\u{007B}",
- "\u{007C}",
- "\u{007D}",
- "\u{00A0}",
- "\u{00A1}",
- "\u{00A2}",
- "\u{00A3}",
- "\u{00A4}",
- "\u{00A5}",
- "\u{00A6}",
- "\u{00A7}",
- "\u{00A8}",
- "\u{00A9}",
- "\u{00AA}",
- "\u{00AB}",
- "\u{00AC}",
- "\u{00AD}",
- "\u{00AE}",
- "\u{00AF}",
- "\u{00B0}",
- "\u{00B1}",
- "\u{00B2}",
- "\u{00B3}",
- "\u{00B4}",
- "\u{00B5}",
- "\u{00B6}",
- "\u{00B7}",
- "\u{00B8}",
- "\u{00B9}",
- "\u{00BA}",
- "\u{00BB}",
- "\u{00BC}",
- "\u{00BD}",
- "\u{00BE}",
- "\u{00BF}",
- "\u{00C0}",
- "\u{00C1}",
- "\u{00C2}",
- "\u{00C3}",
- "\u{00C4}",
- "\u{00C5}",
- "\u{00C6}",
- "\u{00C7}",
- "\u{00C8}",
- "\u{00C9}",
- "\u{00CA}",
- "\u{00CB}",
- "\u{00CC}",
- "\u{00CD}",
- "\u{00CE}",
- "\u{00CF}",
- "\u{00D0}",
- "\u{00D1}",
- "\u{00D2}",
- "\u{00D3}",
- "\u{00D4}",
- "\u{00D5}",
- "\u{00D6}",
- "\u{00D7}",
- "\u{00D8}",
- "\u{00D9}",
- "\u{00DA}",
- "\u{00DB}",
- "\u{00DC}",
- "\u{00DD}",
- "\u{00DE}",
- "\u{00DF}",
- "\u{00E0}",
- "\u{00E1}",
- "\u{00E2}",
- "\u{00E3}",
- "\u{00E4}",
- "\u{00E5}",
- "\u{00E6}",
- "\u{00E7}",
- "\u{00E8}",
- "\u{00E9}",
- "\u{00EA}",
- "\u{00EB}",
- "\u{00EC}",
- "\u{00ED}",
- "\u{00EE}",
- "\u{00EF}",
- "\u{00F0}",
- "\u{00F1}",
- "\u{00F2}",
- "\u{00F3}",
- "\u{00F4}",
- "\u{00F5}",
- "\u{00F6}",
- "\u{00F7}",
- "\u{00F8}",
- "\u{00F9}",
- "\u{00FA}",
- "\u{00FB}",
- "\u{00FC}",
- "\u{00FD}",
- "\u{00FE}",
- "\u{00FF}",
- "\u{0100}",
- "\u{0101}",
- "\u{0102}",
- "\u{0103}",
- "\u{0104}",
- "\u{0105}",
- "\u{0106}",
- "\u{0107}",
- "\u{0108}",
- "\u{0109}",
- "\u{010A}",
- "\u{010B}",
- "\u{010C}",
- "\u{010D}",
- "\u{010E}",
- "\u{010F}",
- "\u{0110}",
- "\u{0111}",
- "\u{0112}",
- "\u{0113}",
- "\u{0116}",
- "\u{0117}",
- "\u{0118}",
- "\u{0119}",
- "\u{011A}",
- "\u{011B}",
- "\u{011C}",
- "\u{011D}",
- "\u{011E}",
- "\u{011F}",
- "\u{0120}",
- "\u{0121}",
- "\u{0122}",
- "\u{0124}",
- "\u{0125}",
- "\u{0126}",
- "\u{0127}",
- "\u{0128}",
- "\u{0129}",
- "\u{012A}",
- "\u{012B}",
- "\u{012E}",
- "\u{012F}",
- "\u{0130}",
- "\u{0131}",
- "\u{0132}",
- "\u{0133}",
- "\u{0134}",
- "\u{0135}",
- "\u{0136}",
- "\u{0137}",
- "\u{0138}",
- "\u{0139}",
- "\u{013A}",
- "\u{013B}",
- "\u{013C}",
- "\u{013D}",
- "\u{013E}",
- "\u{013F}",
- "\u{0140}",
- "\u{0141}",
- "\u{0142}",
- "\u{0143}",
- "\u{0144}",
- "\u{0145}",
- "\u{0146}",
- "\u{0147}",
- "\u{0148}",
- "\u{0149}",
- "\u{014A}",
- "\u{014B}",
- "\u{014C}",
- "\u{014D}",
- "\u{0150}",
- "\u{0151}",
- "\u{0152}",
- "\u{0153}",
- "\u{0154}",
- "\u{0155}",
- "\u{0156}",
- "\u{0157}",
- "\u{0158}",
- "\u{0159}",
- "\u{015A}",
- "\u{015B}",
- "\u{015C}",
- "\u{015D}",
- "\u{015E}",
- "\u{015F}",
- "\u{0160}",
- "\u{0161}",
- "\u{0162}",
- "\u{0163}",
- "\u{0164}",
- "\u{0165}",
- "\u{0166}",
- "\u{0167}",
- "\u{0168}",
- "\u{0169}",
- "\u{016A}",
- "\u{016B}",
- "\u{016C}",
- "\u{016D}",
- "\u{016E}",
- "\u{016F}",
- "\u{0170}",
- "\u{0171}",
- "\u{0172}",
- "\u{0173}",
- "\u{0174}",
- "\u{0175}",
- "\u{0176}",
- "\u{0177}",
- "\u{0178}",
- "\u{0179}",
- "\u{017A}",
- "\u{017B}",
- "\u{017C}",
- "\u{017D}",
- "\u{017E}",
- "\u{0192}",
- "\u{01B5}",
- "\u{01F5}",
- "\u{0237}",
- "\u{02C6}",
- "\u{02C7}",
- "\u{02D8}",
- "\u{02D9}",
- "\u{02DA}",
- "\u{02DB}",
- "\u{02DC}",
- "\u{02DD}",
- "\u{0311}",
- "\u{0391}",
- "\u{0392}",
- "\u{0393}",
- "\u{0394}",
- "\u{0395}",
- "\u{0396}",
- "\u{0397}",
- "\u{0398}",
- "\u{0399}",
- "\u{039A}",
- "\u{039B}",
- "\u{039C}",
- "\u{039D}",
- "\u{039E}",
- "\u{039F}",
- "\u{03A0}",
- "\u{03A1}",
- "\u{03A3}",
- "\u{03A4}",
- "\u{03A5}",
- "\u{03A6}",
- "\u{03A7}",
- "\u{03A8}",
- "\u{03A9}",
- "\u{03B1}",
- "\u{03B2}",
- "\u{03B3}",
- "\u{03B4}",
- "\u{03B5}",
- "\u{03B6}",
- "\u{03B7}",
- "\u{03B8}",
- "\u{03B9}",
- "\u{03BA}",
- "\u{03BB}",
- "\u{03BC}",
- "\u{03BD}",
- "\u{03BE}",
- "\u{03BF}",
- "\u{03C0}",
- "\u{03C1}",
- "\u{03C2}",
- "\u{03C3}",
- "\u{03C4}",
- "\u{03C5}",
- "\u{03C6}",
- "\u{03C7}",
- "\u{03C8}",
- "\u{03C9}",
- "\u{03D1}",
- "\u{03D2}",
- "\u{03D5}",
- "\u{03D6}",
- "\u{03DC}",
- "\u{03DD}",
- "\u{03F0}",
- "\u{03F1}",
- "\u{03F5}",
- "\u{03F6}",
- "\u{0401}",
- "\u{0402}",
- "\u{0403}",
- "\u{0404}",
- "\u{0405}",
- "\u{0406}",
- "\u{0407}",
- "\u{0408}",
- "\u{0409}",
- "\u{040A}",
- "\u{040B}",
- "\u{040C}",
- "\u{040E}",
- "\u{040F}",
- "\u{0410}",
- "\u{0411}",
- "\u{0412}",
- "\u{0413}",
- "\u{0414}",
- "\u{0415}",
- "\u{0416}",
- "\u{0417}",
- "\u{0418}",
- "\u{0419}",
- "\u{041A}",
- "\u{041B}",
- "\u{041C}",
- "\u{041D}",
- "\u{041E}",
- "\u{041F}",
- "\u{0420}",
- "\u{0421}",
- "\u{0422}",
- "\u{0423}",
- "\u{0424}",
- "\u{0425}",
- "\u{0426}",
- "\u{0427}",
- "\u{0428}",
- "\u{0429}",
- "\u{042A}",
- "\u{042B}",
- "\u{042C}",
- "\u{042D}",
- "\u{042E}",
- "\u{042F}",
- "\u{0430}",
- "\u{0431}",
- "\u{0432}",
- "\u{0433}",
- "\u{0434}",
- "\u{0435}",
- "\u{0436}",
- "\u{0437}",
- "\u{0438}",
- "\u{0439}",
- "\u{043A}",
- "\u{043B}",
- "\u{043C}",
- "\u{043D}",
- "\u{043E}",
- "\u{043F}",
- "\u{0440}",
- "\u{0441}",
- "\u{0442}",
- "\u{0443}",
- "\u{0444}",
- "\u{0445}",
- "\u{0446}",
- "\u{0447}",
- "\u{0448}",
- "\u{0449}",
- "\u{044A}",
- "\u{044B}",
- "\u{044C}",
- "\u{044D}",
- "\u{044E}",
- "\u{044F}",
- "\u{0451}",
- "\u{0452}",
- "\u{0453}",
- "\u{0454}",
- "\u{0455}",
- "\u{0456}",
- "\u{0457}",
- "\u{0458}",
- "\u{0459}",
- "\u{045A}",
- "\u{045B}",
- "\u{045C}",
- "\u{045E}",
- "\u{045F}",
- "\u{1D49C}",
- "\u{1D49E}",
- "\u{1D49F}",
- "\u{1D4A2}",
- "\u{1D4A5}",
- "\u{1D4A6}",
- "\u{1D4A9}",
- "\u{1D4AA}",
- "\u{1D4AB}",
- "\u{1D4AC}",
- "\u{1D4AE}",
- "\u{1D4AF}",
- "\u{1D4B0}",
- "\u{1D4B1}",
- "\u{1D4B2}",
- "\u{1D4B3}",
- "\u{1D4B4}",
- "\u{1D4B5}",
- "\u{1D4B6}",
- "\u{1D4B7}",
- "\u{1D4B8}",
- "\u{1D4B9}",
- "\u{1D4BB}",
- "\u{1D4BD}",
- "\u{1D4BE}",
- "\u{1D4BF}",
- "\u{1D4C0}",
- "\u{1D4C1}",
- "\u{1D4C2}",
- "\u{1D4C3}",
- "\u{1D4C5}",
- "\u{1D4C6}",
- "\u{1D4C7}",
- "\u{1D4C8}",
- "\u{1D4C9}",
- "\u{1D4CA}",
- "\u{1D4CB}",
- "\u{1D4CC}",
- "\u{1D4CD}",
- "\u{1D4CE}",
- "\u{1D4CF}",
- "\u{1D504}",
- "\u{1D505}",
- "\u{1D507}",
- "\u{1D508}",
- "\u{1D509}",
- "\u{1D50A}",
- "\u{1D50D}",
- "\u{1D50E}",
- "\u{1D50F}",
- "\u{1D510}",
- "\u{1D511}",
- "\u{1D512}",
- "\u{1D513}",
- "\u{1D514}",
- "\u{1D516}",
- "\u{1D517}",
- "\u{1D518}",
- "\u{1D519}",
- "\u{1D51A}",
- "\u{1D51B}",
- "\u{1D51C}",
- "\u{1D51E}",
- "\u{1D51F}",
- "\u{1D520}",
- "\u{1D521}",
- "\u{1D522}",
- "\u{1D523}",
- "\u{1D524}",
- "\u{1D525}",
- "\u{1D526}",
- "\u{1D527}",
- "\u{1D528}",
- "\u{1D529}",
- "\u{1D52A}",
- "\u{1D52B}",
- "\u{1D52C}",
- "\u{1D52D}",
- "\u{1D52E}",
- "\u{1D52F}",
- "\u{1D530}",
- "\u{1D531}",
- "\u{1D532}",
- "\u{1D533}",
- "\u{1D534}",
- "\u{1D535}",
- "\u{1D536}",
- "\u{1D537}",
- "\u{1D538}",
- "\u{1D539}",
- "\u{1D53B}",
- "\u{1D53C}",
- "\u{1D53D}",
- "\u{1D53E}",
- "\u{1D540}",
- "\u{1D541}",
- "\u{1D542}",
- "\u{1D543}",
- "\u{1D544}",
- "\u{1D546}",
- "\u{1D54A}",
- "\u{1D54B}",
- "\u{1D54C}",
- "\u{1D54D}",
- "\u{1D54E}",
- "\u{1D54F}",
- "\u{1D550}",
- "\u{1D552}",
- "\u{1D553}",
- "\u{1D554}",
- "\u{1D555}",
- "\u{1D556}",
- "\u{1D557}",
- "\u{1D558}",
- "\u{1D559}",
- "\u{1D55A}",
- "\u{1D55B}",
- "\u{1D55C}",
- "\u{1D55D}",
- "\u{1D55E}",
- "\u{1D55F}",
- "\u{1D560}",
- "\u{1D561}",
- "\u{1D562}",
- "\u{1D563}",
- "\u{1D564}",
- "\u{1D565}",
- "\u{1D566}",
- "\u{1D567}",
- "\u{1D568}",
- "\u{1D569}",
- "\u{1D56A}",
- "\u{1D56B}",
- "\u{2002}",
- "\u{2003}",
- "\u{2004}",
- "\u{2005}",
- "\u{2007}",
- "\u{2008}",
- "\u{2009}",
- "\u{200A}",
- "\u{200B}",
- "\u{200C}",
- "\u{200D}",
- "\u{200E}",
- "\u{200F}",
- "\u{2010}",
- "\u{2013}",
- "\u{2014}",
- "\u{2015}",
- "\u{2016}",
- "\u{2018}",
- "\u{2019}",
- "\u{201A}",
- "\u{201C}",
- "\u{201D}",
- "\u{201E}",
- "\u{2020}",
- "\u{2021}",
- "\u{2022}",
- "\u{2025}",
- "\u{2026}",
- "\u{2030}",
- "\u{2031}",
- "\u{2032}",
- "\u{2033}",
- "\u{2034}",
- "\u{2035}",
- "\u{2039}",
- "\u{203A}",
- "\u{203E}",
- "\u{2041}",
- "\u{2043}",
- "\u{2044}",
- "\u{204F}",
- "\u{2057}",
- "\u{205F}",
- "\u{205F}\u{200a}",
- "\u{2060}",
- "\u{2061}",
- "\u{2062}",
- "\u{2063}",
- "\u{20AC}",
- "\u{20DB}",
- "\u{20DC}",
- "\u{2102}",
- "\u{2105}",
- "\u{210A}",
- "\u{210B}",
- "\u{210C}",
- "\u{210D}",
- "\u{210E}",
- "\u{210F}",
- "\u{2110}",
- "\u{2111}",
- "\u{2112}",
- "\u{2113}",
- "\u{2115}",
- "\u{2116}",
- "\u{2117}",
- "\u{2118}",
- "\u{2119}",
- "\u{211A}",
- "\u{211B}",
- "\u{211C}",
- "\u{211D}",
- "\u{211E}",
- "\u{2122}",
- "\u{2124}",
- "\u{2127}",
- "\u{2128}",
- "\u{2129}",
- "\u{212C}",
- "\u{212D}",
- "\u{212F}",
- "\u{2130}",
- "\u{2131}",
- "\u{2133}",
- "\u{2134}",
- "\u{2135}",
- "\u{2136}",
- "\u{2137}",
- "\u{2138}",
- "\u{2145}",
- "\u{2146}",
- "\u{2147}",
- "\u{2148}",
- "\u{2153}",
- "\u{2154}",
- "\u{2155}",
- "\u{2156}",
- "\u{2157}",
- "\u{2158}",
- "\u{2159}",
- "\u{215A}",
- "\u{215B}",
- "\u{215C}",
- "\u{215D}",
- "\u{215E}",
- "\u{2190}",
- "\u{2191}",
- "\u{2192}",
- "\u{2193}",
- "\u{2194}",
- "\u{2195}",
- "\u{2196}",
- "\u{2197}",
- "\u{2198}",
- "\u{2199}",
- "\u{219A}",
- "\u{219B}",
- "\u{219D}",
- "\u{219D}\u{338}",
- "\u{219E}",
- "\u{219F}",
- "\u{21A0}",
- "\u{21A1}",
- "\u{21A2}",
- "\u{21A3}",
- "\u{21A4}",
- "\u{21A5}",
- "\u{21A6}",
- "\u{21A7}",
- "\u{21A9}",
- "\u{21AA}",
- "\u{21AB}",
- "\u{21AC}",
- "\u{21AD}",
- "\u{21AE}",
- "\u{21B0}",
- "\u{21B1}",
- "\u{21B2}",
- "\u{21B3}",
- "\u{21B5}",
- "\u{21B6}",
- "\u{21B7}",
- "\u{21BA}",
- "\u{21BB}",
- "\u{21BC}",
- "\u{21BD}",
- "\u{21BE}",
- "\u{21BF}",
- "\u{21C0}",
- "\u{21C1}",
- "\u{21C2}",
- "\u{21C3}",
- "\u{21C4}",
- "\u{21C5}",
- "\u{21C6}",
- "\u{21C7}",
- "\u{21C8}",
- "\u{21C9}",
- "\u{21CA}",
- "\u{21CB}",
- "\u{21CC}",
- "\u{21CD}",
- "\u{21CE}",
- "\u{21CF}",
- "\u{21D0}",
- "\u{21D1}",
- "\u{21D2}",
- "\u{21D3}",
- "\u{21D4}",
- "\u{21D5}",
- "\u{21D6}",
- "\u{21D7}",
- "\u{21D8}",
- "\u{21D9}",
- "\u{21DA}",
- "\u{21DB}",
- "\u{21DD}",
- "\u{21E4}",
- "\u{21E5}",
- "\u{21F5}",
- "\u{21FD}",
- "\u{21FE}",
- "\u{21FF}",
- "\u{2200}",
- "\u{2201}",
- "\u{2202}",
- "\u{2202}\u{338}",
- "\u{2203}",
- "\u{2204}",
- "\u{2205}",
- "\u{2207}",
- "\u{2208}",
- "\u{2209}",
- "\u{220B}",
- "\u{220C}",
- "\u{220F}",
- "\u{2210}",
- "\u{2211}",
- "\u{2212}",
- "\u{2213}",
- "\u{2214}",
- "\u{2216}",
- "\u{2217}",
- "\u{2218}",
- "\u{221A}",
- "\u{221D}",
- "\u{221E}",
- "\u{221F}",
- "\u{2220}",
- "\u{2220}\u{20d2}",
- "\u{2221}",
- "\u{2222}",
- "\u{2223}",
- "\u{2224}",
- "\u{2225}",
- "\u{2226}",
- "\u{2227}",
- "\u{2228}",
- "\u{2229}",
- "\u{2229}\u{fe00}",
- "\u{222A}",
- "\u{222A}\u{fe00}",
- "\u{222B}",
- "\u{222C}",
- "\u{222D}",
- "\u{222E}",
- "\u{222F}",
- "\u{2230}",
- "\u{2231}",
- "\u{2232}",
- "\u{2233}",
- "\u{2234}",
- "\u{2235}",
- "\u{2236}",
- "\u{2237}",
- "\u{2238}",
- "\u{223A}",
- "\u{223B}",
- "\u{223C}",
- "\u{223C}\u{20d2}",
- "\u{223D}",
- "\u{223D}\u{331}",
- "\u{223E}",
- "\u{223E}\u{333}",
- "\u{223F}",
- "\u{2240}",
- "\u{2241}",
- "\u{2242}",
- "\u{2242}\u{338}",
- "\u{2243}",
- "\u{2244}",
- "\u{2245}",
- "\u{2246}",
- "\u{2247}",
- "\u{2248}",
- "\u{2249}",
- "\u{224A}",
- "\u{224B}",
- "\u{224B}\u{338}",
- "\u{224C}",
- "\u{224D}",
- "\u{224D}\u{20d2}",
- "\u{224E}",
- "\u{224E}\u{338}",
- "\u{224F}",
- "\u{224F}\u{338}",
- "\u{2250}",
- "\u{2250}\u{338}",
- "\u{2251}",
- "\u{2252}",
- "\u{2253}",
- "\u{2254}",
- "\u{2255}",
- "\u{2256}",
- "\u{2257}",
- "\u{2259}",
- "\u{225A}",
- "\u{225C}",
- "\u{225F}",
- "\u{2260}",
- "\u{2261}",
- "\u{2261}\u{20e5}",
- "\u{2262}",
- "\u{2264}",
- "\u{2264}\u{20d2}",
- "\u{2265}",
- "\u{2265}\u{20d2}",
- "\u{2266}",
- "\u{2266}\u{338}",
- "\u{2267}",
- "\u{2267}\u{338}",
- "\u{2268}",
- "\u{2268}\u{fe00}",
- "\u{2269}",
- "\u{2269}\u{fe00}",
- "\u{226A}",
- "\u{226A}\u{338}",
- "\u{226A}\u{20d2}",
- "\u{226B}",
- "\u{226B}\u{338}",
- "\u{226B}\u{20d2}",
- "\u{226C}",
- "\u{226D}",
- "\u{226E}",
- "\u{226F}",
- "\u{2270}",
- "\u{2271}",
- "\u{2272}",
- "\u{2273}",
- "\u{2274}",
- "\u{2275}",
- "\u{2276}",
- "\u{2277}",
- "\u{2278}",
- "\u{2279}",
- "\u{227A}",
- "\u{227B}",
- "\u{227C}",
- "\u{227D}",
- "\u{227E}",
- "\u{227F}",
- "\u{227F}\u{338}",
- "\u{2280}",
- "\u{2281}",
- "\u{2282}",
- "\u{2282}\u{20d2}",
- "\u{2283}",
- "\u{2283}\u{20d2}",
- "\u{2284}",
- "\u{2285}",
- "\u{2286}",
- "\u{2287}",
- "\u{2288}",
- "\u{2289}",
- "\u{228A}",
- "\u{228A}\u{fe00}",
- "\u{228B}",
- "\u{228B}\u{fe00}",
- "\u{228D}",
- "\u{228E}",
- "\u{228F}",
- "\u{228F}\u{338}",
- "\u{2290}",
- "\u{2290}\u{338}",
- "\u{2291}",
- "\u{2292}",
- "\u{2293}",
- "\u{2293}\u{fe00}",
- "\u{2294}",
- "\u{2294}\u{fe00}",
- "\u{2295}",
- "\u{2296}",
- "\u{2297}",
- "\u{2298}",
- "\u{2299}",
- "\u{229A}",
- "\u{229B}",
- "\u{229D}",
- "\u{229E}",
- "\u{229F}",
- "\u{22A0}",
- "\u{22A1}",
- "\u{22A2}",
- "\u{22A3}",
- "\u{22A4}",
- "\u{22A5}",
- "\u{22A7}",
- "\u{22A8}",
- "\u{22A9}",
- "\u{22AA}",
- "\u{22AB}",
- "\u{22AC}",
- "\u{22AD}",
- "\u{22AE}",
- "\u{22AF}",
- "\u{22B0}",
- "\u{22B2}",
- "\u{22B3}",
- "\u{22B4}",
- "\u{22B4}\u{20d2}",
- "\u{22B5}",
- "\u{22B5}\u{20d2}",
- "\u{22B6}",
- "\u{22B7}",
- "\u{22B8}",
- "\u{22B9}",
- "\u{22BA}",
- "\u{22BB}",
- "\u{22BD}",
- "\u{22BE}",
- "\u{22BF}",
- "\u{22C0}",
- "\u{22C1}",
- "\u{22C2}",
- "\u{22C3}",
- "\u{22C4}",
- "\u{22C5}",
- "\u{22C6}",
- "\u{22C7}",
- "\u{22C8}",
- "\u{22C9}",
- "\u{22CA}",
- "\u{22CB}",
- "\u{22CC}",
- "\u{22CD}",
- "\u{22CE}",
- "\u{22CF}",
- "\u{22D0}",
- "\u{22D1}",
- "\u{22D2}",
- "\u{22D3}",
- "\u{22D4}",
- "\u{22D5}",
- "\u{22D6}",
- "\u{22D7}",
- "\u{22D8}",
- "\u{22D8}\u{338}",
- "\u{22D9}",
- "\u{22D9}\u{338}",
- "\u{22DA}",
- "\u{22DA}\u{fe00}",
- "\u{22DB}",
- "\u{22DB}\u{fe00}",
- "\u{22DE}",
- "\u{22DF}",
- "\u{22E0}",
- "\u{22E1}",
- "\u{22E2}",
- "\u{22E3}",
- "\u{22E6}",
- "\u{22E7}",
- "\u{22E8}",
- "\u{22E9}",
- "\u{22EA}",
- "\u{22EB}",
- "\u{22EC}",
- "\u{22ED}",
- "\u{22EE}",
- "\u{22EF}",
- "\u{22F0}",
- "\u{22F1}",
- "\u{22F2}",
- "\u{22F3}",
- "\u{22F4}",
- "\u{22F5}",
- "\u{22F5}\u{338}",
- "\u{22F6}",
- "\u{22F7}",
- "\u{22F9}",
- "\u{22F9}\u{338}",
- "\u{22FA}",
- "\u{22FB}",
- "\u{22FC}",
- "\u{22FD}",
- "\u{22FE}",
- "\u{2305}",
- "\u{2306}",
- "\u{2308}",
- "\u{2309}",
- "\u{230A}",
- "\u{230B}",
- "\u{230C}",
- "\u{230D}",
- "\u{230E}",
- "\u{230F}",
- "\u{2310}",
- "\u{2312}",
- "\u{2313}",
- "\u{2315}",
- "\u{2316}",
- "\u{231C}",
- "\u{231D}",
- "\u{231E}",
- "\u{231F}",
- "\u{2322}",
- "\u{2323}",
- "\u{232D}",
- "\u{232E}",
- "\u{2336}",
- "\u{233D}",
- "\u{233F}",
- "\u{237C}",
- "\u{23B0}",
- "\u{23B1}",
- "\u{23B4}",
- "\u{23B5}",
- "\u{23B6}",
- "\u{23DC}",
- "\u{23DD}",
- "\u{23DE}",
- "\u{23DF}",
- "\u{23E2}",
- "\u{23E7}",
- "\u{2423}",
- "\u{24C8}",
- "\u{2500}",
- "\u{2502}",
- "\u{250C}",
- "\u{2510}",
- "\u{2514}",
- "\u{2518}",
- "\u{251C}",
- "\u{2524}",
- "\u{252C}",
- "\u{2534}",
- "\u{253C}",
- "\u{2550}",
- "\u{2551}",
- "\u{2552}",
- "\u{2553}",
- "\u{2554}",
- "\u{2555}",
- "\u{2556}",
- "\u{2557}",
- "\u{2558}",
- "\u{2559}",
- "\u{255A}",
- "\u{255B}",
- "\u{255C}",
- "\u{255D}",
- "\u{255E}",
- "\u{255F}",
- "\u{2560}",
- "\u{2561}",
- "\u{2562}",
- "\u{2563}",
- "\u{2564}",
- "\u{2565}",
- "\u{2566}",
- "\u{2567}",
- "\u{2568}",
- "\u{2569}",
- "\u{256A}",
- "\u{256B}",
- "\u{256C}",
- "\u{2580}",
- "\u{2584}",
- "\u{2588}",
- "\u{2591}",
- "\u{2592}",
- "\u{2593}",
- "\u{25A1}",
- "\u{25AA}",
- "\u{25AB}",
- "\u{25AD}",
- "\u{25AE}",
- "\u{25B1}",
- "\u{25B3}",
- "\u{25B4}",
- "\u{25B5}",
- "\u{25B8}",
- "\u{25B9}",
- "\u{25BD}",
- "\u{25BE}",
- "\u{25BF}",
- "\u{25C2}",
- "\u{25C3}",
- "\u{25CA}",
- "\u{25CB}",
- "\u{25EC}",
- "\u{25EF}",
- "\u{25F8}",
- "\u{25F9}",
- "\u{25FA}",
- "\u{25FB}",
- "\u{25FC}",
- "\u{2605}",
- "\u{2606}",
- "\u{260E}",
- "\u{2640}",
- "\u{2642}",
- "\u{2660}",
- "\u{2663}",
- "\u{2665}",
- "\u{2666}",
- "\u{266A}",
- "\u{266D}",
- "\u{266E}",
- "\u{266F}",
- "\u{2713}",
- "\u{2717}",
- "\u{2720}",
- "\u{2736}",
- "\u{2758}",
- "\u{2772}",
- "\u{2773}",
- "\u{27C8}",
- "\u{27C9}",
- "\u{27E6}",
- "\u{27E7}",
- "\u{27E8}",
- "\u{27E9}",
- "\u{27EA}",
- "\u{27EB}",
- "\u{27EC}",
- "\u{27ED}",
- "\u{27F5}",
- "\u{27F6}",
- "\u{27F7}",
- "\u{27F8}",
- "\u{27F9}",
- "\u{27FA}",
- "\u{27FC}",
- "\u{27FF}",
- "\u{2902}",
- "\u{2903}",
- "\u{2904}",
- "\u{2905}",
- "\u{290C}",
- "\u{290D}",
- "\u{290E}",
- "\u{290F}",
- "\u{2910}",
- "\u{2911}",
- "\u{2912}",
- "\u{2913}",
- "\u{2916}",
- "\u{2919}",
- "\u{291A}",
- "\u{291B}",
- "\u{291C}",
- "\u{291D}",
- "\u{291E}",
- "\u{291F}",
- "\u{2920}",
- "\u{2923}",
- "\u{2924}",
- "\u{2925}",
- "\u{2926}",
- "\u{2927}",
- "\u{2928}",
- "\u{2929}",
- "\u{292A}",
- "\u{2933}",
- "\u{2933}\u{338}",
- "\u{2935}",
- "\u{2936}",
- "\u{2937}",
- "\u{2938}",
- "\u{2939}",
- "\u{293C}",
- "\u{293D}",
- "\u{2945}",
- "\u{2948}",
- "\u{2949}",
- "\u{294A}",
- "\u{294B}",
- "\u{294E}",
- "\u{294F}",
- "\u{2950}",
- "\u{2951}",
- "\u{2952}",
- "\u{2953}",
- "\u{2954}",
- "\u{2955}",
- "\u{2956}",
- "\u{2957}",
- "\u{2958}",
- "\u{2959}",
- "\u{295A}",
- "\u{295B}",
- "\u{295C}",
- "\u{295D}",
- "\u{295E}",
- "\u{295F}",
- "\u{2960}",
- "\u{2961}",
- "\u{2962}",
- "\u{2963}",
- "\u{2964}",
- "\u{2965}",
- "\u{2966}",
- "\u{2967}",
- "\u{2968}",
- "\u{2969}",
- "\u{296A}",
- "\u{296B}",
- "\u{296C}",
- "\u{296D}",
- "\u{296E}",
- "\u{296F}",
- "\u{2970}",
- "\u{2971}",
- "\u{2972}",
- "\u{2973}",
- "\u{2974}",
- "\u{2975}",
- "\u{2976}",
- "\u{2978}",
- "\u{2979}",
- "\u{297B}",
- "\u{297C}",
- "\u{297D}",
- "\u{297E}",
- "\u{297F}",
- "\u{2985}",
- "\u{2986}",
- "\u{298B}",
- "\u{298C}",
- "\u{298D}",
- "\u{298E}",
- "\u{298F}",
- "\u{2990}",
- "\u{2991}",
- "\u{2992}",
- "\u{2993}",
- "\u{2994}",
- "\u{2995}",
- "\u{2996}",
- "\u{299A}",
- "\u{299C}",
- "\u{299D}",
- "\u{29A4}",
- "\u{29A5}",
- "\u{29A6}",
- "\u{29A7}",
- "\u{29A8}",
- "\u{29A9}",
- "\u{29AA}",
- "\u{29AB}",
- "\u{29AC}",
- "\u{29AD}",
- "\u{29AE}",
- "\u{29AF}",
- "\u{29B0}",
- "\u{29B1}",
- "\u{29B2}",
- "\u{29B3}",
- "\u{29B4}",
- "\u{29B5}",
- "\u{29B6}",
- "\u{29B7}",
- "\u{29B9}",
- "\u{29BB}",
- "\u{29BC}",
- "\u{29BE}",
- "\u{29BF}",
- "\u{29C0}",
- "\u{29C1}",
- "\u{29C2}",
- "\u{29C3}",
- "\u{29C4}",
- "\u{29C5}",
- "\u{29C9}",
- "\u{29CD}",
- "\u{29CE}",
- "\u{29CF}",
- "\u{29CF}\u{338}",
- "\u{29D0}",
- "\u{29D0}\u{33