Ver Fonte

Update core:encoding to Unicode 15.1 table.

Jeroen van Rijn há 1 ano atrás
pai
commit
4efef08c94

+ 2 - 6
core/encoding/entity/example/entity_example.odin

@@ -47,8 +47,6 @@ _entities :: proc() {
 }
 
 _main :: proc() {
-	using fmt
-
 	options := xml.Options{ flags = { .Ignore_Unsupported, .Intern_Comments, .Unbox_CDATA, .Decode_SGML_Entities }}
 
 	doc, _ := xml.parse(#load("test.html"), options)
@@ -58,8 +56,6 @@ _main :: proc() {
 }
 
 main :: proc() {
-	using fmt
-
 	track: mem.Tracking_Allocator
 	mem.tracking_allocator_init(&track, context.allocator)
 	context.allocator = mem.tracking_allocator(&track)
@@ -68,9 +64,9 @@ main :: proc() {
 	_entities()
 
 	if len(track.allocation_map) > 0 {
-		println()
+		fmt.println()
 		for _, v in track.allocation_map {
-			printf("%v Leaked %v bytes.\n", v.location, v.size)
+			fmt.printf("%v Leaked %v bytes.\n", v.location, v.size)
 		}
 	}	
 }

+ 2625 - 5027
core/encoding/entity/generated.odin

@@ -5,7 +5,7 @@ package unicode_entity
 */
 
 /*
-	This file is generated from "https://www.w3.org/2003/entities/2007xml/unicode.xml".
+	This file is generated from "https://github.com/w3c/xml-entities/blob/gh-pages/unicode.xml".
 	
 	UPDATE:
 		- Ensure the XML file was downloaded using "tests\core\download_assets.py".
@@ -13,15 +13,21 @@ package unicode_entity
 
 	Odin unicode generated tables: https://github.com/odin-lang/Odin/tree/master/core/encoding/entity
 
-		Copyright © 2021 World Wide Web Consortium, (Massachusetts Institute of Technology,
-		European Research Consortium for Informatics and Mathematics, Keio University, Beihang).
+		Copyright David Carlisle 1999-2023
 
-		All Rights Reserved.
+		Use and distribution of this code are permitted under the terms of the
+		W3C Software Notice and License.
+		http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html
 
-		This work is distributed under the W3C® Software License [1] in the hope that it will be useful,
-		but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-		[1] http://www.w3.org/Consortium/Legal/copyright-software
+
+		This file is a collection of information about how to map
+		Unicode entities to LaTeX, and various SGML/XML entity
+		sets (ISO and MathML/HTML). A Unicode character may be mapped
+		to several entities.
+
+		Originally designed by Sebastian Rahtz in conjunction with
+		Barbara Beeton for the STIX project
 
 	See also: LICENSE_table.md
 */
@@ -55,7433 +61,5025 @@ named_xml_entity_to_rune :: proc(name: string) -> (decoded: rune, ok: bool) {
 
 	case 'A':
 		switch name {
-			case "AElig": 
-				// LATIN CAPITAL LETTER AE
+			case "AElig":                           // LATIN CAPITAL LETTER AE
 				return rune(0xc6), true
-			case "AMP": 
-				// AMPERSAND
+			case "AMP":                             // AMPERSAND
 				return rune(0x26), true
-			case "Aacgr": 
-				// GREEK CAPITAL LETTER ALPHA WITH TONOS
+			case "Aacgr":                           // GREEK CAPITAL LETTER ALPHA WITH TONOS
 				return rune(0x0386), true
-			case "Aacute": 
-				// LATIN CAPITAL LETTER A WITH ACUTE
+			case "Aacute":                          // LATIN CAPITAL LETTER A WITH ACUTE
 				return rune(0xc1), true
-			case "Abreve": 
-				// LATIN CAPITAL LETTER A WITH BREVE
+			case "Abreve":                          // LATIN CAPITAL LETTER A WITH BREVE
 				return rune(0x0102), true
-			case "Acirc": 
-				// LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+			case "Acirc":                           // LATIN CAPITAL LETTER A WITH CIRCUMFLEX
 				return rune(0xc2), true
-			case "Acy": 
-				// CYRILLIC CAPITAL LETTER A
+			case "Acy":                             // CYRILLIC CAPITAL LETTER A
 				return rune(0x0410), true
-			case "Afr": 
-				// MATHEMATICAL FRAKTUR CAPITAL A
+			case "Afr":                             // MATHEMATICAL FRAKTUR CAPITAL A
 				return rune(0x01d504), true
-			case "Agrave": 
-				// LATIN CAPITAL LETTER A WITH GRAVE
-				return rune(0xc0), true
-			case "Agr": 
-				// GREEK CAPITAL LETTER ALPHA
+			case "Agr":                             // GREEK CAPITAL LETTER ALPHA
 				return rune(0x0391), true
-			case "Alpha": 
-				// GREEK CAPITAL LETTER ALPHA
+			case "Agrave":                          // LATIN CAPITAL LETTER A WITH GRAVE
+				return rune(0xc0), true
+			case "Alpha":                           // GREEK CAPITAL LETTER ALPHA
 				return rune(0x0391), true
-			case "Amacr": 
-				// LATIN CAPITAL LETTER A WITH MACRON
+			case "Amacr":                           // LATIN CAPITAL LETTER A WITH MACRON
 				return rune(0x0100), true
-			case "And": 
-				// DOUBLE LOGICAL AND
+			case "And":                             // DOUBLE LOGICAL AND
 				return rune(0x2a53), true
-			case "Aogon": 
-				// LATIN CAPITAL LETTER A WITH OGONEK
+			case "Aogon":                           // LATIN CAPITAL LETTER A WITH OGONEK
 				return rune(0x0104), true
-			case "Aopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+			case "Aopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL A
 				return rune(0x01d538), true
-			case "ApplyFunction": 
-				// FUNCTION APPLICATION
+			case "ApplyFunction":                   // FUNCTION APPLICATION
 				return rune(0x2061), true
-			case "Aring": 
-				// LATIN CAPITAL LETTER A WITH RING ABOVE
+			case "Aring":                           // LATIN CAPITAL LETTER A WITH RING ABOVE
 				return rune(0xc5), true
-			case "Ascr": 
-				// MATHEMATICAL SCRIPT CAPITAL A
+			case "Ascr":                            // MATHEMATICAL SCRIPT CAPITAL A
 				return rune(0x01d49c), true
-			case "Assign": 
-				// COLON EQUALS
+			case "Assign":                          // COLON EQUALS
 				return rune(0x2254), true
-			case "Ast": 
-				// TWO ASTERISKS ALIGNED VERTICALLY
+			case "Ast":                             // TWO ASTERISKS ALIGNED VERTICALLY
 				return rune(0x2051), true
-			case "Atilde": 
-				// LATIN CAPITAL LETTER A WITH TILDE
+			case "Atilde":                          // LATIN CAPITAL LETTER A WITH TILDE
 				return rune(0xc3), true
-			case "Auml": 
-				// LATIN CAPITAL LETTER A WITH DIAERESIS
+			case "Auml":                            // LATIN CAPITAL LETTER A WITH DIAERESIS
 				return rune(0xc4), true
 		}
 
 	case 'B':
 		switch name {
-			case "Backslash": 
-				// SET MINUS
+			case "Backslash":                       // SET MINUS
 				return rune(0x2216), true
-			case "Barint": 
-				// INTEGRAL WITH DOUBLE STROKE
+			case "Barint":                          // INTEGRAL WITH DOUBLE STROKE
 				return rune(0x2a0e), true
-			case "Barv": 
-				// SHORT DOWN TACK WITH OVERBAR
+			case "Barv":                            // SHORT DOWN TACK WITH OVERBAR
 				return rune(0x2ae7), true
-			case "Barwedl": 
-				// LOGICAL AND WITH DOUBLE OVERBAR
-				return rune(0x2a5e), true
-			case "Barwed": 
-				// PERSPECTIVE
+			case "Barwed":                          // PERSPECTIVE
 				return rune(0x2306), true
-			case "Bcy": 
-				// CYRILLIC CAPITAL LETTER BE
+			case "Barwedl":                         // LOGICAL AND WITH DOUBLE OVERBAR
+				return rune(0x2a5e), true
+			case "Bcy":                             // CYRILLIC CAPITAL LETTER BE
 				return rune(0x0411), true
-			case "Because": 
-				// BECAUSE
+			case "Because":                         // BECAUSE
 				return rune(0x2235), true
-			case "Bernoullis": 
-				// SCRIPT CAPITAL B
+			case "Bernoullis":                      // SCRIPT CAPITAL B
 				return rune(0x212c), true
-			case "Beta": 
-				// GREEK CAPITAL LETTER BETA
+			case "Beta":                            // GREEK CAPITAL LETTER BETA
 				return rune(0x0392), true
-			case "Bfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL B
+			case "Bfr":                             // MATHEMATICAL FRAKTUR CAPITAL B
 				return rune(0x01d505), true
-			case "Bgr": 
-				// GREEK CAPITAL LETTER BETA
+			case "Bgr":                             // GREEK CAPITAL LETTER BETA
 				return rune(0x0392), true
-			case "Bopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+			case "Bopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL B
 				return rune(0x01d539), true
-			case "Breve": 
-				// BREVE
+			case "Breve":                           // BREVE
 				return rune(0x02d8), true
-			case "Bscr": 
-				// SCRIPT CAPITAL B
+			case "Bscr":                            // SCRIPT CAPITAL B
 				return rune(0x212c), true
-			case "Bumpeq": 
-				// GEOMETRICALLY EQUIVALENT TO
+			case "Bumpeq":                          // GEOMETRICALLY EQUIVALENT TO
 				return rune(0x224e), true
-			case "Bvert": 
-				// BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+			case "Bvert":                           // BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
 				return rune(0x2506), true
 		}
 
 	case 'C':
 		switch name {
-			case "CHcy": 
-				// CYRILLIC CAPITAL LETTER CHE
+			case "CHcy":                            // CYRILLIC CAPITAL LETTER CHE
 				return rune(0x0427), true
-			case "COPY": 
-				// COPYRIGHT SIGN
+			case "COPY":                            // COPYRIGHT SIGN
 				return rune(0xa9), true
-			case "Cacute": 
-				// LATIN CAPITAL LETTER C WITH ACUTE
+			case "Cacute":                          // LATIN CAPITAL LETTER C WITH ACUTE
 				return rune(0x0106), true
-			case "CapitalDifferentialD": 
-				// DOUBLE-STRUCK ITALIC CAPITAL D
-				return rune(0x2145), true
-			case "Cap": 
-				// DOUBLE INTERSECTION
+			case "Cap":                             // DOUBLE INTERSECTION
 				return rune(0x22d2), true
-			case "Cayleys": 
-				// BLACK-LETTER CAPITAL C
+			case "CapitalDifferentialD":            // DOUBLE-STRUCK ITALIC CAPITAL D
+				return rune(0x2145), true
+			case "Cayleys":                         // BLACK-LETTER CAPITAL C
 				return rune(0x212d), true
-			case "Ccaron": 
-				// LATIN CAPITAL LETTER C WITH CARON
+			case "Ccaron":                          // LATIN CAPITAL LETTER C WITH CARON
 				return rune(0x010c), true
-			case "Ccedil": 
-				// LATIN CAPITAL LETTER C WITH CEDILLA
+			case "Ccedil":                          // LATIN CAPITAL LETTER C WITH CEDILLA
 				return rune(0xc7), true
-			case "Ccirc": 
-				// LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+			case "Ccirc":                           // LATIN CAPITAL LETTER C WITH CIRCUMFLEX
 				return rune(0x0108), true
-			case "Cconint": 
-				// VOLUME INTEGRAL
+			case "Cconint":                         // VOLUME INTEGRAL
 				return rune(0x2230), true
-			case "Cdot": 
-				// LATIN CAPITAL LETTER C WITH DOT ABOVE
+			case "Cdot":                            // LATIN CAPITAL LETTER C WITH DOT ABOVE
 				return rune(0x010a), true
-			case "Cedilla": 
-				// CEDILLA
+			case "Cedilla":                         // CEDILLA
 				return rune(0xb8), true
-			case "CenterDot": 
-				// MIDDLE DOT
+			case "CenterDot":                       // MIDDLE DOT
 				return rune(0xb7), true
-			case "Cfr": 
-				// BLACK-LETTER CAPITAL C
+			case "Cfr":                             // BLACK-LETTER CAPITAL C
 				return rune(0x212d), true
-			case "Chi": 
-				// GREEK CAPITAL LETTER CHI
+			case "Chi":                             // GREEK CAPITAL LETTER CHI
 				return rune(0x03a7), true
-			case "CircleDot": 
-				// CIRCLED DOT OPERATOR
+			case "CircleDot":                       // CIRCLED DOT OPERATOR
 				return rune(0x2299), true
-			case "CircleMinus": 
-				// CIRCLED MINUS
+			case "CircleMinus":                     // CIRCLED MINUS
 				return rune(0x2296), true
-			case "CirclePlus": 
-				// CIRCLED PLUS
+			case "CirclePlus":                      // CIRCLED PLUS
 				return rune(0x2295), true
-			case "CircleTimes": 
-				// CIRCLED TIMES
+			case "CircleTimes":                     // CIRCLED TIMES
 				return rune(0x2297), true
-			case "ClockwiseContourIntegral": 
-				// CLOCKWISE CONTOUR INTEGRAL
+			case "ClockwiseContourIntegral":        // CLOCKWISE CONTOUR INTEGRAL
 				return rune(0x2232), true
-			case "CloseCurlyDoubleQuote": 
-				// RIGHT DOUBLE QUOTATION MARK
+			case "CloseCurlyDoubleQuote":           // RIGHT DOUBLE QUOTATION MARK
 				return rune(0x201d), true
-			case "CloseCurlyQuote": 
-				// RIGHT SINGLE QUOTATION MARK
+			case "CloseCurlyQuote":                 // RIGHT SINGLE QUOTATION MARK
 				return rune(0x2019), true
-			case "Colon": 
-				// PROPORTION
+			case "Colon":                           // PROPORTION
 				return rune(0x2237), true
-			case "Colone": 
-				// DOUBLE COLON EQUAL
+			case "Colone":                          // DOUBLE COLON EQUAL
 				return rune(0x2a74), true
-			case "Congruent": 
-				// IDENTICAL TO
+			case "Congruent":                       // IDENTICAL TO
 				return rune(0x2261), true
-			case "Conint": 
-				// SURFACE INTEGRAL
+			case "Conint":                          // SURFACE INTEGRAL
 				return rune(0x222f), true
-			case "ContourIntegral": 
-				// CONTOUR INTEGRAL
+			case "ContourIntegral":                 // CONTOUR INTEGRAL
 				return rune(0x222e), true
-			case "Copf": 
-				// DOUBLE-STRUCK CAPITAL C
+			case "Copf":                            // DOUBLE-STRUCK CAPITAL C
 				return rune(0x2102), true
-			case "Coproduct": 
-				// N-ARY COPRODUCT
+			case "Coproduct":                       // N-ARY COPRODUCT
 				return rune(0x2210), true
-			case "CounterClockwiseContourIntegral": 
-				// ANTICLOCKWISE CONTOUR INTEGRAL
+			case "CounterClockwiseContourIntegral": // ANTICLOCKWISE CONTOUR INTEGRAL
 				return rune(0x2233), true
-			case "Cross": 
-				// VECTOR OR CROSS PRODUCT
+			case "Cross":                           // VECTOR OR CROSS PRODUCT
 				return rune(0x2a2f), true
-			case "Cscr": 
-				// MATHEMATICAL SCRIPT CAPITAL C
+			case "Cscr":                            // MATHEMATICAL SCRIPT CAPITAL C
 				return rune(0x01d49e), true
-			case "CupCap": 
-				// EQUIVALENT TO
-				return rune(0x224d), true
-			case "Cup": 
-				// DOUBLE UNION
+			case "Cup":                             // DOUBLE UNION
 				return rune(0x22d3), true
+			case "CupCap":                          // EQUIVALENT TO
+				return rune(0x224d), true
 		}
 
 	case 'D':
 		switch name {
-			case "DD": 
-				// DOUBLE-STRUCK ITALIC CAPITAL D
+			case "DD":                              // DOUBLE-STRUCK ITALIC CAPITAL D
 				return rune(0x2145), true
-			case "DDotrahd": 
-				// RIGHTWARDS ARROW WITH DOTTED STEM
+			case "DDotrahd":                        // RIGHTWARDS ARROW WITH DOTTED STEM
 				return rune(0x2911), true
-			case "DJcy": 
-				// CYRILLIC CAPITAL LETTER DJE
+			case "DJcy":                            // CYRILLIC CAPITAL LETTER DJE
 				return rune(0x0402), true
-			case "DScy": 
-				// CYRILLIC CAPITAL LETTER DZE
+			case "DScy":                            // CYRILLIC CAPITAL LETTER DZE
 				return rune(0x0405), true
-			case "DZcy": 
-				// CYRILLIC CAPITAL LETTER DZHE
+			case "DZcy":                            // CYRILLIC CAPITAL LETTER DZHE
 				return rune(0x040f), true
-			case "Dagger": 
-				// DOUBLE DAGGER
+			case "Dagger":                          // DOUBLE DAGGER
 				return rune(0x2021), true
-			case "Darr": 
-				// DOWNWARDS TWO HEADED ARROW
+			case "Darr":                            // DOWNWARDS TWO HEADED ARROW
 				return rune(0x21a1), true
-			case "Dashv": 
-				// VERTICAL BAR DOUBLE LEFT TURNSTILE
+			case "Dashv":                           // VERTICAL BAR DOUBLE LEFT TURNSTILE
 				return rune(0x2ae4), true
-			case "Dcaron": 
-				// LATIN CAPITAL LETTER D WITH CARON
+			case "Dcaron":                          // LATIN CAPITAL LETTER D WITH CARON
 				return rune(0x010e), true
-			case "Dcy": 
-				// CYRILLIC CAPITAL LETTER DE
+			case "Dcy":                             // CYRILLIC CAPITAL LETTER DE
 				return rune(0x0414), true
-			case "Del": 
-				// NABLA
+			case "Del":                             // NABLA
 				return rune(0x2207), true
-			case "Delta": 
-				// GREEK CAPITAL LETTER DELTA
+			case "Delta":                           // GREEK CAPITAL LETTER DELTA
 				return rune(0x0394), true
-			case "Dfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL D
+			case "Dfr":                             // MATHEMATICAL FRAKTUR CAPITAL D
 				return rune(0x01d507), true
-			case "Dgr": 
-				// GREEK CAPITAL LETTER DELTA
+			case "Dgr":                             // GREEK CAPITAL LETTER DELTA
 				return rune(0x0394), true
-			case "DiacriticalAcute": 
-				// ACUTE ACCENT
+			case "DiacriticalAcute":                // ACUTE ACCENT
 				return rune(0xb4), true
-			case "DiacriticalDot": 
-				// DOT ABOVE
+			case "DiacriticalDot":                  // DOT ABOVE
 				return rune(0x02d9), true
-			case "DiacriticalDoubleAcute": 
-				// DOUBLE ACUTE ACCENT
+			case "DiacriticalDoubleAcute":          // DOUBLE ACUTE ACCENT
 				return rune(0x02dd), true
-			case "DiacriticalGrave": 
-				// GRAVE ACCENT
+			case "DiacriticalGrave":                // GRAVE ACCENT
 				return rune(0x60), true
-			case "DiacriticalTilde": 
-				// SMALL TILDE
+			case "DiacriticalTilde":                // SMALL TILDE
 				return rune(0x02dc), true
-			case "Diamond": 
-				// DIAMOND OPERATOR
+			case "Diamond":                         // DIAMOND OPERATOR
 				return rune(0x22c4), true
-			case "DifferentialD": 
-				// DOUBLE-STRUCK ITALIC SMALL D
+			case "DifferentialD":                   // DOUBLE-STRUCK ITALIC SMALL D
 				return rune(0x2146), true
-			case "Dopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+			case "Dopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL D
 				return rune(0x01d53b), true
-			case "Dot": 
-				// DIAERESIS
+			case "Dot":                             // DIAERESIS
 				return rune(0xa8), true
-			case "DotDot": 
-				// COMBINING FOUR DOTS ABOVE
+			case "DotDot":                          // COMBINING FOUR DOTS ABOVE
 				return rune(0x20dc), true
-			case "DotEqual": 
-				// APPROACHES THE LIMIT
+			case "DotEqual":                        // APPROACHES THE LIMIT
 				return rune(0x2250), true
-			case "DoubleContourIntegral": 
-				// SURFACE INTEGRAL
+			case "DoubleContourIntegral":           // SURFACE INTEGRAL
 				return rune(0x222f), true
-			case "DoubleDot": 
-				// DIAERESIS
+			case "DoubleDot":                       // DIAERESIS
 				return rune(0xa8), true
-			case "DoubleDownArrow": 
-				// DOWNWARDS DOUBLE ARROW
+			case "DoubleDownArrow":                 // DOWNWARDS DOUBLE ARROW
 				return rune(0x21d3), true
-			case "DoubleLeftArrow": 
-				// LEFTWARDS DOUBLE ARROW
+			case "DoubleLeftArrow":                 // LEFTWARDS DOUBLE ARROW
 				return rune(0x21d0), true
-			case "DoubleLeftRightArrow": 
-				// LEFT RIGHT DOUBLE ARROW
+			case "DoubleLeftRightArrow":            // LEFT RIGHT DOUBLE ARROW
 				return rune(0x21d4), true
-			case "DoubleLeftTee": 
-				// VERTICAL BAR DOUBLE LEFT TURNSTILE
+			case "DoubleLeftTee":                   // VERTICAL BAR DOUBLE LEFT TURNSTILE
 				return rune(0x2ae4), true
-			case "DoubleLongLeftArrow": 
-				// LONG LEFTWARDS DOUBLE ARROW
+			case "DoubleLongLeftArrow":             // LONG LEFTWARDS DOUBLE ARROW
 				return rune(0x27f8), true
-			case "DoubleLongLeftRightArrow": 
-				// LONG LEFT RIGHT DOUBLE ARROW
+			case "DoubleLongLeftRightArrow":        // LONG LEFT RIGHT DOUBLE ARROW
 				return rune(0x27fa), true
-			case "DoubleLongRightArrow": 
-				// LONG RIGHTWARDS DOUBLE ARROW
+			case "DoubleLongRightArrow":            // LONG RIGHTWARDS DOUBLE ARROW
 				return rune(0x27f9), true
-			case "DoubleRightArrow": 
-				// RIGHTWARDS DOUBLE ARROW
+			case "DoubleRightArrow":                // RIGHTWARDS DOUBLE ARROW
 				return rune(0x21d2), true
-			case "DoubleRightTee": 
-				// TRUE
+			case "DoubleRightTee":                  // TRUE
 				return rune(0x22a8), true
-			case "DoubleUpArrow": 
-				// UPWARDS DOUBLE ARROW
+			case "DoubleUpArrow":                   // UPWARDS DOUBLE ARROW
 				return rune(0x21d1), true
-			case "DoubleUpDownArrow": 
-				// UP DOWN DOUBLE ARROW
+			case "DoubleUpDownArrow":               // UP DOWN DOUBLE ARROW
 				return rune(0x21d5), true
-			case "DoubleVerticalBar": 
-				// PARALLEL TO
+			case "DoubleVerticalBar":               // PARALLEL TO
 				return rune(0x2225), true
-			case "DownArrowUpArrow": 
-				// DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
-				return rune(0x21f5), true
-			case "DownArrow": 
-				// DOWNWARDS ARROW
+			case "DownArrow":                       // DOWNWARDS ARROW
 				return rune(0x2193), true
-			case "DownArrowBar": 
-				// DOWNWARDS ARROW TO BAR
+			case "DownArrowBar":                    // DOWNWARDS ARROW TO BAR
 				return rune(0x2913), true
-			case "DownBreve": 
-				// COMBINING INVERTED BREVE
+			case "DownArrowUpArrow":                // DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
+				return rune(0x21f5), true
+			case "DownBreve":                       // COMBINING INVERTED BREVE
 				return rune(0x0311), true
-			case "DownLeftRightVector": 
-				// LEFT BARB DOWN RIGHT BARB DOWN HARPOON
+			case "DownLeftRightVector":             // LEFT BARB DOWN RIGHT BARB DOWN HARPOON
 				return rune(0x2950), true
-			case "DownLeftTeeVector": 
-				// LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
+			case "DownLeftTeeVector":               // LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
 				return rune(0x295e), true
-			case "DownLeftVector": 
-				// LEFTWARDS HARPOON WITH BARB DOWNWARDS
+			case "DownLeftVector":                  // LEFTWARDS HARPOON WITH BARB DOWNWARDS
 				return rune(0x21bd), true
-			case "DownLeftVectorBar": 
-				// LEFTWARDS HARPOON WITH BARB DOWN TO BAR
+			case "DownLeftVectorBar":               // LEFTWARDS HARPOON WITH BARB DOWN TO BAR
 				return rune(0x2956), true
-			case "DownRightTeeVector": 
-				// RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
+			case "DownRightTeeVector":              // RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
 				return rune(0x295f), true
-			case "DownRightVector": 
-				// RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+			case "DownRightVector":                 // RIGHTWARDS HARPOON WITH BARB DOWNWARDS
 				return rune(0x21c1), true
-			case "DownRightVectorBar": 
-				// RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
+			case "DownRightVectorBar":              // RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
 				return rune(0x2957), true
-			case "DownTeeArrow": 
-				// DOWNWARDS ARROW FROM BAR
-				return rune(0x21a7), true
-			case "DownTee": 
-				// DOWN TACK
+			case "DownTee":                         // DOWN TACK
 				return rune(0x22a4), true
-			case "Downarrow": 
-				// DOWNWARDS DOUBLE ARROW
+			case "DownTeeArrow":                    // DOWNWARDS ARROW FROM BAR
+				return rune(0x21a7), true
+			case "Downarrow":                       // DOWNWARDS DOUBLE ARROW
 				return rune(0x21d3), true
-			case "Dscr": 
-				// MATHEMATICAL SCRIPT CAPITAL D
+			case "Dscr":                            // MATHEMATICAL SCRIPT CAPITAL D
 				return rune(0x01d49f), true
-			case "Dstrok": 
-				// LATIN CAPITAL LETTER D WITH STROKE
+			case "Dstrok":                          // LATIN CAPITAL LETTER D WITH STROKE
 				return rune(0x0110), true
 		}
 
 	case 'E':
 		switch name {
-			case "EEacgr": 
-				// GREEK CAPITAL LETTER ETA WITH TONOS
+			case "EEacgr":                          // GREEK CAPITAL LETTER ETA WITH TONOS
 				return rune(0x0389), true
-			case "EEgr": 
-				// GREEK CAPITAL LETTER ETA
+			case "EEgr":                            // GREEK CAPITAL LETTER ETA
 				return rune(0x0397), true
-			case "ENG": 
-				// LATIN CAPITAL LETTER ENG
+			case "ENG":                             // LATIN CAPITAL LETTER ENG
 				return rune(0x014a), true
-			case "ETH": 
-				// LATIN CAPITAL LETTER ETH
+			case "ETH":                             // LATIN CAPITAL LETTER ETH
 				return rune(0xd0), true
-			case "Eacgr": 
-				// GREEK CAPITAL LETTER EPSILON WITH TONOS
+			case "Eacgr":                           // GREEK CAPITAL LETTER EPSILON WITH TONOS
 				return rune(0x0388), true
-			case "Eacute": 
-				// LATIN CAPITAL LETTER E WITH ACUTE
+			case "Eacute":                          // LATIN CAPITAL LETTER E WITH ACUTE
 				return rune(0xc9), true
-			case "Ecaron": 
-				// LATIN CAPITAL LETTER E WITH CARON
+			case "Ecaron":                          // LATIN CAPITAL LETTER E WITH CARON
 				return rune(0x011a), true
-			case "Ecirc": 
-				// LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+			case "Ecirc":                           // LATIN CAPITAL LETTER E WITH CIRCUMFLEX
 				return rune(0xca), true
-			case "Ecy": 
-				// CYRILLIC CAPITAL LETTER E
+			case "Ecy":                             // CYRILLIC CAPITAL LETTER E
 				return rune(0x042d), true
-			case "Edot": 
-				// LATIN CAPITAL LETTER E WITH DOT ABOVE
+			case "Edot":                            // LATIN CAPITAL LETTER E WITH DOT ABOVE
 				return rune(0x0116), true
-			case "Efr": 
-				// MATHEMATICAL FRAKTUR CAPITAL E
+			case "Efr":                             // MATHEMATICAL FRAKTUR CAPITAL E
 				return rune(0x01d508), true
-			case "Egrave": 
-				// LATIN CAPITAL LETTER E WITH GRAVE
-				return rune(0xc8), true
-			case "Egr": 
-				// GREEK CAPITAL LETTER EPSILON
+			case "Egr":                             // GREEK CAPITAL LETTER EPSILON
 				return rune(0x0395), true
-			case "Element": 
-				// ELEMENT OF
+			case "Egrave":                          // LATIN CAPITAL LETTER E WITH GRAVE
+				return rune(0xc8), true
+			case "Element":                         // ELEMENT OF
 				return rune(0x2208), true
-			case "Emacr": 
-				// LATIN CAPITAL LETTER E WITH MACRON
+			case "Emacr":                           // LATIN CAPITAL LETTER E WITH MACRON
 				return rune(0x0112), true
-			case "EmptySmallSquare": 
-				// WHITE MEDIUM SQUARE
+			case "EmptySmallSquare":                // WHITE MEDIUM SQUARE
 				return rune(0x25fb), true
-			case "EmptyVerySmallSquare": 
-				// WHITE SMALL SQUARE
+			case "EmptyVerySmallSquare":            // WHITE SMALL SQUARE
 				return rune(0x25ab), true
-			case "Eogon": 
-				// LATIN CAPITAL LETTER E WITH OGONEK
+			case "Eogon":                           // LATIN CAPITAL LETTER E WITH OGONEK
 				return rune(0x0118), true
-			case "Eopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+			case "Eopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL E
 				return rune(0x01d53c), true
-			case "Epsilon": 
-				// GREEK CAPITAL LETTER EPSILON
+			case "Epsilon":                         // GREEK CAPITAL LETTER EPSILON
 				return rune(0x0395), true
-			case "EqualTilde": 
-				// MINUS TILDE
-				return rune(0x2242), true
-			case "Equal": 
-				// TWO CONSECUTIVE EQUALS SIGNS
+			case "Equal":                           // TWO CONSECUTIVE EQUALS SIGNS
 				return rune(0x2a75), true
-			case "Equilibrium": 
-				// RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+			case "EqualTilde":                      // MINUS TILDE
+				return rune(0x2242), true
+			case "Equilibrium":                     // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
 				return rune(0x21cc), true
-			case "Escr": 
-				// SCRIPT CAPITAL E
+			case "Escr":                            // SCRIPT CAPITAL E
 				return rune(0x2130), true
-			case "Esim": 
-				// EQUALS SIGN ABOVE TILDE OPERATOR
+			case "Esim":                            // EQUALS SIGN ABOVE TILDE OPERATOR
 				return rune(0x2a73), true
-			case "Eta": 
-				// GREEK CAPITAL LETTER ETA
+			case "Eta":                             // GREEK CAPITAL LETTER ETA
 				return rune(0x0397), true
-			case "Euml": 
-				// LATIN CAPITAL LETTER E WITH DIAERESIS
+			case "Euml":                            // LATIN CAPITAL LETTER E WITH DIAERESIS
 				return rune(0xcb), true
-			case "Exists": 
-				// THERE EXISTS
+			case "Exists":                          // THERE EXISTS
 				return rune(0x2203), true
-			case "ExponentialE": 
-				// DOUBLE-STRUCK ITALIC SMALL E
+			case "ExponentialE":                    // DOUBLE-STRUCK ITALIC SMALL E
 				return rune(0x2147), true
 		}
 
 	case 'F':
 		switch name {
-			case "Fcy": 
-				// CYRILLIC CAPITAL LETTER EF
+			case "Fcy":                             // CYRILLIC CAPITAL LETTER EF
 				return rune(0x0424), true
-			case "Ffr": 
-				// MATHEMATICAL FRAKTUR CAPITAL F
+			case "Ffr":                             // MATHEMATICAL FRAKTUR CAPITAL F
 				return rune(0x01d509), true
-			case "FilledSmallSquare": 
-				// BLACK MEDIUM SQUARE
+			case "FilledSmallSquare":               // BLACK MEDIUM SQUARE
 				return rune(0x25fc), true
-			case "FilledVerySmallSquare": 
-				// BLACK SMALL SQUARE
+			case "FilledVerySmallSquare":           // BLACK SMALL SQUARE
 				return rune(0x25aa), true
-			case "Fopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+			case "Fopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL F
 				return rune(0x01d53d), true
-			case "ForAll": 
-				// FOR ALL
+			case "ForAll":                          // FOR ALL
 				return rune(0x2200), true
-			case "Fouriertrf": 
-				// SCRIPT CAPITAL F
+			case "Fouriertrf":                      // SCRIPT CAPITAL F
 				return rune(0x2131), true
-			case "Fscr": 
-				// SCRIPT CAPITAL F
+			case "Fscr":                            // SCRIPT CAPITAL F
 				return rune(0x2131), true
 		}
 
 	case 'G':
 		switch name {
-			case "GJcy": 
-				// CYRILLIC CAPITAL LETTER GJE
+			case "GJcy":                            // CYRILLIC CAPITAL LETTER GJE
 				return rune(0x0403), true
-			case "GT": 
-				// GREATER-THAN SIGN
+			case "GT":                              // GREATER-THAN SIGN
 				return rune(0x3e), true
-			case "Game": 
-				// TURNED SANS-SERIF CAPITAL G
+			case "Game":                            // TURNED SANS-SERIF CAPITAL G
 				return rune(0x2141), true
-			case "Gamma": 
-				// GREEK CAPITAL LETTER GAMMA
+			case "Gamma":                           // GREEK CAPITAL LETTER GAMMA
 				return rune(0x0393), true
-			case "Gammad": 
-				// GREEK LETTER DIGAMMA
+			case "Gammad":                          // GREEK LETTER DIGAMMA
 				return rune(0x03dc), true
-			case "Gbreve": 
-				// LATIN CAPITAL LETTER G WITH BREVE
+			case "Gbreve":                          // LATIN CAPITAL LETTER G WITH BREVE
 				return rune(0x011e), true
-			case "Gcedil": 
-				// LATIN CAPITAL LETTER G WITH CEDILLA
+			case "Gcedil":                          // LATIN CAPITAL LETTER G WITH CEDILLA
 				return rune(0x0122), true
-			case "Gcirc": 
-				// LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+			case "Gcirc":                           // LATIN CAPITAL LETTER G WITH CIRCUMFLEX
 				return rune(0x011c), true
-			case "Gcy": 
-				// CYRILLIC CAPITAL LETTER GHE
+			case "Gcy":                             // CYRILLIC CAPITAL LETTER GHE
 				return rune(0x0413), true
-			case "Gdot": 
-				// LATIN CAPITAL LETTER G WITH DOT ABOVE
+			case "Gdot":                            // LATIN CAPITAL LETTER G WITH DOT ABOVE
 				return rune(0x0120), true
-			case "Gfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL G
+			case "Gfr":                             // MATHEMATICAL FRAKTUR CAPITAL G
 				return rune(0x01d50a), true
-			case "Ggr": 
-				// GREEK CAPITAL LETTER GAMMA
-				return rune(0x0393), true
-			case "Gg": 
-				// VERY MUCH GREATER-THAN
+			case "Gg":                              // VERY MUCH GREATER-THAN
 				return rune(0x22d9), true
-			case "Gopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+			case "Ggr":                             // GREEK CAPITAL LETTER GAMMA
+				return rune(0x0393), true
+			case "Gopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL G
 				return rune(0x01d53e), true
-			case "GreaterEqual": 
-				// GREATER-THAN OR EQUAL TO
+			case "GreaterEqual":                    // GREATER-THAN OR EQUAL TO
 				return rune(0x2265), true
-			case "GreaterEqualLess": 
-				// GREATER-THAN EQUAL TO OR LESS-THAN
+			case "GreaterEqualLess":                // GREATER-THAN EQUAL TO OR LESS-THAN
 				return rune(0x22db), true
-			case "GreaterFullEqual": 
-				// GREATER-THAN OVER EQUAL TO
+			case "GreaterFullEqual":                // GREATER-THAN OVER EQUAL TO
 				return rune(0x2267), true
-			case "GreaterGreater": 
-				// DOUBLE NESTED GREATER-THAN
+			case "GreaterGreater":                  // DOUBLE NESTED GREATER-THAN
 				return rune(0x2aa2), true
-			case "GreaterLess": 
-				// GREATER-THAN OR LESS-THAN
+			case "GreaterLess":                     // GREATER-THAN OR LESS-THAN
 				return rune(0x2277), true
-			case "GreaterSlantEqual": 
-				// GREATER-THAN OR SLANTED EQUAL TO
+			case "GreaterSlantEqual":               // GREATER-THAN OR SLANTED EQUAL TO
 				return rune(0x2a7e), true
-			case "GreaterTilde": 
-				// GREATER-THAN OR EQUIVALENT TO
+			case "GreaterTilde":                    // GREATER-THAN OR EQUIVALENT TO
 				return rune(0x2273), true
-			case "Gscr": 
-				// MATHEMATICAL SCRIPT CAPITAL G
+			case "Gscr":                            // MATHEMATICAL SCRIPT CAPITAL G
 				return rune(0x01d4a2), true
-			case "Gt": 
-				// MUCH GREATER-THAN
+			case "Gt":                              // MUCH GREATER-THAN
 				return rune(0x226b), true
 		}
 
 	case 'H':
 		switch name {
-			case "HARDcy": 
-				// CYRILLIC CAPITAL LETTER HARD SIGN
+			case "HARDcy":                          // CYRILLIC CAPITAL LETTER HARD SIGN
 				return rune(0x042a), true
-			case "Hacek": 
-				// CARON
+			case "Hacek":                           // CARON
 				return rune(0x02c7), true
-			case "Hat": 
-				// CIRCUMFLEX ACCENT
+			case "Hat":                             // CIRCUMFLEX ACCENT
 				return rune(0x5e), true
-			case "Hcirc": 
-				// LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+			case "Hcirc":                           // LATIN CAPITAL LETTER H WITH CIRCUMFLEX
 				return rune(0x0124), true
-			case "Hfr": 
-				// BLACK-LETTER CAPITAL H
+			case "Hfr":                             // BLACK-LETTER CAPITAL H
 				return rune(0x210c), true
-			case "HilbertSpace": 
-				// SCRIPT CAPITAL H
+			case "HilbertSpace":                    // SCRIPT CAPITAL H
 				return rune(0x210b), true
-			case "Hopf": 
-				// DOUBLE-STRUCK CAPITAL H
+			case "Hopf":                            // DOUBLE-STRUCK CAPITAL H
 				return rune(0x210d), true
-			case "HorizontalLine": 
-				// BOX DRAWINGS LIGHT HORIZONTAL
+			case "HorizontalLine":                  // BOX DRAWINGS LIGHT HORIZONTAL
 				return rune(0x2500), true
-			case "Hscr": 
-				// SCRIPT CAPITAL H
+			case "Hscr":                            // SCRIPT CAPITAL H
 				return rune(0x210b), true
-			case "Hstrok": 
-				// LATIN CAPITAL LETTER H WITH STROKE
+			case "Hstrok":                          // LATIN CAPITAL LETTER H WITH STROKE
 				return rune(0x0126), true
-			case "HumpDownHump": 
-				// GEOMETRICALLY EQUIVALENT TO
+			case "HumpDownHump":                    // GEOMETRICALLY EQUIVALENT TO
 				return rune(0x224e), true
-			case "HumpEqual": 
-				// DIFFERENCE BETWEEN
+			case "HumpEqual":                       // DIFFERENCE BETWEEN
 				return rune(0x224f), true
 		}
 
 	case 'I':
 		switch name {
-			case "IEcy": 
-				// CYRILLIC CAPITAL LETTER IE
+			case "IEcy":                            // CYRILLIC CAPITAL LETTER IE
 				return rune(0x0415), true
-			case "IJlig": 
-				// LATIN CAPITAL LIGATURE IJ
+			case "IJlig":                           // LATIN CAPITAL LIGATURE IJ
 				return rune(0x0132), true
-			case "IOcy": 
-				// CYRILLIC CAPITAL LETTER IO
+			case "IOcy":                            // CYRILLIC CAPITAL LETTER IO
 				return rune(0x0401), true
-			case "Iacgr": 
-				// GREEK CAPITAL LETTER IOTA WITH TONOS
+			case "Iacgr":                           // GREEK CAPITAL LETTER IOTA WITH TONOS
 				return rune(0x038a), true
-			case "Iacute": 
-				// LATIN CAPITAL LETTER I WITH ACUTE
+			case "Iacute":                          // LATIN CAPITAL LETTER I WITH ACUTE
 				return rune(0xcd), true
-			case "Icirc": 
-				// LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+			case "Icirc":                           // LATIN CAPITAL LETTER I WITH CIRCUMFLEX
 				return rune(0xce), true
-			case "Icy": 
-				// CYRILLIC CAPITAL LETTER I
+			case "Icy":                             // CYRILLIC CAPITAL LETTER I
 				return rune(0x0418), true
-			case "Idigr": 
-				// GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+			case "Idigr":                           // GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
 				return rune(0x03aa), true
-			case "Idot": 
-				// LATIN CAPITAL LETTER I WITH DOT ABOVE
+			case "Idot":                            // LATIN CAPITAL LETTER I WITH DOT ABOVE
 				return rune(0x0130), true
-			case "Ifr": 
-				// BLACK-LETTER CAPITAL I
+			case "Ifr":                             // BLACK-LETTER CAPITAL I
 				return rune(0x2111), true
-			case "Igrave": 
-				// LATIN CAPITAL LETTER I WITH GRAVE
-				return rune(0xcc), true
-			case "Igr": 
-				// GREEK CAPITAL LETTER IOTA
+			case "Igr":                             // GREEK CAPITAL LETTER IOTA
 				return rune(0x0399), true
-			case "Imacr": 
-				// LATIN CAPITAL LETTER I WITH MACRON
+			case "Igrave":                          // LATIN CAPITAL LETTER I WITH GRAVE
+				return rune(0xcc), true
+			case "Im":                              // BLACK-LETTER CAPITAL I
+				return rune(0x2111), true
+			case "Imacr":                           // LATIN CAPITAL LETTER I WITH MACRON
 				return rune(0x012a), true
-			case "ImaginaryI": 
-				// DOUBLE-STRUCK ITALIC SMALL I
+			case "ImaginaryI":                      // DOUBLE-STRUCK ITALIC SMALL I
 				return rune(0x2148), true
-			case "Implies": 
-				// RIGHTWARDS DOUBLE ARROW
+			case "Implies":                         // RIGHTWARDS DOUBLE ARROW
 				return rune(0x21d2), true
-			case "Im": 
-				// BLACK-LETTER CAPITAL I
-				return rune(0x2111), true
-			case "Integral": 
-				// INTEGRAL
-				return rune(0x222b), true
-			case "Int": 
-				// DOUBLE INTEGRAL
+			case "Int":                             // DOUBLE INTEGRAL
 				return rune(0x222c), true
-			case "Intersection": 
-				// N-ARY INTERSECTION
+			case "Integral":                        // INTEGRAL
+				return rune(0x222b), true
+			case "Intersection":                    // N-ARY INTERSECTION
 				return rune(0x22c2), true
-			case "InvisibleComma": 
-				// INVISIBLE SEPARATOR
+			case "InvisibleComma":                  // INVISIBLE SEPARATOR
 				return rune(0x2063), true
-			case "InvisibleTimes": 
-				// INVISIBLE TIMES
+			case "InvisibleTimes":                  // INVISIBLE TIMES
 				return rune(0x2062), true
-			case "Iogon": 
-				// LATIN CAPITAL LETTER I WITH OGONEK
+			case "Iogon":                           // LATIN CAPITAL LETTER I WITH OGONEK
 				return rune(0x012e), true
-			case "Iopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+			case "Iopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL I
 				return rune(0x01d540), true
-			case "Iota": 
-				// GREEK CAPITAL LETTER IOTA
+			case "Iota":                            // GREEK CAPITAL LETTER IOTA
 				return rune(0x0399), true
-			case "Iscr": 
-				// SCRIPT CAPITAL I
+			case "Iscr":                            // SCRIPT CAPITAL I
 				return rune(0x2110), true
-			case "Itilde": 
-				// LATIN CAPITAL LETTER I WITH TILDE
+			case "Itilde":                          // LATIN CAPITAL LETTER I WITH TILDE
 				return rune(0x0128), true
-			case "Iukcy": 
-				// CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+			case "Iukcy":                           // CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
 				return rune(0x0406), true
-			case "Iuml": 
-				// LATIN CAPITAL LETTER I WITH DIAERESIS
+			case "Iuml":                            // LATIN CAPITAL LETTER I WITH DIAERESIS
 				return rune(0xcf), true
 		}
 
 	case 'J':
 		switch name {
-			case "Jcirc": 
-				// LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+			case "Jcirc":                           // LATIN CAPITAL LETTER J WITH CIRCUMFLEX
 				return rune(0x0134), true
-			case "Jcy": 
-				// CYRILLIC CAPITAL LETTER SHORT I
+			case "Jcy":                             // CYRILLIC CAPITAL LETTER SHORT I
 				return rune(0x0419), true
-			case "Jfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL J
+			case "Jfr":                             // MATHEMATICAL FRAKTUR CAPITAL J
 				return rune(0x01d50d), true
-			case "Jopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+			case "Jopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL J
 				return rune(0x01d541), true
-			case "Jscr": 
-				// MATHEMATICAL SCRIPT CAPITAL J
+			case "Jscr":                            // MATHEMATICAL SCRIPT CAPITAL J
 				return rune(0x01d4a5), true
-			case "Jsercy": 
-				// CYRILLIC CAPITAL LETTER JE
+			case "Jsercy":                          // CYRILLIC CAPITAL LETTER JE
 				return rune(0x0408), true
-			case "Jukcy": 
-				// CYRILLIC CAPITAL LETTER UKRAINIAN IE
+			case "Jukcy":                           // CYRILLIC CAPITAL LETTER UKRAINIAN IE
 				return rune(0x0404), true
 		}
 
 	case 'K':
 		switch name {
-			case "KHcy": 
-				// CYRILLIC CAPITAL LETTER HA
+			case "KHcy":                            // CYRILLIC CAPITAL LETTER HA
 				return rune(0x0425), true
-			case "KHgr": 
-				// GREEK CAPITAL LETTER CHI
+			case "KHgr":                            // GREEK CAPITAL LETTER CHI
 				return rune(0x03a7), true
-			case "KJcy": 
-				// CYRILLIC CAPITAL LETTER KJE
+			case "KJcy":                            // CYRILLIC CAPITAL LETTER KJE
 				return rune(0x040c), true
-			case "Kappa": 
-				// GREEK CAPITAL LETTER KAPPA
+			case "Kappa":                           // GREEK CAPITAL LETTER KAPPA
 				return rune(0x039a), true
-			case "Kcedil": 
-				// LATIN CAPITAL LETTER K WITH CEDILLA
+			case "Kcedil":                          // LATIN CAPITAL LETTER K WITH CEDILLA
 				return rune(0x0136), true
-			case "Kcy": 
-				// CYRILLIC CAPITAL LETTER KA
+			case "Kcy":                             // CYRILLIC CAPITAL LETTER KA
 				return rune(0x041a), true
-			case "Kfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL K
+			case "Kfr":                             // MATHEMATICAL FRAKTUR CAPITAL K
 				return rune(0x01d50e), true
-			case "Kgr": 
-				// GREEK CAPITAL LETTER KAPPA
+			case "Kgr":                             // GREEK CAPITAL LETTER KAPPA
 				return rune(0x039a), true
-			case "Kopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+			case "Kopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL K
 				return rune(0x01d542), true
-			case "Kscr": 
-				// MATHEMATICAL SCRIPT CAPITAL K
+			case "Kscr":                            // MATHEMATICAL SCRIPT CAPITAL K
 				return rune(0x01d4a6), true
 		}
 
 	case 'L':
 		switch name {
-			case "LJcy": 
-				// CYRILLIC CAPITAL LETTER LJE
+			case "LJcy":                            // CYRILLIC CAPITAL LETTER LJE
 				return rune(0x0409), true
-			case "LT": 
-				// LESS-THAN SIGN
+			case "LT":                              // LESS-THAN SIGN
 				return rune(0x3c), true
-			case "Lacute": 
-				// LATIN CAPITAL LETTER L WITH ACUTE
+			case "Lacute":                          // LATIN CAPITAL LETTER L WITH ACUTE
 				return rune(0x0139), true
-			case "Lambda": 
-				// GREEK CAPITAL LETTER LAMDA
+			case "Lambda":                          // GREEK CAPITAL LETTER LAMDA
 				return rune(0x039b), true
-			case "Lang": 
-				// MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+			case "Lang":                            // MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
 				return rune(0x27ea), true
-			case "Laplacetrf": 
-				// SCRIPT CAPITAL L
+			case "Laplacetrf":                      // SCRIPT CAPITAL L
 				return rune(0x2112), true
-			case "Larr": 
-				// LEFTWARDS TWO HEADED ARROW
+			case "Larr":                            // LEFTWARDS TWO HEADED ARROW
 				return rune(0x219e), true
-			case "Lcaron": 
-				// LATIN CAPITAL LETTER L WITH CARON
+			case "Lcaron":                          // LATIN CAPITAL LETTER L WITH CARON
 				return rune(0x013d), true
-			case "Lcedil": 
-				// LATIN CAPITAL LETTER L WITH CEDILLA
+			case "Lcedil":                          // LATIN CAPITAL LETTER L WITH CEDILLA
 				return rune(0x013b), true
-			case "Lcy": 
-				// CYRILLIC CAPITAL LETTER EL
+			case "Lcy":                             // CYRILLIC CAPITAL LETTER EL
 				return rune(0x041b), true
-			case "LeftAngleBracket": 
-				// MATHEMATICAL LEFT ANGLE BRACKET
+			case "LeftAngleBracket":                // MATHEMATICAL LEFT ANGLE BRACKET
 				return rune(0x27e8), true
-			case "LeftArrowBar": 
-				// LEFTWARDS ARROW TO BAR
+			case "LeftArrow":                       // LEFTWARDS ARROW
+				return rune(0x2190), true
+			case "LeftArrowBar":                    // LEFTWARDS ARROW TO BAR
 				return rune(0x21e4), true
-			case "LeftArrowRightArrow": 
-				// LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+			case "LeftArrowRightArrow":             // LEFTWARDS ARROW OVER RIGHTWARDS ARROW
 				return rune(0x21c6), true
-			case "LeftArrow": 
-				// LEFTWARDS ARROW
-				return rune(0x2190), true
-			case "LeftCeiling": 
-				// LEFT CEILING
+			case "LeftCeiling":                     // LEFT CEILING
 				return rune(0x2308), true
-			case "LeftDoubleBracket": 
-				// MATHEMATICAL LEFT WHITE SQUARE BRACKET
+			case "LeftDoubleBracket":               // MATHEMATICAL LEFT WHITE SQUARE BRACKET
 				return rune(0x27e6), true
-			case "LeftDownTeeVector": 
-				// DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
+			case "LeftDownTeeVector":               // DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
 				return rune(0x2961), true
-			case "LeftDownVector": 
-				// DOWNWARDS HARPOON WITH BARB LEFTWARDS
+			case "LeftDownVector":                  // DOWNWARDS HARPOON WITH BARB LEFTWARDS
 				return rune(0x21c3), true
-			case "LeftDownVectorBar": 
-				// DOWNWARDS HARPOON WITH BARB LEFT TO BAR
+			case "LeftDownVectorBar":               // DOWNWARDS HARPOON WITH BARB LEFT TO BAR
 				return rune(0x2959), true
-			case "LeftFloor": 
-				// LEFT FLOOR
+			case "LeftFloor":                       // LEFT FLOOR
 				return rune(0x230a), true
-			case "LeftRightArrow": 
-				// LEFT RIGHT ARROW
+			case "LeftRightArrow":                  // LEFT RIGHT ARROW
 				return rune(0x2194), true
-			case "LeftRightVector": 
-				// LEFT BARB UP RIGHT BARB UP HARPOON
+			case "LeftRightVector":                 // LEFT BARB UP RIGHT BARB UP HARPOON
 				return rune(0x294e), true
-			case "LeftTeeArrow": 
-				// LEFTWARDS ARROW FROM BAR
+			case "LeftTee":                         // LEFT TACK
+				return rune(0x22a3), true
+			case "LeftTeeArrow":                    // LEFTWARDS ARROW FROM BAR
 				return rune(0x21a4), true
-			case "LeftTeeVector": 
-				// LEFTWARDS HARPOON WITH BARB UP FROM BAR
+			case "LeftTeeVector":                   // LEFTWARDS HARPOON WITH BARB UP FROM BAR
 				return rune(0x295a), true
-			case "LeftTee": 
-				// LEFT TACK
-				return rune(0x22a3), true
-			case "LeftTriangleBar": 
-				// LEFT TRIANGLE BESIDE VERTICAL BAR
-				return rune(0x29cf), true
-			case "LeftTriangle": 
-				// NORMAL SUBGROUP OF
+			case "LeftTriangle":                    // NORMAL SUBGROUP OF
 				return rune(0x22b2), true
-			case "LeftTriangleEqual": 
-				// NORMAL SUBGROUP OF OR EQUAL TO
+			case "LeftTriangleBar":                 // LEFT TRIANGLE BESIDE VERTICAL BAR
+				return rune(0x29cf), true
+			case "LeftTriangleEqual":               // NORMAL SUBGROUP OF OR EQUAL TO
 				return rune(0x22b4), true
-			case "LeftUpDownVector": 
-				// UP BARB LEFT DOWN BARB LEFT HARPOON
+			case "LeftUpDownVector":                // UP BARB LEFT DOWN BARB LEFT HARPOON
 				return rune(0x2951), true
-			case "LeftUpTeeVector": 
-				// UPWARDS HARPOON WITH BARB LEFT FROM BAR
+			case "LeftUpTeeVector":                 // UPWARDS HARPOON WITH BARB LEFT FROM BAR
 				return rune(0x2960), true
-			case "LeftUpVector": 
-				// UPWARDS HARPOON WITH BARB LEFTWARDS
+			case "LeftUpVector":                    // UPWARDS HARPOON WITH BARB LEFTWARDS
 				return rune(0x21bf), true
-			case "LeftUpVectorBar": 
-				// UPWARDS HARPOON WITH BARB LEFT TO BAR
+			case "LeftUpVectorBar":                 // UPWARDS HARPOON WITH BARB LEFT TO BAR
 				return rune(0x2958), true
-			case "LeftVector": 
-				// LEFTWARDS HARPOON WITH BARB UPWARDS
+			case "LeftVector":                      // LEFTWARDS HARPOON WITH BARB UPWARDS
 				return rune(0x21bc), true
-			case "LeftVectorBar": 
-				// LEFTWARDS HARPOON WITH BARB UP TO BAR
+			case "LeftVectorBar":                   // LEFTWARDS HARPOON WITH BARB UP TO BAR
 				return rune(0x2952), true
-			case "Leftarrow": 
-				// LEFTWARDS DOUBLE ARROW
+			case "Leftarrow":                       // LEFTWARDS DOUBLE ARROW
 				return rune(0x21d0), true
-			case "Leftrightarrow": 
-				// LEFT RIGHT DOUBLE ARROW
+			case "Leftrightarrow":                  // LEFT RIGHT DOUBLE ARROW
 				return rune(0x21d4), true
-			case "LessEqualGreater": 
-				// LESS-THAN EQUAL TO OR GREATER-THAN
+			case "LessEqualGreater":                // LESS-THAN EQUAL TO OR GREATER-THAN
 				return rune(0x22da), true
-			case "LessFullEqual": 
-				// LESS-THAN OVER EQUAL TO
+			case "LessFullEqual":                   // LESS-THAN OVER EQUAL TO
 				return rune(0x2266), true
-			case "LessGreater": 
-				// LESS-THAN OR GREATER-THAN
+			case "LessGreater":                     // LESS-THAN OR GREATER-THAN
 				return rune(0x2276), true
-			case "LessLess": 
-				// DOUBLE NESTED LESS-THAN
+			case "LessLess":                        // DOUBLE NESTED LESS-THAN
 				return rune(0x2aa1), true
-			case "LessSlantEqual": 
-				// LESS-THAN OR SLANTED EQUAL TO
+			case "LessSlantEqual":                  // LESS-THAN OR SLANTED EQUAL TO
 				return rune(0x2a7d), true
-			case "LessTilde": 
-				// LESS-THAN OR EQUIVALENT TO
+			case "LessTilde":                       // LESS-THAN OR EQUIVALENT TO
 				return rune(0x2272), true
-			case "Lfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL L
+			case "Lfr":                             // MATHEMATICAL FRAKTUR CAPITAL L
 				return rune(0x01d50f), true
-			case "Lgr": 
-				// GREEK CAPITAL LETTER LAMDA
+			case "Lgr":                             // GREEK CAPITAL LETTER LAMDA
 				return rune(0x039b), true
-			case "Lleftarrow": 
-				// LEFTWARDS TRIPLE ARROW
-				return rune(0x21da), true
-			case "Ll": 
-				// VERY MUCH LESS-THAN
+			case "Ll":                              // VERY MUCH LESS-THAN
 				return rune(0x22d8), true
-			case "Lmidot": 
-				// LATIN CAPITAL LETTER L WITH MIDDLE DOT
+			case "Lleftarrow":                      // LEFTWARDS TRIPLE ARROW
+				return rune(0x21da), true
+			case "Lmidot":                          // LATIN CAPITAL LETTER L WITH MIDDLE DOT
 				return rune(0x013f), true
-			case "LongLeftArrow": 
-				// LONG LEFTWARDS ARROW
+			case "LongLeftArrow":                   // LONG LEFTWARDS ARROW
 				return rune(0x27f5), true
-			case "LongLeftRightArrow": 
-				// LONG LEFT RIGHT ARROW
+			case "LongLeftRightArrow":              // LONG LEFT RIGHT ARROW
 				return rune(0x27f7), true
-			case "LongRightArrow": 
-				// LONG RIGHTWARDS ARROW
+			case "LongRightArrow":                  // LONG RIGHTWARDS ARROW
 				return rune(0x27f6), true
-			case "Longleftarrow": 
-				// LONG LEFTWARDS DOUBLE ARROW
+			case "Longleftarrow":                   // LONG LEFTWARDS DOUBLE ARROW
 				return rune(0x27f8), true
-			case "Longleftrightarrow": 
-				// LONG LEFT RIGHT DOUBLE ARROW
+			case "Longleftrightarrow":              // LONG LEFT RIGHT DOUBLE ARROW
 				return rune(0x27fa), true
-			case "Longrightarrow": 
-				// LONG RIGHTWARDS DOUBLE ARROW
+			case "Longrightarrow":                  // LONG RIGHTWARDS DOUBLE ARROW
 				return rune(0x27f9), true
-			case "Lopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+			case "Lopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL L
 				return rune(0x01d543), true
-			case "LowerLeftArrow": 
-				// SOUTH WEST ARROW
+			case "LowerLeftArrow":                  // SOUTH WEST ARROW
 				return rune(0x2199), true
-			case "LowerRightArrow": 
-				// SOUTH EAST ARROW
+			case "LowerRightArrow":                 // SOUTH EAST ARROW
 				return rune(0x2198), true
-			case "Lscr": 
-				// SCRIPT CAPITAL L
+			case "Lscr":                            // SCRIPT CAPITAL L
 				return rune(0x2112), true
-			case "Lsh": 
-				// UPWARDS ARROW WITH TIP LEFTWARDS
+			case "Lsh":                             // UPWARDS ARROW WITH TIP LEFTWARDS
 				return rune(0x21b0), true
-			case "Lstrok": 
-				// LATIN CAPITAL LETTER L WITH STROKE
+			case "Lstrok":                          // LATIN CAPITAL LETTER L WITH STROKE
 				return rune(0x0141), true
-			case "Ltbar": 
-				// DOUBLE NESTED LESS-THAN WITH UNDERBAR
-				return rune(0x2aa3), true
-			case "Lt": 
-				// MUCH LESS-THAN
+			case "Lt":                              // MUCH LESS-THAN
 				return rune(0x226a), true
+			case "Ltbar":                           // DOUBLE NESTED LESS-THAN WITH UNDERBAR
+				return rune(0x2aa3), true
 		}
 
 	case 'M':
 		switch name {
-			case "Mapfrom": 
-				// LEFTWARDS DOUBLE ARROW FROM BAR
+			case "Map":                             // RIGHTWARDS TWO-HEADED ARROW FROM BAR
+				return rune(0x2905), true
+			case "Mapfrom":                         // LEFTWARDS DOUBLE ARROW FROM BAR
 				return rune(0x2906), true
-			case "Mapto": 
-				// RIGHTWARDS DOUBLE ARROW FROM BAR
+			case "Mapto":                           // RIGHTWARDS DOUBLE ARROW FROM BAR
 				return rune(0x2907), true
-			case "Map": 
-				// RIGHTWARDS TWO-HEADED ARROW FROM BAR
-				return rune(0x2905), true
-			case "Mcy": 
-				// CYRILLIC CAPITAL LETTER EM
+			case "Mcy":                             // CYRILLIC CAPITAL LETTER EM
 				return rune(0x041c), true
-			case "MediumSpace": 
-				// MEDIUM MATHEMATICAL SPACE
+			case "MediumSpace":                     // MEDIUM MATHEMATICAL SPACE
 				return rune(0x205f), true
-			case "Mellintrf": 
-				// SCRIPT CAPITAL M
+			case "Mellintrf":                       // SCRIPT CAPITAL M
 				return rune(0x2133), true
-			case "Mfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL M
+			case "Mfr":                             // MATHEMATICAL FRAKTUR CAPITAL M
 				return rune(0x01d510), true
-			case "Mgr": 
-				// GREEK CAPITAL LETTER MU
+			case "Mgr":                             // GREEK CAPITAL LETTER MU
 				return rune(0x039c), true
-			case "MinusPlus": 
-				// MINUS-OR-PLUS SIGN
+			case "MinusPlus":                       // MINUS-OR-PLUS SIGN
 				return rune(0x2213), true
-			case "Mopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+			case "Mopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL M
 				return rune(0x01d544), true
-			case "Mscr": 
-				// SCRIPT CAPITAL M
+			case "Mscr":                            // SCRIPT CAPITAL M
 				return rune(0x2133), true
-			case "Mu": 
-				// GREEK CAPITAL LETTER MU
+			case "Mu":                              // GREEK CAPITAL LETTER MU
 				return rune(0x039c), true
 		}
 
 	case 'N':
 		switch name {
-			case "NJcy": 
-				// CYRILLIC CAPITAL LETTER NJE
+			case "NJcy":                            // CYRILLIC CAPITAL LETTER NJE
 				return rune(0x040a), true
-			case "Nacute": 
-				// LATIN CAPITAL LETTER N WITH ACUTE
+			case "Nacute":                          // LATIN CAPITAL LETTER N WITH ACUTE
 				return rune(0x0143), true
-			case "Ncaron": 
-				// LATIN CAPITAL LETTER N WITH CARON
+			case "Ncaron":                          // LATIN CAPITAL LETTER N WITH CARON
 				return rune(0x0147), true
-			case "Ncedil": 
-				// LATIN CAPITAL LETTER N WITH CEDILLA
+			case "Ncedil":                          // LATIN CAPITAL LETTER N WITH CEDILLA
 				return rune(0x0145), true
-			case "Ncy": 
-				// CYRILLIC CAPITAL LETTER EN
+			case "Ncy":                             // CYRILLIC CAPITAL LETTER EN
 				return rune(0x041d), true
-			case "NegativeMediumSpace": 
-				// ZERO WIDTH SPACE
+			case "NegativeMediumSpace":             // ZERO WIDTH SPACE
 				return rune(0x200b), true
-			case "NegativeThickSpace": 
-				// ZERO WIDTH SPACE
+			case "NegativeThickSpace":              // ZERO WIDTH SPACE
 				return rune(0x200b), true
-			case "NegativeThinSpace": 
-				// ZERO WIDTH SPACE
+			case "NegativeThinSpace":               // ZERO WIDTH SPACE
 				return rune(0x200b), true
-			case "NegativeVeryThinSpace": 
-				// ZERO WIDTH SPACE
+			case "NegativeVeryThinSpace":           // ZERO WIDTH SPACE
 				return rune(0x200b), true
-			case "NestedGreaterGreater": 
-				// MUCH GREATER-THAN
+			case "NestedGreaterGreater":            // MUCH GREATER-THAN
 				return rune(0x226b), true
-			case "NestedLessLess": 
-				// MUCH LESS-THAN
+			case "NestedLessLess":                  // MUCH LESS-THAN
 				return rune(0x226a), true
-			case "NewLine": 
-				// LINE FEED (LF)
+			case "NewLine":                         // LINE FEED (LF)
 				return rune(0x0a), true
-			case "Nfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL N
+			case "Nfr":                             // MATHEMATICAL FRAKTUR CAPITAL N
 				return rune(0x01d511), true
-			case "Ngr": 
-				// GREEK CAPITAL LETTER NU
+			case "Ngr":                             // GREEK CAPITAL LETTER NU
 				return rune(0x039d), true
-			case "NoBreak": 
-				// WORD JOINER
+			case "NoBreak":                         // WORD JOINER
 				return rune(0x2060), true
-			case "NonBreakingSpace": 
-				// NO-BREAK SPACE
+			case "NonBreakingSpace":                // NO-BREAK SPACE
 				return rune(0xa0), true
-			case "Nopf": 
-				// DOUBLE-STRUCK CAPITAL N
+			case "Nopf":                            // DOUBLE-STRUCK CAPITAL N
 				return rune(0x2115), true
-			case "NotDoubleVerticalBar": 
-				// NOT PARALLEL TO
+			case "Not":                             // DOUBLE STROKE NOT SIGN
+				return rune(0x2aec), true
+			case "NotCongruent":                    // NOT IDENTICAL TO
+				return rune(0x2262), true
+			case "NotCupCap":                       // NOT EQUIVALENT TO
+				return rune(0x226d), true
+			case "NotDoubleVerticalBar":            // NOT PARALLEL TO
 				return rune(0x2226), true
-			case "NotElement": 
-				// NOT AN ELEMENT OF
+			case "NotElement":                      // NOT AN ELEMENT OF
 				return rune(0x2209), true
-			case "NotEqualTilde": 
-				// MINUS TILDE with slash
-				return rune(0x2242), true
-			case "NotEqual": 
-				// NOT EQUAL TO
+			case "NotEqual":                        // NOT EQUAL TO
 				return rune(0x2260), true
-			case "NotExists": 
-				// THERE DOES NOT EXIST
+			case "NotEqualTilde":                   // MINUS TILDE with slash
+				return rune(0x2242), true
+			case "NotExists":                       // THERE DOES NOT EXIST
 				return rune(0x2204), true
-			case "NotHumpDownHump": 
-				// GEOMETRICALLY EQUIVALENT TO with slash
-				return rune(0x224e), true
-			case "NotHumpEqual": 
-				// DIFFERENCE BETWEEN with slash
-				return rune(0x224f), true
-			case "NotLessGreater": 
-				// NEITHER LESS-THAN NOR GREATER-THAN
-				return rune(0x2278), true
-			case "NotReverseElement": 
-				// DOES NOT CONTAIN AS MEMBER
-				return rune(0x220c), true
-			case "NotTilde": 
-				// NOT TILDE
-				return rune(0x2241), true
-			case "NotTildeEqual": 
-				// NOT ASYMPTOTICALLY EQUAL TO
-				return rune(0x2244), true
-			case "NotTildeFullEqual": 
-				// NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-				return rune(0x2247), true
-			case "NotTildeTilde": 
-				// NOT ALMOST EQUAL TO
-				return rune(0x2249), true
-			case "NotVerticalBar": 
-				// DOES NOT DIVIDE
-				return rune(0x2224), true
-			case "Not": 
-				// DOUBLE STROKE NOT SIGN
-				return rune(0x2aec), true
-			case "NotCongruent": 
-				// NOT IDENTICAL TO
-				return rune(0x2262), true
-			case "NotCupCap": 
-				// NOT EQUIVALENT TO
-				return rune(0x226d), true
-			case "NotGreaterFullEqual": 
-				// GREATER-THAN OVER EQUAL TO with slash
-				return rune(0x2267), true
-			case "NotGreaterGreater": 
-				// MUCH GREATER THAN with slash
-				return rune(0x226b), true
-			case "NotGreaterSlantEqual": 
-				// GREATER-THAN OR SLANTED EQUAL TO with slash
-				return rune(0x2a7e), true
-			case "NotGreater": 
-				// NOT GREATER-THAN
+			case "NotGreater":                      // NOT GREATER-THAN
 				return rune(0x226f), true
-			case "NotGreaterEqual": 
-				// NEITHER GREATER-THAN NOR EQUAL TO
+			case "NotGreaterEqual":                 // NEITHER GREATER-THAN NOR EQUAL TO
 				return rune(0x2271), true
-			case "NotGreaterLess": 
-				// NEITHER GREATER-THAN NOR LESS-THAN
+			case "NotGreaterFullEqual":             // GREATER-THAN OVER EQUAL TO with slash
+				return rune(0x2267), true
+			case "NotGreaterGreater":               // MUCH GREATER THAN with slash
+				return rune(0x226b), true
+			case "NotGreaterLess":                  // NEITHER GREATER-THAN NOR LESS-THAN
 				return rune(0x2279), true
-			case "NotGreaterTilde": 
-				// NEITHER GREATER-THAN NOR EQUIVALENT TO
+			case "NotGreaterSlantEqual":            // GREATER-THAN OR SLANTED EQUAL TO with slash
+				return rune(0x2a7e), true
+			case "NotGreaterTilde":                 // NEITHER GREATER-THAN NOR EQUIVALENT TO
 				return rune(0x2275), true
-			case "NotLeftTriangleBar": 
-				// LEFT TRIANGLE BESIDE VERTICAL BAR with slash
-				return rune(0x29cf), true
-			case "NotLeftTriangle": 
-				// NOT NORMAL SUBGROUP OF
+			case "NotHumpDownHump":                 // GEOMETRICALLY EQUIVALENT TO with slash
+				return rune(0x224e), true
+			case "NotHumpEqual":                    // DIFFERENCE BETWEEN with slash
+				return rune(0x224f), true
+			case "NotLeftTriangle":                 // NOT NORMAL SUBGROUP OF
 				return rune(0x22ea), true
-			case "NotLeftTriangleEqual": 
-				// NOT NORMAL SUBGROUP OF OR EQUAL TO
+			case "NotLeftTriangleBar":              // LEFT TRIANGLE BESIDE VERTICAL BAR with slash
+				return rune(0x29cf), true
+			case "NotLeftTriangleEqual":            // NOT NORMAL SUBGROUP OF OR EQUAL TO
 				return rune(0x22ec), true
-			case "NotLessLess": 
-				// MUCH LESS THAN with slash
-				return rune(0x226a), true
-			case "NotLessSlantEqual": 
-				// LESS-THAN OR SLANTED EQUAL TO with slash
-				return rune(0x2a7d), true
-			case "NotLess": 
-				// NOT LESS-THAN
+			case "NotLess":                         // NOT LESS-THAN
 				return rune(0x226e), true
-			case "NotLessEqual": 
-				// NEITHER LESS-THAN NOR EQUAL TO
+			case "NotLessEqual":                    // NEITHER LESS-THAN NOR EQUAL TO
 				return rune(0x2270), true
-			case "NotLessTilde": 
-				// NEITHER LESS-THAN NOR EQUIVALENT TO
+			case "NotLessGreater":                  // NEITHER LESS-THAN NOR GREATER-THAN
+				return rune(0x2278), true
+			case "NotLessLess":                     // MUCH LESS THAN with slash
+				return rune(0x226a), true
+			case "NotLessSlantEqual":               // LESS-THAN OR SLANTED EQUAL TO with slash
+				return rune(0x2a7d), true
+			case "NotLessTilde":                    // NEITHER LESS-THAN NOR EQUIVALENT TO
 				return rune(0x2274), true
-			case "NotNestedGreaterGreater": 
-				// DOUBLE NESTED GREATER-THAN with slash
+			case "NotNestedGreaterGreater":         // DOUBLE NESTED GREATER-THAN with slash
 				return rune(0x2aa2), true
-			case "NotNestedLessLess": 
-				// DOUBLE NESTED LESS-THAN with slash
+			case "NotNestedLessLess":               // DOUBLE NESTED LESS-THAN with slash
 				return rune(0x2aa1), true
-			case "NotPrecedesEqual": 
-				// PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash
-				return rune(0x2aaf), true
-			case "NotPrecedes": 
-				// DOES NOT PRECEDE
+			case "NotPrecedes":                     // DOES NOT PRECEDE
 				return rune(0x2280), true
-			case "NotPrecedesSlantEqual": 
-				// DOES NOT PRECEDE OR EQUAL
+			case "NotPrecedesEqual":                // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash
+				return rune(0x2aaf), true
+			case "NotPrecedesSlantEqual":           // DOES NOT PRECEDE OR EQUAL
 				return rune(0x22e0), true
-			case "NotRightTriangleBar": 
-				// VERTICAL BAR BESIDE RIGHT TRIANGLE with slash
-				return rune(0x29d0), true
-			case "NotRightTriangle": 
-				// DOES NOT CONTAIN AS NORMAL SUBGROUP
+			case "NotReverseElement":               // DOES NOT CONTAIN AS MEMBER
+				return rune(0x220c), true
+			case "NotRightTriangle":                // DOES NOT CONTAIN AS NORMAL SUBGROUP
 				return rune(0x22eb), true
-			case "NotRightTriangleEqual": 
-				// DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+			case "NotRightTriangleBar":             // VERTICAL BAR BESIDE RIGHT TRIANGLE with slash
+				return rune(0x29d0), true
+			case "NotRightTriangleEqual":           // DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
 				return rune(0x22ed), true
-			case "NotSquareSubset": 
-				// SQUARE IMAGE OF with slash
+			case "NotSquareSubset":                 // SQUARE IMAGE OF with slash
 				return rune(0x228f), true
-			case "NotSquareSubsetEqual": 
-				// NOT SQUARE IMAGE OF OR EQUAL TO
+			case "NotSquareSubsetEqual":            // NOT SQUARE IMAGE OF OR EQUAL TO
 				return rune(0x22e2), true
-			case "NotSquareSuperset": 
-				// SQUARE ORIGINAL OF with slash
+			case "NotSquareSuperset":               // SQUARE ORIGINAL OF with slash
 				return rune(0x2290), true
-			case "NotSquareSupersetEqual": 
-				// NOT SQUARE ORIGINAL OF OR EQUAL TO
+			case "NotSquareSupersetEqual":          // NOT SQUARE ORIGINAL OF OR EQUAL TO
 				return rune(0x22e3), true
-			case "NotSubset": 
-				// SUBSET OF with vertical line
+			case "NotSubset":                       // SUBSET OF with vertical line
 				return rune(0x2282), true
-			case "NotSubsetEqual": 
-				// NEITHER A SUBSET OF NOR EQUAL TO
+			case "NotSubsetEqual":                  // NEITHER A SUBSET OF NOR EQUAL TO
 				return rune(0x2288), true
-			case "NotSucceedsEqual": 
-				// SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash
-				return rune(0x2ab0), true
-			case "NotSucceedsTilde": 
-				// SUCCEEDS OR EQUIVALENT TO with slash
-				return rune(0x227f), true
-			case "NotSucceeds": 
-				// DOES NOT SUCCEED
+			case "NotSucceeds":                     // DOES NOT SUCCEED
 				return rune(0x2281), true
-			case "NotSucceedsSlantEqual": 
-				// DOES NOT SUCCEED OR EQUAL
+			case "NotSucceedsEqual":                // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash
+				return rune(0x2ab0), true
+			case "NotSucceedsSlantEqual":           // DOES NOT SUCCEED OR EQUAL
 				return rune(0x22e1), true
-			case "NotSuperset": 
-				// SUPERSET OF with vertical line
+			case "NotSucceedsTilde":                // SUCCEEDS OR EQUIVALENT TO with slash
+				return rune(0x227f), true
+			case "NotSuperset":                     // SUPERSET OF with vertical line
 				return rune(0x2283), true
-			case "NotSupersetEqual": 
-				// NEITHER A SUPERSET OF NOR EQUAL TO
+			case "NotSupersetEqual":                // NEITHER A SUPERSET OF NOR EQUAL TO
 				return rune(0x2289), true
-			case "Nscr": 
-				// MATHEMATICAL SCRIPT CAPITAL N
+			case "NotTilde":                        // NOT TILDE
+				return rune(0x2241), true
+			case "NotTildeEqual":                   // NOT ASYMPTOTICALLY EQUAL TO
+				return rune(0x2244), true
+			case "NotTildeFullEqual":               // NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+				return rune(0x2247), true
+			case "NotTildeTilde":                   // NOT ALMOST EQUAL TO
+				return rune(0x2249), true
+			case "NotVerticalBar":                  // DOES NOT DIVIDE
+				return rune(0x2224), true
+			case "Nscr":                            // MATHEMATICAL SCRIPT CAPITAL N
 				return rune(0x01d4a9), true
-			case "Ntilde": 
-				// LATIN CAPITAL LETTER N WITH TILDE
+			case "Ntilde":                          // LATIN CAPITAL LETTER N WITH TILDE
 				return rune(0xd1), true
-			case "Nu": 
-				// GREEK CAPITAL LETTER NU
+			case "Nu":                              // GREEK CAPITAL LETTER NU
 				return rune(0x039d), true
 		}
 
 	case 'O':
 		switch name {
-			case "OElig": 
-				// LATIN CAPITAL LIGATURE OE
+			case "OElig":                           // LATIN CAPITAL LIGATURE OE
 				return rune(0x0152), true
-			case "OHacgr": 
-				// GREEK CAPITAL LETTER OMEGA WITH TONOS
+			case "OHacgr":                          // GREEK CAPITAL LETTER OMEGA WITH TONOS
 				return rune(0x038f), true
-			case "OHgr": 
-				// GREEK CAPITAL LETTER OMEGA
+			case "OHgr":                            // GREEK CAPITAL LETTER OMEGA
 				return rune(0x03a9), true
-			case "Oacgr": 
-				// GREEK CAPITAL LETTER OMICRON WITH TONOS
+			case "Oacgr":                           // GREEK CAPITAL LETTER OMICRON WITH TONOS
 				return rune(0x038c), true
-			case "Oacute": 
-				// LATIN CAPITAL LETTER O WITH ACUTE
+			case "Oacute":                          // LATIN CAPITAL LETTER O WITH ACUTE
 				return rune(0xd3), true
-			case "Ocirc": 
-				// LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+			case "Ocirc":                           // LATIN CAPITAL LETTER O WITH CIRCUMFLEX
 				return rune(0xd4), true
-			case "Ocy": 
-				// CYRILLIC CAPITAL LETTER O
+			case "Ocy":                             // CYRILLIC CAPITAL LETTER O
 				return rune(0x041e), true
-			case "Odblac": 
-				// LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+			case "Odblac":                          // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
 				return rune(0x0150), true
-			case "Ofr": 
-				// MATHEMATICAL FRAKTUR CAPITAL O
+			case "Ofr":                             // MATHEMATICAL FRAKTUR CAPITAL O
 				return rune(0x01d512), true
-			case "Ograve": 
-				// LATIN CAPITAL LETTER O WITH GRAVE
-				return rune(0xd2), true
-			case "Ogr": 
-				// GREEK CAPITAL LETTER OMICRON
+			case "Ogr":                             // GREEK CAPITAL LETTER OMICRON
 				return rune(0x039f), true
-			case "Omacr": 
-				// LATIN CAPITAL LETTER O WITH MACRON
+			case "Ograve":                          // LATIN CAPITAL LETTER O WITH GRAVE
+				return rune(0xd2), true
+			case "Omacr":                           // LATIN CAPITAL LETTER O WITH MACRON
 				return rune(0x014c), true
-			case "Omega": 
-				// GREEK CAPITAL LETTER OMEGA
+			case "Omega":                           // GREEK CAPITAL LETTER OMEGA
 				return rune(0x03a9), true
-			case "Omicron": 
-				// GREEK CAPITAL LETTER OMICRON
+			case "Omicron":                         // GREEK CAPITAL LETTER OMICRON
 				return rune(0x039f), true
-			case "Oopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+			case "Oopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL O
 				return rune(0x01d546), true
-			case "OpenCurlyDoubleQuote": 
-				// LEFT DOUBLE QUOTATION MARK
+			case "OpenCurlyDoubleQuote":            // LEFT DOUBLE QUOTATION MARK
 				return rune(0x201c), true
-			case "OpenCurlyQuote": 
-				// LEFT SINGLE QUOTATION MARK
+			case "OpenCurlyQuote":                  // LEFT SINGLE QUOTATION MARK
 				return rune(0x2018), true
-			case "Or": 
-				// DOUBLE LOGICAL OR
+			case "Or":                              // DOUBLE LOGICAL OR
 				return rune(0x2a54), true
-			case "Oscr": 
-				// MATHEMATICAL SCRIPT CAPITAL O
+			case "Oscr":                            // MATHEMATICAL SCRIPT CAPITAL O
 				return rune(0x01d4aa), true
-			case "Oslash": 
-				// LATIN CAPITAL LETTER O WITH STROKE
+			case "Oslash":                          // LATIN CAPITAL LETTER O WITH STROKE
 				return rune(0xd8), true
-			case "Otilde": 
-				// LATIN CAPITAL LETTER O WITH TILDE
+			case "Otilde":                          // LATIN CAPITAL LETTER O WITH TILDE
 				return rune(0xd5), true
-			case "Otimes": 
-				// MULTIPLICATION SIGN IN DOUBLE CIRCLE
+			case "Otimes":                          // MULTIPLICATION SIGN IN DOUBLE CIRCLE
 				return rune(0x2a37), true
-			case "Ouml": 
-				// LATIN CAPITAL LETTER O WITH DIAERESIS
+			case "Ouml":                            // LATIN CAPITAL LETTER O WITH DIAERESIS
 				return rune(0xd6), true
-			case "OverBar": 
-				// OVERLINE
+			case "OverBar":                         // OVERLINE
 				return rune(0x203e), true
-			case "OverBrace": 
-				// TOP CURLY BRACKET
+			case "OverBrace":                       // TOP CURLY BRACKET
 				return rune(0x23de), true
-			case "OverBracket": 
-				// TOP SQUARE BRACKET
+			case "OverBracket":                     // TOP SQUARE BRACKET
 				return rune(0x23b4), true
-			case "OverParenthesis": 
-				// TOP PARENTHESIS
+			case "OverParenthesis":                 // TOP PARENTHESIS
 				return rune(0x23dc), true
 		}
 
 	case 'P':
 		switch name {
-			case "PHgr": 
-				// GREEK CAPITAL LETTER PHI
+			case "PHgr":                            // GREEK CAPITAL LETTER PHI
 				return rune(0x03a6), true
-			case "PSgr": 
-				// GREEK CAPITAL LETTER PSI
+			case "PSgr":                            // GREEK CAPITAL LETTER PSI
 				return rune(0x03a8), true
-			case "PartialD": 
-				// PARTIAL DIFFERENTIAL
+			case "PartialD":                        // PARTIAL DIFFERENTIAL
 				return rune(0x2202), true
-			case "Pcy": 
-				// CYRILLIC CAPITAL LETTER PE
+			case "Pcy":                             // CYRILLIC CAPITAL LETTER PE
 				return rune(0x041f), true
-			case "Pfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL P
+			case "Pfr":                             // MATHEMATICAL FRAKTUR CAPITAL P
 				return rune(0x01d513), true
-			case "Pgr": 
-				// GREEK CAPITAL LETTER PI
+			case "Pgr":                             // GREEK CAPITAL LETTER PI
 				return rune(0x03a0), true
-			case "Phi": 
-				// GREEK CAPITAL LETTER PHI
+			case "Phi":                             // GREEK CAPITAL LETTER PHI
 				return rune(0x03a6), true
-			case "Pi": 
-				// GREEK CAPITAL LETTER PI
+			case "Pi":                              // GREEK CAPITAL LETTER PI
 				return rune(0x03a0), true
-			case "PlusMinus": 
-				// PLUS-MINUS SIGN
+			case "PlusMinus":                       // PLUS-MINUS SIGN
 				return rune(0xb1), true
-			case "Poincareplane": 
-				// BLACK-LETTER CAPITAL H
+			case "Poincareplane":                   // BLACK-LETTER CAPITAL H
 				return rune(0x210c), true
-			case "Popf": 
-				// DOUBLE-STRUCK CAPITAL P
+			case "Popf":                            // DOUBLE-STRUCK CAPITAL P
 				return rune(0x2119), true
-			case "Product": 
-				// N-ARY PRODUCT
-				return rune(0x220f), true
-			case "Proportional": 
-				// PROPORTIONAL TO
-				return rune(0x221d), true
-			case "Proportion": 
-				// PROPORTION
-				return rune(0x2237), true
-			case "Pr": 
-				// DOUBLE PRECEDES
+			case "Pr":                              // DOUBLE PRECEDES
 				return rune(0x2abb), true
-			case "PrecedesEqual": 
-				// PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
-				return rune(0x2aaf), true
-			case "Precedes": 
-				// PRECEDES
+			case "Precedes":                        // PRECEDES
 				return rune(0x227a), true
-			case "PrecedesSlantEqual": 
-				// PRECEDES OR EQUAL TO
+			case "PrecedesEqual":                   // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
+				return rune(0x2aaf), true
+			case "PrecedesSlantEqual":              // PRECEDES OR EQUAL TO
 				return rune(0x227c), true
-			case "PrecedesTilde": 
-				// PRECEDES OR EQUIVALENT TO
+			case "PrecedesTilde":                   // PRECEDES OR EQUIVALENT TO
 				return rune(0x227e), true
-			case "Prime": 
-				// DOUBLE PRIME
+			case "Prime":                           // DOUBLE PRIME
 				return rune(0x2033), true
-			case "Pscr": 
-				// MATHEMATICAL SCRIPT CAPITAL P
+			case "Product":                         // N-ARY PRODUCT
+				return rune(0x220f), true
+			case "Proportion":                      // PROPORTION
+				return rune(0x2237), true
+			case "Proportional":                    // PROPORTIONAL TO
+				return rune(0x221d), true
+			case "Pscr":                            // MATHEMATICAL SCRIPT CAPITAL P
 				return rune(0x01d4ab), true
-			case "Psi": 
-				// GREEK CAPITAL LETTER PSI
+			case "Psi":                             // GREEK CAPITAL LETTER PSI
 				return rune(0x03a8), true
 		}
 
 	case 'Q':
 		switch name {
-			case "QUOT": 
-				// QUOTATION MARK
+			case "QUOT":                            // QUOTATION MARK
 				return rune(0x22), true
-			case "Qfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL Q
+			case "Qfr":                             // MATHEMATICAL FRAKTUR CAPITAL Q
 				return rune(0x01d514), true
-			case "Qopf": 
-				// DOUBLE-STRUCK CAPITAL Q
+			case "Qopf":                            // DOUBLE-STRUCK CAPITAL Q
 				return rune(0x211a), true
-			case "Qscr": 
-				// MATHEMATICAL SCRIPT CAPITAL Q
+			case "Qscr":                            // MATHEMATICAL SCRIPT CAPITAL Q
 				return rune(0x01d4ac), true
 		}
 
 	case 'R':
 		switch name {
-			case "RBarr": 
-				// RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
+			case "RBarr":                           // RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
 				return rune(0x2910), true
-			case "REG": 
-				// REGISTERED SIGN
+			case "REG":                             // REGISTERED SIGN
 				return rune(0xae), true
-			case "Racute": 
-				// LATIN CAPITAL LETTER R WITH ACUTE
+			case "Racute":                          // LATIN CAPITAL LETTER R WITH ACUTE
 				return rune(0x0154), true
-			case "Rang": 
-				// MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+			case "Rang":                            // MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
 				return rune(0x27eb), true
-			case "Rarr": 
-				// RIGHTWARDS TWO HEADED ARROW
+			case "Rarr":                            // RIGHTWARDS TWO HEADED ARROW
 				return rune(0x21a0), true
-			case "Rarrtl": 
-				// RIGHTWARDS TWO-HEADED ARROW WITH TAIL
+			case "Rarrtl":                          // RIGHTWARDS TWO-HEADED ARROW WITH TAIL
 				return rune(0x2916), true
-			case "Rcaron": 
-				// LATIN CAPITAL LETTER R WITH CARON
+			case "Rcaron":                          // LATIN CAPITAL LETTER R WITH CARON
 				return rune(0x0158), true
-			case "Rcedil": 
-				// LATIN CAPITAL LETTER R WITH CEDILLA
+			case "Rcedil":                          // LATIN CAPITAL LETTER R WITH CEDILLA
 				return rune(0x0156), true
-			case "Rcy": 
-				// CYRILLIC CAPITAL LETTER ER
+			case "Rcy":                             // CYRILLIC CAPITAL LETTER ER
 				return rune(0x0420), true
-			case "ReverseElement": 
-				// CONTAINS AS MEMBER
+			case "Re":                              // BLACK-LETTER CAPITAL R
+				return rune(0x211c), true
+			case "ReverseElement":                  // CONTAINS AS MEMBER
 				return rune(0x220b), true
-			case "ReverseEquilibrium": 
-				// LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+			case "ReverseEquilibrium":              // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
 				return rune(0x21cb), true
-			case "Re": 
-				// BLACK-LETTER CAPITAL R
-				return rune(0x211c), true
-			case "ReverseUpEquilibrium": 
-				// DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+			case "ReverseUpEquilibrium":            // DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
 				return rune(0x296f), true
-			case "Rfr": 
-				// BLACK-LETTER CAPITAL R
+			case "Rfr":                             // BLACK-LETTER CAPITAL R
 				return rune(0x211c), true
-			case "Rgr": 
-				// GREEK CAPITAL LETTER RHO
+			case "Rgr":                             // GREEK CAPITAL LETTER RHO
 				return rune(0x03a1), true
-			case "Rho": 
-				// GREEK CAPITAL LETTER RHO
+			case "Rho":                             // GREEK CAPITAL LETTER RHO
 				return rune(0x03a1), true
-			case "RightAngleBracket": 
-				// MATHEMATICAL RIGHT ANGLE BRACKET
+			case "RightAngleBracket":               // MATHEMATICAL RIGHT ANGLE BRACKET
 				return rune(0x27e9), true
-			case "RightArrowBar": 
-				// RIGHTWARDS ARROW TO BAR
-				return rune(0x21e5), true
-			case "RightArrow": 
-				// RIGHTWARDS ARROW
+			case "RightArrow":                      // RIGHTWARDS ARROW
 				return rune(0x2192), true
-			case "RightArrowLeftArrow": 
-				// RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+			case "RightArrowBar":                   // RIGHTWARDS ARROW TO BAR
+				return rune(0x21e5), true
+			case "RightArrowLeftArrow":             // RIGHTWARDS ARROW OVER LEFTWARDS ARROW
 				return rune(0x21c4), true
-			case "RightCeiling": 
-				// RIGHT CEILING
+			case "RightCeiling":                    // RIGHT CEILING
 				return rune(0x2309), true
-			case "RightDoubleBracket": 
-				// MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+			case "RightDoubleBracket":              // MATHEMATICAL RIGHT WHITE SQUARE BRACKET
 				return rune(0x27e7), true
-			case "RightDownTeeVector": 
-				// DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
+			case "RightDownTeeVector":              // DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
 				return rune(0x295d), true
-			case "RightDownVector": 
-				// DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+			case "RightDownVector":                 // DOWNWARDS HARPOON WITH BARB RIGHTWARDS
 				return rune(0x21c2), true
-			case "RightDownVectorBar": 
-				// DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
+			case "RightDownVectorBar":              // DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
 				return rune(0x2955), true
-			case "RightFloor": 
-				// RIGHT FLOOR
+			case "RightFloor":                      // RIGHT FLOOR
 				return rune(0x230b), true
-			case "RightTeeArrow": 
-				// RIGHTWARDS ARROW FROM BAR
+			case "RightTee":                        // RIGHT TACK
+				return rune(0x22a2), true
+			case "RightTeeArrow":                   // RIGHTWARDS ARROW FROM BAR
 				return rune(0x21a6), true
-			case "RightTeeVector": 
-				// RIGHTWARDS HARPOON WITH BARB UP FROM BAR
+			case "RightTeeVector":                  // RIGHTWARDS HARPOON WITH BARB UP FROM BAR
 				return rune(0x295b), true
-			case "RightTee": 
-				// RIGHT TACK
-				return rune(0x22a2), true
-			case "RightTriangleBar": 
-				// VERTICAL BAR BESIDE RIGHT TRIANGLE
-				return rune(0x29d0), true
-			case "RightTriangle": 
-				// CONTAINS AS NORMAL SUBGROUP
+			case "RightTriangle":                   // CONTAINS AS NORMAL SUBGROUP
 				return rune(0x22b3), true
-			case "RightTriangleEqual": 
-				// CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+			case "RightTriangleBar":                // VERTICAL BAR BESIDE RIGHT TRIANGLE
+				return rune(0x29d0), true
+			case "RightTriangleEqual":              // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
 				return rune(0x22b5), true
-			case "RightUpDownVector": 
-				// UP BARB RIGHT DOWN BARB RIGHT HARPOON
+			case "RightUpDownVector":               // UP BARB RIGHT DOWN BARB RIGHT HARPOON
 				return rune(0x294f), true
-			case "RightUpTeeVector": 
-				// UPWARDS HARPOON WITH BARB RIGHT FROM BAR
+			case "RightUpTeeVector":                // UPWARDS HARPOON WITH BARB RIGHT FROM BAR
 				return rune(0x295c), true
-			case "RightUpVector": 
-				// UPWARDS HARPOON WITH BARB RIGHTWARDS
+			case "RightUpVector":                   // UPWARDS HARPOON WITH BARB RIGHTWARDS
 				return rune(0x21be), true
-			case "RightUpVectorBar": 
-				// UPWARDS HARPOON WITH BARB RIGHT TO BAR
+			case "RightUpVectorBar":                // UPWARDS HARPOON WITH BARB RIGHT TO BAR
 				return rune(0x2954), true
-			case "RightVector": 
-				// RIGHTWARDS HARPOON WITH BARB UPWARDS
+			case "RightVector":                     // RIGHTWARDS HARPOON WITH BARB UPWARDS
 				return rune(0x21c0), true
-			case "RightVectorBar": 
-				// RIGHTWARDS HARPOON WITH BARB UP TO BAR
+			case "RightVectorBar":                  // RIGHTWARDS HARPOON WITH BARB UP TO BAR
 				return rune(0x2953), true
-			case "Rightarrow": 
-				// RIGHTWARDS DOUBLE ARROW
+			case "Rightarrow":                      // RIGHTWARDS DOUBLE ARROW
 				return rune(0x21d2), true
-			case "Ropf": 
-				// DOUBLE-STRUCK CAPITAL R
+			case "Ropf":                            // DOUBLE-STRUCK CAPITAL R
 				return rune(0x211d), true
-			case "RoundImplies": 
-				// RIGHT DOUBLE ARROW WITH ROUNDED HEAD
+			case "RoundImplies":                    // RIGHT DOUBLE ARROW WITH ROUNDED HEAD
 				return rune(0x2970), true
-			case "Rrightarrow": 
-				// RIGHTWARDS TRIPLE ARROW
+			case "Rrightarrow":                     // RIGHTWARDS TRIPLE ARROW
 				return rune(0x21db), true
-			case "Rscr": 
-				// SCRIPT CAPITAL R
+			case "Rscr":                            // SCRIPT CAPITAL R
 				return rune(0x211b), true
-			case "Rsh": 
-				// UPWARDS ARROW WITH TIP RIGHTWARDS
+			case "Rsh":                             // UPWARDS ARROW WITH TIP RIGHTWARDS
 				return rune(0x21b1), true
-			case "RuleDelayed": 
-				// RULE-DELAYED
+			case "RuleDelayed":                     // RULE-DELAYED
 				return rune(0x29f4), true
 		}
 
 	case 'S':
 		switch name {
-			case "SHCHcy": 
-				// CYRILLIC CAPITAL LETTER SHCHA
+			case "SHCHcy":                          // CYRILLIC CAPITAL LETTER SHCHA
 				return rune(0x0429), true
-			case "SHcy": 
-				// CYRILLIC CAPITAL LETTER SHA
+			case "SHcy":                            // CYRILLIC CAPITAL LETTER SHA
 				return rune(0x0428), true
-			case "SOFTcy": 
-				// CYRILLIC CAPITAL LETTER SOFT SIGN
+			case "SOFTcy":                          // CYRILLIC CAPITAL LETTER SOFT SIGN
 				return rune(0x042c), true
-			case "Sacute": 
-				// LATIN CAPITAL LETTER S WITH ACUTE
+			case "Sacute":                          // LATIN CAPITAL LETTER S WITH ACUTE
 				return rune(0x015a), true
-			case "Sc": 
-				// DOUBLE SUCCEEDS
+			case "Sc":                              // DOUBLE SUCCEEDS
 				return rune(0x2abc), true
-			case "Scaron": 
-				// LATIN CAPITAL LETTER S WITH CARON
+			case "Scaron":                          // LATIN CAPITAL LETTER S WITH CARON
 				return rune(0x0160), true
-			case "Scedil": 
-				// LATIN CAPITAL LETTER S WITH CEDILLA
+			case "Scedil":                          // LATIN CAPITAL LETTER S WITH CEDILLA
 				return rune(0x015e), true
-			case "Scirc": 
-				// LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+			case "Scirc":                           // LATIN CAPITAL LETTER S WITH CIRCUMFLEX
 				return rune(0x015c), true
-			case "Scy": 
-				// CYRILLIC CAPITAL LETTER ES
+			case "Scy":                             // CYRILLIC CAPITAL LETTER ES
 				return rune(0x0421), true
-			case "Sfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL S
+			case "Sfr":                             // MATHEMATICAL FRAKTUR CAPITAL S
 				return rune(0x01d516), true
-			case "Sgr": 
-				// GREEK CAPITAL LETTER SIGMA
+			case "Sgr":                             // GREEK CAPITAL LETTER SIGMA
 				return rune(0x03a3), true
-			case "ShortDownArrow": 
-				// DOWNWARDS ARROW
+			case "ShortDownArrow":                  // DOWNWARDS ARROW
 				return rune(0x2193), true
-			case "ShortLeftArrow": 
-				// LEFTWARDS ARROW
+			case "ShortLeftArrow":                  // LEFTWARDS ARROW
 				return rune(0x2190), true
-			case "ShortRightArrow": 
-				// RIGHTWARDS ARROW
+			case "ShortRightArrow":                 // RIGHTWARDS ARROW
 				return rune(0x2192), true
-			case "ShortUpArrow": 
-				// UPWARDS ARROW
+			case "ShortUpArrow":                    // UPWARDS ARROW
 				return rune(0x2191), true
-			case "Sigma": 
-				// GREEK CAPITAL LETTER SIGMA
+			case "Sigma":                           // GREEK CAPITAL LETTER SIGMA
 				return rune(0x03a3), true
-			case "SmallCircle": 
-				// RING OPERATOR
+			case "SmallCircle":                     // RING OPERATOR
 				return rune(0x2218), true
-			case "Sopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+			case "Sopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL S
 				return rune(0x01d54a), true
-			case "Sqrt": 
-				// SQUARE ROOT
+			case "Sqrt":                            // SQUARE ROOT
 				return rune(0x221a), true
-			case "SquareIntersection": 
-				// SQUARE CAP
+			case "Square":                          // WHITE SQUARE
+				return rune(0x25a1), true
+			case "SquareIntersection":              // SQUARE CAP
 				return rune(0x2293), true
-			case "SquareSubset": 
-				// SQUARE IMAGE OF
+			case "SquareSubset":                    // SQUARE IMAGE OF
 				return rune(0x228f), true
-			case "SquareSubsetEqual": 
-				// SQUARE IMAGE OF OR EQUAL TO
+			case "SquareSubsetEqual":               // SQUARE IMAGE OF OR EQUAL TO
 				return rune(0x2291), true
-			case "Square": 
-				// WHITE SQUARE
-				return rune(0x25a1), true
-			case "SquareSuperset": 
-				// SQUARE ORIGINAL OF
+			case "SquareSuperset":                  // SQUARE ORIGINAL OF
 				return rune(0x2290), true
-			case "SquareSupersetEqual": 
-				// SQUARE ORIGINAL OF OR EQUAL TO
+			case "SquareSupersetEqual":             // SQUARE ORIGINAL OF OR EQUAL TO
 				return rune(0x2292), true
-			case "SquareUnion": 
-				// SQUARE CUP
+			case "SquareUnion":                     // SQUARE CUP
 				return rune(0x2294), true
-			case "Sscr": 
-				// MATHEMATICAL SCRIPT CAPITAL S
+			case "Sscr":                            // MATHEMATICAL SCRIPT CAPITAL S
 				return rune(0x01d4ae), true
-			case "Star": 
-				// STAR OPERATOR
+			case "Star":                            // STAR OPERATOR
 				return rune(0x22c6), true
-			case "Sub": 
-				// DOUBLE SUBSET
+			case "Sub":                             // DOUBLE SUBSET
 				return rune(0x22d0), true
-			case "Subset": 
-				// DOUBLE SUBSET
+			case "Subset":                          // DOUBLE SUBSET
 				return rune(0x22d0), true
-			case "SubsetEqual": 
-				// SUBSET OF OR EQUAL TO
+			case "SubsetEqual":                     // SUBSET OF OR EQUAL TO
 				return rune(0x2286), true
-			case "Succeeds": 
-				// SUCCEEDS
+			case "Succeeds":                        // SUCCEEDS
 				return rune(0x227b), true
-			case "SucceedsEqual": 
-				// SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+			case "SucceedsEqual":                   // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
 				return rune(0x2ab0), true
-			case "SucceedsSlantEqual": 
-				// SUCCEEDS OR EQUAL TO
+			case "SucceedsSlantEqual":              // SUCCEEDS OR EQUAL TO
 				return rune(0x227d), true
-			case "SucceedsTilde": 
-				// SUCCEEDS OR EQUIVALENT TO
+			case "SucceedsTilde":                   // SUCCEEDS OR EQUIVALENT TO
 				return rune(0x227f), true
-			case "SuchThat": 
-				// CONTAINS AS MEMBER
+			case "SuchThat":                        // CONTAINS AS MEMBER
 				return rune(0x220b), true
-			case "Sum": 
-				// N-ARY SUMMATION
+			case "Sum":                             // N-ARY SUMMATION
 				return rune(0x2211), true
-			case "SupersetEqual": 
-				// SUPERSET OF OR EQUAL TO
-				return rune(0x2287), true
-			case "Sup": 
-				// DOUBLE SUPERSET
+			case "Sup":                             // DOUBLE SUPERSET
 				return rune(0x22d1), true
-			case "Superset": 
-				// SUPERSET OF
+			case "Superset":                        // SUPERSET OF
 				return rune(0x2283), true
-			case "Supset": 
-				// DOUBLE SUPERSET
+			case "SupersetEqual":                   // SUPERSET OF OR EQUAL TO
+				return rune(0x2287), true
+			case "Supset":                          // DOUBLE SUPERSET
 				return rune(0x22d1), true
 		}
 
 	case 'T':
 		switch name {
-			case "THORN": 
-				// LATIN CAPITAL LETTER THORN
+			case "THORN":                           // LATIN CAPITAL LETTER THORN
 				return rune(0xde), true
-			case "THgr": 
-				// GREEK CAPITAL LETTER THETA
+			case "THgr":                            // GREEK CAPITAL LETTER THETA
 				return rune(0x0398), true
-			case "TRADE": 
-				// TRADE MARK SIGN
+			case "TRADE":                           // TRADE MARK SIGN
 				return rune(0x2122), true
-			case "TSHcy": 
-				// CYRILLIC CAPITAL LETTER TSHE
+			case "TSHcy":                           // CYRILLIC CAPITAL LETTER TSHE
 				return rune(0x040b), true
-			case "TScy": 
-				// CYRILLIC CAPITAL LETTER TSE
+			case "TScy":                            // CYRILLIC CAPITAL LETTER TSE
 				return rune(0x0426), true
-			case "Tab": 
-				// CHARACTER TABULATION
+			case "Tab":                             // CHARACTER TABULATION
 				return rune(0x09), true
-			case "Tau": 
-				// GREEK CAPITAL LETTER TAU
+			case "Tau":                             // GREEK CAPITAL LETTER TAU
 				return rune(0x03a4), true
-			case "Tcaron": 
-				// LATIN CAPITAL LETTER T WITH CARON
+			case "Tcaron":                          // LATIN CAPITAL LETTER T WITH CARON
 				return rune(0x0164), true
-			case "Tcedil": 
-				// LATIN CAPITAL LETTER T WITH CEDILLA
+			case "Tcedil":                          // LATIN CAPITAL LETTER T WITH CEDILLA
 				return rune(0x0162), true
-			case "Tcy": 
-				// CYRILLIC CAPITAL LETTER TE
+			case "Tcy":                             // CYRILLIC CAPITAL LETTER TE
 				return rune(0x0422), true
-			case "Tfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL T
+			case "Tfr":                             // MATHEMATICAL FRAKTUR CAPITAL T
 				return rune(0x01d517), true
-			case "Tgr": 
-				// GREEK CAPITAL LETTER TAU
+			case "Tgr":                             // GREEK CAPITAL LETTER TAU
 				return rune(0x03a4), true
-			case "Therefore": 
-				// THEREFORE
+			case "Therefore":                       // THEREFORE
 				return rune(0x2234), true
-			case "Theta": 
-				// GREEK CAPITAL LETTER THETA
+			case "Theta":                           // GREEK CAPITAL LETTER THETA
 				return rune(0x0398), true
-			case "Thetav": 
-				// GREEK CAPITAL THETA SYMBOL
+			case "Thetav":                          // GREEK CAPITAL THETA SYMBOL
 				return rune(0x03f4), true
-			case "ThickSpace": 
-				// space of width 5/18 em
+			case "ThickSpace":                      // space of width 5/18 em
 				return rune(0x205f), true
-			case "ThinSpace": 
-				// THIN SPACE
+			case "ThinSpace":                       // THIN SPACE
 				return rune(0x2009), true
-			case "Tilde": 
-				// TILDE OPERATOR
+			case "Tilde":                           // TILDE OPERATOR
 				return rune(0x223c), true
-			case "TildeEqual": 
-				// ASYMPTOTICALLY EQUAL TO
+			case "TildeEqual":                      // ASYMPTOTICALLY EQUAL TO
 				return rune(0x2243), true
-			case "TildeFullEqual": 
-				// APPROXIMATELY EQUAL TO
+			case "TildeFullEqual":                  // APPROXIMATELY EQUAL TO
 				return rune(0x2245), true
-			case "TildeTilde": 
-				// ALMOST EQUAL TO
+			case "TildeTilde":                      // ALMOST EQUAL TO
 				return rune(0x2248), true
-			case "Topf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+			case "Topf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL T
 				return rune(0x01d54b), true
-			case "TripleDot": 
-				// COMBINING THREE DOTS ABOVE
+			case "TripleDot":                       // COMBINING THREE DOTS ABOVE
 				return rune(0x20db), true
-			case "Tscr": 
-				// MATHEMATICAL SCRIPT CAPITAL T
+			case "Tscr":                            // MATHEMATICAL SCRIPT CAPITAL T
 				return rune(0x01d4af), true
-			case "Tstrok": 
-				// LATIN CAPITAL LETTER T WITH STROKE
+			case "Tstrok":                          // LATIN CAPITAL LETTER T WITH STROKE
 				return rune(0x0166), true
 		}
 
 	case 'U':
 		switch name {
-			case "Uacgr": 
-				// GREEK CAPITAL LETTER UPSILON WITH TONOS
+			case "Uacgr":                           // GREEK CAPITAL LETTER UPSILON WITH TONOS
 				return rune(0x038e), true
-			case "Uacute": 
-				// LATIN CAPITAL LETTER U WITH ACUTE
+			case "Uacute":                          // LATIN CAPITAL LETTER U WITH ACUTE
 				return rune(0xda), true
-			case "Uarrocir": 
-				// UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
-				return rune(0x2949), true
-			case "Uarr": 
-				// UPWARDS TWO HEADED ARROW
+			case "Uarr":                            // UPWARDS TWO HEADED ARROW
 				return rune(0x219f), true
-			case "Ubrcy": 
-				// CYRILLIC CAPITAL LETTER SHORT U
+			case "Uarrocir":                        // UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
+				return rune(0x2949), true
+			case "Ubrcy":                           // CYRILLIC CAPITAL LETTER SHORT U
 				return rune(0x040e), true
-			case "Ubreve": 
-				// LATIN CAPITAL LETTER U WITH BREVE
+			case "Ubreve":                          // LATIN CAPITAL LETTER U WITH BREVE
 				return rune(0x016c), true
-			case "Ucirc": 
-				// LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+			case "Ucirc":                           // LATIN CAPITAL LETTER U WITH CIRCUMFLEX
 				return rune(0xdb), true
-			case "Ucy": 
-				// CYRILLIC CAPITAL LETTER U
+			case "Ucy":                             // CYRILLIC CAPITAL LETTER U
 				return rune(0x0423), true
-			case "Udblac": 
-				// LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+			case "Udblac":                          // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
 				return rune(0x0170), true
-			case "Udigr": 
-				// GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+			case "Udigr":                           // GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
 				return rune(0x03ab), true
-			case "Ufr": 
-				// MATHEMATICAL FRAKTUR CAPITAL U
+			case "Ufr":                             // MATHEMATICAL FRAKTUR CAPITAL U
 				return rune(0x01d518), true
-			case "Ugrave": 
-				// LATIN CAPITAL LETTER U WITH GRAVE
-				return rune(0xd9), true
-			case "Ugr": 
-				// GREEK CAPITAL LETTER UPSILON
+			case "Ugr":                             // GREEK CAPITAL LETTER UPSILON
 				return rune(0x03a5), true
-			case "Umacr": 
-				// LATIN CAPITAL LETTER U WITH MACRON
+			case "Ugrave":                          // LATIN CAPITAL LETTER U WITH GRAVE
+				return rune(0xd9), true
+			case "Umacr":                           // LATIN CAPITAL LETTER U WITH MACRON
 				return rune(0x016a), true
-			case "UnderBar": 
-				// LOW LINE
+			case "UnderBar":                        // LOW LINE
 				return rune(0x5f), true
-			case "UnderBrace": 
-				// BOTTOM CURLY BRACKET
+			case "UnderBrace":                      // BOTTOM CURLY BRACKET
 				return rune(0x23df), true
-			case "UnderBracket": 
-				// BOTTOM SQUARE BRACKET
+			case "UnderBracket":                    // BOTTOM SQUARE BRACKET
 				return rune(0x23b5), true
-			case "UnderParenthesis": 
-				// BOTTOM PARENTHESIS
+			case "UnderParenthesis":                // BOTTOM PARENTHESIS
 				return rune(0x23dd), true
-			case "Union": 
-				// N-ARY UNION
+			case "Union":                           // N-ARY UNION
 				return rune(0x22c3), true
-			case "UnionPlus": 
-				// MULTISET UNION
+			case "UnionPlus":                       // MULTISET UNION
 				return rune(0x228e), true
-			case "Uogon": 
-				// LATIN CAPITAL LETTER U WITH OGONEK
+			case "Uogon":                           // LATIN CAPITAL LETTER U WITH OGONEK
 				return rune(0x0172), true
-			case "Uopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+			case "Uopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL U
 				return rune(0x01d54c), true
-			case "UpArrow": 
-				// UPWARDS ARROW
+			case "UpArrow":                         // UPWARDS ARROW
 				return rune(0x2191), true
-			case "UpArrowBar": 
-				// UPWARDS ARROW TO BAR
+			case "UpArrowBar":                      // UPWARDS ARROW TO BAR
 				return rune(0x2912), true
-			case "UpArrowDownArrow": 
-				// UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+			case "UpArrowDownArrow":                // UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
 				return rune(0x21c5), true
-			case "UpDownArrow": 
-				// UP DOWN ARROW
+			case "UpDownArrow":                     // UP DOWN ARROW
 				return rune(0x2195), true
-			case "UpEquilibrium": 
-				// UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+			case "UpEquilibrium":                   // UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
 				return rune(0x296e), true
-			case "UpTee": 
-				// UP TACK
+			case "UpTee":                           // UP TACK
 				return rune(0x22a5), true
-			case "UpTeeArrow": 
-				// UPWARDS ARROW FROM BAR
+			case "UpTeeArrow":                      // UPWARDS ARROW FROM BAR
 				return rune(0x21a5), true
-			case "Uparrow": 
-				// UPWARDS DOUBLE ARROW
+			case "Uparrow":                         // UPWARDS DOUBLE ARROW
 				return rune(0x21d1), true
-			case "Updownarrow": 
-				// UP DOWN DOUBLE ARROW
+			case "Updownarrow":                     // UP DOWN DOUBLE ARROW
 				return rune(0x21d5), true
-			case "UpperLeftArrow": 
-				// NORTH WEST ARROW
+			case "UpperLeftArrow":                  // NORTH WEST ARROW
 				return rune(0x2196), true
-			case "UpperRightArrow": 
-				// NORTH EAST ARROW
+			case "UpperRightArrow":                 // NORTH EAST ARROW
 				return rune(0x2197), true
-			case "Upsilon": 
-				// GREEK CAPITAL LETTER UPSILON
-				return rune(0x03a5), true
-			case "Upsi": 
-				// GREEK UPSILON WITH HOOK SYMBOL
+			case "Upsi":                            // GREEK UPSILON WITH HOOK SYMBOL
 				return rune(0x03d2), true
-			case "Uring": 
-				// LATIN CAPITAL LETTER U WITH RING ABOVE
+			case "Upsilon":                         // GREEK CAPITAL LETTER UPSILON
+				return rune(0x03a5), true
+			case "Uring":                           // LATIN CAPITAL LETTER U WITH RING ABOVE
 				return rune(0x016e), true
-			case "Uscr": 
-				// MATHEMATICAL SCRIPT CAPITAL U
+			case "Uscr":                            // MATHEMATICAL SCRIPT CAPITAL U
 				return rune(0x01d4b0), true
-			case "Utilde": 
-				// LATIN CAPITAL LETTER U WITH TILDE
+			case "Utilde":                          // LATIN CAPITAL LETTER U WITH TILDE
 				return rune(0x0168), true
-			case "Uuml": 
-				// LATIN CAPITAL LETTER U WITH DIAERESIS
+			case "Uuml":                            // LATIN CAPITAL LETTER U WITH DIAERESIS
 				return rune(0xdc), true
 		}
 
 	case 'V':
 		switch name {
-			case "VDash": 
-				// DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+			case "VDash":                           // DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
 				return rune(0x22ab), true
-			case "Vbar": 
-				// DOUBLE UP TACK
+			case "Vbar":                            // DOUBLE UP TACK
 				return rune(0x2aeb), true
-			case "Vcy": 
-				// CYRILLIC CAPITAL LETTER VE
+			case "Vcy":                             // CYRILLIC CAPITAL LETTER VE
 				return rune(0x0412), true
-			case "Vdashl": 
-				// LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
-				return rune(0x2ae6), true
-			case "Vdash": 
-				// FORCES
+			case "Vdash":                           // FORCES
 				return rune(0x22a9), true
-			case "Vee": 
-				// N-ARY LOGICAL OR
+			case "Vdashl":                          // LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
+				return rune(0x2ae6), true
+			case "Vee":                             // N-ARY LOGICAL OR
 				return rune(0x22c1), true
-			case "Verbar": 
-				// DOUBLE VERTICAL LINE
+			case "Verbar":                          // DOUBLE VERTICAL LINE
 				return rune(0x2016), true
-			case "Vert": 
-				// DOUBLE VERTICAL LINE
+			case "Vert":                            // DOUBLE VERTICAL LINE
 				return rune(0x2016), true
-			case "VerticalBar": 
-				// DIVIDES
+			case "VerticalBar":                     // DIVIDES
 				return rune(0x2223), true
-			case "VerticalLine": 
-				// VERTICAL LINE
+			case "VerticalLine":                    // VERTICAL LINE
 				return rune(0x7c), true
-			case "VerticalSeparator": 
-				// LIGHT VERTICAL BAR
+			case "VerticalSeparator":               // LIGHT VERTICAL BAR
 				return rune(0x2758), true
-			case "VerticalTilde": 
-				// WREATH PRODUCT
+			case "VerticalTilde":                   // WREATH PRODUCT
 				return rune(0x2240), true
-			case "VeryThinSpace": 
-				// HAIR SPACE
+			case "VeryThinSpace":                   // HAIR SPACE
 				return rune(0x200a), true
-			case "Vfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL V
+			case "Vfr":                             // MATHEMATICAL FRAKTUR CAPITAL V
 				return rune(0x01d519), true
-			case "Vopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+			case "Vopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL V
 				return rune(0x01d54d), true
-			case "Vscr": 
-				// MATHEMATICAL SCRIPT CAPITAL V
+			case "Vscr":                            // MATHEMATICAL SCRIPT CAPITAL V
 				return rune(0x01d4b1), true
-			case "Vvdash": 
-				// TRIPLE VERTICAL BAR RIGHT TURNSTILE
+			case "Vvdash":                          // TRIPLE VERTICAL BAR RIGHT TURNSTILE
 				return rune(0x22aa), true
 		}
 
 	case 'W':
 		switch name {
-			case "Wcirc": 
-				// LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+			case "Wcirc":                           // LATIN CAPITAL LETTER W WITH CIRCUMFLEX
 				return rune(0x0174), true
-			case "Wedge": 
-				// N-ARY LOGICAL AND
+			case "Wedge":                           // N-ARY LOGICAL AND
 				return rune(0x22c0), true
-			case "Wfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL W
+			case "Wfr":                             // MATHEMATICAL FRAKTUR CAPITAL W
 				return rune(0x01d51a), true
-			case "Wopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+			case "Wopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL W
 				return rune(0x01d54e), true
-			case "Wscr": 
-				// MATHEMATICAL SCRIPT CAPITAL W
+			case "Wscr":                            // MATHEMATICAL SCRIPT CAPITAL W
 				return rune(0x01d4b2), true
 		}
 
 	case 'X':
 		switch name {
-			case "Xfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL X
+			case "Xfr":                             // MATHEMATICAL FRAKTUR CAPITAL X
 				return rune(0x01d51b), true
-			case "Xgr": 
-				// GREEK CAPITAL LETTER XI
+			case "Xgr":                             // GREEK CAPITAL LETTER XI
 				return rune(0x039e), true
-			case "Xi": 
-				// GREEK CAPITAL LETTER XI
+			case "Xi":                              // GREEK CAPITAL LETTER XI
 				return rune(0x039e), true
-			case "Xopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+			case "Xopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL X
 				return rune(0x01d54f), true
-			case "Xscr": 
-				// MATHEMATICAL SCRIPT CAPITAL X
+			case "Xscr":                            // MATHEMATICAL SCRIPT CAPITAL X
 				return rune(0x01d4b3), true
 		}
 
 	case 'Y':
 		switch name {
-			case "YAcy": 
-				// CYRILLIC CAPITAL LETTER YA
+			case "YAcy":                            // CYRILLIC CAPITAL LETTER YA
 				return rune(0x042f), true
-			case "YIcy": 
-				// CYRILLIC CAPITAL LETTER YI
+			case "YIcy":                            // CYRILLIC CAPITAL LETTER YI
 				return rune(0x0407), true
-			case "YUcy": 
-				// CYRILLIC CAPITAL LETTER YU
+			case "YUcy":                            // CYRILLIC CAPITAL LETTER YU
 				return rune(0x042e), true
-			case "Yacute": 
-				// LATIN CAPITAL LETTER Y WITH ACUTE
+			case "Yacute":                          // LATIN CAPITAL LETTER Y WITH ACUTE
 				return rune(0xdd), true
-			case "Ycirc": 
-				// LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+			case "Ycirc":                           // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
 				return rune(0x0176), true
-			case "Ycy": 
-				// CYRILLIC CAPITAL LETTER YERU
+			case "Ycy":                             // CYRILLIC CAPITAL LETTER YERU
 				return rune(0x042b), true
-			case "Yfr": 
-				// MATHEMATICAL FRAKTUR CAPITAL Y
+			case "Yfr":                             // MATHEMATICAL FRAKTUR CAPITAL Y
 				return rune(0x01d51c), true
-			case "Yopf": 
-				// MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+			case "Yopf":                            // MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
 				return rune(0x01d550), true
-			case "Yscr": 
-				// MATHEMATICAL SCRIPT CAPITAL Y
+			case "Yscr":                            // MATHEMATICAL SCRIPT CAPITAL Y
 				return rune(0x01d4b4), true
-			case "Yuml": 
-				// LATIN CAPITAL LETTER Y WITH DIAERESIS
+			case "Yuml":                            // LATIN CAPITAL LETTER Y WITH DIAERESIS
 				return rune(0x0178), true
 		}
 
 	case 'Z':
 		switch name {
-			case "ZHcy": 
-				// CYRILLIC CAPITAL LETTER ZHE
+			case "ZHcy":                            // CYRILLIC CAPITAL LETTER ZHE
 				return rune(0x0416), true
-			case "Zacute": 
-				// LATIN CAPITAL LETTER Z WITH ACUTE
+			case "Zacute":                          // LATIN CAPITAL LETTER Z WITH ACUTE
 				return rune(0x0179), true
-			case "Zcaron": 
-				// LATIN CAPITAL LETTER Z WITH CARON
+			case "Zcaron":                          // LATIN CAPITAL LETTER Z WITH CARON
 				return rune(0x017d), true
-			case "Zcy": 
-				// CYRILLIC CAPITAL LETTER ZE
+			case "Zcy":                             // CYRILLIC CAPITAL LETTER ZE
 				return rune(0x0417), true
-			case "Zdot": 
-				// LATIN CAPITAL LETTER Z WITH DOT ABOVE
+			case "Zdot":                            // LATIN CAPITAL LETTER Z WITH DOT ABOVE
 				return rune(0x017b), true
-			case "ZeroWidthSpace": 
-				// ZERO WIDTH SPACE
+			case "ZeroWidthSpace":                  // ZERO WIDTH SPACE
 				return rune(0x200b), true
-			case "Zeta": 
-				// GREEK CAPITAL LETTER ZETA
+			case "Zeta":                            // GREEK CAPITAL LETTER ZETA
 				return rune(0x0396), true
-			case "Zfr": 
-				// BLACK-LETTER CAPITAL Z
+			case "Zfr":                             // BLACK-LETTER CAPITAL Z
 				return rune(0x2128), true
-			case "Zgr": 
-				// GREEK CAPITAL LETTER ZETA
+			case "Zgr":                             // GREEK CAPITAL LETTER ZETA
 				return rune(0x0396), true
-			case "Zopf": 
-				// DOUBLE-STRUCK CAPITAL Z
+			case "Zopf":                            // DOUBLE-STRUCK CAPITAL Z
 				return rune(0x2124), true
-			case "Zscr": 
-				// MATHEMATICAL SCRIPT CAPITAL Z
+			case "Zscr":                            // MATHEMATICAL SCRIPT CAPITAL Z
 				return rune(0x01d4b5), true
 		}
 
 	case 'a':
 		switch name {
-			case "aacgr": 
-				// GREEK SMALL LETTER ALPHA WITH TONOS
+			case "aacgr":                           // GREEK SMALL LETTER ALPHA WITH TONOS
 				return rune(0x03ac), true
-			case "aacute": 
-				// LATIN SMALL LETTER A WITH ACUTE
+			case "aacute":                          // LATIN SMALL LETTER A WITH ACUTE
 				return rune(0xe1), true
-			case "abreve": 
-				// LATIN SMALL LETTER A WITH BREVE
+			case "abreve":                          // LATIN SMALL LETTER A WITH BREVE
 				return rune(0x0103), true
-			case "acE": 
-				// INVERTED LAZY S with double underline
+			case "ac":                              // INVERTED LAZY S
 				return rune(0x223e), true
-			case "acd": 
-				// SINE WAVE
-				return rune(0x223f), true
-			case "acute": 
-				// ACUTE ACCENT
-				return rune(0xb4), true
-			case "ac": 
-				// INVERTED LAZY S
+			case "acE":                             // INVERTED LAZY S with double underline
 				return rune(0x223e), true
-			case "acirc": 
-				// LATIN SMALL LETTER A WITH CIRCUMFLEX
+			case "acd":                             // SINE WAVE
+				return rune(0x223f), true
+			case "acirc":                           // LATIN SMALL LETTER A WITH CIRCUMFLEX
 				return rune(0xe2), true
-			case "actuary": 
-				// COMBINING ANNUITY SYMBOL
+			case "actuary":                         // COMBINING ANNUITY SYMBOL
 				return rune(0x20e7), true
-			case "acy": 
-				// CYRILLIC SMALL LETTER A
+			case "acute":                           // ACUTE ACCENT
+				return rune(0xb4), true
+			case "acy":                             // CYRILLIC SMALL LETTER A
 				return rune(0x0430), true
-			case "aelig": 
-				// LATIN SMALL LETTER AE
+			case "aelig":                           // LATIN SMALL LETTER AE
 				return rune(0xe6), true
-			case "af": 
-				// FUNCTION APPLICATION
+			case "af":                              // FUNCTION APPLICATION
 				return rune(0x2061), true
-			case "afr": 
-				// MATHEMATICAL FRAKTUR SMALL A
+			case "afr":                             // MATHEMATICAL FRAKTUR SMALL A
 				return rune(0x01d51e), true
-			case "agr": 
-				// GREEK SMALL LETTER ALPHA
+			case "agr":                             // GREEK SMALL LETTER ALPHA
 				return rune(0x03b1), true
-			case "agrave": 
-				// LATIN SMALL LETTER A WITH GRAVE
+			case "agrave":                          // LATIN SMALL LETTER A WITH GRAVE
 				return rune(0xe0), true
-			case "alefsym": 
-				// ALEF SYMBOL
+			case "alefsym":                         // ALEF SYMBOL
 				return rune(0x2135), true
-			case "aleph": 
-				// ALEF SYMBOL
+			case "aleph":                           // ALEF SYMBOL
 				return rune(0x2135), true
-			case "alpha": 
-				// GREEK SMALL LETTER ALPHA
+			case "alpha":                           // GREEK SMALL LETTER ALPHA
 				return rune(0x03b1), true
-			case "amacr": 
-				// LATIN SMALL LETTER A WITH MACRON
+			case "amacr":                           // LATIN SMALL LETTER A WITH MACRON
 				return rune(0x0101), true
-			case "amalg": 
-				// AMALGAMATION OR COPRODUCT
+			case "amalg":                           // AMALGAMATION OR COPRODUCT
 				return rune(0x2a3f), true
-			case "amp": 
-				// AMPERSAND
+			case "amp":                             // AMPERSAND
 				return rune(0x26), true
-			case "andand": 
-				// TWO INTERSECTING LOGICAL AND
+			case "and":                             // LOGICAL AND
+				return rune(0x2227), true
+			case "andand":                          // TWO INTERSECTING LOGICAL AND
 				return rune(0x2a55), true
-			case "andd": 
-				// LOGICAL AND WITH HORIZONTAL DASH
+			case "andd":                            // LOGICAL AND WITH HORIZONTAL DASH
 				return rune(0x2a5c), true
-			case "andslope": 
-				// SLOPING LARGE AND
+			case "andslope":                        // SLOPING LARGE AND
 				return rune(0x2a58), true
-			case "andv": 
-				// LOGICAL AND WITH MIDDLE STEM
+			case "andv":                            // LOGICAL AND WITH MIDDLE STEM
 				return rune(0x2a5a), true
-			case "and": 
-				// LOGICAL AND
-				return rune(0x2227), true
-			case "angdnl": 
-				// TURNED ANGLE
+			case "ang":                             // ANGLE
+				return rune(0x2220), true
+			case "ang90":                           // RIGHT ANGLE
+				return rune(0x221f), true
+			case "angdnl":                          // TURNED ANGLE
 				return rune(0x29a2), true
-			case "angdnr": 
-				// ACUTE ANGLE
+			case "angdnr":                          // ACUTE ANGLE
 				return rune(0x299f), true
-			case "ange": 
-				// ANGLE WITH UNDERBAR
+			case "ange":                            // ANGLE WITH UNDERBAR
 				return rune(0x29a4), true
-			case "angles": 
-				// ANGLE WITH S INSIDE
-				return rune(0x299e), true
-			case "angle": 
-				// ANGLE
+			case "angle":                           // ANGLE
 				return rune(0x2220), true
-			case "angmsdaa": 
-				// MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
+			case "angles":                          // ANGLE WITH S INSIDE
+				return rune(0x299e), true
+			case "angmsd":                          // MEASURED ANGLE
+				return rune(0x2221), true
+			case "angmsdaa":                        // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
 				return rune(0x29a8), true
-			case "angmsdab": 
-				// MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
+			case "angmsdab":                        // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
 				return rune(0x29a9), true
-			case "angmsdac": 
-				// MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
+			case "angmsdac":                        // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
 				return rune(0x29aa), true
-			case "angmsdad": 
-				// MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
+			case "angmsdad":                        // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
 				return rune(0x29ab), true
-			case "angmsdae": 
-				// MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
+			case "angmsdae":                        // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
 				return rune(0x29ac), true
-			case "angmsdaf": 
-				// MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
+			case "angmsdaf":                        // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
 				return rune(0x29ad), true
-			case "angmsdag": 
-				// MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
+			case "angmsdag":                        // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
 				return rune(0x29ae), true
-			case "angmsdah": 
-				// MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
+			case "angmsdah":                        // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
 				return rune(0x29af), true
-			case "angmsd": 
-				// MEASURED ANGLE
-				return rune(0x2221), true
-			case "angrtvbd": 
-				// MEASURED RIGHT ANGLE WITH DOT
-				return rune(0x299d), true
-			case "angrtvb": 
-				// RIGHT ANGLE WITH ARC
+			case "angrt":                           // RIGHT ANGLE
+				return rune(0x221f), true
+			case "angrtvb":                         // RIGHT ANGLE WITH ARC
 				return rune(0x22be), true
-			case "angsph": 
-				// SPHERICAL ANGLE
+			case "angrtvbd":                        // MEASURED RIGHT ANGLE WITH DOT
+				return rune(0x299d), true
+			case "angsph":                          // SPHERICAL ANGLE
 				return rune(0x2222), true
-			case "angst": 
-				// LATIN CAPITAL LETTER A WITH RING ABOVE
+			case "angst":                           // LATIN CAPITAL LETTER A WITH RING ABOVE
 				return rune(0xc5), true
-			case "angupl": 
-				// REVERSED ANGLE
+			case "angupl":                          // REVERSED ANGLE
 				return rune(0x29a3), true
-			case "angzarr": 
-				// RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+			case "angzarr":                         // RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
 				return rune(0x237c), true
-			case "ang": 
-				// ANGLE
-				return rune(0x2220), true
-			case "ang90": 
-				// RIGHT ANGLE
-				return rune(0x221f), true
-			case "angrt": 
-				// RIGHT ANGLE
-				return rune(0x221f), true
-			case "aogon": 
-				// LATIN SMALL LETTER A WITH OGONEK
+			case "aogon":                           // LATIN SMALL LETTER A WITH OGONEK
 				return rune(0x0105), true
-			case "aopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL A
+			case "aopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL A
 				return rune(0x01d552), true
-			case "apE": 
-				// APPROXIMATELY EQUAL OR EQUAL TO
+			case "ap":                              // ALMOST EQUAL TO
+				return rune(0x2248), true
+			case "apE":                             // APPROXIMATELY EQUAL OR EQUAL TO
 				return rune(0x2a70), true
-			case "apacir": 
-				// ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
+			case "apacir":                          // ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
 				return rune(0x2a6f), true
-			case "ape": 
-				// ALMOST EQUAL OR EQUAL TO
+			case "ape":                             // ALMOST EQUAL OR EQUAL TO
 				return rune(0x224a), true
-			case "apid": 
-				// TRIPLE TILDE
+			case "apid":                            // TRIPLE TILDE
 				return rune(0x224b), true
-			case "approxeq": 
-				// ALMOST EQUAL OR EQUAL TO
-				return rune(0x224a), true
-			case "approx": 
-				// ALMOST EQUAL TO
-				return rune(0x2248), true
-			case "ap": 
-				// ALMOST EQUAL TO
-				return rune(0x2248), true
-			case "apos": 
-				// APOSTROPHE
+			case "apos":                            // APOSTROPHE
 				return rune(0x27), true
-			case "aring": 
-				// LATIN SMALL LETTER A WITH RING ABOVE
+			case "approx":                          // ALMOST EQUAL TO
+				return rune(0x2248), true
+			case "approxeq":                        // ALMOST EQUAL OR EQUAL TO
+				return rune(0x224a), true
+			case "aring":                           // LATIN SMALL LETTER A WITH RING ABOVE
 				return rune(0xe5), true
-			case "arrllsr": 
-				// LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
+			case "arrllsr":                         // LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
 				return rune(0x2943), true
-			case "arrlrsl": 
-				// RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
+			case "arrlrsl":                         // RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
 				return rune(0x2942), true
-			case "arrsrll": 
-				// SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
+			case "arrsrll":                         // SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
 				return rune(0x2944), true
-			case "ascr": 
-				// MATHEMATICAL SCRIPT SMALL A
+			case "ascr":                            // MATHEMATICAL SCRIPT SMALL A
 				return rune(0x01d4b6), true
-			case "astb": 
-				// SQUARED ASTERISK
-				return rune(0x29c6), true
-			case "ast": 
-				// ASTERISK
+			case "ast":                             // ASTERISK
 				return rune(0x2a), true
-			case "asympeq": 
-				// EQUIVALENT TO
-				return rune(0x224d), true
-			case "asymp": 
-				// ALMOST EQUAL TO
+			case "astb":                            // SQUARED ASTERISK
+				return rune(0x29c6), true
+			case "asymp":                           // ALMOST EQUAL TO
 				return rune(0x2248), true
-			case "atilde": 
-				// LATIN SMALL LETTER A WITH TILDE
+			case "asympeq":                         // EQUIVALENT TO
+				return rune(0x224d), true
+			case "atilde":                          // LATIN SMALL LETTER A WITH TILDE
 				return rune(0xe3), true
-			case "auml": 
-				// LATIN SMALL LETTER A WITH DIAERESIS
+			case "auml":                            // LATIN SMALL LETTER A WITH DIAERESIS
 				return rune(0xe4), true
-			case "awconint": 
-				// ANTICLOCKWISE CONTOUR INTEGRAL
+			case "awconint":                        // ANTICLOCKWISE CONTOUR INTEGRAL
 				return rune(0x2233), true
-			case "awint": 
-				// ANTICLOCKWISE INTEGRATION
+			case "awint":                           // ANTICLOCKWISE INTEGRATION
 				return rune(0x2a11), true
 		}
 
 	case 'b':
 		switch name {
-			case "b.Delta": 
-				// MATHEMATICAL BOLD CAPITAL DELTA
+			case "b.Delta":                         // MATHEMATICAL BOLD CAPITAL DELTA
 				return rune(0x01d6ab), true
-			case "b.Gamma": 
-				// MATHEMATICAL BOLD CAPITAL GAMMA
+			case "b.Gamma":                         // MATHEMATICAL BOLD CAPITAL GAMMA
 				return rune(0x01d6aa), true
-			case "b.Gammad": 
-				// MATHEMATICAL BOLD CAPITAL DIGAMMA
+			case "b.Gammad":                        // MATHEMATICAL BOLD CAPITAL DIGAMMA
 				return rune(0x01d7ca), true
-			case "b.Lambda": 
-				// MATHEMATICAL BOLD CAPITAL LAMDA
+			case "b.Lambda":                        // MATHEMATICAL BOLD CAPITAL LAMDA
 				return rune(0x01d6b2), true
-			case "b.Omega": 
-				// MATHEMATICAL BOLD CAPITAL OMEGA
+			case "b.Omega":                         // MATHEMATICAL BOLD CAPITAL OMEGA
 				return rune(0x01d6c0), true
-			case "b.Phi": 
-				// MATHEMATICAL BOLD CAPITAL PHI
+			case "b.Phi":                           // MATHEMATICAL BOLD CAPITAL PHI
 				return rune(0x01d6bd), true
-			case "b.Pi": 
-				// MATHEMATICAL BOLD CAPITAL PI
+			case "b.Pi":                            // MATHEMATICAL BOLD CAPITAL PI
 				return rune(0x01d6b7), true
-			case "b.Psi": 
-				// MATHEMATICAL BOLD CAPITAL PSI
+			case "b.Psi":                           // MATHEMATICAL BOLD CAPITAL PSI
 				return rune(0x01d6bf), true
-			case "b.Sigma": 
-				// MATHEMATICAL BOLD CAPITAL SIGMA
+			case "b.Sigma":                         // MATHEMATICAL BOLD CAPITAL SIGMA
 				return rune(0x01d6ba), true
-			case "b.Theta": 
-				// MATHEMATICAL BOLD CAPITAL THETA
+			case "b.Theta":                         // MATHEMATICAL BOLD CAPITAL THETA
 				return rune(0x01d6af), true
-			case "b.Upsi": 
-				// MATHEMATICAL BOLD CAPITAL UPSILON
+			case "b.Upsi":                          // MATHEMATICAL BOLD CAPITAL UPSILON
 				return rune(0x01d6bc), true
-			case "b.Xi": 
-				// MATHEMATICAL BOLD CAPITAL XI
+			case "b.Xi":                            // MATHEMATICAL BOLD CAPITAL XI
 				return rune(0x01d6b5), true
-			case "b.alpha": 
-				// MATHEMATICAL BOLD SMALL ALPHA
+			case "b.alpha":                         // MATHEMATICAL BOLD SMALL ALPHA
 				return rune(0x01d6c2), true
-			case "b.beta": 
-				// MATHEMATICAL BOLD SMALL BETA
+			case "b.beta":                          // MATHEMATICAL BOLD SMALL BETA
 				return rune(0x01d6c3), true
-			case "b.chi": 
-				// MATHEMATICAL BOLD SMALL CHI
+			case "b.chi":                           // MATHEMATICAL BOLD SMALL CHI
 				return rune(0x01d6d8), true
-			case "b.delta": 
-				// MATHEMATICAL BOLD SMALL DELTA
+			case "b.delta":                         // MATHEMATICAL BOLD SMALL DELTA
 				return rune(0x01d6c5), true
-			case "b.epsi": 
-				// MATHEMATICAL BOLD SMALL EPSILON
+			case "b.epsi":                          // MATHEMATICAL BOLD SMALL EPSILON
 				return rune(0x01d6c6), true
-			case "b.epsiv": 
-				// MATHEMATICAL BOLD EPSILON SYMBOL
+			case "b.epsiv":                         // MATHEMATICAL BOLD EPSILON SYMBOL
 				return rune(0x01d6dc), true
-			case "b.eta": 
-				// MATHEMATICAL BOLD SMALL ETA
+			case "b.eta":                           // MATHEMATICAL BOLD SMALL ETA
 				return rune(0x01d6c8), true
-			case "b.gammad": 
-				// MATHEMATICAL BOLD SMALL DIGAMMA
-				return rune(0x01d7cb), true
-			case "b.gamma": 
-				// MATHEMATICAL BOLD SMALL GAMMA
+			case "b.gamma":                         // MATHEMATICAL BOLD SMALL GAMMA
 				return rune(0x01d6c4), true
-			case "b.iota": 
-				// MATHEMATICAL BOLD SMALL IOTA
+			case "b.gammad":                        // MATHEMATICAL BOLD SMALL DIGAMMA
+				return rune(0x01d7cb), true
+			case "b.iota":                          // MATHEMATICAL BOLD SMALL IOTA
 				return rune(0x01d6ca), true
-			case "b.kappa": 
-				// MATHEMATICAL BOLD SMALL KAPPA
+			case "b.kappa":                         // MATHEMATICAL BOLD SMALL KAPPA
 				return rune(0x01d6cb), true
-			case "b.kappav": 
-				// MATHEMATICAL BOLD KAPPA SYMBOL
+			case "b.kappav":                        // MATHEMATICAL BOLD KAPPA SYMBOL
 				return rune(0x01d6de), true
-			case "b.lambda": 
-				// MATHEMATICAL BOLD SMALL LAMDA
+			case "b.lambda":                        // MATHEMATICAL BOLD SMALL LAMDA
 				return rune(0x01d6cc), true
-			case "b.mu": 
-				// MATHEMATICAL BOLD SMALL MU
+			case "b.mu":                            // MATHEMATICAL BOLD SMALL MU
 				return rune(0x01d6cd), true
-			case "b.nu": 
-				// MATHEMATICAL BOLD SMALL NU
+			case "b.nu":                            // MATHEMATICAL BOLD SMALL NU
 				return rune(0x01d6ce), true
-			case "b.omega": 
-				// MATHEMATICAL BOLD SMALL OMEGA
+			case "b.omega":                         // MATHEMATICAL BOLD SMALL OMEGA
 				return rune(0x01d6da), true
-			case "b.phi": 
-				// MATHEMATICAL BOLD SMALL PHI
+			case "b.phi":                           // MATHEMATICAL BOLD SMALL PHI
 				return rune(0x01d6d7), true
-			case "b.phiv": 
-				// MATHEMATICAL BOLD PHI SYMBOL
+			case "b.phiv":                          // MATHEMATICAL BOLD PHI SYMBOL
 				return rune(0x01d6df), true
-			case "b.pi": 
-				// MATHEMATICAL BOLD SMALL PI
+			case "b.pi":                            // MATHEMATICAL BOLD SMALL PI
 				return rune(0x01d6d1), true
-			case "b.piv": 
-				// MATHEMATICAL BOLD PI SYMBOL
+			case "b.piv":                           // MATHEMATICAL BOLD PI SYMBOL
 				return rune(0x01d6e1), true
-			case "b.psi": 
-				// MATHEMATICAL BOLD SMALL PSI
+			case "b.psi":                           // MATHEMATICAL BOLD SMALL PSI
 				return rune(0x01d6d9), true
-			case "b.rho": 
-				// MATHEMATICAL BOLD SMALL RHO
+			case "b.rho":                           // MATHEMATICAL BOLD SMALL RHO
 				return rune(0x01d6d2), true
-			case "b.rhov": 
-				// MATHEMATICAL BOLD RHO SYMBOL
+			case "b.rhov":                          // MATHEMATICAL BOLD RHO SYMBOL
 				return rune(0x01d6e0), true
-			case "b.sigmav": 
-				// MATHEMATICAL BOLD SMALL FINAL SIGMA
-				return rune(0x01d6d3), true
-			case "b.sigma": 
-				// MATHEMATICAL BOLD SMALL SIGMA
+			case "b.sigma":                         // MATHEMATICAL BOLD SMALL SIGMA
 				return rune(0x01d6d4), true
-			case "b.tau": 
-				// MATHEMATICAL BOLD SMALL TAU
+			case "b.sigmav":                        // MATHEMATICAL BOLD SMALL FINAL SIGMA
+				return rune(0x01d6d3), true
+			case "b.tau":                           // MATHEMATICAL BOLD SMALL TAU
 				return rune(0x01d6d5), true
-			case "b.thetas": 
-				// MATHEMATICAL BOLD SMALL THETA
+			case "b.thetas":                        // MATHEMATICAL BOLD SMALL THETA
 				return rune(0x01d6c9), true
-			case "b.thetav": 
-				// MATHEMATICAL BOLD THETA SYMBOL
+			case "b.thetav":                        // MATHEMATICAL BOLD THETA SYMBOL
 				return rune(0x01d6dd), true
-			case "b.upsi": 
-				// MATHEMATICAL BOLD SMALL UPSILON
+			case "b.upsi":                          // MATHEMATICAL BOLD SMALL UPSILON
 				return rune(0x01d6d6), true
-			case "b.xi": 
-				// MATHEMATICAL BOLD SMALL XI
+			case "b.xi":                            // MATHEMATICAL BOLD SMALL XI
 				return rune(0x01d6cf), true
-			case "b.zeta": 
-				// MATHEMATICAL BOLD SMALL ZETA
+			case "b.zeta":                          // MATHEMATICAL BOLD SMALL ZETA
 				return rune(0x01d6c7), true
-			case "bNot": 
-				// REVERSED DOUBLE STROKE NOT SIGN
+			case "bNot":                            // REVERSED DOUBLE STROKE NOT SIGN
 				return rune(0x2aed), true
-			case "backcong": 
-				// ALL EQUAL TO
+			case "backcong":                        // ALL EQUAL TO
 				return rune(0x224c), true
-			case "backepsilon": 
-				// GREEK REVERSED LUNATE EPSILON SYMBOL
+			case "backepsilon":                     // GREEK REVERSED LUNATE EPSILON SYMBOL
 				return rune(0x03f6), true
-			case "backprime": 
-				// REVERSED PRIME
+			case "backprime":                       // REVERSED PRIME
 				return rune(0x2035), true
-			case "backsimeq": 
-				// REVERSED TILDE EQUALS
-				return rune(0x22cd), true
-			case "backsim": 
-				// REVERSED TILDE
+			case "backsim":                         // REVERSED TILDE
 				return rune(0x223d), true
-			case "barV": 
-				// DOUBLE DOWN TACK
+			case "backsimeq":                       // REVERSED TILDE EQUALS
+				return rune(0x22cd), true
+			case "barV":                            // DOUBLE DOWN TACK
 				return rune(0x2aea), true
-			case "barvee": 
-				// NOR
+			case "barvee":                          // NOR
 				return rune(0x22bd), true
-			case "barwed": 
-				// PROJECTIVE
+			case "barwed":                          // PROJECTIVE
 				return rune(0x2305), true
-			case "barwedge": 
-				// PROJECTIVE
+			case "barwedge":                        // PROJECTIVE
 				return rune(0x2305), true
-			case "bbrk": 
-				// BOTTOM SQUARE BRACKET
+			case "bbrk":                            // BOTTOM SQUARE BRACKET
 				return rune(0x23b5), true
-			case "bbrktbrk": 
-				// BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
+			case "bbrktbrk":                        // BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
 				return rune(0x23b6), true
-			case "bcong": 
-				// ALL EQUAL TO
+			case "bcong":                           // ALL EQUAL TO
 				return rune(0x224c), true
-			case "bcy": 
-				// CYRILLIC SMALL LETTER BE
+			case "bcy":                             // CYRILLIC SMALL LETTER BE
 				return rune(0x0431), true
-			case "bdlhar": 
-				// DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
+			case "bdlhar":                          // DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
 				return rune(0x2961), true
-			case "bdquo": 
-				// DOUBLE LOW-9 QUOTATION MARK
+			case "bdquo":                           // DOUBLE LOW-9 QUOTATION MARK
 				return rune(0x201e), true
-			case "bdrhar": 
-				// DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
+			case "bdrhar":                          // DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
 				return rune(0x295d), true
-			case "because": 
-				// BECAUSE
+			case "becaus":                          // BECAUSE
 				return rune(0x2235), true
-			case "becaus": 
-				// BECAUSE
+			case "because":                         // BECAUSE
 				return rune(0x2235), true
-			case "bemptyv": 
-				// REVERSED EMPTY SET
+			case "bemptyv":                         // REVERSED EMPTY SET
 				return rune(0x29b0), true
-			case "bepsi": 
-				// GREEK REVERSED LUNATE EPSILON SYMBOL
+			case "bepsi":                           // GREEK REVERSED LUNATE EPSILON SYMBOL
 				return rune(0x03f6), true
-			case "bernou": 
-				// SCRIPT CAPITAL B
+			case "bernou":                          // SCRIPT CAPITAL B
 				return rune(0x212c), true
-			case "beta": 
-				// GREEK SMALL LETTER BETA
+			case "beta":                            // GREEK SMALL LETTER BETA
 				return rune(0x03b2), true
-			case "beth": 
-				// BET SYMBOL
+			case "beth":                            // BET SYMBOL
 				return rune(0x2136), true
-			case "between": 
-				// BETWEEN
+			case "between":                         // BETWEEN
 				return rune(0x226c), true
-			case "bfr": 
-				// MATHEMATICAL FRAKTUR SMALL B
+			case "bfr":                             // MATHEMATICAL FRAKTUR SMALL B
 				return rune(0x01d51f), true
-			case "bgr": 
-				// GREEK SMALL LETTER BETA
+			case "bgr":                             // GREEK SMALL LETTER BETA
 				return rune(0x03b2), true
-			case "bigcap": 
-				// N-ARY INTERSECTION
+			case "bigcap":                          // N-ARY INTERSECTION
 				return rune(0x22c2), true
-			case "bigcirc": 
-				// LARGE CIRCLE
+			case "bigcirc":                         // LARGE CIRCLE
 				return rune(0x25ef), true
-			case "bigcup": 
-				// N-ARY UNION
+			case "bigcup":                          // N-ARY UNION
 				return rune(0x22c3), true
-			case "bigodot": 
-				// N-ARY CIRCLED DOT OPERATOR
+			case "bigodot":                         // N-ARY CIRCLED DOT OPERATOR
 				return rune(0x2a00), true
-			case "bigoplus": 
-				// N-ARY CIRCLED PLUS OPERATOR
+			case "bigoplus":                        // N-ARY CIRCLED PLUS OPERATOR
 				return rune(0x2a01), true
-			case "bigotimes": 
-				// N-ARY CIRCLED TIMES OPERATOR
+			case "bigotimes":                       // N-ARY CIRCLED TIMES OPERATOR
 				return rune(0x2a02), true
-			case "bigsqcup": 
-				// N-ARY SQUARE UNION OPERATOR
+			case "bigsqcup":                        // N-ARY SQUARE UNION OPERATOR
 				return rune(0x2a06), true
-			case "bigstar": 
-				// BLACK STAR
+			case "bigstar":                         // BLACK STAR
 				return rune(0x2605), true
-			case "bigtriangledown": 
-				// WHITE DOWN-POINTING TRIANGLE
+			case "bigtriangledown":                 // WHITE DOWN-POINTING TRIANGLE
 				return rune(0x25bd), true
-			case "bigtriangleup": 
-				// WHITE UP-POINTING TRIANGLE
+			case "bigtriangleup":                   // WHITE UP-POINTING TRIANGLE
 				return rune(0x25b3), true
-			case "biguplus": 
-				// N-ARY UNION OPERATOR WITH PLUS
+			case "biguplus":                        // N-ARY UNION OPERATOR WITH PLUS
 				return rune(0x2a04), true
-			case "bigvee": 
-				// N-ARY LOGICAL OR
+			case "bigvee":                          // N-ARY LOGICAL OR
 				return rune(0x22c1), true
-			case "bigwedge": 
-				// N-ARY LOGICAL AND
+			case "bigwedge":                        // N-ARY LOGICAL AND
 				return rune(0x22c0), true
-			case "bkarow": 
-				// RIGHTWARDS DOUBLE DASH ARROW
+			case "bkarow":                          // RIGHTWARDS DOUBLE DASH ARROW
 				return rune(0x290d), true
-			case "blacklozenge": 
-				// BLACK LOZENGE
+			case "blacklozenge":                    // BLACK LOZENGE
 				return rune(0x29eb), true
-			case "blacksquare": 
-				// BLACK SMALL SQUARE
+			case "blacksquare":                     // BLACK SMALL SQUARE
 				return rune(0x25aa), true
-			case "blacktriangledown": 
-				// BLACK DOWN-POINTING SMALL TRIANGLE
+			case "blacktriangle":                   // BLACK UP-POINTING SMALL TRIANGLE
+				return rune(0x25b4), true
+			case "blacktriangledown":               // BLACK DOWN-POINTING SMALL TRIANGLE
 				return rune(0x25be), true
-			case "blacktriangleleft": 
-				// BLACK LEFT-POINTING SMALL TRIANGLE
+			case "blacktriangleleft":               // BLACK LEFT-POINTING SMALL TRIANGLE
 				return rune(0x25c2), true
-			case "blacktriangleright": 
-				// BLACK RIGHT-POINTING SMALL TRIANGLE
+			case "blacktriangleright":              // BLACK RIGHT-POINTING SMALL TRIANGLE
 				return rune(0x25b8), true
-			case "blacktriangle": 
-				// BLACK UP-POINTING SMALL TRIANGLE
-				return rune(0x25b4), true
-			case "blank": 
-				// BLANK SYMBOL
+			case "blank":                           // BLANK SYMBOL
 				return rune(0x2422), true
-			case "bldhar": 
-				// LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
+			case "bldhar":                          // LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
 				return rune(0x295e), true
-			case "blk12": 
-				// MEDIUM SHADE
+			case "blk12":                           // MEDIUM SHADE
 				return rune(0x2592), true
-			case "blk14": 
-				// LIGHT SHADE
+			case "blk14":                           // LIGHT SHADE
 				return rune(0x2591), true
-			case "blk34": 
-				// DARK SHADE
+			case "blk34":                           // DARK SHADE
 				return rune(0x2593), true
-			case "block": 
-				// FULL BLOCK
+			case "block":                           // FULL BLOCK
 				return rune(0x2588), true
-			case "bluhar": 
-				// LEFTWARDS HARPOON WITH BARB UP FROM BAR
+			case "bluhar":                          // LEFTWARDS HARPOON WITH BARB UP FROM BAR
 				return rune(0x295a), true
-			case "bnequiv": 
-				// IDENTICAL TO with reverse slash
-				return rune(0x2261), true
-			case "bne": 
-				// EQUALS SIGN with reverse slash
+			case "bne":                             // EQUALS SIGN with reverse slash
 				return rune(0x3d), true
-			case "bnot": 
-				// REVERSED NOT SIGN
+			case "bnequiv":                         // IDENTICAL TO with reverse slash
+				return rune(0x2261), true
+			case "bnot":                            // REVERSED NOT SIGN
 				return rune(0x2310), true
-			case "bopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL B
+			case "bopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL B
 				return rune(0x01d553), true
-			case "bot": 
-				// UP TACK
+			case "bot":                             // UP TACK
 				return rune(0x22a5), true
-			case "bottom": 
-				// UP TACK
+			case "bottom":                          // UP TACK
 				return rune(0x22a5), true
-			case "bowtie": 
-				// BOWTIE
+			case "bowtie":                          // BOWTIE
 				return rune(0x22c8), true
-			case "boxDL": 
-				// BOX DRAWINGS DOUBLE DOWN AND LEFT
+			case "boxDL":                           // BOX DRAWINGS DOUBLE DOWN AND LEFT
 				return rune(0x2557), true
-			case "boxDR": 
-				// BOX DRAWINGS DOUBLE DOWN AND RIGHT
+			case "boxDR":                           // BOX DRAWINGS DOUBLE DOWN AND RIGHT
 				return rune(0x2554), true
-			case "boxDl": 
-				// BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+			case "boxDl":                           // BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
 				return rune(0x2556), true
-			case "boxDr": 
-				// BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+			case "boxDr":                           // BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
 				return rune(0x2553), true
-			case "boxHD": 
-				// BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+			case "boxH":                            // BOX DRAWINGS DOUBLE HORIZONTAL
+				return rune(0x2550), true
+			case "boxHD":                           // BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
 				return rune(0x2566), true
-			case "boxHU": 
-				// BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+			case "boxHU":                           // BOX DRAWINGS DOUBLE UP AND HORIZONTAL
 				return rune(0x2569), true
-			case "boxHd": 
-				// BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+			case "boxHd":                           // BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
 				return rune(0x2564), true
-			case "boxHu": 
-				// BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+			case "boxHu":                           // BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
 				return rune(0x2567), true
-			case "boxH": 
-				// BOX DRAWINGS DOUBLE HORIZONTAL
-				return rune(0x2550), true
-			case "boxUL": 
-				// BOX DRAWINGS DOUBLE UP AND LEFT
+			case "boxUL":                           // BOX DRAWINGS DOUBLE UP AND LEFT
 				return rune(0x255d), true
-			case "boxUR": 
-				// BOX DRAWINGS DOUBLE UP AND RIGHT
+			case "boxUR":                           // BOX DRAWINGS DOUBLE UP AND RIGHT
 				return rune(0x255a), true
-			case "boxUl": 
-				// BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+			case "boxUl":                           // BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
 				return rune(0x255c), true
-			case "boxUr": 
-				// BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+			case "boxUr":                           // BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
 				return rune(0x2559), true
-			case "boxVH": 
-				// BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+			case "boxV":                            // BOX DRAWINGS DOUBLE VERTICAL
+				return rune(0x2551), true
+			case "boxVH":                           // BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
 				return rune(0x256c), true
-			case "boxVL": 
-				// BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+			case "boxVL":                           // BOX DRAWINGS DOUBLE VERTICAL AND LEFT
 				return rune(0x2563), true
-			case "boxVR": 
-				// BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+			case "boxVR":                           // BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
 				return rune(0x2560), true
-			case "boxVh": 
-				// BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+			case "boxVh":                           // BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
 				return rune(0x256b), true
-			case "boxVl": 
-				// BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+			case "boxVl":                           // BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
 				return rune(0x2562), true
-			case "boxVr": 
-				// BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+			case "boxVr":                           // BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
 				return rune(0x255f), true
-			case "boxV": 
-				// BOX DRAWINGS DOUBLE VERTICAL
-				return rune(0x2551), true
-			case "boxbox": 
-				// TWO JOINED SQUARES
+			case "boxbox":                          // TWO JOINED SQUARES
 				return rune(0x29c9), true
-			case "boxdL": 
-				// BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+			case "boxdL":                           // BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
 				return rune(0x2555), true
-			case "boxdR": 
-				// BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+			case "boxdR":                           // BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
 				return rune(0x2552), true
-			case "boxdl": 
-				// BOX DRAWINGS LIGHT DOWN AND LEFT
+			case "boxdl":                           // BOX DRAWINGS LIGHT DOWN AND LEFT
 				return rune(0x2510), true
-			case "boxdr": 
-				// BOX DRAWINGS LIGHT DOWN AND RIGHT
+			case "boxdr":                           // BOX DRAWINGS LIGHT DOWN AND RIGHT
 				return rune(0x250c), true
-			case "boxhU": 
-				// BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-				return rune(0x2568), true
-			case "boxh": 
-				// BOX DRAWINGS LIGHT HORIZONTAL
+			case "boxh":                            // BOX DRAWINGS LIGHT HORIZONTAL
 				return rune(0x2500), true
-			case "boxhD": 
-				// BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+			case "boxhD":                           // BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
 				return rune(0x2565), true
-			case "boxhd": 
-				// BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+			case "boxhU":                           // BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+				return rune(0x2568), true
+			case "boxhd":                           // BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
 				return rune(0x252c), true
-			case "boxhu": 
-				// BOX DRAWINGS LIGHT UP AND HORIZONTAL
+			case "boxhu":                           // BOX DRAWINGS LIGHT UP AND HORIZONTAL
 				return rune(0x2534), true
-			case "boxminus": 
-				// SQUARED MINUS
+			case "boxminus":                        // SQUARED MINUS
 				return rune(0x229f), true
-			case "boxplus": 
-				// SQUARED PLUS
+			case "boxplus":                         // SQUARED PLUS
 				return rune(0x229e), true
-			case "boxtimes": 
-				// SQUARED TIMES
+			case "boxtimes":                        // SQUARED TIMES
 				return rune(0x22a0), true
-			case "boxuL": 
-				// BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+			case "boxuL":                           // BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
 				return rune(0x255b), true
-			case "boxuR": 
-				// BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+			case "boxuR":                           // BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
 				return rune(0x2558), true
-			case "boxul": 
-				// BOX DRAWINGS LIGHT UP AND LEFT
+			case "boxul":                           // BOX DRAWINGS LIGHT UP AND LEFT
 				return rune(0x2518), true
-			case "boxur": 
-				// BOX DRAWINGS LIGHT UP AND RIGHT
+			case "boxur":                           // BOX DRAWINGS LIGHT UP AND RIGHT
 				return rune(0x2514), true
-			case "boxvL": 
-				// BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+			case "boxv":                            // BOX DRAWINGS LIGHT VERTICAL
+				return rune(0x2502), true
+			case "boxvH":                           // BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+				return rune(0x256a), true
+			case "boxvL":                           // BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
 				return rune(0x2561), true
-			case "boxvR": 
-				// BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+			case "boxvR":                           // BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
 				return rune(0x255e), true
-			case "boxvl": 
-				// BOX DRAWINGS LIGHT VERTICAL AND LEFT
+			case "boxvh":                           // BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+				return rune(0x253c), true
+			case "boxvl":                           // BOX DRAWINGS LIGHT VERTICAL AND LEFT
 				return rune(0x2524), true
-			case "boxvr": 
-				// BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+			case "boxvr":                           // BOX DRAWINGS LIGHT VERTICAL AND RIGHT
 				return rune(0x251c), true
-			case "boxv": 
-				// BOX DRAWINGS LIGHT VERTICAL
-				return rune(0x2502), true
-			case "boxvH": 
-				// BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-				return rune(0x256a), true
-			case "boxvh": 
-				// BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-				return rune(0x253c), true
-			case "bprime": 
-				// REVERSED PRIME
+			case "bprime":                          // REVERSED PRIME
 				return rune(0x2035), true
-			case "brdhar": 
-				// RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
+			case "brdhar":                          // RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
 				return rune(0x295f), true
-			case "breve": 
-				// BREVE
+			case "breve":                           // BREVE
 				return rune(0x02d8), true
-			case "bruhar": 
-				// RIGHTWARDS HARPOON WITH BARB UP FROM BAR
+			case "bruhar":                          // RIGHTWARDS HARPOON WITH BARB UP FROM BAR
 				return rune(0x295b), true
-			case "brvbar": 
-				// BROKEN BAR
+			case "brvbar":                          // BROKEN BAR
 				return rune(0xa6), true
-			case "bscr": 
-				// MATHEMATICAL SCRIPT SMALL B
+			case "bscr":                            // MATHEMATICAL SCRIPT SMALL B
 				return rune(0x01d4b7), true
-			case "bsemi": 
-				// REVERSED SEMICOLON
+			case "bsemi":                           // REVERSED SEMICOLON
 				return rune(0x204f), true
-			case "bsim": 
-				// REVERSED TILDE
+			case "bsim":                            // REVERSED TILDE
 				return rune(0x223d), true
-			case "bsime": 
-				// REVERSED TILDE EQUALS
+			case "bsime":                           // REVERSED TILDE EQUALS
 				return rune(0x22cd), true
-			case "bsolb": 
-				// SQUARED FALLING DIAGONAL SLASH
+			case "bsol":                            // REVERSE SOLIDUS
+				return rune(0x5c), true
+			case "bsolb":                           // SQUARED FALLING DIAGONAL SLASH
 				return rune(0x29c5), true
-			case "bsolhsub": 
-				// REVERSE SOLIDUS PRECEDING SUBSET
+			case "bsolhsub":                        // REVERSE SOLIDUS PRECEDING SUBSET
 				return rune(0x27c8), true
-			case "bsol": 
-				// REVERSE SOLIDUS
-				return rune(0x5c), true
-			case "btimes": 
-				// SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
+			case "btimes":                          // SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
 				return rune(0x2a32), true
-			case "bulhar": 
-				// UPWARDS HARPOON WITH BARB LEFT FROM BAR
+			case "bulhar":                          // UPWARDS HARPOON WITH BARB LEFT FROM BAR
 				return rune(0x2960), true
-			case "bullet": 
-				// BULLET
+			case "bull":                            // BULLET
 				return rune(0x2022), true
-			case "bull": 
-				// BULLET
+			case "bullet":                          // BULLET
 				return rune(0x2022), true
-			case "bump": 
-				// GEOMETRICALLY EQUIVALENT TO
+			case "bump":                            // GEOMETRICALLY EQUIVALENT TO
 				return rune(0x224e), true
-			case "bumpE": 
-				// EQUALS SIGN WITH BUMPY ABOVE
+			case "bumpE":                           // EQUALS SIGN WITH BUMPY ABOVE
 				return rune(0x2aae), true
-			case "bumpe": 
-				// DIFFERENCE BETWEEN
+			case "bumpe":                           // DIFFERENCE BETWEEN
 				return rune(0x224f), true
-			case "bumpeq": 
-				// DIFFERENCE BETWEEN
+			case "bumpeq":                          // DIFFERENCE BETWEEN
 				return rune(0x224f), true
-			case "burhar": 
-				// UPWARDS HARPOON WITH BARB RIGHT FROM BAR
+			case "burhar":                          // UPWARDS HARPOON WITH BARB RIGHT FROM BAR
 				return rune(0x295c), true
 		}
 
 	case 'c':
 		switch name {
-			case "cacute": 
-				// LATIN SMALL LETTER C WITH ACUTE
+			case "cacute":                          // LATIN SMALL LETTER C WITH ACUTE
 				return rune(0x0107), true
-			case "cap": 
-				// INTERSECTION
+			case "cap":                             // INTERSECTION
 				return rune(0x2229), true
-			case "capand": 
-				// INTERSECTION WITH LOGICAL AND
+			case "capand":                          // INTERSECTION WITH LOGICAL AND
 				return rune(0x2a44), true
-			case "capbrcup": 
-				// INTERSECTION ABOVE BAR ABOVE UNION
+			case "capbrcup":                        // INTERSECTION ABOVE BAR ABOVE UNION
 				return rune(0x2a49), true
-			case "capcap": 
-				// INTERSECTION BESIDE AND JOINED WITH INTERSECTION
+			case "capcap":                          // INTERSECTION BESIDE AND JOINED WITH INTERSECTION
 				return rune(0x2a4b), true
-			case "capcup": 
-				// INTERSECTION ABOVE UNION
+			case "capcup":                          // INTERSECTION ABOVE UNION
 				return rune(0x2a47), true
-			case "capdot": 
-				// INTERSECTION WITH DOT
+			case "capdot":                          // INTERSECTION WITH DOT
 				return rune(0x2a40), true
-			case "capint": 
-				// INTEGRAL WITH INTERSECTION
+			case "capint":                          // INTEGRAL WITH INTERSECTION
 				return rune(0x2a19), true
-			case "caps": 
-				// INTERSECTION with serifs
+			case "caps":                            // INTERSECTION with serifs
 				return rune(0x2229), true
-			case "caret": 
-				// CARET INSERTION POINT
+			case "caret":                           // CARET INSERTION POINT
 				return rune(0x2041), true
-			case "caron": 
-				// CARON
+			case "caron":                           // CARON
 				return rune(0x02c7), true
-			case "ccaps": 
-				// CLOSED INTERSECTION WITH SERIFS
+			case "ccaps":                           // CLOSED INTERSECTION WITH SERIFS
 				return rune(0x2a4d), true
-			case "ccaron": 
-				// LATIN SMALL LETTER C WITH CARON
+			case "ccaron":                          // LATIN SMALL LETTER C WITH CARON
 				return rune(0x010d), true
-			case "ccedil": 
-				// LATIN SMALL LETTER C WITH CEDILLA
+			case "ccedil":                          // LATIN SMALL LETTER C WITH CEDILLA
 				return rune(0xe7), true
-			case "ccirc": 
-				// LATIN SMALL LETTER C WITH CIRCUMFLEX
+			case "ccirc":                           // LATIN SMALL LETTER C WITH CIRCUMFLEX
 				return rune(0x0109), true
-			case "ccups": 
-				// CLOSED UNION WITH SERIFS
+			case "ccups":                           // CLOSED UNION WITH SERIFS
 				return rune(0x2a4c), true
-			case "ccupssm": 
-				// CLOSED UNION WITH SERIFS AND SMASH PRODUCT
+			case "ccupssm":                         // CLOSED UNION WITH SERIFS AND SMASH PRODUCT
 				return rune(0x2a50), true
-			case "cdot": 
-				// LATIN SMALL LETTER C WITH DOT ABOVE
+			case "cdot":                            // LATIN SMALL LETTER C WITH DOT ABOVE
 				return rune(0x010b), true
-			case "cedil": 
-				// CEDILLA
+			case "cedil":                           // CEDILLA
 				return rune(0xb8), true
-			case "cemptyv": 
-				// EMPTY SET WITH SMALL CIRCLE ABOVE
+			case "cemptyv":                         // EMPTY SET WITH SMALL CIRCLE ABOVE
 				return rune(0x29b2), true
-			case "centerdot": 
-				// MIDDLE DOT
-				return rune(0xb7), true
-			case "cent": 
-				// CENT SIGN
+			case "cent":                            // CENT SIGN
 				return rune(0xa2), true
-			case "cfr": 
-				// MATHEMATICAL FRAKTUR SMALL C
+			case "centerdot":                       // MIDDLE DOT
+				return rune(0xb7), true
+			case "cfr":                             // MATHEMATICAL FRAKTUR SMALL C
 				return rune(0x01d520), true
-			case "chcy": 
-				// CYRILLIC SMALL LETTER CHE
+			case "chcy":                            // CYRILLIC SMALL LETTER CHE
 				return rune(0x0447), true
-			case "check": 
-				// CHECK MARK
+			case "check":                           // CHECK MARK
 				return rune(0x2713), true
-			case "checkmark": 
-				// CHECK MARK
+			case "checkmark":                       // CHECK MARK
 				return rune(0x2713), true
-			case "chi": 
-				// GREEK SMALL LETTER CHI
+			case "chi":                             // GREEK SMALL LETTER CHI
 				return rune(0x03c7), true
-			case "circeq": 
-				// RING EQUAL TO
+			case "cir":                             // WHITE CIRCLE
+				return rune(0x25cb), true
+			case "cirE":                            // CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
+				return rune(0x29c3), true
+			case "cirb":                            // SQUARED SMALL CIRCLE
+				return rune(0x29c7), true
+			case "circ":                            // MODIFIER LETTER CIRCUMFLEX ACCENT
+				return rune(0x02c6), true
+			case "circeq":                          // RING EQUAL TO
 				return rune(0x2257), true
-			case "circlearrowleft": 
-				// ANTICLOCKWISE OPEN CIRCLE ARROW
+			case "circlearrowleft":                 // ANTICLOCKWISE OPEN CIRCLE ARROW
 				return rune(0x21ba), true
-			case "circlearrowright": 
-				// CLOCKWISE OPEN CIRCLE ARROW
+			case "circlearrowright":                // CLOCKWISE OPEN CIRCLE ARROW
 				return rune(0x21bb), true
-			case "circledS": 
-				// CIRCLED LATIN CAPITAL LETTER S
+			case "circledR":                        // REGISTERED SIGN
+				return rune(0xae), true
+			case "circledS":                        // CIRCLED LATIN CAPITAL LETTER S
 				return rune(0x24c8), true
-			case "circledast": 
-				// CIRCLED ASTERISK OPERATOR
+			case "circledast":                      // CIRCLED ASTERISK OPERATOR
 				return rune(0x229b), true
-			case "circledcirc": 
-				// CIRCLED RING OPERATOR
+			case "circledcirc":                     // CIRCLED RING OPERATOR
 				return rune(0x229a), true
-			case "circleddash": 
-				// CIRCLED DASH
+			case "circleddash":                     // CIRCLED DASH
 				return rune(0x229d), true
-			case "cire": 
-				// RING EQUAL TO
-				return rune(0x2257), true
-			case "cir": 
-				// WHITE CIRCLE
-				return rune(0x25cb), true
-			case "cirE": 
-				// CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
-				return rune(0x29c3), true
-			case "cirb": 
-				// SQUARED SMALL CIRCLE
-				return rune(0x29c7), true
-			case "circ": 
-				// MODIFIER LETTER CIRCUMFLEX ACCENT
-				return rune(0x02c6), true
-			case "circledR": 
-				// REGISTERED SIGN
-				return rune(0xae), true
-			case "cirdarr": 
-				// WHITE CIRCLE WITH DOWN ARROW
+			case "cirdarr":                         // WHITE CIRCLE WITH DOWN ARROW
 				return rune(0x29ec), true
-			case "cirerr": 
-				// ERROR-BARRED WHITE CIRCLE
+			case "cire":                            // RING EQUAL TO
+				return rune(0x2257), true
+			case "cirerr":                          // ERROR-BARRED WHITE CIRCLE
 				return rune(0x29f2), true
-			case "cirfdarr": 
-				// BLACK CIRCLE WITH DOWN ARROW
+			case "cirfdarr":                        // BLACK CIRCLE WITH DOWN ARROW
 				return rune(0x29ed), true
-			case "cirferr": 
-				// ERROR-BARRED BLACK CIRCLE
+			case "cirferr":                         // ERROR-BARRED BLACK CIRCLE
 				return rune(0x29f3), true
-			case "cirfnint": 
-				// CIRCULATION FUNCTION
+			case "cirfnint":                        // CIRCULATION FUNCTION
 				return rune(0x2a10), true
-			case "cirmid": 
-				// VERTICAL LINE WITH CIRCLE ABOVE
+			case "cirmid":                          // VERTICAL LINE WITH CIRCLE ABOVE
 				return rune(0x2aef), true
-			case "cirscir": 
-				// CIRCLE WITH SMALL CIRCLE TO THE RIGHT
+			case "cirscir":                         // CIRCLE WITH SMALL CIRCLE TO THE RIGHT
 				return rune(0x29c2), true
-			case "closur": 
-				// CLOSE UP
+			case "closur":                          // CLOSE UP
 				return rune(0x2050), true
-			case "clubs": 
-				// BLACK CLUB SUIT
+			case "clubs":                           // BLACK CLUB SUIT
 				return rune(0x2663), true
-			case "clubsuit": 
-				// BLACK CLUB SUIT
+			case "clubsuit":                        // BLACK CLUB SUIT
 				return rune(0x2663), true
-			case "colone": 
-				// COLON EQUALS
+			case "colon":                           // COLON
+				return rune(0x3a), true
+			case "colone":                          // COLON EQUALS
 				return rune(0x2254), true
-			case "coloneq": 
-				// COLON EQUALS
+			case "coloneq":                         // COLON EQUALS
 				return rune(0x2254), true
-			case "colon": 
-				// COLON
-				return rune(0x3a), true
-			case "commat": 
-				// COMMERCIAL AT
-				return rune(0x40), true
-			case "comma": 
-				// COMMA
+			case "comma":                           // COMMA
 				return rune(0x2c), true
-			case "comp": 
-				// COMPLEMENT
+			case "commat":                          // COMMERCIAL AT
+				return rune(0x40), true
+			case "comp":                            // COMPLEMENT
 				return rune(0x2201), true
-			case "compfn": 
-				// RING OPERATOR
+			case "compfn":                          // RING OPERATOR
 				return rune(0x2218), true
-			case "complement": 
-				// COMPLEMENT
+			case "complement":                      // COMPLEMENT
 				return rune(0x2201), true
-			case "complexes": 
-				// DOUBLE-STRUCK CAPITAL C
+			case "complexes":                       // DOUBLE-STRUCK CAPITAL C
 				return rune(0x2102), true
-			case "cong": 
-				// APPROXIMATELY EQUAL TO
+			case "cong":                            // APPROXIMATELY EQUAL TO
 				return rune(0x2245), true
-			case "congdot": 
-				// CONGRUENT WITH DOT ABOVE
+			case "congdot":                         // CONGRUENT WITH DOT ABOVE
 				return rune(0x2a6d), true
-			case "conint": 
-				// CONTOUR INTEGRAL
+			case "conint":                          // CONTOUR INTEGRAL
 				return rune(0x222e), true
-			case "copf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL C
+			case "copf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL C
 				return rune(0x01d554), true
-			case "coprod": 
-				// N-ARY COPRODUCT
+			case "coprod":                          // N-ARY COPRODUCT
 				return rune(0x2210), true
-			case "copysr": 
-				// SOUND RECORDING COPYRIGHT
-				return rune(0x2117), true
-			case "copy": 
-				// COPYRIGHT SIGN
+			case "copy":                            // COPYRIGHT SIGN
 				return rune(0xa9), true
-			case "crarr": 
-				// DOWNWARDS ARROW WITH CORNER LEFTWARDS
+			case "copysr":                          // SOUND RECORDING COPYRIGHT
+				return rune(0x2117), true
+			case "crarr":                           // DOWNWARDS ARROW WITH CORNER LEFTWARDS
 				return rune(0x21b5), true
-			case "cross": 
-				// BALLOT X
+			case "cross":                           // BALLOT X
 				return rune(0x2717), true
-			case "cscr": 
-				// MATHEMATICAL SCRIPT SMALL C
+			case "cscr":                            // MATHEMATICAL SCRIPT SMALL C
 				return rune(0x01d4b8), true
-			case "csub": 
-				// CLOSED SUBSET
+			case "csub":                            // CLOSED SUBSET
 				return rune(0x2acf), true
-			case "csube": 
-				// CLOSED SUBSET OR EQUAL TO
+			case "csube":                           // CLOSED SUBSET OR EQUAL TO
 				return rune(0x2ad1), true
-			case "csup": 
-				// CLOSED SUPERSET
+			case "csup":                            // CLOSED SUPERSET
 				return rune(0x2ad0), true
-			case "csupe": 
-				// CLOSED SUPERSET OR EQUAL TO
+			case "csupe":                           // CLOSED SUPERSET OR EQUAL TO
 				return rune(0x2ad2), true
-			case "ctdot": 
-				// MIDLINE HORIZONTAL ELLIPSIS
+			case "ctdot":                           // MIDLINE HORIZONTAL ELLIPSIS
 				return rune(0x22ef), true
-			case "cudarrl": 
-				// RIGHT-SIDE ARC CLOCKWISE ARROW
+			case "cudarrl":                         // RIGHT-SIDE ARC CLOCKWISE ARROW
 				return rune(0x2938), true
-			case "cudarrr": 
-				// ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
+			case "cudarrr":                         // ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
 				return rune(0x2935), true
-			case "cuepr": 
-				// EQUAL TO OR PRECEDES
+			case "cuepr":                           // EQUAL TO OR PRECEDES
 				return rune(0x22de), true
-			case "cuesc": 
-				// EQUAL TO OR SUCCEEDS
+			case "cuesc":                           // EQUAL TO OR SUCCEEDS
 				return rune(0x22df), true
-			case "cularr": 
-				// ANTICLOCKWISE TOP SEMICIRCLE ARROW
+			case "cularr":                          // ANTICLOCKWISE TOP SEMICIRCLE ARROW
 				return rune(0x21b6), true
-			case "cularrp": 
-				// TOP ARC ANTICLOCKWISE ARROW WITH PLUS
+			case "cularrp":                         // TOP ARC ANTICLOCKWISE ARROW WITH PLUS
 				return rune(0x293d), true
-			case "cup": 
-				// UNION
+			case "cup":                             // UNION
 				return rune(0x222a), true
-			case "cupbrcap": 
-				// UNION ABOVE BAR ABOVE INTERSECTION
+			case "cupbrcap":                        // UNION ABOVE BAR ABOVE INTERSECTION
 				return rune(0x2a48), true
-			case "cupcap": 
-				// UNION ABOVE INTERSECTION
+			case "cupcap":                          // UNION ABOVE INTERSECTION
 				return rune(0x2a46), true
-			case "cupcup": 
-				// UNION BESIDE AND JOINED WITH UNION
+			case "cupcup":                          // UNION BESIDE AND JOINED WITH UNION
 				return rune(0x2a4a), true
-			case "cupdot": 
-				// MULTISET MULTIPLICATION
+			case "cupdot":                          // MULTISET MULTIPLICATION
 				return rune(0x228d), true
-			case "cupint": 
-				// INTEGRAL WITH UNION
+			case "cupint":                          // INTEGRAL WITH UNION
 				return rune(0x2a1a), true
-			case "cupor": 
-				// UNION WITH LOGICAL OR
+			case "cupor":                           // UNION WITH LOGICAL OR
 				return rune(0x2a45), true
-			case "cupre": 
-				// PRECEDES OR EQUAL TO
+			case "cupre":                           // PRECEDES OR EQUAL TO
 				return rune(0x227c), true
-			case "cups": 
-				// UNION with serifs
+			case "cups":                            // UNION with serifs
 				return rune(0x222a), true
-			case "curarr": 
-				// CLOCKWISE TOP SEMICIRCLE ARROW
+			case "curarr":                          // CLOCKWISE TOP SEMICIRCLE ARROW
 				return rune(0x21b7), true
-			case "curarrm": 
-				// TOP ARC CLOCKWISE ARROW WITH MINUS
+			case "curarrm":                         // TOP ARC CLOCKWISE ARROW WITH MINUS
 				return rune(0x293c), true
-			case "curlyeqprec": 
-				// EQUAL TO OR PRECEDES
+			case "curlyeqprec":                     // EQUAL TO OR PRECEDES
 				return rune(0x22de), true
-			case "curlyeqsucc": 
-				// EQUAL TO OR SUCCEEDS
+			case "curlyeqsucc":                     // EQUAL TO OR SUCCEEDS
 				return rune(0x22df), true
-			case "curlyvee": 
-				// CURLY LOGICAL OR
+			case "curlyvee":                        // CURLY LOGICAL OR
 				return rune(0x22ce), true
-			case "curlywedge": 
-				// CURLY LOGICAL AND
+			case "curlywedge":                      // CURLY LOGICAL AND
 				return rune(0x22cf), true
-			case "curren": 
-				// CURRENCY SIGN
+			case "curren":                          // CURRENCY SIGN
 				return rune(0xa4), true
-			case "curvearrowleft": 
-				// ANTICLOCKWISE TOP SEMICIRCLE ARROW
+			case "curvearrowleft":                  // ANTICLOCKWISE TOP SEMICIRCLE ARROW
 				return rune(0x21b6), true
-			case "curvearrowright": 
-				// CLOCKWISE TOP SEMICIRCLE ARROW
+			case "curvearrowright":                 // CLOCKWISE TOP SEMICIRCLE ARROW
 				return rune(0x21b7), true
-			case "cuvee": 
-				// CURLY LOGICAL OR
+			case "cuvee":                           // CURLY LOGICAL OR
 				return rune(0x22ce), true
-			case "cuwed": 
-				// CURLY LOGICAL AND
+			case "cuwed":                           // CURLY LOGICAL AND
 				return rune(0x22cf), true
-			case "cwconint": 
-				// CLOCKWISE CONTOUR INTEGRAL
+			case "cwconint":                        // CLOCKWISE CONTOUR INTEGRAL
 				return rune(0x2232), true
-			case "cwint": 
-				// CLOCKWISE INTEGRAL
+			case "cwint":                           // CLOCKWISE INTEGRAL
 				return rune(0x2231), true
-			case "cylcty": 
-				// CYLINDRICITY
+			case "cylcty":                          // CYLINDRICITY
 				return rune(0x232d), true
 		}
 
 	case 'd':
 		switch name {
-			case "dAarr": 
-				// DOWNWARDS TRIPLE ARROW
+			case "dAarr":                           // DOWNWARDS TRIPLE ARROW
 				return rune(0x290b), true
-			case "dArr": 
-				// DOWNWARDS DOUBLE ARROW
+			case "dArr":                            // DOWNWARDS DOUBLE ARROW
 				return rune(0x21d3), true
-			case "dHar": 
-				// DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+			case "dHar":                            // DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
 				return rune(0x2965), true
-			case "dagger": 
-				// DAGGER
+			case "dagger":                          // DAGGER
 				return rune(0x2020), true
-			case "dalembrt": 
-				// SQUARE WITH CONTOURED OUTLINE
+			case "dalembrt":                        // SQUARE WITH CONTOURED OUTLINE
 				return rune(0x29e0), true
-			case "daleth": 
-				// DALET SYMBOL
+			case "daleth":                          // DALET SYMBOL
 				return rune(0x2138), true
-			case "darr2": 
-				// DOWNWARDS PAIRED ARROWS
-				return rune(0x21ca), true
-			case "darr": 
-				// DOWNWARDS ARROW
+			case "darr":                            // DOWNWARDS ARROW
 				return rune(0x2193), true
-			case "darrb": 
-				// DOWNWARDS ARROW TO BAR
+			case "darr2":                           // DOWNWARDS PAIRED ARROWS
+				return rune(0x21ca), true
+			case "darrb":                           // DOWNWARDS ARROW TO BAR
 				return rune(0x2913), true
-			case "darrln": 
-				// DOWNWARDS ARROW WITH HORIZONTAL STROKE
+			case "darrln":                          // DOWNWARDS ARROW WITH HORIZONTAL STROKE
 				return rune(0x2908), true
-			case "dashv": 
-				// LEFT TACK
-				return rune(0x22a3), true
-			case "dash": 
-				// HYPHEN
+			case "dash":                            // HYPHEN
 				return rune(0x2010), true
-			case "dashV": 
-				// DOUBLE VERTICAL BAR LEFT TURNSTILE
+			case "dashV":                           // DOUBLE VERTICAL BAR LEFT TURNSTILE
 				return rune(0x2ae3), true
-			case "dbkarow": 
-				// RIGHTWARDS TRIPLE DASH ARROW
+			case "dashv":                           // LEFT TACK
+				return rune(0x22a3), true
+			case "dbkarow":                         // RIGHTWARDS TRIPLE DASH ARROW
 				return rune(0x290f), true
-			case "dblac": 
-				// DOUBLE ACUTE ACCENT
+			case "dblac":                           // DOUBLE ACUTE ACCENT
 				return rune(0x02dd), true
-			case "dcaron": 
-				// LATIN SMALL LETTER D WITH CARON
+			case "dcaron":                          // LATIN SMALL LETTER D WITH CARON
 				return rune(0x010f), true
-			case "dcy": 
-				// CYRILLIC SMALL LETTER DE
+			case "dcy":                             // CYRILLIC SMALL LETTER DE
 				return rune(0x0434), true
-			case "ddarr": 
-				// DOWNWARDS PAIRED ARROWS
-				return rune(0x21ca), true
-			case "dd": 
-				// DOUBLE-STRUCK ITALIC SMALL D
+			case "dd":                              // DOUBLE-STRUCK ITALIC SMALL D
 				return rune(0x2146), true
-			case "ddagger": 
-				// DOUBLE DAGGER
+			case "ddagger":                         // DOUBLE DAGGER
 				return rune(0x2021), true
-			case "ddotseq": 
-				// EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
+			case "ddarr":                           // DOWNWARDS PAIRED ARROWS
+				return rune(0x21ca), true
+			case "ddotseq":                         // EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
 				return rune(0x2a77), true
-			case "deg": 
-				// DEGREE SIGN
+			case "deg":                             // DEGREE SIGN
 				return rune(0xb0), true
-			case "delta": 
-				// GREEK SMALL LETTER DELTA
+			case "delta":                           // GREEK SMALL LETTER DELTA
 				return rune(0x03b4), true
-			case "demptyv": 
-				// EMPTY SET WITH OVERBAR
+			case "demptyv":                         // EMPTY SET WITH OVERBAR
 				return rune(0x29b1), true
-			case "dfisht": 
-				// DOWN FISH TAIL
+			case "dfisht":                          // DOWN FISH TAIL
 				return rune(0x297f), true
-			case "dfr": 
-				// MATHEMATICAL FRAKTUR SMALL D
+			case "dfr":                             // MATHEMATICAL FRAKTUR SMALL D
 				return rune(0x01d521), true
-			case "dgr": 
-				// GREEK SMALL LETTER DELTA
+			case "dgr":                             // GREEK SMALL LETTER DELTA
 				return rune(0x03b4), true
-			case "dharl": 
-				// DOWNWARDS HARPOON WITH BARB LEFTWARDS
+			case "dharl":                           // DOWNWARDS HARPOON WITH BARB LEFTWARDS
 				return rune(0x21c3), true
-			case "dharr": 
-				// DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+			case "dharr":                           // DOWNWARDS HARPOON WITH BARB RIGHTWARDS
 				return rune(0x21c2), true
-			case "diam": 
-				// DIAMOND OPERATOR
+			case "diam":                            // DIAMOND OPERATOR
 				return rune(0x22c4), true
-			case "diamdarr": 
-				// BLACK DIAMOND WITH DOWN ARROW
+			case "diamdarr":                        // BLACK DIAMOND WITH DOWN ARROW
 				return rune(0x29ea), true
-			case "diamerr": 
-				// ERROR-BARRED WHITE DIAMOND
+			case "diamerr":                         // ERROR-BARRED WHITE DIAMOND
 				return rune(0x29f0), true
-			case "diamerrf": 
-				// ERROR-BARRED BLACK DIAMOND
+			case "diamerrf":                        // ERROR-BARRED BLACK DIAMOND
 				return rune(0x29f1), true
-			case "diamond": 
-				// DIAMOND OPERATOR
+			case "diamond":                         // DIAMOND OPERATOR
 				return rune(0x22c4), true
-			case "diamondsuit": 
-				// BLACK DIAMOND SUIT
+			case "diamondsuit":                     // BLACK DIAMOND SUIT
 				return rune(0x2666), true
-			case "diams": 
-				// BLACK DIAMOND SUIT
+			case "diams":                           // BLACK DIAMOND SUIT
 				return rune(0x2666), true
-			case "die": 
-				// DIAERESIS
+			case "die":                             // DIAERESIS
 				return rune(0xa8), true
-			case "digamma": 
-				// GREEK SMALL LETTER DIGAMMA
+			case "digamma":                         // GREEK SMALL LETTER DIGAMMA
 				return rune(0x03dd), true
-			case "disin": 
-				// ELEMENT OF WITH LONG HORIZONTAL STROKE
+			case "disin":                           // ELEMENT OF WITH LONG HORIZONTAL STROKE
 				return rune(0x22f2), true
-			case "divideontimes": 
-				// DIVISION TIMES
-				return rune(0x22c7), true
-			case "divonx": 
-				// DIVISION TIMES
-				return rune(0x22c7), true
-			case "div": 
-				// DIVISION SIGN
+			case "div":                             // DIVISION SIGN
 				return rune(0xf7), true
-			case "divide": 
-				// DIVISION SIGN
+			case "divide":                          // DIVISION SIGN
 				return rune(0xf7), true
-			case "djcy": 
-				// CYRILLIC SMALL LETTER DJE
+			case "divideontimes":                   // DIVISION TIMES
+				return rune(0x22c7), true
+			case "divonx":                          // DIVISION TIMES
+				return rune(0x22c7), true
+			case "djcy":                            // CYRILLIC SMALL LETTER DJE
 				return rune(0x0452), true
-			case "dlarr": 
-				// SOUTH WEST ARROW
+			case "dlarr":                           // SOUTH WEST ARROW
 				return rune(0x2199), true
-			case "dlcorn": 
-				// BOTTOM LEFT CORNER
+			case "dlcorn":                          // BOTTOM LEFT CORNER
 				return rune(0x231e), true
-			case "dlcrop": 
-				// BOTTOM LEFT CROP
+			case "dlcrop":                          // BOTTOM LEFT CROP
 				return rune(0x230d), true
-			case "dlharb": 
-				// DOWNWARDS HARPOON WITH BARB LEFT TO BAR
+			case "dlharb":                          // DOWNWARDS HARPOON WITH BARB LEFT TO BAR
 				return rune(0x2959), true
-			case "dollar": 
-				// DOLLAR SIGN
+			case "dollar":                          // DOLLAR SIGN
 				return rune(0x24), true
-			case "dopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL D
+			case "dopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL D
 				return rune(0x01d555), true
-			case "doteq": 
-				// APPROACHES THE LIMIT
+			case "dot":                             // DOT ABOVE
+				return rune(0x02d9), true
+			case "doteq":                           // APPROACHES THE LIMIT
 				return rune(0x2250), true
-			case "doteqdot": 
-				// GEOMETRICALLY EQUAL TO
+			case "doteqdot":                        // GEOMETRICALLY EQUAL TO
 				return rune(0x2251), true
-			case "dotminus": 
-				// DOT MINUS
+			case "dotminus":                        // DOT MINUS
 				return rune(0x2238), true
-			case "dotplus": 
-				// DOT PLUS
+			case "dotplus":                         // DOT PLUS
 				return rune(0x2214), true
-			case "dotsquare": 
-				// SQUARED DOT OPERATOR
+			case "dotsquare":                       // SQUARED DOT OPERATOR
 				return rune(0x22a1), true
-			case "dot": 
-				// DOT ABOVE
-				return rune(0x02d9), true
-			case "doublebarwedge": 
-				// PERSPECTIVE
+			case "doublebarwedge":                  // PERSPECTIVE
 				return rune(0x2306), true
-			case "downarrow": 
-				// DOWNWARDS ARROW
+			case "downarrow":                       // DOWNWARDS ARROW
 				return rune(0x2193), true
-			case "downdownarrows": 
-				// DOWNWARDS PAIRED ARROWS
+			case "downdownarrows":                  // DOWNWARDS PAIRED ARROWS
 				return rune(0x21ca), true
-			case "downharpoonleft": 
-				// DOWNWARDS HARPOON WITH BARB LEFTWARDS
+			case "downharpoonleft":                 // DOWNWARDS HARPOON WITH BARB LEFTWARDS
 				return rune(0x21c3), true
-			case "downharpoonright": 
-				// DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+			case "downharpoonright":                // DOWNWARDS HARPOON WITH BARB RIGHTWARDS
 				return rune(0x21c2), true
-			case "drarr": 
-				// SOUTH EAST ARROW
+			case "drarr":                           // SOUTH EAST ARROW
 				return rune(0x2198), true
-			case "drbkarow": 
-				// RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
+			case "drbkarow":                        // RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
 				return rune(0x2910), true
-			case "drcorn": 
-				// BOTTOM RIGHT CORNER
+			case "drcorn":                          // BOTTOM RIGHT CORNER
 				return rune(0x231f), true
-			case "drcrop": 
-				// BOTTOM RIGHT CROP
+			case "drcrop":                          // BOTTOM RIGHT CROP
 				return rune(0x230c), true
-			case "drharb": 
-				// DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
+			case "drharb":                          // DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
 				return rune(0x2955), true
-			case "dscr": 
-				// MATHEMATICAL SCRIPT SMALL D
+			case "dscr":                            // MATHEMATICAL SCRIPT SMALL D
 				return rune(0x01d4b9), true
-			case "dscy": 
-				// CYRILLIC SMALL LETTER DZE
+			case "dscy":                            // CYRILLIC SMALL LETTER DZE
 				return rune(0x0455), true
-			case "dsol": 
-				// SOLIDUS WITH OVERBAR
+			case "dsol":                            // SOLIDUS WITH OVERBAR
 				return rune(0x29f6), true
-			case "dstrok": 
-				// LATIN SMALL LETTER D WITH STROKE
+			case "dstrok":                          // LATIN SMALL LETTER D WITH STROKE
 				return rune(0x0111), true
-			case "dtdot": 
-				// DOWN RIGHT DIAGONAL ELLIPSIS
+			case "dtdot":                           // DOWN RIGHT DIAGONAL ELLIPSIS
 				return rune(0x22f1), true
-			case "dtrif": 
-				// BLACK DOWN-POINTING SMALL TRIANGLE
-				return rune(0x25be), true
-			case "dtri": 
-				// WHITE DOWN-POINTING SMALL TRIANGLE
+			case "dtri":                            // WHITE DOWN-POINTING SMALL TRIANGLE
 				return rune(0x25bf), true
-			case "dtrilf": 
-				// DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
+			case "dtrif":                           // BLACK DOWN-POINTING SMALL TRIANGLE
+				return rune(0x25be), true
+			case "dtrilf":                          // DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
 				return rune(0x29e8), true
-			case "dtrirf": 
-				// DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
+			case "dtrirf":                          // DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
 				return rune(0x29e9), true
-			case "duarr": 
-				// DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
+			case "duarr":                           // DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
 				return rune(0x21f5), true
-			case "duhar": 
-				// DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+			case "duhar":                           // DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
 				return rune(0x296f), true
-			case "dumap": 
-				// DOUBLE-ENDED MULTIMAP
+			case "dumap":                           // DOUBLE-ENDED MULTIMAP
 				return rune(0x29df), true
-			case "dwangle": 
-				// OBLIQUE ANGLE OPENING UP
+			case "dwangle":                         // OBLIQUE ANGLE OPENING UP
 				return rune(0x29a6), true
-			case "dzcy": 
-				// CYRILLIC SMALL LETTER DZHE
+			case "dzcy":                            // CYRILLIC SMALL LETTER DZHE
 				return rune(0x045f), true
-			case "dzigrarr": 
-				// LONG RIGHTWARDS SQUIGGLE ARROW
+			case "dzigrarr":                        // LONG RIGHTWARDS SQUIGGLE ARROW
 				return rune(0x27ff), true
 		}
 
 	case 'e':
 		switch name {
-			case "eDDot": 
-				// EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
+			case "eDDot":                           // EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
 				return rune(0x2a77), true
-			case "eDot": 
-				// GEOMETRICALLY EQUAL TO
+			case "eDot":                            // GEOMETRICALLY EQUAL TO
 				return rune(0x2251), true
-			case "eacgr": 
-				// GREEK SMALL LETTER EPSILON WITH TONOS
+			case "eacgr":                           // GREEK SMALL LETTER EPSILON WITH TONOS
 				return rune(0x03ad), true
-			case "eacute": 
-				// LATIN SMALL LETTER E WITH ACUTE
+			case "eacute":                          // LATIN SMALL LETTER E WITH ACUTE
 				return rune(0xe9), true
-			case "easter": 
-				// EQUALS WITH ASTERISK
+			case "easter":                          // EQUALS WITH ASTERISK
 				return rune(0x2a6e), true
-			case "ecaron": 
-				// LATIN SMALL LETTER E WITH CARON
+			case "ecaron":                          // LATIN SMALL LETTER E WITH CARON
 				return rune(0x011b), true
-			case "ecir": 
-				// RING IN EQUAL TO
+			case "ecir":                            // RING IN EQUAL TO
 				return rune(0x2256), true
-			case "ecirc": 
-				// LATIN SMALL LETTER E WITH CIRCUMFLEX
+			case "ecirc":                           // LATIN SMALL LETTER E WITH CIRCUMFLEX
 				return rune(0xea), true
-			case "ecolon": 
-				// EQUALS COLON
+			case "ecolon":                          // EQUALS COLON
 				return rune(0x2255), true
-			case "ecy": 
-				// CYRILLIC SMALL LETTER E
+			case "ecy":                             // CYRILLIC SMALL LETTER E
 				return rune(0x044d), true
-			case "edot": 
-				// LATIN SMALL LETTER E WITH DOT ABOVE
+			case "edot":                            // LATIN SMALL LETTER E WITH DOT ABOVE
 				return rune(0x0117), true
-			case "ee": 
-				// DOUBLE-STRUCK ITALIC SMALL E
+			case "ee":                              // DOUBLE-STRUCK ITALIC SMALL E
 				return rune(0x2147), true
-			case "eeacgr": 
-				// GREEK SMALL LETTER ETA WITH TONOS
+			case "eeacgr":                          // GREEK SMALL LETTER ETA WITH TONOS
 				return rune(0x03ae), true
-			case "eegr": 
-				// GREEK SMALL LETTER ETA
+			case "eegr":                            // GREEK SMALL LETTER ETA
 				return rune(0x03b7), true
-			case "efDot": 
-				// APPROXIMATELY EQUAL TO OR THE IMAGE OF
+			case "efDot":                           // APPROXIMATELY EQUAL TO OR THE IMAGE OF
 				return rune(0x2252), true
-			case "efr": 
-				// MATHEMATICAL FRAKTUR SMALL E
+			case "efr":                             // MATHEMATICAL FRAKTUR SMALL E
 				return rune(0x01d522), true
-			case "egr": 
-				// GREEK SMALL LETTER EPSILON
+			case "eg":                              // DOUBLE-LINE EQUAL TO OR GREATER-THAN
+				return rune(0x2a9a), true
+			case "egr":                             // GREEK SMALL LETTER EPSILON
 				return rune(0x03b5), true
-			case "egs": 
-				// SLANTED EQUAL TO OR GREATER-THAN
+			case "egrave":                          // LATIN SMALL LETTER E WITH GRAVE
+				return rune(0xe8), true
+			case "egs":                             // SLANTED EQUAL TO OR GREATER-THAN
 				return rune(0x2a96), true
-			case "egsdot": 
-				// SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
+			case "egsdot":                          // SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
 				return rune(0x2a98), true
-			case "eg": 
-				// DOUBLE-LINE EQUAL TO OR GREATER-THAN
-				return rune(0x2a9a), true
-			case "egrave": 
-				// LATIN SMALL LETTER E WITH GRAVE
-				return rune(0xe8), true
-			case "elinters": 
-				// ELECTRICAL INTERSECTION
+			case "el":                              // DOUBLE-LINE EQUAL TO OR LESS-THAN
+				return rune(0x2a99), true
+			case "elinters":                        // ELECTRICAL INTERSECTION
 				return rune(0x23e7), true
-			case "ell": 
-				// SCRIPT SMALL L
+			case "ell":                             // SCRIPT SMALL L
 				return rune(0x2113), true
-			case "els": 
-				// SLANTED EQUAL TO OR LESS-THAN
+			case "els":                             // SLANTED EQUAL TO OR LESS-THAN
 				return rune(0x2a95), true
-			case "elsdot": 
-				// SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
+			case "elsdot":                          // SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
 				return rune(0x2a97), true
-			case "el": 
-				// DOUBLE-LINE EQUAL TO OR LESS-THAN
-				return rune(0x2a99), true
-			case "emacr": 
-				// LATIN SMALL LETTER E WITH MACRON
+			case "emacr":                           // LATIN SMALL LETTER E WITH MACRON
 				return rune(0x0113), true
-			case "empty": 
-				// EMPTY SET
+			case "empty":                           // EMPTY SET
 				return rune(0x2205), true
-			case "emptyset": 
-				// EMPTY SET
+			case "emptyset":                        // EMPTY SET
 				return rune(0x2205), true
-			case "emptyv": 
-				// EMPTY SET
+			case "emptyv":                          // EMPTY SET
 				return rune(0x2205), true
-			case "emsp13": 
-				// THREE-PER-EM SPACE
+			case "emsp":                            // EM SPACE
+				return rune(0x2003), true
+			case "emsp13":                          // THREE-PER-EM SPACE
 				return rune(0x2004), true
-			case "emsp14": 
-				// FOUR-PER-EM SPACE
+			case "emsp14":                          // FOUR-PER-EM SPACE
 				return rune(0x2005), true
-			case "emsp": 
-				// EM SPACE
-				return rune(0x2003), true
-			case "eng": 
-				// LATIN SMALL LETTER ENG
+			case "eng":                             // LATIN SMALL LETTER ENG
 				return rune(0x014b), true
-			case "ensp": 
-				// EN SPACE
+			case "ensp":                            // EN SPACE
 				return rune(0x2002), true
-			case "eogon": 
-				// LATIN SMALL LETTER E WITH OGONEK
+			case "eogon":                           // LATIN SMALL LETTER E WITH OGONEK
 				return rune(0x0119), true
-			case "eopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL E
+			case "eopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL E
 				return rune(0x01d556), true
-			case "epar": 
-				// EQUAL AND PARALLEL TO
+			case "epar":                            // EQUAL AND PARALLEL TO
 				return rune(0x22d5), true
-			case "eparsl": 
-				// EQUALS SIGN AND SLANTED PARALLEL
+			case "eparsl":                          // EQUALS SIGN AND SLANTED PARALLEL
 				return rune(0x29e3), true
-			case "eplus": 
-				// EQUALS SIGN ABOVE PLUS SIGN
+			case "eplus":                           // EQUALS SIGN ABOVE PLUS SIGN
 				return rune(0x2a71), true
-			case "epsilon": 
-				// GREEK SMALL LETTER EPSILON
+			case "epsi":                            // GREEK SMALL LETTER EPSILON
+				return rune(0x03b5), true
+			case "epsilon":                         // GREEK SMALL LETTER EPSILON
 				return rune(0x03b5), true
-			case "epsis": 
-				// GREEK LUNATE EPSILON SYMBOL
+			case "epsis":                           // GREEK LUNATE EPSILON SYMBOL
 				return rune(0x03f5), true
-			case "epsiv": 
-				// GREEK LUNATE EPSILON SYMBOL
+			case "epsiv":                           // GREEK LUNATE EPSILON SYMBOL
 				return rune(0x03f5), true
-			case "epsi": 
-				// GREEK SMALL LETTER EPSILON
-				return rune(0x03b5), true
-			case "eqcirc": 
-				// RING IN EQUAL TO
+			case "eqcirc":                          // RING IN EQUAL TO
 				return rune(0x2256), true
-			case "eqcolon": 
-				// EQUALS COLON
+			case "eqcolon":                         // EQUALS COLON
 				return rune(0x2255), true
-			case "eqeq": 
-				// TWO CONSECUTIVE EQUALS SIGNS
+			case "eqeq":                            // TWO CONSECUTIVE EQUALS SIGNS
 				return rune(0x2a75), true
-			case "eqsim": 
-				// MINUS TILDE
+			case "eqsim":                           // MINUS TILDE
 				return rune(0x2242), true
-			case "eqslantgtr": 
-				// SLANTED EQUAL TO OR GREATER-THAN
+			case "eqslantgtr":                      // SLANTED EQUAL TO OR GREATER-THAN
 				return rune(0x2a96), true
-			case "eqslantless": 
-				// SLANTED EQUAL TO OR LESS-THAN
+			case "eqslantless":                     // SLANTED EQUAL TO OR LESS-THAN
 				return rune(0x2a95), true
-			case "equals": 
-				// EQUALS SIGN
+			case "equals":                          // EQUALS SIGN
 				return rune(0x3d), true
-			case "equest": 
-				// QUESTIONED EQUAL TO
+			case "equest":                          // QUESTIONED EQUAL TO
 				return rune(0x225f), true
-			case "equiv": 
-				// IDENTICAL TO
+			case "equiv":                           // IDENTICAL TO
 				return rune(0x2261), true
-			case "equivDD": 
-				// EQUIVALENT WITH FOUR DOTS ABOVE
+			case "equivDD":                         // EQUIVALENT WITH FOUR DOTS ABOVE
 				return rune(0x2a78), true
-			case "eqvparsl": 
-				// IDENTICAL TO AND SLANTED PARALLEL
+			case "eqvparsl":                        // IDENTICAL TO AND SLANTED PARALLEL
 				return rune(0x29e5), true
-			case "erDot": 
-				// IMAGE OF OR APPROXIMATELY EQUAL TO
+			case "erDot":                           // IMAGE OF OR APPROXIMATELY EQUAL TO
 				return rune(0x2253), true
-			case "erarr": 
-				// EQUALS SIGN ABOVE RIGHTWARDS ARROW
+			case "erarr":                           // EQUALS SIGN ABOVE RIGHTWARDS ARROW
 				return rune(0x2971), true
-			case "escr": 
-				// SCRIPT SMALL E
+			case "escr":                            // SCRIPT SMALL E
 				return rune(0x212f), true
-			case "esdot": 
-				// APPROACHES THE LIMIT
+			case "esdot":                           // APPROACHES THE LIMIT
 				return rune(0x2250), true
-			case "esim": 
-				// MINUS TILDE
+			case "esim":                            // MINUS TILDE
 				return rune(0x2242), true
-			case "eta": 
-				// GREEK SMALL LETTER ETA
+			case "eta":                             // GREEK SMALL LETTER ETA
 				return rune(0x03b7), true
-			case "eth": 
-				// LATIN SMALL LETTER ETH
+			case "eth":                             // LATIN SMALL LETTER ETH
 				return rune(0xf0), true
-			case "euml": 
-				// LATIN SMALL LETTER E WITH DIAERESIS
+			case "euml":                            // LATIN SMALL LETTER E WITH DIAERESIS
 				return rune(0xeb), true
-			case "euro": 
-				// EURO SIGN
+			case "euro":                            // EURO SIGN
 				return rune(0x20ac), true
-			case "excl": 
-				// EXCLAMATION MARK
+			case "excl":                            // EXCLAMATION MARK
 				return rune(0x21), true
-			case "exist": 
-				// THERE EXISTS
+			case "exist":                           // THERE EXISTS
 				return rune(0x2203), true
-			case "expectation": 
-				// SCRIPT CAPITAL E
+			case "expectation":                     // SCRIPT CAPITAL E
 				return rune(0x2130), true
-			case "exponentiale": 
-				// DOUBLE-STRUCK ITALIC SMALL E
+			case "exponentiale":                    // DOUBLE-STRUCK ITALIC SMALL E
 				return rune(0x2147), true
 		}
 
 	case 'f':
 		switch name {
-			case "fallingdotseq": 
-				// APPROXIMATELY EQUAL TO OR THE IMAGE OF
+			case "fallingdotseq":                   // APPROXIMATELY EQUAL TO OR THE IMAGE OF
 				return rune(0x2252), true
-			case "fbowtie": 
-				// BLACK BOWTIE
+			case "fbowtie":                         // BLACK BOWTIE
 				return rune(0x29d3), true
-			case "fcy": 
-				// CYRILLIC SMALL LETTER EF
+			case "fcy":                             // CYRILLIC SMALL LETTER EF
 				return rune(0x0444), true
-			case "fdiag": 
-				// BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+			case "fdiag":                           // BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
 				return rune(0x2572), true
-			case "fdiordi": 
-				// FALLING DIAGONAL CROSSING RISING DIAGONAL
+			case "fdiordi":                         // FALLING DIAGONAL CROSSING RISING DIAGONAL
 				return rune(0x292c), true
-			case "fdonearr": 
-				// FALLING DIAGONAL CROSSING NORTH EAST ARROW
+			case "fdonearr":                        // FALLING DIAGONAL CROSSING NORTH EAST ARROW
 				return rune(0x292f), true
-			case "female": 
-				// FEMALE SIGN
+			case "female":                          // FEMALE SIGN
 				return rune(0x2640), true
-			case "ffilig": 
-				// LATIN SMALL LIGATURE FFI
+			case "ffilig":                          // LATIN SMALL LIGATURE FFI
 				return rune(0xfb03), true
-			case "fflig": 
-				// LATIN SMALL LIGATURE FF
+			case "fflig":                           // LATIN SMALL LIGATURE FF
 				return rune(0xfb00), true
-			case "ffllig": 
-				// LATIN SMALL LIGATURE FFL
+			case "ffllig":                          // LATIN SMALL LIGATURE FFL
 				return rune(0xfb04), true
-			case "ffr": 
-				// MATHEMATICAL FRAKTUR SMALL F
+			case "ffr":                             // MATHEMATICAL FRAKTUR SMALL F
 				return rune(0x01d523), true
-			case "fhrglass": 
-				// BLACK HOURGLASS
+			case "fhrglass":                        // BLACK HOURGLASS
 				return rune(0x29d7), true
-			case "filig": 
-				// LATIN SMALL LIGATURE FI
+			case "filig":                           // LATIN SMALL LIGATURE FI
 				return rune(0xfb01), true
-			case "fjlig": 
-				// fj ligature
+			case "fjlig":                           // fj ligature
 				return rune(0x66), true
-			case "flat": 
-				// MUSIC FLAT SIGN
+			case "flat":                            // MUSIC FLAT SIGN
 				return rune(0x266d), true
-			case "fllig": 
-				// LATIN SMALL LIGATURE FL
+			case "fllig":                           // LATIN SMALL LIGATURE FL
 				return rune(0xfb02), true
-			case "fltns": 
-				// WHITE PARALLELOGRAM
+			case "fltns":                           // WHITE PARALLELOGRAM
 				return rune(0x25b1), true
-			case "fnof": 
-				// LATIN SMALL LETTER F WITH HOOK
+			case "fnof":                            // LATIN SMALL LETTER F WITH HOOK
 				return rune(0x0192), true
-			case "fopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL F
+			case "fopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL F
 				return rune(0x01d557), true
-			case "forall": 
-				// FOR ALL
+			case "forall":                          // FOR ALL
 				return rune(0x2200), true
-			case "fork": 
-				// PITCHFORK
+			case "fork":                            // PITCHFORK
 				return rune(0x22d4), true
-			case "forkv": 
-				// ELEMENT OF OPENING DOWNWARDS
+			case "forkv":                           // ELEMENT OF OPENING DOWNWARDS
 				return rune(0x2ad9), true
-			case "fpartint": 
-				// FINITE PART INTEGRAL
+			case "fpartint":                        // FINITE PART INTEGRAL
 				return rune(0x2a0d), true
-			case "frac12": 
-				// VULGAR FRACTION ONE HALF
+			case "frac12":                          // VULGAR FRACTION ONE HALF
 				return rune(0xbd), true
-			case "frac13": 
-				// VULGAR FRACTION ONE THIRD
+			case "frac13":                          // VULGAR FRACTION ONE THIRD
 				return rune(0x2153), true
-			case "frac14": 
-				// VULGAR FRACTION ONE QUARTER
+			case "frac14":                          // VULGAR FRACTION ONE QUARTER
 				return rune(0xbc), true
-			case "frac15": 
-				// VULGAR FRACTION ONE FIFTH
+			case "frac15":                          // VULGAR FRACTION ONE FIFTH
 				return rune(0x2155), true
-			case "frac16": 
-				// VULGAR FRACTION ONE SIXTH
+			case "frac16":                          // VULGAR FRACTION ONE SIXTH
 				return rune(0x2159), true
-			case "frac18": 
-				// VULGAR FRACTION ONE EIGHTH
+			case "frac18":                          // VULGAR FRACTION ONE EIGHTH
 				return rune(0x215b), true
-			case "frac23": 
-				// VULGAR FRACTION TWO THIRDS
+			case "frac23":                          // VULGAR FRACTION TWO THIRDS
 				return rune(0x2154), true
-			case "frac25": 
-				// VULGAR FRACTION TWO FIFTHS
+			case "frac25":                          // VULGAR FRACTION TWO FIFTHS
 				return rune(0x2156), true
-			case "frac34": 
-				// VULGAR FRACTION THREE QUARTERS
+			case "frac34":                          // VULGAR FRACTION THREE QUARTERS
 				return rune(0xbe), true
-			case "frac35": 
-				// VULGAR FRACTION THREE FIFTHS
+			case "frac35":                          // VULGAR FRACTION THREE FIFTHS
 				return rune(0x2157), true
-			case "frac38": 
-				// VULGAR FRACTION THREE EIGHTHS
+			case "frac38":                          // VULGAR FRACTION THREE EIGHTHS
 				return rune(0x215c), true
-			case "frac45": 
-				// VULGAR FRACTION FOUR FIFTHS
+			case "frac45":                          // VULGAR FRACTION FOUR FIFTHS
 				return rune(0x2158), true
-			case "frac56": 
-				// VULGAR FRACTION FIVE SIXTHS
+			case "frac56":                          // VULGAR FRACTION FIVE SIXTHS
 				return rune(0x215a), true
-			case "frac58": 
-				// VULGAR FRACTION FIVE EIGHTHS
+			case "frac58":                          // VULGAR FRACTION FIVE EIGHTHS
 				return rune(0x215d), true
-			case "frac78": 
-				// VULGAR FRACTION SEVEN EIGHTHS
+			case "frac78":                          // VULGAR FRACTION SEVEN EIGHTHS
 				return rune(0x215e), true
-			case "frasl": 
-				// FRACTION SLASH
+			case "frasl":                           // FRACTION SLASH
 				return rune(0x2044), true
-			case "frown": 
-				// FROWN
+			case "frown":                           // FROWN
 				return rune(0x2322), true
-			case "fscr": 
-				// MATHEMATICAL SCRIPT SMALL F
+			case "fscr":                            // MATHEMATICAL SCRIPT SMALL F
 				return rune(0x01d4bb), true
 		}
 
 	case 'g':
 		switch name {
-			case "gE": 
-				// GREATER-THAN OVER EQUAL TO
+			case "gE":                              // GREATER-THAN OVER EQUAL TO
 				return rune(0x2267), true
-			case "gEl": 
-				// GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
+			case "gEl":                             // GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
 				return rune(0x2a8c), true
-			case "gacute": 
-				// LATIN SMALL LETTER G WITH ACUTE
+			case "gacute":                          // LATIN SMALL LETTER G WITH ACUTE
 				return rune(0x01f5), true
-			case "gammad": 
-				// GREEK SMALL LETTER DIGAMMA
-				return rune(0x03dd), true
-			case "gamma": 
-				// GREEK SMALL LETTER GAMMA
+			case "gamma":                           // GREEK SMALL LETTER GAMMA
 				return rune(0x03b3), true
-			case "gap": 
-				// GREATER-THAN OR APPROXIMATE
+			case "gammad":                          // GREEK SMALL LETTER DIGAMMA
+				return rune(0x03dd), true
+			case "gap":                             // GREATER-THAN OR APPROXIMATE
 				return rune(0x2a86), true
-			case "gbreve": 
-				// LATIN SMALL LETTER G WITH BREVE
+			case "gbreve":                          // LATIN SMALL LETTER G WITH BREVE
 				return rune(0x011f), true
-			case "gcedil": 
-				// LATIN SMALL LETTER G WITH CEDILLA
+			case "gcedil":                          // LATIN SMALL LETTER G WITH CEDILLA
 				return rune(0x0123), true
-			case "gcirc": 
-				// LATIN SMALL LETTER G WITH CIRCUMFLEX
+			case "gcirc":                           // LATIN SMALL LETTER G WITH CIRCUMFLEX
 				return rune(0x011d), true
-			case "gcy": 
-				// CYRILLIC SMALL LETTER GHE
+			case "gcy":                             // CYRILLIC SMALL LETTER GHE
 				return rune(0x0433), true
-			case "gdot": 
-				// LATIN SMALL LETTER G WITH DOT ABOVE
+			case "gdot":                            // LATIN SMALL LETTER G WITH DOT ABOVE
 				return rune(0x0121), true
-			case "ge": 
-				// GREATER-THAN OR EQUAL TO
+			case "ge":                              // GREATER-THAN OR EQUAL TO
 				return rune(0x2265), true
-			case "gel": 
-				// GREATER-THAN EQUAL TO OR LESS-THAN
+			case "gel":                             // GREATER-THAN EQUAL TO OR LESS-THAN
 				return rune(0x22db), true
-			case "geq": 
-				// GREATER-THAN OR EQUAL TO
+			case "geq":                             // GREATER-THAN OR EQUAL TO
 				return rune(0x2265), true
-			case "geqq": 
-				// GREATER-THAN OVER EQUAL TO
+			case "geqq":                            // GREATER-THAN OVER EQUAL TO
 				return rune(0x2267), true
-			case "geqslant": 
-				// GREATER-THAN OR SLANTED EQUAL TO
+			case "geqslant":                        // GREATER-THAN OR SLANTED EQUAL TO
 				return rune(0x2a7e), true
-			case "gesl": 
-				// GREATER-THAN slanted EQUAL TO OR LESS-THAN
-				return rune(0x22db), true
-			case "ges": 
-				// GREATER-THAN OR SLANTED EQUAL TO
+			case "ges":                             // GREATER-THAN OR SLANTED EQUAL TO
 				return rune(0x2a7e), true
-			case "gescc": 
-				// GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+			case "gescc":                           // GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
 				return rune(0x2aa9), true
-			case "gesdot": 
-				// GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+			case "gesdot":                          // GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
 				return rune(0x2a80), true
-			case "gesdoto": 
-				// GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+			case "gesdoto":                         // GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
 				return rune(0x2a82), true
-			case "gesdotol": 
-				// GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
+			case "gesdotol":                        // GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
 				return rune(0x2a84), true
-			case "gesles": 
-				// GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
+			case "gesl":                            // GREATER-THAN slanted EQUAL TO OR LESS-THAN
+				return rune(0x22db), true
+			case "gesles":                          // GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
 				return rune(0x2a94), true
-			case "gfr": 
-				// MATHEMATICAL FRAKTUR SMALL G
+			case "gfr":                             // MATHEMATICAL FRAKTUR SMALL G
 				return rune(0x01d524), true
-			case "gg": 
-				// MUCH GREATER-THAN
+			case "gg":                              // MUCH GREATER-THAN
 				return rune(0x226b), true
-			case "ggg": 
-				// VERY MUCH GREATER-THAN
+			case "ggg":                             // VERY MUCH GREATER-THAN
 				return rune(0x22d9), true
-			case "ggr": 
-				// GREEK SMALL LETTER GAMMA
+			case "ggr":                             // GREEK SMALL LETTER GAMMA
 				return rune(0x03b3), true
-			case "gimel": 
-				// GIMEL SYMBOL
+			case "gimel":                           // GIMEL SYMBOL
 				return rune(0x2137), true
-			case "gjcy": 
-				// CYRILLIC SMALL LETTER GJE
+			case "gjcy":                            // CYRILLIC SMALL LETTER GJE
 				return rune(0x0453), true
-			case "gl": 
-				// GREATER-THAN OR LESS-THAN
+			case "gl":                              // GREATER-THAN OR LESS-THAN
 				return rune(0x2277), true
-			case "glE": 
-				// GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
+			case "glE":                             // GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
 				return rune(0x2a92), true
-			case "gla": 
-				// GREATER-THAN BESIDE LESS-THAN
+			case "gla":                             // GREATER-THAN BESIDE LESS-THAN
 				return rune(0x2aa5), true
-			case "glj": 
-				// GREATER-THAN OVERLAPPING LESS-THAN
+			case "glj":                             // GREATER-THAN OVERLAPPING LESS-THAN
 				return rune(0x2aa4), true
-			case "gnE": 
-				// GREATER-THAN BUT NOT EQUAL TO
+			case "gnE":                             // GREATER-THAN BUT NOT EQUAL TO
 				return rune(0x2269), true
-			case "gnap": 
-				// GREATER-THAN AND NOT APPROXIMATE
+			case "gnap":                            // GREATER-THAN AND NOT APPROXIMATE
 				return rune(0x2a8a), true
-			case "gnapprox": 
-				// GREATER-THAN AND NOT APPROXIMATE
+			case "gnapprox":                        // GREATER-THAN AND NOT APPROXIMATE
 				return rune(0x2a8a), true
-			case "gneqq": 
-				// GREATER-THAN BUT NOT EQUAL TO
-				return rune(0x2269), true
-			case "gne": 
-				// GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
+			case "gne":                             // GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
 				return rune(0x2a88), true
-			case "gneq": 
-				// GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
+			case "gneq":                            // GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
 				return rune(0x2a88), true
-			case "gnsim": 
-				// GREATER-THAN BUT NOT EQUIVALENT TO
+			case "gneqq":                           // GREATER-THAN BUT NOT EQUAL TO
+				return rune(0x2269), true
+			case "gnsim":                           // GREATER-THAN BUT NOT EQUIVALENT TO
 				return rune(0x22e7), true
-			case "gopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL G
+			case "gopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL G
 				return rune(0x01d558), true
-			case "grave": 
-				// GRAVE ACCENT
+			case "grave":                           // GRAVE ACCENT
 				return rune(0x60), true
-			case "gscr": 
-				// SCRIPT SMALL G
+			case "gscr":                            // SCRIPT SMALL G
 				return rune(0x210a), true
-			case "gsdot": 
-				// GREATER-THAN WITH DOT
+			case "gsdot":                           // GREATER-THAN WITH DOT
 				return rune(0x22d7), true
-			case "gsim": 
-				// GREATER-THAN OR EQUIVALENT TO
+			case "gsim":                            // GREATER-THAN OR EQUIVALENT TO
 				return rune(0x2273), true
-			case "gsime": 
-				// GREATER-THAN ABOVE SIMILAR OR EQUAL
+			case "gsime":                           // GREATER-THAN ABOVE SIMILAR OR EQUAL
 				return rune(0x2a8e), true
-			case "gsiml": 
-				// GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
+			case "gsiml":                           // GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
 				return rune(0x2a90), true
-			case "gtcc": 
-				// GREATER-THAN CLOSED BY CURVE
+			case "gt":                              // GREATER-THAN SIGN
+				return rune(0x3e), true
+			case "gtcc":                            // GREATER-THAN CLOSED BY CURVE
 				return rune(0x2aa7), true
-			case "gtcir": 
-				// GREATER-THAN WITH CIRCLE INSIDE
+			case "gtcir":                           // GREATER-THAN WITH CIRCLE INSIDE
 				return rune(0x2a7a), true
-			case "gtdot": 
-				// GREATER-THAN WITH DOT
+			case "gtdot":                           // GREATER-THAN WITH DOT
 				return rune(0x22d7), true
-			case "gtlPar": 
-				// DOUBLE LEFT ARC GREATER-THAN BRACKET
+			case "gtlPar":                          // DOUBLE LEFT ARC GREATER-THAN BRACKET
 				return rune(0x2995), true
-			case "gtquest": 
-				// GREATER-THAN WITH QUESTION MARK ABOVE
+			case "gtquest":                         // GREATER-THAN WITH QUESTION MARK ABOVE
 				return rune(0x2a7c), true
-			case "gtrapprox": 
-				// GREATER-THAN OR APPROXIMATE
+			case "gtrapprox":                       // GREATER-THAN OR APPROXIMATE
 				return rune(0x2a86), true
-			case "gtrarr": 
-				// GREATER-THAN ABOVE RIGHTWARDS ARROW
+			case "gtrarr":                          // GREATER-THAN ABOVE RIGHTWARDS ARROW
 				return rune(0x2978), true
-			case "gtrdot": 
-				// GREATER-THAN WITH DOT
+			case "gtrdot":                          // GREATER-THAN WITH DOT
 				return rune(0x22d7), true
-			case "gtreqless": 
-				// GREATER-THAN EQUAL TO OR LESS-THAN
+			case "gtreqless":                       // GREATER-THAN EQUAL TO OR LESS-THAN
 				return rune(0x22db), true
-			case "gtreqqless": 
-				// GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
+			case "gtreqqless":                      // GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
 				return rune(0x2a8c), true
-			case "gtrless": 
-				// GREATER-THAN OR LESS-THAN
+			case "gtrless":                         // GREATER-THAN OR LESS-THAN
 				return rune(0x2277), true
-			case "gtrpar": 
-				// SPHERICAL ANGLE OPENING LEFT
+			case "gtrpar":                          // SPHERICAL ANGLE OPENING LEFT
 				return rune(0x29a0), true
-			case "gtrsim": 
-				// GREATER-THAN OR EQUIVALENT TO
+			case "gtrsim":                          // GREATER-THAN OR EQUIVALENT TO
 				return rune(0x2273), true
-			case "gt": 
-				// GREATER-THAN SIGN
-				return rune(0x3e), true
-			case "gvertneqq": 
-				// GREATER-THAN BUT NOT EQUAL TO - with vertical stroke
+			case "gvertneqq":                       // GREATER-THAN BUT NOT EQUAL TO - with vertical stroke
 				return rune(0x2269), true
-			case "gvnE": 
-				// GREATER-THAN BUT NOT EQUAL TO - with vertical stroke
+			case "gvnE":                            // GREATER-THAN BUT NOT EQUAL TO - with vertical stroke
 				return rune(0x2269), true
 		}
 
 	case 'h':
 		switch name {
-			case "hArr": 
-				// LEFT RIGHT DOUBLE ARROW
+			case "hArr":                            // LEFT RIGHT DOUBLE ARROW
 				return rune(0x21d4), true
-			case "hairsp": 
-				// HAIR SPACE
+			case "hairsp":                          // HAIR SPACE
 				return rune(0x200a), true
-			case "half": 
-				// VULGAR FRACTION ONE HALF
+			case "half":                            // VULGAR FRACTION ONE HALF
 				return rune(0xbd), true
-			case "hamilt": 
-				// SCRIPT CAPITAL H
+			case "hamilt":                          // SCRIPT CAPITAL H
 				return rune(0x210b), true
-			case "hardcy": 
-				// CYRILLIC SMALL LETTER HARD SIGN
+			case "hardcy":                          // CYRILLIC SMALL LETTER HARD SIGN
 				return rune(0x044a), true
-			case "harrw": 
-				// LEFT RIGHT WAVE ARROW
-				return rune(0x21ad), true
-			case "harr": 
-				// LEFT RIGHT ARROW
+			case "harr":                            // LEFT RIGHT ARROW
 				return rune(0x2194), true
-			case "harrcir": 
-				// LEFT RIGHT ARROW THROUGH SMALL CIRCLE
+			case "harrcir":                         // LEFT RIGHT ARROW THROUGH SMALL CIRCLE
 				return rune(0x2948), true
-			case "hbar": 
-				// PLANCK CONSTANT OVER TWO PI
+			case "harrw":                           // LEFT RIGHT WAVE ARROW
+				return rune(0x21ad), true
+			case "hbar":                            // PLANCK CONSTANT OVER TWO PI
 				return rune(0x210f), true
-			case "hcirc": 
-				// LATIN SMALL LETTER H WITH CIRCUMFLEX
+			case "hcirc":                           // LATIN SMALL LETTER H WITH CIRCUMFLEX
 				return rune(0x0125), true
-			case "hearts": 
-				// BLACK HEART SUIT
+			case "hearts":                          // BLACK HEART SUIT
 				return rune(0x2665), true
-			case "heartsuit": 
-				// BLACK HEART SUIT
+			case "heartsuit":                       // BLACK HEART SUIT
 				return rune(0x2665), true
-			case "hellip": 
-				// HORIZONTAL ELLIPSIS
+			case "hellip":                          // HORIZONTAL ELLIPSIS
 				return rune(0x2026), true
-			case "hercon": 
-				// HERMITIAN CONJUGATE MATRIX
+			case "hercon":                          // HERMITIAN CONJUGATE MATRIX
 				return rune(0x22b9), true
-			case "hfr": 
-				// MATHEMATICAL FRAKTUR SMALL H
+			case "hfr":                             // MATHEMATICAL FRAKTUR SMALL H
 				return rune(0x01d525), true
-			case "hksearow": 
-				// SOUTH EAST ARROW WITH HOOK
+			case "hksearow":                        // SOUTH EAST ARROW WITH HOOK
 				return rune(0x2925), true
-			case "hkswarow": 
-				// SOUTH WEST ARROW WITH HOOK
+			case "hkswarow":                        // SOUTH WEST ARROW WITH HOOK
 				return rune(0x2926), true
-			case "hoarr": 
-				// LEFT RIGHT OPEN-HEADED ARROW
+			case "hoarr":                           // LEFT RIGHT OPEN-HEADED ARROW
 				return rune(0x21ff), true
-			case "homtht": 
-				// HOMOTHETIC
+			case "homtht":                          // HOMOTHETIC
 				return rune(0x223b), true
-			case "hookleftarrow": 
-				// LEFTWARDS ARROW WITH HOOK
+			case "hookleftarrow":                   // LEFTWARDS ARROW WITH HOOK
 				return rune(0x21a9), true
-			case "hookrightarrow": 
-				// RIGHTWARDS ARROW WITH HOOK
+			case "hookrightarrow":                  // RIGHTWARDS ARROW WITH HOOK
 				return rune(0x21aa), true
-			case "hopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL H
+			case "hopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL H
 				return rune(0x01d559), true
-			case "horbar": 
-				// HORIZONTAL BAR
+			case "horbar":                          // HORIZONTAL BAR
 				return rune(0x2015), true
-			case "hrglass": 
-				// WHITE HOURGLASS
+			case "hrglass":                         // WHITE HOURGLASS
 				return rune(0x29d6), true
-			case "hscr": 
-				// MATHEMATICAL SCRIPT SMALL H
+			case "hscr":                            // MATHEMATICAL SCRIPT SMALL H
 				return rune(0x01d4bd), true
-			case "hslash": 
-				// PLANCK CONSTANT OVER TWO PI
+			case "hslash":                          // PLANCK CONSTANT OVER TWO PI
 				return rune(0x210f), true
-			case "hstrok": 
-				// LATIN SMALL LETTER H WITH STROKE
+			case "hstrok":                          // LATIN SMALL LETTER H WITH STROKE
 				return rune(0x0127), true
-			case "htimes": 
-				// VECTOR OR CROSS PRODUCT
+			case "htimes":                          // VECTOR OR CROSS PRODUCT
 				return rune(0x2a2f), true
-			case "hybull": 
-				// HYPHEN BULLET
+			case "hybull":                          // HYPHEN BULLET
 				return rune(0x2043), true
-			case "hyphen": 
-				// HYPHEN
+			case "hyphen":                          // HYPHEN
 				return rune(0x2010), true
 		}
 
 	case 'i':
 		switch name {
-			case "iacgr": 
-				// GREEK SMALL LETTER IOTA WITH TONOS
+			case "iacgr":                           // GREEK SMALL LETTER IOTA WITH TONOS
 				return rune(0x03af), true
-			case "iacute": 
-				// LATIN SMALL LETTER I WITH ACUTE
+			case "iacute":                          // LATIN SMALL LETTER I WITH ACUTE
 				return rune(0xed), true
-			case "ic": 
-				// INVISIBLE SEPARATOR
+			case "ic":                              // INVISIBLE SEPARATOR
 				return rune(0x2063), true
-			case "icirc": 
-				// LATIN SMALL LETTER I WITH CIRCUMFLEX
+			case "icirc":                           // LATIN SMALL LETTER I WITH CIRCUMFLEX
 				return rune(0xee), true
-			case "icy": 
-				// CYRILLIC SMALL LETTER I
+			case "icy":                             // CYRILLIC SMALL LETTER I
 				return rune(0x0438), true
-			case "idiagr": 
-				// GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+			case "idiagr":                          // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
 				return rune(0x0390), true
-			case "idigr": 
-				// GREEK SMALL LETTER IOTA WITH DIALYTIKA
+			case "idigr":                           // GREEK SMALL LETTER IOTA WITH DIALYTIKA
 				return rune(0x03ca), true
-			case "iecy": 
-				// CYRILLIC SMALL LETTER IE
+			case "iecy":                            // CYRILLIC SMALL LETTER IE
 				return rune(0x0435), true
-			case "iexcl": 
-				// INVERTED EXCLAMATION MARK
+			case "iexcl":                           // INVERTED EXCLAMATION MARK
 				return rune(0xa1), true
-			case "iff": 
-				// LEFT RIGHT DOUBLE ARROW
+			case "iff":                             // LEFT RIGHT DOUBLE ARROW
 				return rune(0x21d4), true
-			case "ifr": 
-				// MATHEMATICAL FRAKTUR SMALL I
+			case "ifr":                             // MATHEMATICAL FRAKTUR SMALL I
 				return rune(0x01d526), true
-			case "igr": 
-				// GREEK SMALL LETTER IOTA
+			case "igr":                             // GREEK SMALL LETTER IOTA
 				return rune(0x03b9), true
-			case "igrave": 
-				// LATIN SMALL LETTER I WITH GRAVE
+			case "igrave":                          // LATIN SMALL LETTER I WITH GRAVE
 				return rune(0xec), true
-			case "iiint": 
-				// TRIPLE INTEGRAL
-				return rune(0x222d), true
-			case "ii": 
-				// DOUBLE-STRUCK ITALIC SMALL I
+			case "ii":                              // DOUBLE-STRUCK ITALIC SMALL I
 				return rune(0x2148), true
-			case "iiiint": 
-				// QUADRUPLE INTEGRAL OPERATOR
+			case "iiiint":                          // QUADRUPLE INTEGRAL OPERATOR
 				return rune(0x2a0c), true
-			case "iinfin": 
-				// INCOMPLETE INFINITY
+			case "iiint":                           // TRIPLE INTEGRAL
+				return rune(0x222d), true
+			case "iinfin":                          // INCOMPLETE INFINITY
 				return rune(0x29dc), true
-			case "iiota": 
-				// TURNED GREEK SMALL LETTER IOTA
+			case "iiota":                           // TURNED GREEK SMALL LETTER IOTA
 				return rune(0x2129), true
-			case "ijlig": 
-				// LATIN SMALL LIGATURE IJ
+			case "ijlig":                           // LATIN SMALL LIGATURE IJ
 				return rune(0x0133), true
-			case "imacr": 
-				// LATIN SMALL LETTER I WITH MACRON
+			case "imacr":                           // LATIN SMALL LETTER I WITH MACRON
 				return rune(0x012b), true
-			case "image": 
-				// BLACK-LETTER CAPITAL I
+			case "image":                           // BLACK-LETTER CAPITAL I
 				return rune(0x2111), true
-			case "imagline": 
-				// SCRIPT CAPITAL I
+			case "imagline":                        // SCRIPT CAPITAL I
 				return rune(0x2110), true
-			case "imagpart": 
-				// BLACK-LETTER CAPITAL I
+			case "imagpart":                        // BLACK-LETTER CAPITAL I
 				return rune(0x2111), true
-			case "imath": 
-				// LATIN SMALL LETTER DOTLESS I
+			case "imath":                           // LATIN SMALL LETTER DOTLESS I
 				return rune(0x0131), true
-			case "imof": 
-				// IMAGE OF
+			case "imof":                            // IMAGE OF
 				return rune(0x22b7), true
-			case "imped": 
-				// LATIN CAPITAL LETTER Z WITH STROKE
+			case "imped":                           // LATIN CAPITAL LETTER Z WITH STROKE
 				return rune(0x01b5), true
-			case "in": 
-				// ELEMENT OF
+			case "in":                              // ELEMENT OF
 				return rune(0x2208), true
-			case "incare": 
-				// CARE OF
+			case "incare":                          // CARE OF
 				return rune(0x2105), true
-			case "infin": 
-				// INFINITY
+			case "infin":                           // INFINITY
 				return rune(0x221e), true
-			case "infintie": 
-				// TIE OVER INFINITY
+			case "infintie":                        // TIE OVER INFINITY
 				return rune(0x29dd), true
-			case "inodot": 
-				// LATIN SMALL LETTER DOTLESS I
+			case "inodot":                          // LATIN SMALL LETTER DOTLESS I
 				return rune(0x0131), true
-			case "int": 
-				// INTEGRAL
+			case "int":                             // INTEGRAL
 				return rune(0x222b), true
-			case "intcal": 
-				// INTERCALATE
+			case "intcal":                          // INTERCALATE
 				return rune(0x22ba), true
-			case "integers": 
-				// DOUBLE-STRUCK CAPITAL Z
+			case "integers":                        // DOUBLE-STRUCK CAPITAL Z
 				return rune(0x2124), true
-			case "intercal": 
-				// INTERCALATE
+			case "intercal":                        // INTERCALATE
 				return rune(0x22ba), true
-			case "intlarhk": 
-				// INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
+			case "intlarhk":                        // INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
 				return rune(0x2a17), true
-			case "intprod": 
-				// INTERIOR PRODUCT
+			case "intprod":                         // INTERIOR PRODUCT
 				return rune(0x2a3c), true
-			case "iocy": 
-				// CYRILLIC SMALL LETTER IO
+			case "iocy":                            // CYRILLIC SMALL LETTER IO
 				return rune(0x0451), true
-			case "iogon": 
-				// LATIN SMALL LETTER I WITH OGONEK
+			case "iogon":                           // LATIN SMALL LETTER I WITH OGONEK
 				return rune(0x012f), true
-			case "iopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL I
+			case "iopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL I
 				return rune(0x01d55a), true
-			case "iota": 
-				// GREEK SMALL LETTER IOTA
+			case "iota":                            // GREEK SMALL LETTER IOTA
 				return rune(0x03b9), true
-			case "iprod": 
-				// INTERIOR PRODUCT
+			case "iprod":                           // INTERIOR PRODUCT
 				return rune(0x2a3c), true
-			case "iprodr": 
-				// RIGHTHAND INTERIOR PRODUCT
+			case "iprodr":                          // RIGHTHAND INTERIOR PRODUCT
 				return rune(0x2a3d), true
-			case "iquest": 
-				// INVERTED QUESTION MARK
+			case "iquest":                          // INVERTED QUESTION MARK
 				return rune(0xbf), true
-			case "iscr": 
-				// MATHEMATICAL SCRIPT SMALL I
+			case "iscr":                            // MATHEMATICAL SCRIPT SMALL I
 				return rune(0x01d4be), true
-			case "isin": 
-				// ELEMENT OF
+			case "isin":                            // ELEMENT OF
 				return rune(0x2208), true
-			case "isinE": 
-				// ELEMENT OF WITH TWO HORIZONTAL STROKES
+			case "isinE":                           // ELEMENT OF WITH TWO HORIZONTAL STROKES
 				return rune(0x22f9), true
-			case "isindot": 
-				// ELEMENT OF WITH DOT ABOVE
+			case "isindot":                         // ELEMENT OF WITH DOT ABOVE
 				return rune(0x22f5), true
-			case "isinsv": 
-				// ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-				return rune(0x22f3), true
-			case "isins": 
-				// SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+			case "isins":                           // SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
 				return rune(0x22f4), true
-			case "isinv": 
-				// ELEMENT OF
+			case "isinsv":                          // ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+				return rune(0x22f3), true
+			case "isinv":                           // ELEMENT OF
 				return rune(0x2208), true
-			case "isinvb": 
-				// ELEMENT OF WITH UNDERBAR
+			case "isinvb":                          // ELEMENT OF WITH UNDERBAR
 				return rune(0x22f8), true
-			case "it": 
-				// INVISIBLE TIMES
+			case "it":                              // INVISIBLE TIMES
 				return rune(0x2062), true
-			case "itilde": 
-				// LATIN SMALL LETTER I WITH TILDE
+			case "itilde":                          // LATIN SMALL LETTER I WITH TILDE
 				return rune(0x0129), true
-			case "iukcy": 
-				// CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+			case "iukcy":                           // CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 				return rune(0x0456), true
-			case "iuml": 
-				// LATIN SMALL LETTER I WITH DIAERESIS
+			case "iuml":                            // LATIN SMALL LETTER I WITH DIAERESIS
 				return rune(0xef), true
 		}
 
 	case 'j':
 		switch name {
-			case "jcirc": 
-				// LATIN SMALL LETTER J WITH CIRCUMFLEX
+			case "jcirc":                           // LATIN SMALL LETTER J WITH CIRCUMFLEX
 				return rune(0x0135), true
-			case "jcy": 
-				// CYRILLIC SMALL LETTER SHORT I
+			case "jcy":                             // CYRILLIC SMALL LETTER SHORT I
 				return rune(0x0439), true
-			case "jfr": 
-				// MATHEMATICAL FRAKTUR SMALL J
+			case "jfr":                             // MATHEMATICAL FRAKTUR SMALL J
 				return rune(0x01d527), true
-			case "jmath": 
-				// LATIN SMALL LETTER DOTLESS J
+			case "jmath":                           // LATIN SMALL LETTER DOTLESS J
 				return rune(0x0237), true
-			case "jnodot": 
-				// LATIN SMALL LETTER DOTLESS J
+			case "jnodot":                          // LATIN SMALL LETTER DOTLESS J
 				return rune(0x0237), true
-			case "jopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL J
+			case "jopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL J
 				return rune(0x01d55b), true
-			case "jscr": 
-				// MATHEMATICAL SCRIPT SMALL J
+			case "jscr":                            // MATHEMATICAL SCRIPT SMALL J
 				return rune(0x01d4bf), true
-			case "jsercy": 
-				// CYRILLIC SMALL LETTER JE
+			case "jsercy":                          // CYRILLIC SMALL LETTER JE
 				return rune(0x0458), true
-			case "jukcy": 
-				// CYRILLIC SMALL LETTER UKRAINIAN IE
+			case "jukcy":                           // CYRILLIC SMALL LETTER UKRAINIAN IE
 				return rune(0x0454), true
 		}
 
 	case 'k':
 		switch name {
-			case "kappav": 
-				// GREEK KAPPA SYMBOL
-				return rune(0x03f0), true
-			case "kappa": 
-				// GREEK SMALL LETTER KAPPA
+			case "kappa":                           // GREEK SMALL LETTER KAPPA
 				return rune(0x03ba), true
-			case "kcedil": 
-				// LATIN SMALL LETTER K WITH CEDILLA
+			case "kappav":                          // GREEK KAPPA SYMBOL
+				return rune(0x03f0), true
+			case "kcedil":                          // LATIN SMALL LETTER K WITH CEDILLA
 				return rune(0x0137), true
-			case "kcy": 
-				// CYRILLIC SMALL LETTER KA
+			case "kcy":                             // CYRILLIC SMALL LETTER KA
 				return rune(0x043a), true
-			case "kfr": 
-				// MATHEMATICAL FRAKTUR SMALL K
+			case "kfr":                             // MATHEMATICAL FRAKTUR SMALL K
 				return rune(0x01d528), true
-			case "kgr": 
-				// GREEK SMALL LETTER KAPPA
+			case "kgr":                             // GREEK SMALL LETTER KAPPA
 				return rune(0x03ba), true
-			case "kgreen": 
-				// LATIN SMALL LETTER KRA
+			case "kgreen":                          // LATIN SMALL LETTER KRA
 				return rune(0x0138), true
-			case "khcy": 
-				// CYRILLIC SMALL LETTER HA
+			case "khcy":                            // CYRILLIC SMALL LETTER HA
 				return rune(0x0445), true
-			case "khgr": 
-				// GREEK SMALL LETTER CHI
+			case "khgr":                            // GREEK SMALL LETTER CHI
 				return rune(0x03c7), true
-			case "kjcy": 
-				// CYRILLIC SMALL LETTER KJE
+			case "kjcy":                            // CYRILLIC SMALL LETTER KJE
 				return rune(0x045c), true
-			case "kopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL K
+			case "kopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL K
 				return rune(0x01d55c), true
-			case "koppa": 
-				// GREEK LETTER KOPPA
+			case "koppa":                           // GREEK LETTER KOPPA
 				return rune(0x03de), true
-			case "kscr": 
-				// MATHEMATICAL SCRIPT SMALL K
+			case "kscr":                            // MATHEMATICAL SCRIPT SMALL K
 				return rune(0x01d4c0), true
 		}
 
 	case 'l':
 		switch name {
-			case "lAarr": 
-				// LEFTWARDS TRIPLE ARROW
+			case "lAarr":                           // LEFTWARDS TRIPLE ARROW
 				return rune(0x21da), true
-			case "lArr": 
-				// LEFTWARDS DOUBLE ARROW
+			case "lArr":                            // LEFTWARDS DOUBLE ARROW
 				return rune(0x21d0), true
-			case "lAtail": 
-				// LEFTWARDS DOUBLE ARROW-TAIL
+			case "lAtail":                          // LEFTWARDS DOUBLE ARROW-TAIL
 				return rune(0x291b), true
-			case "lBarr": 
-				// LEFTWARDS TRIPLE DASH ARROW
+			case "lBarr":                           // LEFTWARDS TRIPLE DASH ARROW
 				return rune(0x290e), true
-			case "lE": 
-				// LESS-THAN OVER EQUAL TO
+			case "lE":                              // LESS-THAN OVER EQUAL TO
 				return rune(0x2266), true
-			case "lEg": 
-				// LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
+			case "lEg":                             // LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
 				return rune(0x2a8b), true
-			case "lHar": 
-				// LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+			case "lHar":                            // LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
 				return rune(0x2962), true
-			case "lacute": 
-				// LATIN SMALL LETTER L WITH ACUTE
+			case "lacute":                          // LATIN SMALL LETTER L WITH ACUTE
 				return rune(0x013a), true
-			case "laemptyv": 
-				// EMPTY SET WITH LEFT ARROW ABOVE
+			case "laemptyv":                        // EMPTY SET WITH LEFT ARROW ABOVE
 				return rune(0x29b4), true
-			case "lagran": 
-				// SCRIPT CAPITAL L
+			case "lagran":                          // SCRIPT CAPITAL L
 				return rune(0x2112), true
-			case "lambda": 
-				// GREEK SMALL LETTER LAMDA
+			case "lambda":                          // GREEK SMALL LETTER LAMDA
 				return rune(0x03bb), true
-			case "lang": 
-				// MATHEMATICAL LEFT ANGLE BRACKET
+			case "lang":                            // MATHEMATICAL LEFT ANGLE BRACKET
 				return rune(0x27e8), true
-			case "langd": 
-				// LEFT ANGLE BRACKET WITH DOT
+			case "langd":                           // LEFT ANGLE BRACKET WITH DOT
 				return rune(0x2991), true
-			case "langle": 
-				// MATHEMATICAL LEFT ANGLE BRACKET
+			case "langle":                          // MATHEMATICAL LEFT ANGLE BRACKET
 				return rune(0x27e8), true
-			case "lap": 
-				// LESS-THAN OR APPROXIMATE
+			case "lap":                             // LESS-THAN OR APPROXIMATE
 				return rune(0x2a85), true
-			case "laquo": 
-				// LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+			case "laquo":                           // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
 				return rune(0xab), true
-			case "larr2": 
-				// LEFTWARDS PAIRED ARROWS
+			case "larr":                            // LEFTWARDS ARROW
+				return rune(0x2190), true
+			case "larr2":                           // LEFTWARDS PAIRED ARROWS
 				return rune(0x21c7), true
-			case "larrb": 
-				// LEFTWARDS ARROW TO BAR
+			case "larrb":                           // LEFTWARDS ARROW TO BAR
 				return rune(0x21e4), true
-			case "larrhk": 
-				// LEFTWARDS ARROW WITH HOOK
-				return rune(0x21a9), true
-			case "larrlp": 
-				// LEFTWARDS ARROW WITH LOOP
-				return rune(0x21ab), true
-			case "larrtl": 
-				// LEFTWARDS ARROW WITH TAIL
-				return rune(0x21a2), true
-			case "larr": 
-				// LEFTWARDS ARROW
-				return rune(0x2190), true
-			case "larrbfs": 
-				// LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
+			case "larrbfs":                         // LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
 				return rune(0x291f), true
-			case "larrfs": 
-				// LEFTWARDS ARROW TO BLACK DIAMOND
+			case "larrfs":                          // LEFTWARDS ARROW TO BLACK DIAMOND
 				return rune(0x291d), true
-			case "larrpl": 
-				// LEFT-SIDE ARC ANTICLOCKWISE ARROW
+			case "larrhk":                          // LEFTWARDS ARROW WITH HOOK
+				return rune(0x21a9), true
+			case "larrlp":                          // LEFTWARDS ARROW WITH LOOP
+				return rune(0x21ab), true
+			case "larrpl":                          // LEFT-SIDE ARC ANTICLOCKWISE ARROW
 				return rune(0x2939), true
-			case "larrsim": 
-				// LEFTWARDS ARROW ABOVE TILDE OPERATOR
+			case "larrsim":                         // LEFTWARDS ARROW ABOVE TILDE OPERATOR
 				return rune(0x2973), true
-			case "latail": 
-				// LEFTWARDS ARROW-TAIL
-				return rune(0x2919), true
-			case "lat": 
-				// LARGER THAN
+			case "larrtl":                          // LEFTWARDS ARROW WITH TAIL
+				return rune(0x21a2), true
+			case "lat":                             // LARGER THAN
 				return rune(0x2aab), true
-			case "late": 
-				// LARGER THAN OR EQUAL TO
+			case "latail":                          // LEFTWARDS ARROW-TAIL
+				return rune(0x2919), true
+			case "late":                            // LARGER THAN OR EQUAL TO
 				return rune(0x2aad), true
-			case "lates": 
-				// LARGER THAN OR slanted EQUAL
+			case "lates":                           // LARGER THAN OR slanted EQUAL
 				return rune(0x2aad), true
-			case "lbarr": 
-				// LEFTWARDS DOUBLE DASH ARROW
+			case "lbarr":                           // LEFTWARDS DOUBLE DASH ARROW
 				return rune(0x290c), true
-			case "lbbrk": 
-				// LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+			case "lbbrk":                           // LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
 				return rune(0x2772), true
-			case "lbrace": 
-				// LEFT CURLY BRACKET
+			case "lbrace":                          // LEFT CURLY BRACKET
 				return rune(0x7b), true
-			case "lbrack": 
-				// LEFT SQUARE BRACKET
+			case "lbrack":                          // LEFT SQUARE BRACKET
 				return rune(0x5b), true
-			case "lbrke": 
-				// LEFT SQUARE BRACKET WITH UNDERBAR
+			case "lbrke":                           // LEFT SQUARE BRACKET WITH UNDERBAR
 				return rune(0x298b), true
-			case "lbrksld": 
-				// LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+			case "lbrksld":                         // LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
 				return rune(0x298f), true
-			case "lbrkslu": 
-				// LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+			case "lbrkslu":                         // LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
 				return rune(0x298d), true
-			case "lcaron": 
-				// LATIN SMALL LETTER L WITH CARON
+			case "lcaron":                          // LATIN SMALL LETTER L WITH CARON
 				return rune(0x013e), true
-			case "lcedil": 
-				// LATIN SMALL LETTER L WITH CEDILLA
+			case "lcedil":                          // LATIN SMALL LETTER L WITH CEDILLA
 				return rune(0x013c), true
-			case "lceil": 
-				// LEFT CEILING
+			case "lceil":                           // LEFT CEILING
 				return rune(0x2308), true
-			case "lcub": 
-				// LEFT CURLY BRACKET
+			case "lcub":                            // LEFT CURLY BRACKET
 				return rune(0x7b), true
-			case "lcy": 
-				// CYRILLIC SMALL LETTER EL
+			case "lcy":                             // CYRILLIC SMALL LETTER EL
 				return rune(0x043b), true
-			case "ldca": 
-				// ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
+			case "ldca":                            // ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
 				return rune(0x2936), true
-			case "ldharb": 
-				// LEFTWARDS HARPOON WITH BARB DOWN TO BAR
+			case "ldharb":                          // LEFTWARDS HARPOON WITH BARB DOWN TO BAR
 				return rune(0x2956), true
-			case "ldot": 
-				// LESS-THAN WITH DOT
+			case "ldot":                            // LESS-THAN WITH DOT
 				return rune(0x22d6), true
-			case "ldquor": 
-				// DOUBLE LOW-9 QUOTATION MARK
-				return rune(0x201e), true
-			case "ldquo": 
-				// LEFT DOUBLE QUOTATION MARK
+			case "ldquo":                           // LEFT DOUBLE QUOTATION MARK
 				return rune(0x201c), true
-			case "ldrdhar": 
-				// LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+			case "ldquor":                          // DOUBLE LOW-9 QUOTATION MARK
+				return rune(0x201e), true
+			case "ldrdhar":                         // LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
 				return rune(0x2967), true
-			case "ldrdshar": 
-				// LEFT BARB DOWN RIGHT BARB DOWN HARPOON
+			case "ldrdshar":                        // LEFT BARB DOWN RIGHT BARB DOWN HARPOON
 				return rune(0x2950), true
-			case "ldrushar": 
-				// LEFT BARB DOWN RIGHT BARB UP HARPOON
+			case "ldrushar":                        // LEFT BARB DOWN RIGHT BARB UP HARPOON
 				return rune(0x294b), true
-			case "ldsh": 
-				// DOWNWARDS ARROW WITH TIP LEFTWARDS
+			case "ldsh":                            // DOWNWARDS ARROW WITH TIP LEFTWARDS
 				return rune(0x21b2), true
-			case "leftarrowtail": 
-				// LEFTWARDS ARROW WITH TAIL
-				return rune(0x21a2), true
-			case "leftarrow": 
-				// LEFTWARDS ARROW
+			case "le":                              // LESS-THAN OR EQUAL TO
+				return rune(0x2264), true
+			case "leftarrow":                       // LEFTWARDS ARROW
 				return rune(0x2190), true
-			case "leftharpoondown": 
-				// LEFTWARDS HARPOON WITH BARB DOWNWARDS
+			case "leftarrowtail":                   // LEFTWARDS ARROW WITH TAIL
+				return rune(0x21a2), true
+			case "leftharpoondown":                 // LEFTWARDS HARPOON WITH BARB DOWNWARDS
 				return rune(0x21bd), true
-			case "leftharpoonup": 
-				// LEFTWARDS HARPOON WITH BARB UPWARDS
+			case "leftharpoonup":                   // LEFTWARDS HARPOON WITH BARB UPWARDS
 				return rune(0x21bc), true
-			case "leftleftarrows": 
-				// LEFTWARDS PAIRED ARROWS
+			case "leftleftarrows":                  // LEFTWARDS PAIRED ARROWS
 				return rune(0x21c7), true
-			case "leftrightarrows": 
-				// LEFTWARDS ARROW OVER RIGHTWARDS ARROW
-				return rune(0x21c6), true
-			case "leftrightarrow": 
-				// LEFT RIGHT ARROW
+			case "leftrightarrow":                  // LEFT RIGHT ARROW
 				return rune(0x2194), true
-			case "leftrightharpoons": 
-				// LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+			case "leftrightarrows":                 // LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+				return rune(0x21c6), true
+			case "leftrightharpoons":               // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
 				return rune(0x21cb), true
-			case "leftrightsquigarrow": 
-				// LEFT RIGHT WAVE ARROW
+			case "leftrightsquigarrow":             // LEFT RIGHT WAVE ARROW
 				return rune(0x21ad), true
-			case "le": 
-				// LESS-THAN OR EQUAL TO
-				return rune(0x2264), true
-			case "leftthreetimes": 
-				// LEFT SEMIDIRECT PRODUCT
+			case "leftthreetimes":                  // LEFT SEMIDIRECT PRODUCT
 				return rune(0x22cb), true
-			case "leg": 
-				// LESS-THAN EQUAL TO OR GREATER-THAN
+			case "leg":                             // LESS-THAN EQUAL TO OR GREATER-THAN
 				return rune(0x22da), true
-			case "leq": 
-				// LESS-THAN OR EQUAL TO
+			case "leq":                             // LESS-THAN OR EQUAL TO
 				return rune(0x2264), true
-			case "leqq": 
-				// LESS-THAN OVER EQUAL TO
+			case "leqq":                            // LESS-THAN OVER EQUAL TO
 				return rune(0x2266), true
-			case "leqslant": 
-				// LESS-THAN OR SLANTED EQUAL TO
+			case "leqslant":                        // LESS-THAN OR SLANTED EQUAL TO
 				return rune(0x2a7d), true
-			case "lesg": 
-				// LESS-THAN slanted EQUAL TO OR GREATER-THAN
-				return rune(0x22da), true
-			case "lessdot": 
-				// LESS-THAN WITH DOT
-				return rune(0x22d6), true
-			case "lesseqgtr": 
-				// LESS-THAN EQUAL TO OR GREATER-THAN
-				return rune(0x22da), true
-			case "lessgtr": 
-				// LESS-THAN OR GREATER-THAN
-				return rune(0x2276), true
-			case "lesssim": 
-				// LESS-THAN OR EQUIVALENT TO
-				return rune(0x2272), true
-			case "les": 
-				// LESS-THAN OR SLANTED EQUAL TO
+			case "les":                             // LESS-THAN OR SLANTED EQUAL TO
 				return rune(0x2a7d), true
-			case "lescc": 
-				// LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+			case "lescc":                           // LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
 				return rune(0x2aa8), true
-			case "lesdot": 
-				// LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+			case "lesdot":                          // LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
 				return rune(0x2a7f), true
-			case "lesdoto": 
-				// LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+			case "lesdoto":                         // LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
 				return rune(0x2a81), true
-			case "lesdotor": 
-				// LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
+			case "lesdotor":                        // LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
 				return rune(0x2a83), true
-			case "lesges": 
-				// LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
+			case "lesg":                            // LESS-THAN slanted EQUAL TO OR GREATER-THAN
+				return rune(0x22da), true
+			case "lesges":                          // LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
 				return rune(0x2a93), true
-			case "lessapprox": 
-				// LESS-THAN OR APPROXIMATE
+			case "lessapprox":                      // LESS-THAN OR APPROXIMATE
 				return rune(0x2a85), true
-			case "lesseqqgtr": 
-				// LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
+			case "lessdot":                         // LESS-THAN WITH DOT
+				return rune(0x22d6), true
+			case "lesseqgtr":                       // LESS-THAN EQUAL TO OR GREATER-THAN
+				return rune(0x22da), true
+			case "lesseqqgtr":                      // LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
 				return rune(0x2a8b), true
-			case "lfbowtie": 
-				// BOWTIE WITH LEFT HALF BLACK
+			case "lessgtr":                         // LESS-THAN OR GREATER-THAN
+				return rune(0x2276), true
+			case "lesssim":                         // LESS-THAN OR EQUIVALENT TO
+				return rune(0x2272), true
+			case "lfbowtie":                        // BOWTIE WITH LEFT HALF BLACK
 				return rune(0x29d1), true
-			case "lfisht": 
-				// LEFT FISH TAIL
+			case "lfisht":                          // LEFT FISH TAIL
 				return rune(0x297c), true
-			case "lfloor": 
-				// LEFT FLOOR
+			case "lfloor":                          // LEFT FLOOR
 				return rune(0x230a), true
-			case "lfr": 
-				// MATHEMATICAL FRAKTUR SMALL L
+			case "lfr":                             // MATHEMATICAL FRAKTUR SMALL L
 				return rune(0x01d529), true
-			case "lftimes": 
-				// TIMES WITH LEFT HALF BLACK
+			case "lftimes":                         // TIMES WITH LEFT HALF BLACK
 				return rune(0x29d4), true
-			case "lg": 
-				// LESS-THAN OR GREATER-THAN
+			case "lg":                              // LESS-THAN OR GREATER-THAN
 				return rune(0x2276), true
-			case "lgE": 
-				// LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
+			case "lgE":                             // LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
 				return rune(0x2a91), true
-			case "lgr": 
-				// GREEK SMALL LETTER LAMDA
+			case "lgr":                             // GREEK SMALL LETTER LAMDA
 				return rune(0x03bb), true
-			case "lhard": 
-				// LEFTWARDS HARPOON WITH BARB DOWNWARDS
+			case "lhard":                           // LEFTWARDS HARPOON WITH BARB DOWNWARDS
 				return rune(0x21bd), true
-			case "lharu": 
-				// LEFTWARDS HARPOON WITH BARB UPWARDS
+			case "lharu":                           // LEFTWARDS HARPOON WITH BARB UPWARDS
 				return rune(0x21bc), true
-			case "lharul": 
-				// LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+			case "lharul":                          // LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
 				return rune(0x296a), true
-			case "lhblk": 
-				// LOWER HALF BLOCK
+			case "lhblk":                           // LOWER HALF BLOCK
 				return rune(0x2584), true
-			case "ljcy": 
-				// CYRILLIC SMALL LETTER LJE
+			case "ljcy":                            // CYRILLIC SMALL LETTER LJE
 				return rune(0x0459), true
-			case "llarr": 
-				// LEFTWARDS PAIRED ARROWS
-				return rune(0x21c7), true
-			case "ll": 
-				// MUCH LESS-THAN
+			case "ll":                              // MUCH LESS-THAN
 				return rune(0x226a), true
-			case "llcorner": 
-				// BOTTOM LEFT CORNER
+			case "llarr":                           // LEFTWARDS PAIRED ARROWS
+				return rune(0x21c7), true
+			case "llcorner":                        // BOTTOM LEFT CORNER
 				return rune(0x231e), true
-			case "llhard": 
-				// LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+			case "llhard":                          // LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
 				return rune(0x296b), true
-			case "lltrif": 
-				// BLACK LOWER LEFT TRIANGLE
-				return rune(0x25e3), true
-			case "lltri": 
-				// LOWER LEFT TRIANGLE
+			case "lltri":                           // LOWER LEFT TRIANGLE
 				return rune(0x25fa), true
-			case "lmidot": 
-				// LATIN SMALL LETTER L WITH MIDDLE DOT
+			case "lltrif":                          // BLACK LOWER LEFT TRIANGLE
+				return rune(0x25e3), true
+			case "lmidot":                          // LATIN SMALL LETTER L WITH MIDDLE DOT
 				return rune(0x0140), true
-			case "lmoust": 
-				// UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
+			case "lmoust":                          // UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
 				return rune(0x23b0), true
-			case "lmoustache": 
-				// UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
+			case "lmoustache":                      // UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
 				return rune(0x23b0), true
-			case "lnE": 
-				// LESS-THAN BUT NOT EQUAL TO
+			case "lnE":                             // LESS-THAN BUT NOT EQUAL TO
 				return rune(0x2268), true
-			case "lnap": 
-				// LESS-THAN AND NOT APPROXIMATE
+			case "lnap":                            // LESS-THAN AND NOT APPROXIMATE
 				return rune(0x2a89), true
-			case "lnapprox": 
-				// LESS-THAN AND NOT APPROXIMATE
+			case "lnapprox":                        // LESS-THAN AND NOT APPROXIMATE
 				return rune(0x2a89), true
-			case "lneqq": 
-				// LESS-THAN BUT NOT EQUAL TO
-				return rune(0x2268), true
-			case "lne": 
-				// LESS-THAN AND SINGLE-LINE NOT EQUAL TO
+			case "lne":                             // LESS-THAN AND SINGLE-LINE NOT EQUAL TO
 				return rune(0x2a87), true
-			case "lneq": 
-				// LESS-THAN AND SINGLE-LINE NOT EQUAL TO
+			case "lneq":                            // LESS-THAN AND SINGLE-LINE NOT EQUAL TO
 				return rune(0x2a87), true
-			case "lnsim": 
-				// LESS-THAN BUT NOT EQUIVALENT TO
+			case "lneqq":                           // LESS-THAN BUT NOT EQUAL TO
+				return rune(0x2268), true
+			case "lnsim":                           // LESS-THAN BUT NOT EQUIVALENT TO
 				return rune(0x22e6), true
-			case "loang": 
-				// MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+			case "loang":                           // MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
 				return rune(0x27ec), true
-			case "loarr": 
-				// LEFTWARDS OPEN-HEADED ARROW
+			case "loarr":                           // LEFTWARDS OPEN-HEADED ARROW
 				return rune(0x21fd), true
-			case "lobrk": 
-				// MATHEMATICAL LEFT WHITE SQUARE BRACKET
+			case "lobrk":                           // MATHEMATICAL LEFT WHITE SQUARE BRACKET
 				return rune(0x27e6), true
-			case "locub": 
-				// LEFT WHITE CURLY BRACKET
+			case "locub":                           // LEFT WHITE CURLY BRACKET
 				return rune(0x2983), true
-			case "longleftarrow": 
-				// LONG LEFTWARDS ARROW
+			case "longleftarrow":                   // LONG LEFTWARDS ARROW
 				return rune(0x27f5), true
-			case "longleftrightarrow": 
-				// LONG LEFT RIGHT ARROW
+			case "longleftrightarrow":              // LONG LEFT RIGHT ARROW
 				return rune(0x27f7), true
-			case "longmapsto": 
-				// LONG RIGHTWARDS ARROW FROM BAR
+			case "longmapsto":                      // LONG RIGHTWARDS ARROW FROM BAR
 				return rune(0x27fc), true
-			case "longrightarrow": 
-				// LONG RIGHTWARDS ARROW
+			case "longrightarrow":                  // LONG RIGHTWARDS ARROW
 				return rune(0x27f6), true
-			case "looparrowleft": 
-				// LEFTWARDS ARROW WITH LOOP
+			case "looparrowleft":                   // LEFTWARDS ARROW WITH LOOP
 				return rune(0x21ab), true
-			case "looparrowright": 
-				// RIGHTWARDS ARROW WITH LOOP
+			case "looparrowright":                  // RIGHTWARDS ARROW WITH LOOP
 				return rune(0x21ac), true
-			case "lopar": 
-				// LEFT WHITE PARENTHESIS
+			case "lopar":                           // LEFT WHITE PARENTHESIS
 				return rune(0x2985), true
-			case "lopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL L
+			case "lopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL L
 				return rune(0x01d55d), true
-			case "loplus": 
-				// PLUS SIGN IN LEFT HALF CIRCLE
+			case "loplus":                          // PLUS SIGN IN LEFT HALF CIRCLE
 				return rune(0x2a2d), true
-			case "lotimes": 
-				// MULTIPLICATION SIGN IN LEFT HALF CIRCLE
+			case "lotimes":                         // MULTIPLICATION SIGN IN LEFT HALF CIRCLE
 				return rune(0x2a34), true
-			case "lowast": 
-				// LOW ASTERISK
+			case "lowast":                          // LOW ASTERISK
 				return rune(0x204e), true
-			case "lowbar": 
-				// LOW LINE
+			case "lowbar":                          // LOW LINE
 				return rune(0x5f), true
-			case "lowint": 
-				// INTEGRAL WITH UNDERBAR
+			case "lowint":                          // INTEGRAL WITH UNDERBAR
 				return rune(0x2a1c), true
-			case "loz": 
-				// LOZENGE
+			case "loz":                             // LOZENGE
 				return rune(0x25ca), true
-			case "lozenge": 
-				// LOZENGE
+			case "lozenge":                         // LOZENGE
 				return rune(0x25ca), true
-			case "lozf": 
-				// BLACK LOZENGE
+			case "lozf":                            // BLACK LOZENGE
 				return rune(0x29eb), true
-			case "lpargt": 
-				// SPHERICAL ANGLE OPENING LEFT
+			case "lpar":                            // LEFT PARENTHESIS
+				return rune(0x28), true
+			case "lpargt":                          // SPHERICAL ANGLE OPENING LEFT
 				return rune(0x29a0), true
-			case "lparlt": 
-				// LEFT ARC LESS-THAN BRACKET
+			case "lparlt":                          // LEFT ARC LESS-THAN BRACKET
 				return rune(0x2993), true
-			case "lpar": 
-				// LEFT PARENTHESIS
-				return rune(0x28), true
-			case "lrarr2": 
-				// LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+			case "lrarr":                           // LEFTWARDS ARROW OVER RIGHTWARDS ARROW
 				return rune(0x21c6), true
-			case "lrarr": 
-				// LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+			case "lrarr2":                          // LEFTWARDS ARROW OVER RIGHTWARDS ARROW
 				return rune(0x21c6), true
-			case "lrcorner": 
-				// BOTTOM RIGHT CORNER
+			case "lrcorner":                        // BOTTOM RIGHT CORNER
 				return rune(0x231f), true
-			case "lrhar": 
-				// LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+			case "lrhar":                           // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
 				return rune(0x21cb), true
-			case "lrhar2": 
-				// LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+			case "lrhar2":                          // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
 				return rune(0x21cb), true
-			case "lrhard": 
-				// RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+			case "lrhard":                          // RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
 				return rune(0x296d), true
-			case "lrm": 
-				// LEFT-TO-RIGHT MARK
+			case "lrm":                             // LEFT-TO-RIGHT MARK
 				return rune(0x200e), true
-			case "lrtri": 
-				// RIGHT TRIANGLE
+			case "lrtri":                           // RIGHT TRIANGLE
 				return rune(0x22bf), true
-			case "lsaquo": 
-				// SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+			case "lsaquo":                          // SINGLE LEFT-POINTING ANGLE QUOTATION MARK
 				return rune(0x2039), true
-			case "lscr": 
-				// MATHEMATICAL SCRIPT SMALL L
+			case "lscr":                            // MATHEMATICAL SCRIPT SMALL L
 				return rune(0x01d4c1), true
-			case "lsh": 
-				// UPWARDS ARROW WITH TIP LEFTWARDS
+			case "lsh":                             // UPWARDS ARROW WITH TIP LEFTWARDS
 				return rune(0x21b0), true
-			case "lsim": 
-				// LESS-THAN OR EQUIVALENT TO
+			case "lsim":                            // LESS-THAN OR EQUIVALENT TO
 				return rune(0x2272), true
-			case "lsime": 
-				// LESS-THAN ABOVE SIMILAR OR EQUAL
+			case "lsime":                           // LESS-THAN ABOVE SIMILAR OR EQUAL
 				return rune(0x2a8d), true
-			case "lsimg": 
-				// LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
+			case "lsimg":                           // LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
 				return rune(0x2a8f), true
-			case "lsqb": 
-				// LEFT SQUARE BRACKET
+			case "lsqb":                            // LEFT SQUARE BRACKET
 				return rune(0x5b), true
-			case "lsquor": 
-				// SINGLE LOW-9 QUOTATION MARK
-				return rune(0x201a), true
-			case "lsquo": 
-				// LEFT SINGLE QUOTATION MARK
+			case "lsquo":                           // LEFT SINGLE QUOTATION MARK
 				return rune(0x2018), true
-			case "lstrok": 
-				// LATIN SMALL LETTER L WITH STROKE
+			case "lsquor":                          // SINGLE LOW-9 QUOTATION MARK
+				return rune(0x201a), true
+			case "lstrok":                          // LATIN SMALL LETTER L WITH STROKE
 				return rune(0x0142), true
-			case "ltcc": 
-				// LESS-THAN CLOSED BY CURVE
+			case "lt":                              // LESS-THAN SIGN
+				return rune(0x3c), true
+			case "ltcc":                            // LESS-THAN CLOSED BY CURVE
 				return rune(0x2aa6), true
-			case "ltcir": 
-				// LESS-THAN WITH CIRCLE INSIDE
+			case "ltcir":                           // LESS-THAN WITH CIRCLE INSIDE
 				return rune(0x2a79), true
-			case "ltdot": 
-				// LESS-THAN WITH DOT
+			case "ltdot":                           // LESS-THAN WITH DOT
 				return rune(0x22d6), true
-			case "lthree": 
-				// LEFT SEMIDIRECT PRODUCT
+			case "lthree":                          // LEFT SEMIDIRECT PRODUCT
 				return rune(0x22cb), true
-			case "ltimes": 
-				// LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
+			case "ltimes":                          // LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
 				return rune(0x22c9), true
-			case "ltlarr": 
-				// LESS-THAN ABOVE LEFTWARDS ARROW
+			case "ltlarr":                          // LESS-THAN ABOVE LEFTWARDS ARROW
 				return rune(0x2976), true
-			case "ltquest": 
-				// LESS-THAN WITH QUESTION MARK ABOVE
+			case "ltquest":                         // LESS-THAN WITH QUESTION MARK ABOVE
 				return rune(0x2a7b), true
-			case "ltrPar": 
-				// DOUBLE RIGHT ARC LESS-THAN BRACKET
+			case "ltrPar":                          // DOUBLE RIGHT ARC LESS-THAN BRACKET
 				return rune(0x2996), true
-			case "ltrie": 
-				// NORMAL SUBGROUP OF OR EQUAL TO
+			case "ltri":                            // WHITE LEFT-POINTING SMALL TRIANGLE
+				return rune(0x25c3), true
+			case "ltrie":                           // NORMAL SUBGROUP OF OR EQUAL TO
 				return rune(0x22b4), true
-			case "ltrif": 
-				// BLACK LEFT-POINTING SMALL TRIANGLE
+			case "ltrif":                           // BLACK LEFT-POINTING SMALL TRIANGLE
 				return rune(0x25c2), true
-			case "ltri": 
-				// WHITE LEFT-POINTING SMALL TRIANGLE
-				return rune(0x25c3), true
-			case "ltrivb": 
-				// LEFT TRIANGLE BESIDE VERTICAL BAR
+			case "ltrivb":                          // LEFT TRIANGLE BESIDE VERTICAL BAR
 				return rune(0x29cf), true
-			case "lt": 
-				// LESS-THAN SIGN
-				return rune(0x3c), true
-			case "luharb": 
-				// LEFTWARDS HARPOON WITH BARB UP TO BAR
+			case "luharb":                          // LEFTWARDS HARPOON WITH BARB UP TO BAR
 				return rune(0x2952), true
-			case "lurdshar": 
-				// LEFT BARB UP RIGHT BARB DOWN HARPOON
+			case "lurdshar":                        // LEFT BARB UP RIGHT BARB DOWN HARPOON
 				return rune(0x294a), true
-			case "luruhar": 
-				// LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
+			case "luruhar":                         // LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
 				return rune(0x2966), true
-			case "lurushar": 
-				// LEFT BARB UP RIGHT BARB UP HARPOON
+			case "lurushar":                        // LEFT BARB UP RIGHT BARB UP HARPOON
 				return rune(0x294e), true
-			case "lvertneqq": 
-				// LESS-THAN BUT NOT EQUAL TO - with vertical stroke
+			case "lvertneqq":                       // LESS-THAN BUT NOT EQUAL TO - with vertical stroke
 				return rune(0x2268), true
-			case "lvnE": 
-				// LESS-THAN BUT NOT EQUAL TO - with vertical stroke
+			case "lvnE":                            // LESS-THAN BUT NOT EQUAL TO - with vertical stroke
 				return rune(0x2268), true
 		}
 
 	case 'm':
 		switch name {
-			case "mDDot": 
-				// GEOMETRIC PROPORTION
+			case "mDDot":                           // GEOMETRIC PROPORTION
 				return rune(0x223a), true
-			case "macr": 
-				// MACRON
+			case "macr":                            // MACRON
 				return rune(0xaf), true
-			case "male": 
-				// MALE SIGN
+			case "male":                            // MALE SIGN
 				return rune(0x2642), true
-			case "malt": 
-				// MALTESE CROSS
+			case "malt":                            // MALTESE CROSS
 				return rune(0x2720), true
-			case "maltese": 
-				// MALTESE CROSS
+			case "maltese":                         // MALTESE CROSS
 				return rune(0x2720), true
-			case "mapstodown": 
-				// DOWNWARDS ARROW FROM BAR
-				return rune(0x21a7), true
-			case "mapsto": 
-				// RIGHTWARDS ARROW FROM BAR
+			case "map":                             // RIGHTWARDS ARROW FROM BAR
 				return rune(0x21a6), true
-			case "map": 
-				// RIGHTWARDS ARROW FROM BAR
+			case "mapsto":                          // RIGHTWARDS ARROW FROM BAR
 				return rune(0x21a6), true
-			case "mapstoleft": 
-				// LEFTWARDS ARROW FROM BAR
+			case "mapstodown":                      // DOWNWARDS ARROW FROM BAR
+				return rune(0x21a7), true
+			case "mapstoleft":                      // LEFTWARDS ARROW FROM BAR
 				return rune(0x21a4), true
-			case "mapstoup": 
-				// UPWARDS ARROW FROM BAR
+			case "mapstoup":                        // UPWARDS ARROW FROM BAR
 				return rune(0x21a5), true
-			case "marker": 
-				// BLACK VERTICAL RECTANGLE
+			case "marker":                          // BLACK VERTICAL RECTANGLE
 				return rune(0x25ae), true
-			case "mcomma": 
-				// MINUS SIGN WITH COMMA ABOVE
+			case "mcomma":                          // MINUS SIGN WITH COMMA ABOVE
 				return rune(0x2a29), true
-			case "mcy": 
-				// CYRILLIC SMALL LETTER EM
+			case "mcy":                             // CYRILLIC SMALL LETTER EM
 				return rune(0x043c), true
-			case "mdash": 
-				// EM DASH
+			case "mdash":                           // EM DASH
 				return rune(0x2014), true
-			case "measuredangle": 
-				// MEASURED ANGLE
+			case "measuredangle":                   // MEASURED ANGLE
 				return rune(0x2221), true
-			case "mfr": 
-				// MATHEMATICAL FRAKTUR SMALL M
+			case "mfr":                             // MATHEMATICAL FRAKTUR SMALL M
 				return rune(0x01d52a), true
-			case "mgr": 
-				// GREEK SMALL LETTER MU
+			case "mgr":                             // GREEK SMALL LETTER MU
 				return rune(0x03bc), true
-			case "mho": 
-				// INVERTED OHM SIGN
+			case "mho":                             // INVERTED OHM SIGN
 				return rune(0x2127), true
-			case "micro": 
-				// MICRO SIGN
+			case "micro":                           // MICRO SIGN
 				return rune(0xb5), true
-			case "mid": 
-				// DIVIDES
+			case "mid":                             // DIVIDES
 				return rune(0x2223), true
-			case "midast": 
-				// ASTERISK
+			case "midast":                          // ASTERISK
 				return rune(0x2a), true
-			case "midcir": 
-				// VERTICAL LINE WITH CIRCLE BELOW
+			case "midcir":                          // VERTICAL LINE WITH CIRCLE BELOW
 				return rune(0x2af0), true
-			case "middot": 
-				// MIDDLE DOT
+			case "middot":                          // MIDDLE DOT
 				return rune(0xb7), true
-			case "minus": 
-				// MINUS SIGN
+			case "minus":                           // MINUS SIGN
 				return rune(0x2212), true
-			case "minusb": 
-				// SQUARED MINUS
+			case "minusb":                          // SQUARED MINUS
 				return rune(0x229f), true
-			case "minusd": 
-				// DOT MINUS
+			case "minusd":                          // DOT MINUS
 				return rune(0x2238), true
-			case "minusdu": 
-				// MINUS SIGN WITH DOT BELOW
+			case "minusdu":                         // MINUS SIGN WITH DOT BELOW
 				return rune(0x2a2a), true
-			case "mlcp": 
-				// TRANSVERSAL INTERSECTION
+			case "mlcp":                            // TRANSVERSAL INTERSECTION
 				return rune(0x2adb), true
-			case "mldr": 
-				// HORIZONTAL ELLIPSIS
+			case "mldr":                            // HORIZONTAL ELLIPSIS
 				return rune(0x2026), true
-			case "mnplus": 
-				// MINUS-OR-PLUS SIGN
+			case "mnplus":                          // MINUS-OR-PLUS SIGN
 				return rune(0x2213), true
-			case "models": 
-				// MODELS
+			case "models":                          // MODELS
 				return rune(0x22a7), true
-			case "mopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL M
+			case "mopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL M
 				return rune(0x01d55e), true
-			case "mp": 
-				// MINUS-OR-PLUS SIGN
+			case "mp":                              // MINUS-OR-PLUS SIGN
 				return rune(0x2213), true
-			case "mscr": 
-				// MATHEMATICAL SCRIPT SMALL M
+			case "mscr":                            // MATHEMATICAL SCRIPT SMALL M
 				return rune(0x01d4c2), true
-			case "mstpos": 
-				// INVERTED LAZY S
+			case "mstpos":                          // INVERTED LAZY S
 				return rune(0x223e), true
-			case "multimap": 
-				// MULTIMAP
+			case "mu":                              // GREEK SMALL LETTER MU
+				return rune(0x03bc), true
+			case "multimap":                        // MULTIMAP
 				return rune(0x22b8), true
-			case "mumap": 
-				// MULTIMAP
+			case "mumap":                           // MULTIMAP
 				return rune(0x22b8), true
-			case "mu": 
-				// GREEK SMALL LETTER MU
-				return rune(0x03bc), true
 		}
 
 	case 'n':
 		switch name {
-			case "nGg": 
-				// VERY MUCH GREATER-THAN with slash
+			case "nGg":                             // VERY MUCH GREATER-THAN with slash
 				return rune(0x22d9), true
-			case "nGtv": 
-				// MUCH GREATER THAN with slash
+			case "nGt":                             // MUCH GREATER THAN with vertical line
 				return rune(0x226b), true
-			case "nGt": 
-				// MUCH GREATER THAN with vertical line
+			case "nGtv":                            // MUCH GREATER THAN with slash
 				return rune(0x226b), true
-			case "nLeftarrow": 
-				// LEFTWARDS DOUBLE ARROW WITH STROKE
+			case "nLeftarrow":                      // LEFTWARDS DOUBLE ARROW WITH STROKE
 				return rune(0x21cd), true
-			case "nLeftrightarrow": 
-				// LEFT RIGHT DOUBLE ARROW WITH STROKE
+			case "nLeftrightarrow":                 // LEFT RIGHT DOUBLE ARROW WITH STROKE
 				return rune(0x21ce), true
-			case "nLl": 
-				// VERY MUCH LESS-THAN with slash
+			case "nLl":                             // VERY MUCH LESS-THAN with slash
 				return rune(0x22d8), true
-			case "nLtv": 
-				// MUCH LESS THAN with slash
+			case "nLt":                             // MUCH LESS THAN with vertical line
 				return rune(0x226a), true
-			case "nLt": 
-				// MUCH LESS THAN with vertical line
+			case "nLtv":                            // MUCH LESS THAN with slash
 				return rune(0x226a), true
-			case "nRightarrow": 
-				// RIGHTWARDS DOUBLE ARROW WITH STROKE
+			case "nRightarrow":                     // RIGHTWARDS DOUBLE ARROW WITH STROKE
 				return rune(0x21cf), true
-			case "nVDash": 
-				// NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+			case "nVDash":                          // NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
 				return rune(0x22af), true
-			case "nVdash": 
-				// DOES NOT FORCE
+			case "nVdash":                          // DOES NOT FORCE
 				return rune(0x22ae), true
-			case "nabla": 
-				// NABLA
+			case "nabla":                           // NABLA
 				return rune(0x2207), true
-			case "nacute": 
-				// LATIN SMALL LETTER N WITH ACUTE
+			case "nacute":                          // LATIN SMALL LETTER N WITH ACUTE
 				return rune(0x0144), true
-			case "nang": 
-				// ANGLE with vertical line
+			case "nang":                            // ANGLE with vertical line
 				return rune(0x2220), true
-			case "nap": 
-				// NOT ALMOST EQUAL TO
+			case "nap":                             // NOT ALMOST EQUAL TO
 				return rune(0x2249), true
-			case "napE": 
-				// APPROXIMATELY EQUAL OR EQUAL TO with slash
+			case "napE":                            // APPROXIMATELY EQUAL OR EQUAL TO with slash
 				return rune(0x2a70), true
-			case "napid": 
-				// TRIPLE TILDE with slash
+			case "napid":                           // TRIPLE TILDE with slash
 				return rune(0x224b), true
-			case "napos": 
-				// LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+			case "napos":                           // LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
 				return rune(0x0149), true
-			case "napprox": 
-				// NOT ALMOST EQUAL TO
+			case "napprox":                         // NOT ALMOST EQUAL TO
 				return rune(0x2249), true
-			case "naturals": 
-				// DOUBLE-STRUCK CAPITAL N
-				return rune(0x2115), true
-			case "natur": 
-				// MUSIC NATURAL SIGN
+			case "natur":                           // MUSIC NATURAL SIGN
 				return rune(0x266e), true
-			case "natural": 
-				// MUSIC NATURAL SIGN
+			case "natural":                         // MUSIC NATURAL SIGN
 				return rune(0x266e), true
-			case "nbsp": 
-				// NO-BREAK SPACE
+			case "naturals":                        // DOUBLE-STRUCK CAPITAL N
+				return rune(0x2115), true
+			case "nbsp":                            // NO-BREAK SPACE
 				return rune(0xa0), true
-			case "nbump": 
-				// GEOMETRICALLY EQUIVALENT TO with slash
+			case "nbump":                           // GEOMETRICALLY EQUIVALENT TO with slash
 				return rune(0x224e), true
-			case "nbumpe": 
-				// DIFFERENCE BETWEEN with slash
+			case "nbumpe":                          // DIFFERENCE BETWEEN with slash
 				return rune(0x224f), true
-			case "ncap": 
-				// INTERSECTION WITH OVERBAR
+			case "ncap":                            // INTERSECTION WITH OVERBAR
 				return rune(0x2a43), true
-			case "ncaron": 
-				// LATIN SMALL LETTER N WITH CARON
+			case "ncaron":                          // LATIN SMALL LETTER N WITH CARON
 				return rune(0x0148), true
-			case "ncedil": 
-				// LATIN SMALL LETTER N WITH CEDILLA
+			case "ncedil":                          // LATIN SMALL LETTER N WITH CEDILLA
 				return rune(0x0146), true
-			case "ncong": 
-				// NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+			case "ncong":                           // NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
 				return rune(0x2247), true
-			case "ncongdot": 
-				// CONGRUENT WITH DOT ABOVE with slash
+			case "ncongdot":                        // CONGRUENT WITH DOT ABOVE with slash
 				return rune(0x2a6d), true
-			case "ncup": 
-				// UNION WITH OVERBAR
+			case "ncup":                            // UNION WITH OVERBAR
 				return rune(0x2a42), true
-			case "ncy": 
-				// CYRILLIC SMALL LETTER EN
+			case "ncy":                             // CYRILLIC SMALL LETTER EN
 				return rune(0x043d), true
-			case "ndash": 
-				// EN DASH
+			case "ndash":                           // EN DASH
 				return rune(0x2013), true
-			case "neArr": 
-				// NORTH EAST DOUBLE ARROW
+			case "ne":                              // NOT EQUAL TO
+				return rune(0x2260), true
+			case "neArr":                           // NORTH EAST DOUBLE ARROW
 				return rune(0x21d7), true
-			case "nearrow": 
-				// NORTH EAST ARROW
+			case "nearhk":                          // NORTH EAST ARROW WITH HOOK
+				return rune(0x2924), true
+			case "nearr":                           // NORTH EAST ARROW
 				return rune(0x2197), true
-			case "nearr": 
-				// NORTH EAST ARROW
+			case "nearrow":                         // NORTH EAST ARROW
 				return rune(0x2197), true
-			case "nedot": 
-				// APPROACHES THE LIMIT with slash
+			case "nedot":                           // APPROACHES THE LIMIT with slash
 				return rune(0x2250), true
-			case "nesim": 
-				// MINUS TILDE with slash
-				return rune(0x2242), true
-			case "nexist": 
-				// THERE DOES NOT EXIST
-				return rune(0x2204), true
-			case "nexists": 
-				// THERE DOES NOT EXIST
-				return rune(0x2204), true
-			case "ne": 
-				// NOT EQUAL TO
-				return rune(0x2260), true
-			case "nearhk": 
-				// NORTH EAST ARROW WITH HOOK
-				return rune(0x2924), true
-			case "neonwarr": 
-				// NORTH EAST ARROW CROSSING NORTH WEST ARROW
+			case "neonwarr":                        // NORTH EAST ARROW CROSSING NORTH WEST ARROW
 				return rune(0x2931), true
-			case "neosearr": 
-				// NORTH EAST ARROW CROSSING SOUTH EAST ARROW
+			case "neosearr":                        // NORTH EAST ARROW CROSSING SOUTH EAST ARROW
 				return rune(0x292e), true
-			case "nequiv": 
-				// NOT IDENTICAL TO
+			case "nequiv":                          // NOT IDENTICAL TO
 				return rune(0x2262), true
-			case "nesear": 
-				// NORTH EAST ARROW AND SOUTH EAST ARROW
+			case "nesear":                          // NORTH EAST ARROW AND SOUTH EAST ARROW
 				return rune(0x2928), true
-			case "neswsarr": 
-				// NORTH EAST AND SOUTH WEST ARROW
+			case "nesim":                           // MINUS TILDE with slash
+				return rune(0x2242), true
+			case "neswsarr":                        // NORTH EAST AND SOUTH WEST ARROW
 				return rune(0x2922), true
-			case "nfr": 
-				// MATHEMATICAL FRAKTUR SMALL N
+			case "nexist":                          // THERE DOES NOT EXIST
+				return rune(0x2204), true
+			case "nexists":                         // THERE DOES NOT EXIST
+				return rune(0x2204), true
+			case "nfr":                             // MATHEMATICAL FRAKTUR SMALL N
 				return rune(0x01d52b), true
-			case "ngE": 
-				// GREATER-THAN OVER EQUAL TO with slash
-				return rune(0x2267), true
-			case "ngeqq": 
-				// GREATER-THAN OVER EQUAL TO with slash
+			case "ngE":                             // GREATER-THAN OVER EQUAL TO with slash
 				return rune(0x2267), true
-			case "nge": 
-				// NEITHER GREATER-THAN NOR EQUAL TO
+			case "nge":                             // NEITHER GREATER-THAN NOR EQUAL TO
 				return rune(0x2271), true
-			case "ngeq": 
-				// NEITHER GREATER-THAN NOR EQUAL TO
+			case "ngeq":                            // NEITHER GREATER-THAN NOR EQUAL TO
 				return rune(0x2271), true
-			case "ngeqslant": 
-				// GREATER-THAN OR SLANTED EQUAL TO with slash
+			case "ngeqq":                           // GREATER-THAN OVER EQUAL TO with slash
+				return rune(0x2267), true
+			case "ngeqslant":                       // GREATER-THAN OR SLANTED EQUAL TO with slash
 				return rune(0x2a7e), true
-			case "nges": 
-				// GREATER-THAN OR SLANTED EQUAL TO with slash
+			case "nges":                            // GREATER-THAN OR SLANTED EQUAL TO with slash
 				return rune(0x2a7e), true
-			case "ngr": 
-				// GREEK SMALL LETTER NU
+			case "ngr":                             // GREEK SMALL LETTER NU
 				return rune(0x03bd), true
-			case "ngsim": 
-				// NEITHER GREATER-THAN NOR EQUIVALENT TO
+			case "ngsim":                           // NEITHER GREATER-THAN NOR EQUIVALENT TO
 				return rune(0x2275), true
-			case "ngt": 
-				// NOT GREATER-THAN
+			case "ngt":                             // NOT GREATER-THAN
 				return rune(0x226f), true
-			case "ngtr": 
-				// NOT GREATER-THAN
+			case "ngtr":                            // NOT GREATER-THAN
 				return rune(0x226f), true
-			case "nhArr": 
-				// LEFT RIGHT DOUBLE ARROW WITH STROKE
+			case "nhArr":                           // LEFT RIGHT DOUBLE ARROW WITH STROKE
 				return rune(0x21ce), true
-			case "nharr": 
-				// LEFT RIGHT ARROW WITH STROKE
+			case "nharr":                           // LEFT RIGHT ARROW WITH STROKE
 				return rune(0x21ae), true
-			case "nhpar": 
-				// PARALLEL WITH HORIZONTAL STROKE
+			case "nhpar":                           // PARALLEL WITH HORIZONTAL STROKE
 				return rune(0x2af2), true
-			case "niv": 
-				// CONTAINS AS MEMBER
-				return rune(0x220b), true
-			case "ni": 
-				// CONTAINS AS MEMBER
+			case "ni":                              // CONTAINS AS MEMBER
 				return rune(0x220b), true
-			case "nisd": 
-				// CONTAINS WITH LONG HORIZONTAL STROKE
-				return rune(0x22fa), true
-			case "nis": 
-				// SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+			case "nis":                             // SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
 				return rune(0x22fc), true
-			case "njcy": 
-				// CYRILLIC SMALL LETTER NJE
+			case "nisd":                            // CONTAINS WITH LONG HORIZONTAL STROKE
+				return rune(0x22fa), true
+			case "niv":                             // CONTAINS AS MEMBER
+				return rune(0x220b), true
+			case "njcy":                            // CYRILLIC SMALL LETTER NJE
 				return rune(0x045a), true
-			case "nlArr": 
-				// LEFTWARDS DOUBLE ARROW WITH STROKE
+			case "nlArr":                           // LEFTWARDS DOUBLE ARROW WITH STROKE
 				return rune(0x21cd), true
-			case "nlE": 
-				// LESS-THAN OVER EQUAL TO with slash
+			case "nlE":                             // LESS-THAN OVER EQUAL TO with slash
 				return rune(0x2266), true
-			case "nlarr": 
-				// LEFTWARDS ARROW WITH STROKE
+			case "nlarr":                           // LEFTWARDS ARROW WITH STROKE
 				return rune(0x219a), true
-			case "nldr": 
-				// TWO DOT LEADER
+			case "nldr":                            // TWO DOT LEADER
 				return rune(0x2025), true
-			case "nleftarrow": 
-				// LEFTWARDS ARROW WITH STROKE
+			case "nle":                             // NEITHER LESS-THAN NOR EQUAL TO
+				return rune(0x2270), true
+			case "nleftarrow":                      // LEFTWARDS ARROW WITH STROKE
 				return rune(0x219a), true
-			case "nleftrightarrow": 
-				// LEFT RIGHT ARROW WITH STROKE
+			case "nleftrightarrow":                 // LEFT RIGHT ARROW WITH STROKE
 				return rune(0x21ae), true
-			case "nleqq": 
-				// LESS-THAN OVER EQUAL TO with slash
-				return rune(0x2266), true
-			case "nless": 
-				// NOT LESS-THAN
-				return rune(0x226e), true
-			case "nle": 
-				// NEITHER LESS-THAN NOR EQUAL TO
+			case "nleq":                            // NEITHER LESS-THAN NOR EQUAL TO
 				return rune(0x2270), true
-			case "nleq": 
-				// NEITHER LESS-THAN NOR EQUAL TO
-				return rune(0x2270), true
-			case "nleqslant": 
-				// LESS-THAN OR SLANTED EQUAL TO with slash
+			case "nleqq":                           // LESS-THAN OVER EQUAL TO with slash
+				return rune(0x2266), true
+			case "nleqslant":                       // LESS-THAN OR SLANTED EQUAL TO with slash
 				return rune(0x2a7d), true
-			case "nles": 
-				// LESS-THAN OR SLANTED EQUAL TO with slash
+			case "nles":                            // LESS-THAN OR SLANTED EQUAL TO with slash
 				return rune(0x2a7d), true
-			case "nlsim": 
-				// NEITHER LESS-THAN NOR EQUIVALENT TO
+			case "nless":                           // NOT LESS-THAN
+				return rune(0x226e), true
+			case "nlsim":                           // NEITHER LESS-THAN NOR EQUIVALENT TO
 				return rune(0x2274), true
-			case "nlt": 
-				// NOT LESS-THAN
+			case "nlt":                             // NOT LESS-THAN
 				return rune(0x226e), true
-			case "nltri": 
-				// NOT NORMAL SUBGROUP OF
+			case "nltri":                           // NOT NORMAL SUBGROUP OF
 				return rune(0x22ea), true
-			case "nltrie": 
-				// NOT NORMAL SUBGROUP OF OR EQUAL TO
+			case "nltrie":                          // NOT NORMAL SUBGROUP OF OR EQUAL TO
 				return rune(0x22ec), true
-			case "nltrivb": 
-				// LEFT TRIANGLE BESIDE VERTICAL BAR with slash
+			case "nltrivb":                         // LEFT TRIANGLE BESIDE VERTICAL BAR with slash
 				return rune(0x29cf), true
-			case "nmid": 
-				// DOES NOT DIVIDE
+			case "nmid":                            // DOES NOT DIVIDE
 				return rune(0x2224), true
-			case "nopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL N
+			case "nopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL N
 				return rune(0x01d55f), true
-			case "notin": 
-				// NOT AN ELEMENT OF
+			case "not":                             // NOT SIGN
+				return rune(0xac), true
+			case "notin":                           // NOT AN ELEMENT OF
 				return rune(0x2209), true
-			case "notinE": 
-				// ELEMENT OF WITH TWO HORIZONTAL STROKES with slash
+			case "notinE":                          // ELEMENT OF WITH TWO HORIZONTAL STROKES with slash
 				return rune(0x22f9), true
-			case "notindot": 
-				// ELEMENT OF WITH DOT ABOVE with slash
+			case "notindot":                        // ELEMENT OF WITH DOT ABOVE with slash
 				return rune(0x22f5), true
-			case "notinva": 
-				// NOT AN ELEMENT OF
+			case "notinva":                         // NOT AN ELEMENT OF
 				return rune(0x2209), true
-			case "notinvb": 
-				// SMALL ELEMENT OF WITH OVERBAR
+			case "notinvb":                         // SMALL ELEMENT OF WITH OVERBAR
 				return rune(0x22f7), true
-			case "notinvc": 
-				// ELEMENT OF WITH OVERBAR
+			case "notinvc":                         // ELEMENT OF WITH OVERBAR
 				return rune(0x22f6), true
-			case "notni": 
-				// DOES NOT CONTAIN AS MEMBER
+			case "notni":                           // DOES NOT CONTAIN AS MEMBER
 				return rune(0x220c), true
-			case "notniva": 
-				// DOES NOT CONTAIN AS MEMBER
+			case "notniva":                         // DOES NOT CONTAIN AS MEMBER
 				return rune(0x220c), true
-			case "notnivb": 
-				// SMALL CONTAINS WITH OVERBAR
+			case "notnivb":                         // SMALL CONTAINS WITH OVERBAR
 				return rune(0x22fe), true
-			case "notnivc": 
-				// CONTAINS WITH OVERBAR
+			case "notnivc":                         // CONTAINS WITH OVERBAR
 				return rune(0x22fd), true
-			case "not": 
-				// NOT SIGN
-				return rune(0xac), true
-			case "npart": 
-				// PARTIAL DIFFERENTIAL with slash
-				return rune(0x2202), true
-			case "npar": 
-				// NOT PARALLEL TO
+			case "npar":                            // NOT PARALLEL TO
 				return rune(0x2226), true
-			case "nparallel": 
-				// NOT PARALLEL TO
+			case "nparallel":                       // NOT PARALLEL TO
 				return rune(0x2226), true
-			case "nparsl": 
-				// DOUBLE SOLIDUS OPERATOR with reverse slash
+			case "nparsl":                          // DOUBLE SOLIDUS OPERATOR with reverse slash
 				return rune(0x2afd), true
-			case "npolint": 
-				// LINE INTEGRATION NOT INCLUDING THE POLE
+			case "npart":                           // PARTIAL DIFFERENTIAL with slash
+				return rune(0x2202), true
+			case "npolint":                         // LINE INTEGRATION NOT INCLUDING THE POLE
 				return rune(0x2a14), true
-			case "nprsim": 
-				// PRECEDES OR EQUIVALENT TO with slash
-				return rune(0x227e), true
-			case "npr": 
-				// DOES NOT PRECEDE
+			case "npr":                             // DOES NOT PRECEDE
 				return rune(0x2280), true
-			case "nprcue": 
-				// DOES NOT PRECEDE OR EQUAL
+			case "nprcue":                          // DOES NOT PRECEDE OR EQUAL
 				return rune(0x22e0), true
-			case "nprec": 
-				// DOES NOT PRECEDE
-				return rune(0x2280), true
-			case "npre": 
-				// PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash
+			case "npre":                            // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash
 				return rune(0x2aaf), true
-			case "npreceq": 
-				// PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash
+			case "nprec":                           // DOES NOT PRECEDE
+				return rune(0x2280), true
+			case "npreceq":                         // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash
 				return rune(0x2aaf), true
-			case "nrArr": 
-				// RIGHTWARDS DOUBLE ARROW WITH STROKE
+			case "nprsim":                          // PRECEDES OR EQUIVALENT TO with slash
+				return rune(0x227e), true
+			case "nrArr":                           // RIGHTWARDS DOUBLE ARROW WITH STROKE
 				return rune(0x21cf), true
-			case "nrarrw": 
-				// RIGHTWARDS WAVE ARROW with slash
-				return rune(0x219d), true
-			case "nrarr": 
-				// RIGHTWARDS ARROW WITH STROKE
+			case "nrarr":                           // RIGHTWARDS ARROW WITH STROKE
 				return rune(0x219b), true
-			case "nrarrc": 
-				// WAVE ARROW POINTING DIRECTLY RIGHT with slash
+			case "nrarrc":                          // WAVE ARROW POINTING DIRECTLY RIGHT with slash
 				return rune(0x2933), true
-			case "nrightarrow": 
-				// RIGHTWARDS ARROW WITH STROKE
+			case "nrarrw":                          // RIGHTWARDS WAVE ARROW with slash
+				return rune(0x219d), true
+			case "nrightarrow":                     // RIGHTWARDS ARROW WITH STROKE
 				return rune(0x219b), true
-			case "nrtri": 
-				// DOES NOT CONTAIN AS NORMAL SUBGROUP
+			case "nrtri":                           // DOES NOT CONTAIN AS NORMAL SUBGROUP
 				return rune(0x22eb), true
-			case "nrtrie": 
-				// DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+			case "nrtrie":                          // DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
 				return rune(0x22ed), true
-			case "nsGt": 
-				// DOUBLE NESTED GREATER-THAN with slash
+			case "nsGt":                            // DOUBLE NESTED GREATER-THAN with slash
 				return rune(0x2aa2), true
-			case "nsLt": 
-				// DOUBLE NESTED LESS-THAN with slash
+			case "nsLt":                            // DOUBLE NESTED LESS-THAN with slash
 				return rune(0x2aa1), true
-			case "nscsim": 
-				// SUCCEEDS OR EQUIVALENT TO with slash
-				return rune(0x227f), true
-			case "nsc": 
-				// DOES NOT SUCCEED
+			case "nsc":                             // DOES NOT SUCCEED
 				return rune(0x2281), true
-			case "nsccue": 
-				// DOES NOT SUCCEED OR EQUAL
+			case "nsccue":                          // DOES NOT SUCCEED OR EQUAL
 				return rune(0x22e1), true
-			case "nsce": 
-				// SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash
+			case "nsce":                            // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash
 				return rune(0x2ab0), true
-			case "nscr": 
-				// MATHEMATICAL SCRIPT SMALL N
+			case "nscr":                            // MATHEMATICAL SCRIPT SMALL N
 				return rune(0x01d4c3), true
-			case "nshortmid": 
-				// DOES NOT DIVIDE
+			case "nscsim":                          // SUCCEEDS OR EQUIVALENT TO with slash
+				return rune(0x227f), true
+			case "nshortmid":                       // DOES NOT DIVIDE
 				return rune(0x2224), true
-			case "nshortparallel": 
-				// NOT PARALLEL TO
+			case "nshortparallel":                  // NOT PARALLEL TO
 				return rune(0x2226), true
-			case "nsim": 
-				// NOT TILDE
+			case "nsim":                            // NOT TILDE
 				return rune(0x2241), true
-			case "nsime": 
-				// NOT ASYMPTOTICALLY EQUAL TO
+			case "nsime":                           // NOT ASYMPTOTICALLY EQUAL TO
 				return rune(0x2244), true
-			case "nsimeq": 
-				// NOT ASYMPTOTICALLY EQUAL TO
+			case "nsimeq":                          // NOT ASYMPTOTICALLY EQUAL TO
 				return rune(0x2244), true
-			case "nsmid": 
-				// DOES NOT DIVIDE
+			case "nsmid":                           // DOES NOT DIVIDE
 				return rune(0x2224), true
-			case "nspar": 
-				// NOT PARALLEL TO
+			case "nspar":                           // NOT PARALLEL TO
 				return rune(0x2226), true
-			case "nsqsub": 
-				// SQUARE IMAGE OF with slash
+			case "nsqsub":                          // SQUARE IMAGE OF with slash
 				return rune(0x228f), true
-			case "nsqsube": 
-				// NOT SQUARE IMAGE OF OR EQUAL TO
+			case "nsqsube":                         // NOT SQUARE IMAGE OF OR EQUAL TO
 				return rune(0x22e2), true
-			case "nsqsup": 
-				// SQUARE ORIGINAL OF with slash
+			case "nsqsup":                          // SQUARE ORIGINAL OF with slash
 				return rune(0x2290), true
-			case "nsqsupe": 
-				// NOT SQUARE ORIGINAL OF OR EQUAL TO
+			case "nsqsupe":                         // NOT SQUARE ORIGINAL OF OR EQUAL TO
 				return rune(0x22e3), true
-			case "nsubset": 
-				// SUBSET OF with vertical line
-				return rune(0x2282), true
-			case "nsub": 
-				// NOT A SUBSET OF
+			case "nsub":                            // NOT A SUBSET OF
 				return rune(0x2284), true
-			case "nsubE": 
-				// SUBSET OF ABOVE EQUALS SIGN with slash
+			case "nsubE":                           // SUBSET OF ABOVE EQUALS SIGN with slash
 				return rune(0x2ac5), true
-			case "nsube": 
-				// NEITHER A SUBSET OF NOR EQUAL TO
+			case "nsube":                           // NEITHER A SUBSET OF NOR EQUAL TO
 				return rune(0x2288), true
-			case "nsubseteq": 
-				// NEITHER A SUBSET OF NOR EQUAL TO
+			case "nsubset":                         // SUBSET OF with vertical line
+				return rune(0x2282), true
+			case "nsubseteq":                       // NEITHER A SUBSET OF NOR EQUAL TO
 				return rune(0x2288), true
-			case "nsubseteqq": 
-				// SUBSET OF ABOVE EQUALS SIGN with slash
+			case "nsubseteqq":                      // SUBSET OF ABOVE EQUALS SIGN with slash
 				return rune(0x2ac5), true
-			case "nsucc": 
-				// DOES NOT SUCCEED
+			case "nsucc":                           // DOES NOT SUCCEED
 				return rune(0x2281), true
-			case "nsucceq": 
-				// SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash
+			case "nsucceq":                         // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash
 				return rune(0x2ab0), true
-			case "nsupset": 
-				// SUPERSET OF with vertical line
-				return rune(0x2283), true
-			case "nsup": 
-				// NOT A SUPERSET OF
+			case "nsup":                            // NOT A SUPERSET OF
 				return rune(0x2285), true
-			case "nsupE": 
-				// SUPERSET OF ABOVE EQUALS SIGN with slash
+			case "nsupE":                           // SUPERSET OF ABOVE EQUALS SIGN with slash
 				return rune(0x2ac6), true
-			case "nsupe": 
-				// NEITHER A SUPERSET OF NOR EQUAL TO
+			case "nsupe":                           // NEITHER A SUPERSET OF NOR EQUAL TO
 				return rune(0x2289), true
-			case "nsupseteq": 
-				// NEITHER A SUPERSET OF NOR EQUAL TO
+			case "nsupset":                         // SUPERSET OF with vertical line
+				return rune(0x2283), true
+			case "nsupseteq":                       // NEITHER A SUPERSET OF NOR EQUAL TO
 				return rune(0x2289), true
-			case "nsupseteqq": 
-				// SUPERSET OF ABOVE EQUALS SIGN with slash
+			case "nsupseteqq":                      // SUPERSET OF ABOVE EQUALS SIGN with slash
 				return rune(0x2ac6), true
-			case "ntgl": 
-				// NEITHER GREATER-THAN NOR LESS-THAN
+			case "ntgl":                            // NEITHER GREATER-THAN NOR LESS-THAN
 				return rune(0x2279), true
-			case "ntilde": 
-				// LATIN SMALL LETTER N WITH TILDE
+			case "ntilde":                          // LATIN SMALL LETTER N WITH TILDE
 				return rune(0xf1), true
-			case "ntlg": 
-				// NEITHER LESS-THAN NOR GREATER-THAN
+			case "ntlg":                            // NEITHER LESS-THAN NOR GREATER-THAN
 				return rune(0x2278), true
-			case "ntriangleleft": 
-				// NOT NORMAL SUBGROUP OF
+			case "ntriangleleft":                   // NOT NORMAL SUBGROUP OF
 				return rune(0x22ea), true
-			case "ntrianglelefteq": 
-				// NOT NORMAL SUBGROUP OF OR EQUAL TO
+			case "ntrianglelefteq":                 // NOT NORMAL SUBGROUP OF OR EQUAL TO
 				return rune(0x22ec), true
-			case "ntriangleright": 
-				// DOES NOT CONTAIN AS NORMAL SUBGROUP
+			case "ntriangleright":                  // DOES NOT CONTAIN AS NORMAL SUBGROUP
 				return rune(0x22eb), true
-			case "ntrianglerighteq": 
-				// DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+			case "ntrianglerighteq":                // DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
 				return rune(0x22ed), true
-			case "numero": 
-				// NUMERO SIGN
-				return rune(0x2116), true
-			case "numsp": 
-				// FIGURE SPACE
-				return rune(0x2007), true
-			case "nu": 
-				// GREEK SMALL LETTER NU
+			case "nu":                              // GREEK SMALL LETTER NU
 				return rune(0x03bd), true
-			case "num": 
-				// NUMBER SIGN
+			case "num":                             // NUMBER SIGN
 				return rune(0x23), true
-			case "nvDash": 
-				// NOT TRUE
+			case "numero":                          // NUMERO SIGN
+				return rune(0x2116), true
+			case "numsp":                           // FIGURE SPACE
+				return rune(0x2007), true
+			case "nvDash":                          // NOT TRUE
 				return rune(0x22ad), true
-			case "nvHarr": 
-				// LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
+			case "nvHarr":                          // LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
 				return rune(0x2904), true
-			case "nvap": 
-				// EQUIVALENT TO with vertical line
+			case "nvap":                            // EQUIVALENT TO with vertical line
 				return rune(0x224d), true
-			case "nvbrtri": 
-				// VERTICAL BAR BESIDE RIGHT TRIANGLE with slash
+			case "nvbrtri":                         // VERTICAL BAR BESIDE RIGHT TRIANGLE with slash
 				return rune(0x29d0), true
-			case "nvdash": 
-				// DOES NOT PROVE
+			case "nvdash":                          // DOES NOT PROVE
 				return rune(0x22ac), true
-			case "nvge": 
-				// GREATER-THAN OR EQUAL TO with vertical line
+			case "nvge":                            // GREATER-THAN OR EQUAL TO with vertical line
 				return rune(0x2265), true
-			case "nvgt": 
-				// GREATER-THAN SIGN with vertical line
+			case "nvgt":                            // GREATER-THAN SIGN with vertical line
 				return rune(0x3e), true
-			case "nvinfin": 
-				// INFINITY NEGATED WITH VERTICAL BAR
+			case "nvinfin":                         // INFINITY NEGATED WITH VERTICAL BAR
 				return rune(0x29de), true
-			case "nvlArr": 
-				// LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+			case "nvlArr":                          // LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
 				return rune(0x2902), true
-			case "nvle": 
-				// LESS-THAN OR EQUAL TO with vertical line
+			case "nvle":                            // LESS-THAN OR EQUAL TO with vertical line
 				return rune(0x2264), true
-			case "nvltrie": 
-				// NORMAL SUBGROUP OF OR EQUAL TO with vertical line
-				return rune(0x22b4), true
-			case "nvlt": 
-				// LESS-THAN SIGN with vertical line
+			case "nvlt":                            // LESS-THAN SIGN with vertical line
 				return rune(0x3c), true
-			case "nvrArr": 
-				// RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+			case "nvltrie":                         // NORMAL SUBGROUP OF OR EQUAL TO with vertical line
+				return rune(0x22b4), true
+			case "nvrArr":                          // RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
 				return rune(0x2903), true
-			case "nvrtrie": 
-				// CONTAINS AS NORMAL SUBGROUP OR EQUAL TO with vertical line
+			case "nvrtrie":                         // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO with vertical line
 				return rune(0x22b5), true
-			case "nvsim": 
-				// TILDE OPERATOR with vertical line
+			case "nvsim":                           // TILDE OPERATOR with vertical line
 				return rune(0x223c), true
-			case "nwArr": 
-				// NORTH WEST DOUBLE ARROW
+			case "nwArr":                           // NORTH WEST DOUBLE ARROW
 				return rune(0x21d6), true
-			case "nwarhk": 
-				// NORTH WEST ARROW WITH HOOK
+			case "nwarhk":                          // NORTH WEST ARROW WITH HOOK
 				return rune(0x2923), true
-			case "nwarrow": 
-				// NORTH WEST ARROW
+			case "nwarr":                           // NORTH WEST ARROW
 				return rune(0x2196), true
-			case "nwarr": 
-				// NORTH WEST ARROW
+			case "nwarrow":                         // NORTH WEST ARROW
 				return rune(0x2196), true
-			case "nwnear": 
-				// NORTH WEST ARROW AND NORTH EAST ARROW
+			case "nwnear":                          // NORTH WEST ARROW AND NORTH EAST ARROW
 				return rune(0x2927), true
-			case "nwonearr": 
-				// NORTH WEST ARROW CROSSING NORTH EAST ARROW
+			case "nwonearr":                        // NORTH WEST ARROW CROSSING NORTH EAST ARROW
 				return rune(0x2932), true
-			case "nwsesarr": 
-				// NORTH WEST AND SOUTH EAST ARROW
+			case "nwsesarr":                        // NORTH WEST AND SOUTH EAST ARROW
 				return rune(0x2921), true
 		}
 
 	case 'o':
 		switch name {
-			case "oS": 
-				// CIRCLED LATIN CAPITAL LETTER S
+			case "oS":                              // CIRCLED LATIN CAPITAL LETTER S
 				return rune(0x24c8), true
-			case "oacgr": 
-				// GREEK SMALL LETTER OMICRON WITH TONOS
+			case "oacgr":                           // GREEK SMALL LETTER OMICRON WITH TONOS
 				return rune(0x03cc), true
-			case "oacute": 
-				// LATIN SMALL LETTER O WITH ACUTE
+			case "oacute":                          // LATIN SMALL LETTER O WITH ACUTE
 				return rune(0xf3), true
-			case "oast": 
-				// CIRCLED ASTERISK OPERATOR
+			case "oast":                            // CIRCLED ASTERISK OPERATOR
 				return rune(0x229b), true
-			case "obsol": 
-				// CIRCLED REVERSE SOLIDUS
+			case "obsol":                           // CIRCLED REVERSE SOLIDUS
 				return rune(0x29b8), true
-			case "ocir": 
-				// CIRCLED RING OPERATOR
+			case "ocir":                            // CIRCLED RING OPERATOR
 				return rune(0x229a), true
-			case "ocirc": 
-				// LATIN SMALL LETTER O WITH CIRCUMFLEX
+			case "ocirc":                           // LATIN SMALL LETTER O WITH CIRCUMFLEX
 				return rune(0xf4), true
-			case "ocy": 
-				// CYRILLIC SMALL LETTER O
+			case "ocy":                             // CYRILLIC SMALL LETTER O
 				return rune(0x043e), true
-			case "odash": 
-				// CIRCLED DASH
+			case "odash":                           // CIRCLED DASH
 				return rune(0x229d), true
-			case "odblac": 
-				// LATIN SMALL LETTER O WITH DOUBLE ACUTE
+			case "odblac":                          // LATIN SMALL LETTER O WITH DOUBLE ACUTE
 				return rune(0x0151), true
-			case "odiv": 
-				// CIRCLED DIVISION SIGN
+			case "odiv":                            // CIRCLED DIVISION SIGN
 				return rune(0x2a38), true
-			case "odot": 
-				// CIRCLED DOT OPERATOR
+			case "odot":                            // CIRCLED DOT OPERATOR
 				return rune(0x2299), true
-			case "odsold": 
-				// CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
+			case "odsold":                          // CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
 				return rune(0x29bc), true
-			case "oelig": 
-				// LATIN SMALL LIGATURE OE
+			case "oelig":                           // LATIN SMALL LIGATURE OE
 				return rune(0x0153), true
-			case "ofcir": 
-				// CIRCLED BULLET
+			case "ofcir":                           // CIRCLED BULLET
 				return rune(0x29bf), true
-			case "ofr": 
-				// MATHEMATICAL FRAKTUR SMALL O
+			case "ofr":                             // MATHEMATICAL FRAKTUR SMALL O
 				return rune(0x01d52c), true
-			case "ogon": 
-				// OGONEK
+			case "ogon":                            // OGONEK
 				return rune(0x02db), true
-			case "ogr": 
-				// GREEK SMALL LETTER OMICRON
+			case "ogr":                             // GREEK SMALL LETTER OMICRON
 				return rune(0x03bf), true
-			case "ograve": 
-				// LATIN SMALL LETTER O WITH GRAVE
+			case "ograve":                          // LATIN SMALL LETTER O WITH GRAVE
 				return rune(0xf2), true
-			case "ogt": 
-				// CIRCLED GREATER-THAN
+			case "ogt":                             // CIRCLED GREATER-THAN
 				return rune(0x29c1), true
-			case "ohacgr": 
-				// GREEK SMALL LETTER OMEGA WITH TONOS
+			case "ohacgr":                          // GREEK SMALL LETTER OMEGA WITH TONOS
 				return rune(0x03ce), true
-			case "ohbar": 
-				// CIRCLE WITH HORIZONTAL BAR
+			case "ohbar":                           // CIRCLE WITH HORIZONTAL BAR
 				return rune(0x29b5), true
-			case "ohgr": 
-				// GREEK SMALL LETTER OMEGA
+			case "ohgr":                            // GREEK SMALL LETTER OMEGA
 				return rune(0x03c9), true
-			case "ohm": 
-				// GREEK CAPITAL LETTER OMEGA
+			case "ohm":                             // GREEK CAPITAL LETTER OMEGA
 				return rune(0x03a9), true
-			case "oint": 
-				// CONTOUR INTEGRAL
+			case "oint":                            // CONTOUR INTEGRAL
 				return rune(0x222e), true
-			case "olarr": 
-				// ANTICLOCKWISE OPEN CIRCLE ARROW
+			case "olarr":                           // ANTICLOCKWISE OPEN CIRCLE ARROW
 				return rune(0x21ba), true
-			case "olcir": 
-				// CIRCLED WHITE BULLET
+			case "olcir":                           // CIRCLED WHITE BULLET
 				return rune(0x29be), true
-			case "olcross": 
-				// CIRCLE WITH SUPERIMPOSED X
+			case "olcross":                         // CIRCLE WITH SUPERIMPOSED X
 				return rune(0x29bb), true
-			case "oline": 
-				// OVERLINE
+			case "oline":                           // OVERLINE
 				return rune(0x203e), true
-			case "olt": 
-				// CIRCLED LESS-THAN
+			case "olt":                             // CIRCLED LESS-THAN
 				return rune(0x29c0), true
-			case "omacr": 
-				// LATIN SMALL LETTER O WITH MACRON
+			case "omacr":                           // LATIN SMALL LETTER O WITH MACRON
 				return rune(0x014d), true
-			case "omega": 
-				// GREEK SMALL LETTER OMEGA
+			case "omega":                           // GREEK SMALL LETTER OMEGA
 				return rune(0x03c9), true
-			case "omicron": 
-				// GREEK SMALL LETTER OMICRON
+			case "omicron":                         // GREEK SMALL LETTER OMICRON
 				return rune(0x03bf), true
-			case "omid": 
-				// CIRCLED VERTICAL BAR
+			case "omid":                            // CIRCLED VERTICAL BAR
 				return rune(0x29b6), true
-			case "ominus": 
-				// CIRCLED MINUS
+			case "ominus":                          // CIRCLED MINUS
 				return rune(0x2296), true
-			case "oopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL O
+			case "oopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL O
 				return rune(0x01d560), true
-			case "opar": 
-				// CIRCLED PARALLEL
+			case "opar":                            // CIRCLED PARALLEL
 				return rune(0x29b7), true
-			case "operp": 
-				// CIRCLED PERPENDICULAR
+			case "operp":                           // CIRCLED PERPENDICULAR
 				return rune(0x29b9), true
-			case "opfgamma": 
-				// DOUBLE-STRUCK SMALL GAMMA
+			case "opfgamma":                        // DOUBLE-STRUCK SMALL GAMMA
 				return rune(0x213d), true
-			case "opfpi": 
-				// DOUBLE-STRUCK CAPITAL PI
+			case "opfpi":                           // DOUBLE-STRUCK CAPITAL PI
 				return rune(0x213f), true
-			case "opfsum": 
-				// DOUBLE-STRUCK N-ARY SUMMATION
+			case "opfsum":                          // DOUBLE-STRUCK N-ARY SUMMATION
 				return rune(0x2140), true
-			case "oplus": 
-				// CIRCLED PLUS
+			case "oplus":                           // CIRCLED PLUS
 				return rune(0x2295), true
-			case "orarr": 
-				// CLOCKWISE OPEN CIRCLE ARROW
-				return rune(0x21bb), true
-			case "or": 
-				// LOGICAL OR
+			case "or":                              // LOGICAL OR
 				return rune(0x2228), true
-			case "orderof": 
-				// SCRIPT SMALL O
+			case "orarr":                           // CLOCKWISE OPEN CIRCLE ARROW
+				return rune(0x21bb), true
+			case "ord":                             // LOGICAL OR WITH HORIZONTAL DASH
+				return rune(0x2a5d), true
+			case "order":                           // SCRIPT SMALL O
 				return rune(0x2134), true
-			case "order": 
-				// SCRIPT SMALL O
+			case "orderof":                         // SCRIPT SMALL O
 				return rune(0x2134), true
-			case "ord": 
-				// LOGICAL OR WITH HORIZONTAL DASH
-				return rune(0x2a5d), true
-			case "ordf": 
-				// FEMININE ORDINAL INDICATOR
+			case "ordf":                            // FEMININE ORDINAL INDICATOR
 				return rune(0xaa), true
-			case "ordm": 
-				// MASCULINE ORDINAL INDICATOR
+			case "ordm":                            // MASCULINE ORDINAL INDICATOR
 				return rune(0xba), true
-			case "origof": 
-				// ORIGINAL OF
+			case "origof":                          // ORIGINAL OF
 				return rune(0x22b6), true
-			case "oror": 
-				// TWO INTERSECTING LOGICAL OR
+			case "oror":                            // TWO INTERSECTING LOGICAL OR
 				return rune(0x2a56), true
-			case "orslope": 
-				// SLOPING LARGE OR
+			case "orslope":                         // SLOPING LARGE OR
 				return rune(0x2a57), true
-			case "orv": 
-				// LOGICAL OR WITH MIDDLE STEM
+			case "orv":                             // LOGICAL OR WITH MIDDLE STEM
 				return rune(0x2a5b), true
-			case "oscr": 
-				// SCRIPT SMALL O
+			case "oscr":                            // SCRIPT SMALL O
 				return rune(0x2134), true
-			case "oslash": 
-				// LATIN SMALL LETTER O WITH STROKE
+			case "oslash":                          // LATIN SMALL LETTER O WITH STROKE
 				return rune(0xf8), true
-			case "osol": 
-				// CIRCLED DIVISION SLASH
+			case "osol":                            // CIRCLED DIVISION SLASH
 				return rune(0x2298), true
-			case "otilde": 
-				// LATIN SMALL LETTER O WITH TILDE
+			case "otilde":                          // LATIN SMALL LETTER O WITH TILDE
 				return rune(0xf5), true
-			case "otimes": 
-				// CIRCLED TIMES
+			case "otimes":                          // CIRCLED TIMES
 				return rune(0x2297), true
-			case "otimesas": 
-				// CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
+			case "otimesas":                        // CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
 				return rune(0x2a36), true
-			case "ouml": 
-				// LATIN SMALL LETTER O WITH DIAERESIS
+			case "ouml":                            // LATIN SMALL LETTER O WITH DIAERESIS
 				return rune(0xf6), true
-			case "ovbar": 
-				// APL FUNCTIONAL SYMBOL CIRCLE STILE
+			case "ovbar":                           // APL FUNCTIONAL SYMBOL CIRCLE STILE
 				return rune(0x233d), true
-			case "ovrbrk": 
-				// TOP SQUARE BRACKET
+			case "ovrbrk":                          // TOP SQUARE BRACKET
 				return rune(0x23b4), true
-			case "ovrcub": 
-				// TOP CURLY BRACKET
+			case "ovrcub":                          // TOP CURLY BRACKET
 				return rune(0x23de), true
-			case "ovrpar": 
-				// TOP PARENTHESIS
+			case "ovrpar":                          // TOP PARENTHESIS
 				return rune(0x23dc), true
-			case "oxuarr": 
-				// UP ARROW THROUGH CIRCLE
+			case "oxuarr":                          // UP ARROW THROUGH CIRCLE
 				return rune(0x29bd), true
 		}
 
 	case 'p':
 		switch name {
-			case "part": 
-				// PARTIAL DIFFERENTIAL
-				return rune(0x2202), true
-			case "par": 
-				// PARALLEL TO
+			case "par":                             // PARALLEL TO
 				return rune(0x2225), true
-			case "parallel": 
-				// PARALLEL TO
-				return rune(0x2225), true
-			case "para": 
-				// PILCROW SIGN
+			case "para":                            // PILCROW SIGN
 				return rune(0xb6), true
-			case "parsim": 
-				// PARALLEL WITH TILDE OPERATOR
+			case "parallel":                        // PARALLEL TO
+				return rune(0x2225), true
+			case "parsim":                          // PARALLEL WITH TILDE OPERATOR
 				return rune(0x2af3), true
-			case "parsl": 
-				// DOUBLE SOLIDUS OPERATOR
+			case "parsl":                           // DOUBLE SOLIDUS OPERATOR
 				return rune(0x2afd), true
-			case "pcy": 
-				// CYRILLIC SMALL LETTER PE
+			case "part":                            // PARTIAL DIFFERENTIAL
+				return rune(0x2202), true
+			case "pcy":                             // CYRILLIC SMALL LETTER PE
 				return rune(0x043f), true
-			case "percnt": 
-				// PERCENT SIGN
+			case "percnt":                          // PERCENT SIGN
 				return rune(0x25), true
-			case "period": 
-				// FULL STOP
+			case "period":                          // FULL STOP
 				return rune(0x2e), true
-			case "permil": 
-				// PER MILLE SIGN
+			case "permil":                          // PER MILLE SIGN
 				return rune(0x2030), true
-			case "perp": 
-				// UP TACK
+			case "perp":                            // UP TACK
 				return rune(0x22a5), true
-			case "pertenk": 
-				// PER TEN THOUSAND SIGN
+			case "pertenk":                         // PER TEN THOUSAND SIGN
 				return rune(0x2031), true
-			case "pfr": 
-				// MATHEMATICAL FRAKTUR SMALL P
+			case "pfr":                             // MATHEMATICAL FRAKTUR SMALL P
 				return rune(0x01d52d), true
-			case "pgr": 
-				// GREEK SMALL LETTER PI
+			case "pgr":                             // GREEK SMALL LETTER PI
 				return rune(0x03c0), true
-			case "phgr": 
-				// GREEK SMALL LETTER PHI
+			case "phgr":                            // GREEK SMALL LETTER PHI
+				return rune(0x03c6), true
+			case "phi":                             // GREEK SMALL LETTER PHI
 				return rune(0x03c6), true
-			case "phis": 
-				// GREEK PHI SYMBOL
+			case "phis":                            // GREEK PHI SYMBOL
 				return rune(0x03d5), true
-			case "phiv": 
-				// GREEK PHI SYMBOL
+			case "phiv":                            // GREEK PHI SYMBOL
 				return rune(0x03d5), true
-			case "phi": 
-				// GREEK SMALL LETTER PHI
-				return rune(0x03c6), true
-			case "phmmat": 
-				// SCRIPT CAPITAL M
+			case "phmmat":                          // SCRIPT CAPITAL M
 				return rune(0x2133), true
-			case "phone": 
-				// BLACK TELEPHONE
+			case "phone":                           // BLACK TELEPHONE
 				return rune(0x260e), true
-			case "pitchfork": 
-				// PITCHFORK
+			case "pi":                              // GREEK SMALL LETTER PI
+				return rune(0x03c0), true
+			case "pitchfork":                       // PITCHFORK
 				return rune(0x22d4), true
-			case "piv": 
-				// GREEK PI SYMBOL
+			case "piv":                             // GREEK PI SYMBOL
 				return rune(0x03d6), true
-			case "pi": 
-				// GREEK SMALL LETTER PI
-				return rune(0x03c0), true
-			case "planck": 
-				// PLANCK CONSTANT OVER TWO PI
+			case "planck":                          // PLANCK CONSTANT OVER TWO PI
 				return rune(0x210f), true
-			case "planckh": 
-				// PLANCK CONSTANT
+			case "planckh":                         // PLANCK CONSTANT
 				return rune(0x210e), true
-			case "plankv": 
-				// PLANCK CONSTANT OVER TWO PI
+			case "plankv":                          // PLANCK CONSTANT OVER TWO PI
 				return rune(0x210f), true
-			case "plusacir": 
-				// PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
+			case "plus":                            // PLUS SIGN
+				return rune(0x2b), true
+			case "plusacir":                        // PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
 				return rune(0x2a23), true
-			case "plusb": 
-				// SQUARED PLUS
+			case "plusb":                           // SQUARED PLUS
 				return rune(0x229e), true
-			case "pluscir": 
-				// PLUS SIGN WITH SMALL CIRCLE ABOVE
+			case "pluscir":                         // PLUS SIGN WITH SMALL CIRCLE ABOVE
 				return rune(0x2a22), true
-			case "plusdo": 
-				// DOT PLUS
+			case "plusdo":                          // DOT PLUS
 				return rune(0x2214), true
-			case "plusdu": 
-				// PLUS SIGN WITH DOT BELOW
+			case "plusdu":                          // PLUS SIGN WITH DOT BELOW
 				return rune(0x2a25), true
-			case "pluse": 
-				// PLUS SIGN ABOVE EQUALS SIGN
+			case "pluse":                           // PLUS SIGN ABOVE EQUALS SIGN
 				return rune(0x2a72), true
-			case "plusmn": 
-				// PLUS-MINUS SIGN
+			case "plusmn":                          // PLUS-MINUS SIGN
 				return rune(0xb1), true
-			case "plussim": 
-				// PLUS SIGN WITH TILDE BELOW
+			case "plussim":                         // PLUS SIGN WITH TILDE BELOW
 				return rune(0x2a26), true
-			case "plustrif": 
-				// PLUS SIGN WITH BLACK TRIANGLE
+			case "plustrif":                        // PLUS SIGN WITH BLACK TRIANGLE
 				return rune(0x2a28), true
-			case "plustwo": 
-				// PLUS SIGN WITH SUBSCRIPT TWO
+			case "plustwo":                         // PLUS SIGN WITH SUBSCRIPT TWO
 				return rune(0x2a27), true
-			case "plus": 
-				// PLUS SIGN
-				return rune(0x2b), true
-			case "pm": 
-				// PLUS-MINUS SIGN
+			case "pm":                              // PLUS-MINUS SIGN
 				return rune(0xb1), true
-			case "pointint": 
-				// INTEGRAL AROUND A POINT OPERATOR
+			case "pointint":                        // INTEGRAL AROUND A POINT OPERATOR
 				return rune(0x2a15), true
-			case "popf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL P
+			case "popf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL P
 				return rune(0x01d561), true
-			case "pound": 
-				// POUND SIGN
+			case "pound":                           // POUND SIGN
 				return rune(0xa3), true
-			case "prod": 
-				// N-ARY PRODUCT
-				return rune(0x220f), true
-			case "prop": 
-				// PROPORTIONAL TO
-				return rune(0x221d), true
-			case "propto": 
-				// PROPORTIONAL TO
-				return rune(0x221d), true
-			case "pr": 
-				// PRECEDES
+			case "pr":                              // PRECEDES
 				return rune(0x227a), true
-			case "prE": 
-				// PRECEDES ABOVE EQUALS SIGN
+			case "prE":                             // PRECEDES ABOVE EQUALS SIGN
 				return rune(0x2ab3), true
-			case "prap": 
-				// PRECEDES ABOVE ALMOST EQUAL TO
+			case "prap":                            // PRECEDES ABOVE ALMOST EQUAL TO
 				return rune(0x2ab7), true
-			case "prcue": 
-				// PRECEDES OR EQUAL TO
-				return rune(0x227c), true
-			case "prec": 
-				// PRECEDES
-				return rune(0x227a), true
-			case "preccurlyeq": 
-				// PRECEDES OR EQUAL TO
+			case "prcue":                           // PRECEDES OR EQUAL TO
 				return rune(0x227c), true
-			case "precnsim": 
-				// PRECEDES BUT NOT EQUIVALENT TO
-				return rune(0x22e8), true
-			case "precsim": 
-				// PRECEDES OR EQUIVALENT TO
-				return rune(0x227e), true
-			case "pre": 
-				// PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
+			case "pre":                             // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
 				return rune(0x2aaf), true
-			case "precapprox": 
-				// PRECEDES ABOVE ALMOST EQUAL TO
+			case "prec":                            // PRECEDES
+				return rune(0x227a), true
+			case "precapprox":                      // PRECEDES ABOVE ALMOST EQUAL TO
 				return rune(0x2ab7), true
-			case "preceq": 
-				// PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
+			case "preccurlyeq":                     // PRECEDES OR EQUAL TO
+				return rune(0x227c), true
+			case "preceq":                          // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
 				return rune(0x2aaf), true
-			case "precnapprox": 
-				// PRECEDES ABOVE NOT ALMOST EQUAL TO
+			case "precnapprox":                     // PRECEDES ABOVE NOT ALMOST EQUAL TO
 				return rune(0x2ab9), true
-			case "precneqq": 
-				// PRECEDES ABOVE NOT EQUAL TO
+			case "precneqq":                        // PRECEDES ABOVE NOT EQUAL TO
 				return rune(0x2ab5), true
-			case "primes": 
-				// DOUBLE-STRUCK CAPITAL P
-				return rune(0x2119), true
-			case "prime": 
-				// PRIME
+			case "precnsim":                        // PRECEDES BUT NOT EQUIVALENT TO
+				return rune(0x22e8), true
+			case "precsim":                         // PRECEDES OR EQUIVALENT TO
+				return rune(0x227e), true
+			case "prime":                           // PRIME
 				return rune(0x2032), true
-			case "prnE": 
-				// PRECEDES ABOVE NOT EQUAL TO
+			case "primes":                          // DOUBLE-STRUCK CAPITAL P
+				return rune(0x2119), true
+			case "prnE":                            // PRECEDES ABOVE NOT EQUAL TO
 				return rune(0x2ab5), true
-			case "prnap": 
-				// PRECEDES ABOVE NOT ALMOST EQUAL TO
+			case "prnap":                           // PRECEDES ABOVE NOT ALMOST EQUAL TO
 				return rune(0x2ab9), true
-			case "prnsim": 
-				// PRECEDES BUT NOT EQUIVALENT TO
+			case "prnsim":                          // PRECEDES BUT NOT EQUIVALENT TO
 				return rune(0x22e8), true
-			case "profalar": 
-				// ALL AROUND-PROFILE
+			case "prod":                            // N-ARY PRODUCT
+				return rune(0x220f), true
+			case "profalar":                        // ALL AROUND-PROFILE
 				return rune(0x232e), true
-			case "profline": 
-				// ARC
+			case "profline":                        // ARC
 				return rune(0x2312), true
-			case "profsurf": 
-				// SEGMENT
+			case "profsurf":                        // SEGMENT
 				return rune(0x2313), true
-			case "prsim": 
-				// PRECEDES OR EQUIVALENT TO
+			case "prop":                            // PROPORTIONAL TO
+				return rune(0x221d), true
+			case "propto":                          // PROPORTIONAL TO
+				return rune(0x221d), true
+			case "prsim":                           // PRECEDES OR EQUIVALENT TO
 				return rune(0x227e), true
-			case "prurel": 
-				// PRECEDES UNDER RELATION
+			case "prurel":                          // PRECEDES UNDER RELATION
 				return rune(0x22b0), true
-			case "pscr": 
-				// MATHEMATICAL SCRIPT SMALL P
+			case "pscr":                            // MATHEMATICAL SCRIPT SMALL P
 				return rune(0x01d4c5), true
-			case "psgr": 
-				// GREEK SMALL LETTER PSI
+			case "psgr":                            // GREEK SMALL LETTER PSI
 				return rune(0x03c8), true
-			case "psi": 
-				// GREEK SMALL LETTER PSI
+			case "psi":                             // GREEK SMALL LETTER PSI
 				return rune(0x03c8), true
-			case "puncsp": 
-				// PUNCTUATION SPACE
+			case "puncsp":                          // PUNCTUATION SPACE
 				return rune(0x2008), true
 		}
 
 	case 'q':
 		switch name {
-			case "qfr": 
-				// MATHEMATICAL FRAKTUR SMALL Q
+			case "qfr":                             // MATHEMATICAL FRAKTUR SMALL Q
 				return rune(0x01d52e), true
-			case "qint": 
-				// QUADRUPLE INTEGRAL OPERATOR
+			case "qint":                            // QUADRUPLE INTEGRAL OPERATOR
 				return rune(0x2a0c), true
-			case "qopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL Q
+			case "qopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL Q
 				return rune(0x01d562), true
-			case "qprime": 
-				// QUADRUPLE PRIME
+			case "qprime":                          // QUADRUPLE PRIME
 				return rune(0x2057), true
-			case "qscr": 
-				// MATHEMATICAL SCRIPT SMALL Q
+			case "qscr":                            // MATHEMATICAL SCRIPT SMALL Q
 				return rune(0x01d4c6), true
-			case "quaternions": 
-				// DOUBLE-STRUCK CAPITAL H
+			case "quaternions":                     // DOUBLE-STRUCK CAPITAL H
 				return rune(0x210d), true
-			case "quatint": 
-				// QUATERNION INTEGRAL OPERATOR
+			case "quatint":                         // QUATERNION INTEGRAL OPERATOR
 				return rune(0x2a16), true
-			case "questeq": 
-				// QUESTIONED EQUAL TO
-				return rune(0x225f), true
-			case "quest": 
-				// QUESTION MARK
+			case "quest":                           // QUESTION MARK
 				return rune(0x3f), true
-			case "quot": 
-				// QUOTATION MARK
+			case "questeq":                         // QUESTIONED EQUAL TO
+				return rune(0x225f), true
+			case "quot":                            // QUOTATION MARK
 				return rune(0x22), true
 		}
 
 	case 'r':
 		switch name {
-			case "rAarr": 
-				// RIGHTWARDS TRIPLE ARROW
+			case "rAarr":                           // RIGHTWARDS TRIPLE ARROW
 				return rune(0x21db), true
-			case "rArr": 
-				// RIGHTWARDS DOUBLE ARROW
+			case "rArr":                            // RIGHTWARDS DOUBLE ARROW
 				return rune(0x21d2), true
-			case "rAtail": 
-				// RIGHTWARDS DOUBLE ARROW-TAIL
+			case "rAtail":                          // RIGHTWARDS DOUBLE ARROW-TAIL
 				return rune(0x291c), true
-			case "rBarr": 
-				// RIGHTWARDS TRIPLE DASH ARROW
+			case "rBarr":                           // RIGHTWARDS TRIPLE DASH ARROW
 				return rune(0x290f), true
-			case "rHar": 
-				// RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+			case "rHar":                            // RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
 				return rune(0x2964), true
-			case "race": 
-				// REVERSED TILDE with underline
+			case "race":                            // REVERSED TILDE with underline
 				return rune(0x223d), true
-			case "racute": 
-				// LATIN SMALL LETTER R WITH ACUTE
+			case "racute":                          // LATIN SMALL LETTER R WITH ACUTE
 				return rune(0x0155), true
-			case "radic": 
-				// SQUARE ROOT
+			case "radic":                           // SQUARE ROOT
 				return rune(0x221a), true
-			case "raemptyv": 
-				// EMPTY SET WITH RIGHT ARROW ABOVE
+			case "raemptyv":                        // EMPTY SET WITH RIGHT ARROW ABOVE
 				return rune(0x29b3), true
-			case "rang": 
-				// MATHEMATICAL RIGHT ANGLE BRACKET
+			case "rang":                            // MATHEMATICAL RIGHT ANGLE BRACKET
 				return rune(0x27e9), true
-			case "rangd": 
-				// RIGHT ANGLE BRACKET WITH DOT
+			case "rangd":                           // RIGHT ANGLE BRACKET WITH DOT
 				return rune(0x2992), true
-			case "range": 
-				// REVERSED ANGLE WITH UNDERBAR
+			case "range":                           // REVERSED ANGLE WITH UNDERBAR
 				return rune(0x29a5), true
-			case "rangle": 
-				// MATHEMATICAL RIGHT ANGLE BRACKET
+			case "rangle":                          // MATHEMATICAL RIGHT ANGLE BRACKET
 				return rune(0x27e9), true
-			case "raquo": 
-				// RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+			case "raquo":                           // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
 				return rune(0xbb), true
-			case "rarr2": 
-				// RIGHTWARDS PAIRED ARROWS
+			case "rarr":                            // RIGHTWARDS ARROW
+				return rune(0x2192), true
+			case "rarr2":                           // RIGHTWARDS PAIRED ARROWS
 				return rune(0x21c9), true
-			case "rarr3": 
-				// THREE RIGHTWARDS ARROWS
+			case "rarr3":                           // THREE RIGHTWARDS ARROWS
 				return rune(0x21f6), true
-			case "rarrb": 
-				// RIGHTWARDS ARROW TO BAR
-				return rune(0x21e5), true
-			case "rarrhk": 
-				// RIGHTWARDS ARROW WITH HOOK
-				return rune(0x21aa), true
-			case "rarrlp": 
-				// RIGHTWARDS ARROW WITH LOOP
-				return rune(0x21ac), true
-			case "rarrtl": 
-				// RIGHTWARDS ARROW WITH TAIL
-				return rune(0x21a3), true
-			case "rarrw": 
-				// RIGHTWARDS WAVE ARROW
-				return rune(0x219d), true
-			case "rarr": 
-				// RIGHTWARDS ARROW
-				return rune(0x2192), true
-			case "rarrap": 
-				// RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
+			case "rarrap":                          // RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
 				return rune(0x2975), true
-			case "rarrbfs": 
-				// RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
+			case "rarrb":                           // RIGHTWARDS ARROW TO BAR
+				return rune(0x21e5), true
+			case "rarrbfs":                         // RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
 				return rune(0x2920), true
-			case "rarrc": 
-				// WAVE ARROW POINTING DIRECTLY RIGHT
+			case "rarrc":                           // WAVE ARROW POINTING DIRECTLY RIGHT
 				return rune(0x2933), true
-			case "rarrfs": 
-				// RIGHTWARDS ARROW TO BLACK DIAMOND
+			case "rarrfs":                          // RIGHTWARDS ARROW TO BLACK DIAMOND
 				return rune(0x291e), true
-			case "rarrpl": 
-				// RIGHTWARDS ARROW WITH PLUS BELOW
+			case "rarrhk":                          // RIGHTWARDS ARROW WITH HOOK
+				return rune(0x21aa), true
+			case "rarrlp":                          // RIGHTWARDS ARROW WITH LOOP
+				return rune(0x21ac), true
+			case "rarrpl":                          // RIGHTWARDS ARROW WITH PLUS BELOW
 				return rune(0x2945), true
-			case "rarrsim": 
-				// RIGHTWARDS ARROW ABOVE TILDE OPERATOR
+			case "rarrsim":                         // RIGHTWARDS ARROW ABOVE TILDE OPERATOR
 				return rune(0x2974), true
-			case "rarrx": 
-				// RIGHTWARDS ARROW THROUGH X
+			case "rarrtl":                          // RIGHTWARDS ARROW WITH TAIL
+				return rune(0x21a3), true
+			case "rarrw":                           // RIGHTWARDS WAVE ARROW
+				return rune(0x219d), true
+			case "rarrx":                           // RIGHTWARDS ARROW THROUGH X
 				return rune(0x2947), true
-			case "ratail": 
-				// RIGHTWARDS ARROW-TAIL
+			case "ratail":                          // RIGHTWARDS ARROW-TAIL
 				return rune(0x291a), true
-			case "ratio": 
-				// RATIO
+			case "ratio":                           // RATIO
 				return rune(0x2236), true
-			case "rationals": 
-				// DOUBLE-STRUCK CAPITAL Q
+			case "rationals":                       // DOUBLE-STRUCK CAPITAL Q
 				return rune(0x211a), true
-			case "rbarr": 
-				// RIGHTWARDS DOUBLE DASH ARROW
+			case "rbarr":                           // RIGHTWARDS DOUBLE DASH ARROW
 				return rune(0x290d), true
-			case "rbbrk": 
-				// LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+			case "rbbrk":                           // LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
 				return rune(0x2773), true
-			case "rbrace": 
-				// RIGHT CURLY BRACKET
+			case "rbrace":                          // RIGHT CURLY BRACKET
 				return rune(0x7d), true
-			case "rbrack": 
-				// RIGHT SQUARE BRACKET
+			case "rbrack":                          // RIGHT SQUARE BRACKET
 				return rune(0x5d), true
-			case "rbrke": 
-				// RIGHT SQUARE BRACKET WITH UNDERBAR
+			case "rbrke":                           // RIGHT SQUARE BRACKET WITH UNDERBAR
 				return rune(0x298c), true
-			case "rbrksld": 
-				// RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+			case "rbrksld":                         // RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
 				return rune(0x298e), true
-			case "rbrkslu": 
-				// RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+			case "rbrkslu":                         // RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
 				return rune(0x2990), true
-			case "rcaron": 
-				// LATIN SMALL LETTER R WITH CARON
+			case "rcaron":                          // LATIN SMALL LETTER R WITH CARON
 				return rune(0x0159), true
-			case "rcedil": 
-				// LATIN SMALL LETTER R WITH CEDILLA
+			case "rcedil":                          // LATIN SMALL LETTER R WITH CEDILLA
 				return rune(0x0157), true
-			case "rceil": 
-				// RIGHT CEILING
+			case "rceil":                           // RIGHT CEILING
 				return rune(0x2309), true
-			case "rcub": 
-				// RIGHT CURLY BRACKET
+			case "rcub":                            // RIGHT CURLY BRACKET
 				return rune(0x7d), true
-			case "rcy": 
-				// CYRILLIC SMALL LETTER ER
+			case "rcy":                             // CYRILLIC SMALL LETTER ER
 				return rune(0x0440), true
-			case "rdca": 
-				// ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
+			case "rdca":                            // ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
 				return rune(0x2937), true
-			case "rdharb": 
-				// RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
+			case "rdharb":                          // RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
 				return rune(0x2957), true
-			case "rdiag": 
-				// BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+			case "rdiag":                           // BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
 				return rune(0x2571), true
-			case "rdiofdi": 
-				// RISING DIAGONAL CROSSING FALLING DIAGONAL
+			case "rdiofdi":                         // RISING DIAGONAL CROSSING FALLING DIAGONAL
 				return rune(0x292b), true
-			case "rdldhar": 
-				// RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+			case "rdldhar":                         // RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
 				return rune(0x2969), true
-			case "rdosearr": 
-				// RISING DIAGONAL CROSSING SOUTH EAST ARROW
+			case "rdosearr":                        // RISING DIAGONAL CROSSING SOUTH EAST ARROW
 				return rune(0x2930), true
-			case "rdquor": 
-				// RIGHT DOUBLE QUOTATION MARK
+			case "rdquo":                           // RIGHT DOUBLE QUOTATION MARK
 				return rune(0x201d), true
-			case "rdquo": 
-				// RIGHT DOUBLE QUOTATION MARK
+			case "rdquor":                          // RIGHT DOUBLE QUOTATION MARK
 				return rune(0x201d), true
-			case "rdsh": 
-				// DOWNWARDS ARROW WITH TIP RIGHTWARDS
+			case "rdsh":                            // DOWNWARDS ARROW WITH TIP RIGHTWARDS
 				return rune(0x21b3), true
-			case "realpart": 
-				// BLACK-LETTER CAPITAL R
+			case "real":                            // BLACK-LETTER CAPITAL R
 				return rune(0x211c), true
-			case "reals": 
-				// DOUBLE-STRUCK CAPITAL R
-				return rune(0x211d), true
-			case "real": 
-				// BLACK-LETTER CAPITAL R
-				return rune(0x211c), true
-			case "realine": 
-				// SCRIPT CAPITAL R
+			case "realine":                         // SCRIPT CAPITAL R
 				return rune(0x211b), true
-			case "rect": 
-				// WHITE RECTANGLE
+			case "realpart":                        // BLACK-LETTER CAPITAL R
+				return rune(0x211c), true
+			case "reals":                           // DOUBLE-STRUCK CAPITAL R
+				return rune(0x211d), true
+			case "rect":                            // WHITE RECTANGLE
 				return rune(0x25ad), true
-			case "reg": 
-				// REGISTERED SIGN
+			case "reg":                             // REGISTERED SIGN
 				return rune(0xae), true
-			case "rfbowtie": 
-				// BOWTIE WITH RIGHT HALF BLACK
+			case "rfbowtie":                        // BOWTIE WITH RIGHT HALF BLACK
 				return rune(0x29d2), true
-			case "rfisht": 
-				// RIGHT FISH TAIL
+			case "rfisht":                          // RIGHT FISH TAIL
 				return rune(0x297d), true
-			case "rfloor": 
-				// RIGHT FLOOR
+			case "rfloor":                          // RIGHT FLOOR
 				return rune(0x230b), true
-			case "rfr": 
-				// MATHEMATICAL FRAKTUR SMALL R
+			case "rfr":                             // MATHEMATICAL FRAKTUR SMALL R
 				return rune(0x01d52f), true
-			case "rftimes": 
-				// TIMES WITH RIGHT HALF BLACK
+			case "rftimes":                         // TIMES WITH RIGHT HALF BLACK
 				return rune(0x29d5), true
-			case "rgr": 
-				// GREEK SMALL LETTER RHO
+			case "rgr":                             // GREEK SMALL LETTER RHO
 				return rune(0x03c1), true
-			case "rhard": 
-				// RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+			case "rhard":                           // RIGHTWARDS HARPOON WITH BARB DOWNWARDS
 				return rune(0x21c1), true
-			case "rharu": 
-				// RIGHTWARDS HARPOON WITH BARB UPWARDS
+			case "rharu":                           // RIGHTWARDS HARPOON WITH BARB UPWARDS
 				return rune(0x21c0), true
-			case "rharul": 
-				// RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+			case "rharul":                          // RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
 				return rune(0x296c), true
-			case "rhov": 
-				// GREEK RHO SYMBOL
-				return rune(0x03f1), true
-			case "rho": 
-				// GREEK SMALL LETTER RHO
+			case "rho":                             // GREEK SMALL LETTER RHO
 				return rune(0x03c1), true
-			case "rightarrowtail": 
-				// RIGHTWARDS ARROW WITH TAIL
-				return rune(0x21a3), true
-			case "rightarrow": 
-				// RIGHTWARDS ARROW
+			case "rhov":                            // GREEK RHO SYMBOL
+				return rune(0x03f1), true
+			case "rightarrow":                      // RIGHTWARDS ARROW
 				return rune(0x2192), true
-			case "rightharpoondown": 
-				// RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+			case "rightarrowtail":                  // RIGHTWARDS ARROW WITH TAIL
+				return rune(0x21a3), true
+			case "rightharpoondown":                // RIGHTWARDS HARPOON WITH BARB DOWNWARDS
 				return rune(0x21c1), true
-			case "rightharpoonup": 
-				// RIGHTWARDS HARPOON WITH BARB UPWARDS
+			case "rightharpoonup":                  // RIGHTWARDS HARPOON WITH BARB UPWARDS
 				return rune(0x21c0), true
-			case "rightleftarrows": 
-				// RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+			case "rightleftarrows":                 // RIGHTWARDS ARROW OVER LEFTWARDS ARROW
 				return rune(0x21c4), true
-			case "rightleftharpoons": 
-				// RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+			case "rightleftharpoons":               // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
 				return rune(0x21cc), true
-			case "rightrightarrows": 
-				// RIGHTWARDS PAIRED ARROWS
+			case "rightrightarrows":                // RIGHTWARDS PAIRED ARROWS
 				return rune(0x21c9), true
-			case "rightsquigarrow": 
-				// RIGHTWARDS WAVE ARROW
+			case "rightsquigarrow":                 // RIGHTWARDS WAVE ARROW
 				return rune(0x219d), true
-			case "rightthreetimes": 
-				// RIGHT SEMIDIRECT PRODUCT
+			case "rightthreetimes":                 // RIGHT SEMIDIRECT PRODUCT
 				return rune(0x22cc), true
-			case "rimply": 
-				// RIGHT DOUBLE ARROW WITH ROUNDED HEAD
+			case "rimply":                          // RIGHT DOUBLE ARROW WITH ROUNDED HEAD
 				return rune(0x2970), true
-			case "ring": 
-				// RING ABOVE
+			case "ring":                            // RING ABOVE
 				return rune(0x02da), true
-			case "risingdotseq": 
-				// IMAGE OF OR APPROXIMATELY EQUAL TO
+			case "risingdotseq":                    // IMAGE OF OR APPROXIMATELY EQUAL TO
 				return rune(0x2253), true
-			case "rlarr2": 
-				// RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+			case "rlarr":                           // RIGHTWARDS ARROW OVER LEFTWARDS ARROW
 				return rune(0x21c4), true
-			case "rlarr": 
-				// RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+			case "rlarr2":                          // RIGHTWARDS ARROW OVER LEFTWARDS ARROW
 				return rune(0x21c4), true
-			case "rlhar": 
-				// RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+			case "rlhar":                           // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
 				return rune(0x21cc), true
-			case "rlhar2": 
-				// RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+			case "rlhar2":                          // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
 				return rune(0x21cc), true
-			case "rlm": 
-				// RIGHT-TO-LEFT MARK
+			case "rlm":                             // RIGHT-TO-LEFT MARK
 				return rune(0x200f), true
-			case "rmoust": 
-				// UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
+			case "rmoust":                          // UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
 				return rune(0x23b1), true
-			case "rmoustache": 
-				// UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
+			case "rmoustache":                      // UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
 				return rune(0x23b1), true
-			case "rnmid": 
-				// DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
+			case "rnmid":                           // DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
 				return rune(0x2aee), true
-			case "roang": 
-				// MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+			case "roang":                           // MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
 				return rune(0x27ed), true
-			case "roarr": 
-				// RIGHTWARDS OPEN-HEADED ARROW
+			case "roarr":                           // RIGHTWARDS OPEN-HEADED ARROW
 				return rune(0x21fe), true
-			case "robrk": 
-				// MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+			case "robrk":                           // MATHEMATICAL RIGHT WHITE SQUARE BRACKET
 				return rune(0x27e7), true
-			case "rocub": 
-				// RIGHT WHITE CURLY BRACKET
+			case "rocub":                           // RIGHT WHITE CURLY BRACKET
 				return rune(0x2984), true
-			case "ropar": 
-				// RIGHT WHITE PARENTHESIS
+			case "ropar":                           // RIGHT WHITE PARENTHESIS
 				return rune(0x2986), true
-			case "ropf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL R
+			case "ropf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL R
 				return rune(0x01d563), true
-			case "roplus": 
-				// PLUS SIGN IN RIGHT HALF CIRCLE
+			case "roplus":                          // PLUS SIGN IN RIGHT HALF CIRCLE
 				return rune(0x2a2e), true
-			case "rotimes": 
-				// MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
+			case "rotimes":                         // MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
 				return rune(0x2a35), true
-			case "rpargt": 
-				// RIGHT ARC GREATER-THAN BRACKET
-				return rune(0x2994), true
-			case "rpar": 
-				// RIGHT PARENTHESIS
+			case "rpar":                            // RIGHT PARENTHESIS
 				return rune(0x29), true
-			case "rppolint": 
-				// LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
+			case "rpargt":                          // RIGHT ARC GREATER-THAN BRACKET
+				return rune(0x2994), true
+			case "rppolint":                        // LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
 				return rune(0x2a12), true
-			case "rrarr": 
-				// RIGHTWARDS PAIRED ARROWS
+			case "rrarr":                           // RIGHTWARDS PAIRED ARROWS
 				return rune(0x21c9), true
-			case "rsaquo": 
-				// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+			case "rsaquo":                          // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
 				return rune(0x203a), true
-			case "rscr": 
-				// MATHEMATICAL SCRIPT SMALL R
+			case "rscr":                            // MATHEMATICAL SCRIPT SMALL R
 				return rune(0x01d4c7), true
-			case "rsh": 
-				// UPWARDS ARROW WITH TIP RIGHTWARDS
+			case "rsh":                             // UPWARDS ARROW WITH TIP RIGHTWARDS
 				return rune(0x21b1), true
-			case "rsolbar": 
-				// REVERSE SOLIDUS WITH HORIZONTAL STROKE
+			case "rsolbar":                         // REVERSE SOLIDUS WITH HORIZONTAL STROKE
 				return rune(0x29f7), true
-			case "rsqb": 
-				// RIGHT SQUARE BRACKET
+			case "rsqb":                            // RIGHT SQUARE BRACKET
 				return rune(0x5d), true
-			case "rsquor": 
-				// RIGHT SINGLE QUOTATION MARK
+			case "rsquo":                           // RIGHT SINGLE QUOTATION MARK
 				return rune(0x2019), true
-			case "rsquo": 
-				// RIGHT SINGLE QUOTATION MARK
+			case "rsquor":                          // RIGHT SINGLE QUOTATION MARK
 				return rune(0x2019), true
-			case "rthree": 
-				// RIGHT SEMIDIRECT PRODUCT
+			case "rthree":                          // RIGHT SEMIDIRECT PRODUCT
 				return rune(0x22cc), true
-			case "rtimes": 
-				// RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
+			case "rtimes":                          // RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
 				return rune(0x22ca), true
-			case "rtrie": 
-				// CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+			case "rtri":                            // WHITE RIGHT-POINTING SMALL TRIANGLE
+				return rune(0x25b9), true
+			case "rtrie":                           // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
 				return rune(0x22b5), true
-			case "rtrif": 
-				// BLACK RIGHT-POINTING SMALL TRIANGLE
+			case "rtrif":                           // BLACK RIGHT-POINTING SMALL TRIANGLE
 				return rune(0x25b8), true
-			case "rtri": 
-				// WHITE RIGHT-POINTING SMALL TRIANGLE
-				return rune(0x25b9), true
-			case "rtriltri": 
-				// RIGHT TRIANGLE ABOVE LEFT TRIANGLE
+			case "rtriltri":                        // RIGHT TRIANGLE ABOVE LEFT TRIANGLE
 				return rune(0x29ce), true
-			case "ruharb": 
-				// RIGHTWARDS HARPOON WITH BARB UP TO BAR
+			case "ruharb":                          // RIGHTWARDS HARPOON WITH BARB UP TO BAR
 				return rune(0x2953), true
-			case "ruluhar": 
-				// RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
+			case "ruluhar":                         // RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
 				return rune(0x2968), true
-			case "rx": 
-				// PRESCRIPTION TAKE
+			case "rx":                              // PRESCRIPTION TAKE
 				return rune(0x211e), true
 		}
 
 	case 's':
 		switch name {
-			case "sacute": 
-				// LATIN SMALL LETTER S WITH ACUTE
+			case "sacute":                          // LATIN SMALL LETTER S WITH ACUTE
 				return rune(0x015b), true
-			case "samalg": 
-				// N-ARY COPRODUCT
+			case "samalg":                          // N-ARY COPRODUCT
 				return rune(0x2210), true
-			case "sampi": 
-				// GREEK LETTER SAMPI
+			case "sampi":                           // GREEK LETTER SAMPI
 				return rune(0x03e0), true
-			case "sbquo": 
-				// SINGLE LOW-9 QUOTATION MARK
+			case "sbquo":                           // SINGLE LOW-9 QUOTATION MARK
 				return rune(0x201a), true
-			case "sbsol": 
-				// SMALL REVERSE SOLIDUS
+			case "sbsol":                           // SMALL REVERSE SOLIDUS
 				return rune(0xfe68), true
-			case "sc": 
-				// SUCCEEDS
+			case "sc":                              // SUCCEEDS
 				return rune(0x227b), true
-			case "scE": 
-				// SUCCEEDS ABOVE EQUALS SIGN
+			case "scE":                             // SUCCEEDS ABOVE EQUALS SIGN
 				return rune(0x2ab4), true
-			case "scap": 
-				// SUCCEEDS ABOVE ALMOST EQUAL TO
+			case "scap":                            // SUCCEEDS ABOVE ALMOST EQUAL TO
 				return rune(0x2ab8), true
-			case "scaron": 
-				// LATIN SMALL LETTER S WITH CARON
+			case "scaron":                          // LATIN SMALL LETTER S WITH CARON
 				return rune(0x0161), true
-			case "sccue": 
-				// SUCCEEDS OR EQUAL TO
+			case "sccue":                           // SUCCEEDS OR EQUAL TO
 				return rune(0x227d), true
-			case "scedil": 
-				// LATIN SMALL LETTER S WITH CEDILLA
-				return rune(0x015f), true
-			case "sce": 
-				// SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+			case "sce":                             // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
 				return rune(0x2ab0), true
-			case "scirc": 
-				// LATIN SMALL LETTER S WITH CIRCUMFLEX
+			case "scedil":                          // LATIN SMALL LETTER S WITH CEDILLA
+				return rune(0x015f), true
+			case "scirc":                           // LATIN SMALL LETTER S WITH CIRCUMFLEX
 				return rune(0x015d), true
-			case "scnE": 
-				// SUCCEEDS ABOVE NOT EQUAL TO
+			case "scnE":                            // SUCCEEDS ABOVE NOT EQUAL TO
 				return rune(0x2ab6), true
-			case "scnap": 
-				// SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+			case "scnap":                           // SUCCEEDS ABOVE NOT ALMOST EQUAL TO
 				return rune(0x2aba), true
-			case "scnsim": 
-				// SUCCEEDS BUT NOT EQUIVALENT TO
+			case "scnsim":                          // SUCCEEDS BUT NOT EQUIVALENT TO
 				return rune(0x22e9), true
-			case "scpolint": 
-				// LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
+			case "scpolint":                        // LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
 				return rune(0x2a13), true
-			case "scsim": 
-				// SUCCEEDS OR EQUIVALENT TO
+			case "scsim":                           // SUCCEEDS OR EQUIVALENT TO
 				return rune(0x227f), true
-			case "scy": 
-				// CYRILLIC SMALL LETTER ES
+			case "scy":                             // CYRILLIC SMALL LETTER ES
 				return rune(0x0441), true
-			case "sdotb": 
-				// SQUARED DOT OPERATOR
-				return rune(0x22a1), true
-			case "sdot": 
-				// DOT OPERATOR
+			case "sdot":                            // DOT OPERATOR
 				return rune(0x22c5), true
-			case "sdote": 
-				// EQUALS SIGN WITH DOT BELOW
+			case "sdotb":                           // SQUARED DOT OPERATOR
+				return rune(0x22a1), true
+			case "sdote":                           // EQUALS SIGN WITH DOT BELOW
 				return rune(0x2a66), true
-			case "seArr": 
-				// SOUTH EAST DOUBLE ARROW
+			case "seArr":                           // SOUTH EAST DOUBLE ARROW
 				return rune(0x21d8), true
-			case "searhk": 
-				// SOUTH EAST ARROW WITH HOOK
+			case "searhk":                          // SOUTH EAST ARROW WITH HOOK
 				return rune(0x2925), true
-			case "searrow": 
-				// SOUTH EAST ARROW
+			case "searr":                           // SOUTH EAST ARROW
 				return rune(0x2198), true
-			case "searr": 
-				// SOUTH EAST ARROW
+			case "searrow":                         // SOUTH EAST ARROW
 				return rune(0x2198), true
-			case "sect": 
-				// SECTION SIGN
+			case "sect":                            // SECTION SIGN
 				return rune(0xa7), true
-			case "semi": 
-				// SEMICOLON
+			case "semi":                            // SEMICOLON
 				return rune(0x3b), true
-			case "seonearr": 
-				// SOUTH EAST ARROW CROSSING NORTH EAST ARROW
+			case "seonearr":                        // SOUTH EAST ARROW CROSSING NORTH EAST ARROW
 				return rune(0x292d), true
-			case "seswar": 
-				// SOUTH EAST ARROW AND SOUTH WEST ARROW
+			case "seswar":                          // SOUTH EAST ARROW AND SOUTH WEST ARROW
 				return rune(0x2929), true
-			case "setminus": 
-				// SET MINUS
+			case "setminus":                        // SET MINUS
 				return rune(0x2216), true
-			case "setmn": 
-				// SET MINUS
+			case "setmn":                           // SET MINUS
 				return rune(0x2216), true
-			case "sext": 
-				// SIX POINTED BLACK STAR
+			case "sext":                            // SIX POINTED BLACK STAR
 				return rune(0x2736), true
-			case "sfgr": 
-				// GREEK SMALL LETTER FINAL SIGMA
+			case "sfgr":                            // GREEK SMALL LETTER FINAL SIGMA
 				return rune(0x03c2), true
-			case "sfrown": 
-				// FROWN
-				return rune(0x2322), true
-			case "sfr": 
-				// MATHEMATICAL FRAKTUR SMALL S
+			case "sfr":                             // MATHEMATICAL FRAKTUR SMALL S
 				return rune(0x01d530), true
-			case "sgr": 
-				// GREEK SMALL LETTER SIGMA
+			case "sfrown":                          // FROWN
+				return rune(0x2322), true
+			case "sgr":                             // GREEK SMALL LETTER SIGMA
 				return rune(0x03c3), true
-			case "sharp": 
-				// MUSIC SHARP SIGN
+			case "sharp":                           // MUSIC SHARP SIGN
 				return rune(0x266f), true
-			case "shchcy": 
-				// CYRILLIC SMALL LETTER SHCHA
+			case "shchcy":                          // CYRILLIC SMALL LETTER SHCHA
 				return rune(0x0449), true
-			case "shcy": 
-				// CYRILLIC SMALL LETTER SHA
+			case "shcy":                            // CYRILLIC SMALL LETTER SHA
 				return rune(0x0448), true
-			case "shortmid": 
-				// DIVIDES
+			case "shortmid":                        // DIVIDES
 				return rune(0x2223), true
-			case "shortparallel": 
-				// PARALLEL TO
+			case "shortparallel":                   // PARALLEL TO
 				return rune(0x2225), true
-			case "shuffle": 
-				// SHUFFLE PRODUCT
+			case "shuffle":                         // SHUFFLE PRODUCT
 				return rune(0x29e2), true
-			case "shy": 
-				// SOFT HYPHEN
+			case "shy":                             // SOFT HYPHEN
 				return rune(0xad), true
-			case "sigma": 
-				// GREEK SMALL LETTER SIGMA
+			case "sigma":                           // GREEK SMALL LETTER SIGMA
 				return rune(0x03c3), true
-			case "sigmaf": 
-				// GREEK SMALL LETTER FINAL SIGMA
+			case "sigmaf":                          // GREEK SMALL LETTER FINAL SIGMA
 				return rune(0x03c2), true
-			case "sigmav": 
-				// GREEK SMALL LETTER FINAL SIGMA
+			case "sigmav":                          // GREEK SMALL LETTER FINAL SIGMA
 				return rune(0x03c2), true
-			case "sim": 
-				// TILDE OPERATOR
+			case "sim":                             // TILDE OPERATOR
 				return rune(0x223c), true
-			case "simdot": 
-				// TILDE OPERATOR WITH DOT ABOVE
+			case "simdot":                          // TILDE OPERATOR WITH DOT ABOVE
 				return rune(0x2a6a), true
-			case "sime": 
-				// ASYMPTOTICALLY EQUAL TO
+			case "sime":                            // ASYMPTOTICALLY EQUAL TO
 				return rune(0x2243), true
-			case "simeq": 
-				// ASYMPTOTICALLY EQUAL TO
+			case "simeq":                           // ASYMPTOTICALLY EQUAL TO
 				return rune(0x2243), true
-			case "simg": 
-				// SIMILAR OR GREATER-THAN
+			case "simg":                            // SIMILAR OR GREATER-THAN
 				return rune(0x2a9e), true
-			case "simgE": 
-				// SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
+			case "simgE":                           // SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
 				return rune(0x2aa0), true
-			case "siml": 
-				// SIMILAR OR LESS-THAN
+			case "siml":                            // SIMILAR OR LESS-THAN
 				return rune(0x2a9d), true
-			case "simlE": 
-				// SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
+			case "simlE":                           // SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
 				return rune(0x2a9f), true
-			case "simne": 
-				// APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+			case "simne":                           // APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
 				return rune(0x2246), true
-			case "simplus": 
-				// PLUS SIGN WITH TILDE ABOVE
+			case "simplus":                         // PLUS SIGN WITH TILDE ABOVE
 				return rune(0x2a24), true
-			case "simrarr": 
-				// TILDE OPERATOR ABOVE RIGHTWARDS ARROW
+			case "simrarr":                         // TILDE OPERATOR ABOVE RIGHTWARDS ARROW
 				return rune(0x2972), true
-			case "slarr": 
-				// LEFTWARDS ARROW
+			case "slarr":                           // LEFTWARDS ARROW
 				return rune(0x2190), true
-			case "slint": 
-				// INTEGRAL AVERAGE WITH SLASH
+			case "slint":                           // INTEGRAL AVERAGE WITH SLASH
 				return rune(0x2a0f), true
-			case "smallsetminus": 
-				// SET MINUS
+			case "smallsetminus":                   // SET MINUS
 				return rune(0x2216), true
-			case "smashp": 
-				// SMASH PRODUCT
+			case "smashp":                          // SMASH PRODUCT
 				return rune(0x2a33), true
-			case "smeparsl": 
-				// EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
+			case "smeparsl":                        // EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
 				return rune(0x29e4), true
-			case "smid": 
-				// DIVIDES
+			case "smid":                            // DIVIDES
 				return rune(0x2223), true
-			case "smile": 
-				// SMILE
+			case "smile":                           // SMILE
 				return rune(0x2323), true
-			case "smt": 
-				// SMALLER THAN
+			case "smt":                             // SMALLER THAN
 				return rune(0x2aaa), true
-			case "smte": 
-				// SMALLER THAN OR EQUAL TO
+			case "smte":                            // SMALLER THAN OR EQUAL TO
 				return rune(0x2aac), true
-			case "smtes": 
-				// SMALLER THAN OR slanted EQUAL
+			case "smtes":                           // SMALLER THAN OR slanted EQUAL
 				return rune(0x2aac), true
-			case "softcy": 
-				// CYRILLIC SMALL LETTER SOFT SIGN
+			case "softcy":                          // CYRILLIC SMALL LETTER SOFT SIGN
 				return rune(0x044c), true
-			case "solbar": 
-				// APL FUNCTIONAL SYMBOL SLASH BAR
-				return rune(0x233f), true
-			case "solb": 
-				// SQUARED RISING DIAGONAL SLASH
-				return rune(0x29c4), true
-			case "sol": 
-				// SOLIDUS
+			case "sol":                             // SOLIDUS
 				return rune(0x2f), true
-			case "sopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL S
+			case "solb":                            // SQUARED RISING DIAGONAL SLASH
+				return rune(0x29c4), true
+			case "solbar":                          // APL FUNCTIONAL SYMBOL SLASH BAR
+				return rune(0x233f), true
+			case "sopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL S
 				return rune(0x01d564), true
-			case "spades": 
-				// BLACK SPADE SUIT
+			case "spades":                          // BLACK SPADE SUIT
 				return rune(0x2660), true
-			case "spadesuit": 
-				// BLACK SPADE SUIT
+			case "spadesuit":                       // BLACK SPADE SUIT
 				return rune(0x2660), true
-			case "spar": 
-				// PARALLEL TO
+			case "spar":                            // PARALLEL TO
 				return rune(0x2225), true
-			case "sqcap": 
-				// SQUARE CAP
+			case "sqcap":                           // SQUARE CAP
 				return rune(0x2293), true
-			case "sqcaps": 
-				// SQUARE CAP with serifs
+			case "sqcaps":                          // SQUARE CAP with serifs
 				return rune(0x2293), true
-			case "sqcup": 
-				// SQUARE CUP
+			case "sqcup":                           // SQUARE CUP
 				return rune(0x2294), true
-			case "sqcups": 
-				// SQUARE CUP with serifs
+			case "sqcups":                          // SQUARE CUP with serifs
 				return rune(0x2294), true
-			case "sqsub": 
-				// SQUARE IMAGE OF
+			case "sqsub":                           // SQUARE IMAGE OF
 				return rune(0x228f), true
-			case "sqsube": 
-				// SQUARE IMAGE OF OR EQUAL TO
+			case "sqsube":                          // SQUARE IMAGE OF OR EQUAL TO
 				return rune(0x2291), true
-			case "sqsubset": 
-				// SQUARE IMAGE OF
+			case "sqsubset":                        // SQUARE IMAGE OF
 				return rune(0x228f), true
-			case "sqsubseteq": 
-				// SQUARE IMAGE OF OR EQUAL TO
+			case "sqsubseteq":                      // SQUARE IMAGE OF OR EQUAL TO
 				return rune(0x2291), true
-			case "sqsup": 
-				// SQUARE ORIGINAL OF
+			case "sqsup":                           // SQUARE ORIGINAL OF
 				return rune(0x2290), true
-			case "sqsupe": 
-				// SQUARE ORIGINAL OF OR EQUAL TO
+			case "sqsupe":                          // SQUARE ORIGINAL OF OR EQUAL TO
 				return rune(0x2292), true
-			case "sqsupset": 
-				// SQUARE ORIGINAL OF
+			case "sqsupset":                        // SQUARE ORIGINAL OF
 				return rune(0x2290), true
-			case "sqsupseteq": 
-				// SQUARE ORIGINAL OF OR EQUAL TO
+			case "sqsupseteq":                      // SQUARE ORIGINAL OF OR EQUAL TO
 				return rune(0x2292), true
-			case "squ": 
-				// WHITE SQUARE
+			case "squ":                             // WHITE SQUARE
 				return rune(0x25a1), true
-			case "square": 
-				// WHITE SQUARE
+			case "square":                          // WHITE SQUARE
 				return rune(0x25a1), true
-			case "squarf": 
-				// BLACK SMALL SQUARE
+			case "squarf":                          // BLACK SMALL SQUARE
 				return rune(0x25aa), true
-			case "squb": 
-				// SQUARED SQUARE
+			case "squb":                            // SQUARED SQUARE
 				return rune(0x29c8), true
-			case "squerr": 
-				// ERROR-BARRED WHITE SQUARE
+			case "squerr":                          // ERROR-BARRED WHITE SQUARE
 				return rune(0x29ee), true
-			case "squf": 
-				// BLACK SMALL SQUARE
+			case "squf":                            // BLACK SMALL SQUARE
 				return rune(0x25aa), true
-			case "squferr": 
-				// ERROR-BARRED BLACK SQUARE
+			case "squferr":                         // ERROR-BARRED BLACK SQUARE
 				return rune(0x29ef), true
-			case "srarr": 
-				// RIGHTWARDS ARROW
+			case "srarr":                           // RIGHTWARDS ARROW
 				return rune(0x2192), true
-			case "sscr": 
-				// MATHEMATICAL SCRIPT SMALL S
+			case "sscr":                            // MATHEMATICAL SCRIPT SMALL S
 				return rune(0x01d4c8), true
-			case "ssetmn": 
-				// SET MINUS
+			case "ssetmn":                          // SET MINUS
 				return rune(0x2216), true
-			case "ssmile": 
-				// SMILE
+			case "ssmile":                          // SMILE
 				return rune(0x2323), true
-			case "sstarf": 
-				// STAR OPERATOR
+			case "sstarf":                          // STAR OPERATOR
 				return rune(0x22c6), true
-			case "starf": 
-				// BLACK STAR
-				return rune(0x2605), true
-			case "star": 
-				// WHITE STAR
+			case "star":                            // WHITE STAR
 				return rune(0x2606), true
-			case "stigma": 
-				// GREEK LETTER STIGMA
+			case "starf":                           // BLACK STAR
+				return rune(0x2605), true
+			case "stigma":                          // GREEK LETTER STIGMA
 				return rune(0x03da), true
-			case "straightepsilon": 
-				// GREEK LUNATE EPSILON SYMBOL
+			case "straightepsilon":                 // GREEK LUNATE EPSILON SYMBOL
 				return rune(0x03f5), true
-			case "straightphi": 
-				// GREEK PHI SYMBOL
+			case "straightphi":                     // GREEK PHI SYMBOL
 				return rune(0x03d5), true
-			case "strns": 
-				// MACRON
+			case "strns":                           // MACRON
 				return rune(0xaf), true
-			case "sub": 
-				// SUBSET OF
+			case "sub":                             // SUBSET OF
 				return rune(0x2282), true
-			case "subE": 
-				// SUBSET OF ABOVE EQUALS SIGN
+			case "subE":                            // SUBSET OF ABOVE EQUALS SIGN
 				return rune(0x2ac5), true
-			case "subdot": 
-				// SUBSET WITH DOT
+			case "subdot":                          // SUBSET WITH DOT
 				return rune(0x2abd), true
-			case "sube": 
-				// SUBSET OF OR EQUAL TO
+			case "sube":                            // SUBSET OF OR EQUAL TO
 				return rune(0x2286), true
-			case "subedot": 
-				// SUBSET OF OR EQUAL TO WITH DOT ABOVE
+			case "subedot":                         // SUBSET OF OR EQUAL TO WITH DOT ABOVE
 				return rune(0x2ac3), true
-			case "submult": 
-				// SUBSET WITH MULTIPLICATION SIGN BELOW
+			case "submult":                         // SUBSET WITH MULTIPLICATION SIGN BELOW
 				return rune(0x2ac1), true
-			case "subnE": 
-				// SUBSET OF ABOVE NOT EQUAL TO
+			case "subnE":                           // SUBSET OF ABOVE NOT EQUAL TO
 				return rune(0x2acb), true
-			case "subne": 
-				// SUBSET OF WITH NOT EQUAL TO
+			case "subne":                           // SUBSET OF WITH NOT EQUAL TO
 				return rune(0x228a), true
-			case "subplus": 
-				// SUBSET WITH PLUS SIGN BELOW
+			case "subplus":                         // SUBSET WITH PLUS SIGN BELOW
 				return rune(0x2abf), true
-			case "subrarr": 
-				// SUBSET ABOVE RIGHTWARDS ARROW
+			case "subrarr":                         // SUBSET ABOVE RIGHTWARDS ARROW
 				return rune(0x2979), true
-			case "subset": 
-				// SUBSET OF
+			case "subset":                          // SUBSET OF
 				return rune(0x2282), true
-			case "subseteq": 
-				// SUBSET OF OR EQUAL TO
+			case "subseteq":                        // SUBSET OF OR EQUAL TO
 				return rune(0x2286), true
-			case "subseteqq": 
-				// SUBSET OF ABOVE EQUALS SIGN
+			case "subseteqq":                       // SUBSET OF ABOVE EQUALS SIGN
 				return rune(0x2ac5), true
-			case "subsetneq": 
-				// SUBSET OF WITH NOT EQUAL TO
+			case "subsetneq":                       // SUBSET OF WITH NOT EQUAL TO
 				return rune(0x228a), true
-			case "subsetneqq": 
-				// SUBSET OF ABOVE NOT EQUAL TO
+			case "subsetneqq":                      // SUBSET OF ABOVE NOT EQUAL TO
 				return rune(0x2acb), true
-			case "subsim": 
-				// SUBSET OF ABOVE TILDE OPERATOR
+			case "subsim":                          // SUBSET OF ABOVE TILDE OPERATOR
 				return rune(0x2ac7), true
-			case "subsub": 
-				// SUBSET ABOVE SUBSET
+			case "subsub":                          // SUBSET ABOVE SUBSET
 				return rune(0x2ad5), true
-			case "subsup": 
-				// SUBSET ABOVE SUPERSET
+			case "subsup":                          // SUBSET ABOVE SUPERSET
 				return rune(0x2ad3), true
-			case "succ": 
-				// SUCCEEDS
+			case "succ":                            // SUCCEEDS
 				return rune(0x227b), true
-			case "succapprox": 
-				// SUCCEEDS ABOVE ALMOST EQUAL TO
+			case "succapprox":                      // SUCCEEDS ABOVE ALMOST EQUAL TO
 				return rune(0x2ab8), true
-			case "succcurlyeq": 
-				// SUCCEEDS OR EQUAL TO
+			case "succcurlyeq":                     // SUCCEEDS OR EQUAL TO
 				return rune(0x227d), true
-			case "succeq": 
-				// SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+			case "succeq":                          // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
 				return rune(0x2ab0), true
-			case "succnapprox": 
-				// SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+			case "succnapprox":                     // SUCCEEDS ABOVE NOT ALMOST EQUAL TO
 				return rune(0x2aba), true
-			case "succneqq": 
-				// SUCCEEDS ABOVE NOT EQUAL TO
+			case "succneqq":                        // SUCCEEDS ABOVE NOT EQUAL TO
 				return rune(0x2ab6), true
-			case "succnsim": 
-				// SUCCEEDS BUT NOT EQUIVALENT TO
+			case "succnsim":                        // SUCCEEDS BUT NOT EQUIVALENT TO
 				return rune(0x22e9), true
-			case "succsim": 
-				// SUCCEEDS OR EQUIVALENT TO
+			case "succsim":                         // SUCCEEDS OR EQUIVALENT TO
 				return rune(0x227f), true
-			case "sum": 
-				// N-ARY SUMMATION
+			case "sum":                             // N-ARY SUMMATION
 				return rune(0x2211), true
-			case "sumint": 
-				// SUMMATION WITH INTEGRAL
+			case "sumint":                          // SUMMATION WITH INTEGRAL
 				return rune(0x2a0b), true
-			case "sung": 
-				// EIGHTH NOTE
+			case "sung":                            // EIGHTH NOTE
 				return rune(0x266a), true
-			case "sup": 
-				// SUPERSET OF
+			case "sup":                             // SUPERSET OF
 				return rune(0x2283), true
-			case "sup1": 
-				// SUPERSCRIPT ONE
+			case "sup1":                            // SUPERSCRIPT ONE
 				return rune(0xb9), true
-			case "sup2": 
-				// SUPERSCRIPT TWO
+			case "sup2":                            // SUPERSCRIPT TWO
 				return rune(0xb2), true
-			case "sup3": 
-				// SUPERSCRIPT THREE
+			case "sup3":                            // SUPERSCRIPT THREE
 				return rune(0xb3), true
-			case "supE": 
-				// SUPERSET OF ABOVE EQUALS SIGN
+			case "supE":                            // SUPERSET OF ABOVE EQUALS SIGN
 				return rune(0x2ac6), true
-			case "supdot": 
-				// SUPERSET WITH DOT
+			case "supdot":                          // SUPERSET WITH DOT
 				return rune(0x2abe), true
-			case "supdsub": 
-				// SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
+			case "supdsub":                         // SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
 				return rune(0x2ad8), true
-			case "supe": 
-				// SUPERSET OF OR EQUAL TO
+			case "supe":                            // SUPERSET OF OR EQUAL TO
 				return rune(0x2287), true
-			case "supedot": 
-				// SUPERSET OF OR EQUAL TO WITH DOT ABOVE
+			case "supedot":                         // SUPERSET OF OR EQUAL TO WITH DOT ABOVE
 				return rune(0x2ac4), true
-			case "suphsol": 
-				// SUPERSET PRECEDING SOLIDUS
+			case "suphsol":                         // SUPERSET PRECEDING SOLIDUS
 				return rune(0x27c9), true
-			case "suphsub": 
-				// SUPERSET BESIDE SUBSET
+			case "suphsub":                         // SUPERSET BESIDE SUBSET
 				return rune(0x2ad7), true
-			case "suplarr": 
-				// SUPERSET ABOVE LEFTWARDS ARROW
+			case "suplarr":                         // SUPERSET ABOVE LEFTWARDS ARROW
 				return rune(0x297b), true
-			case "supmult": 
-				// SUPERSET WITH MULTIPLICATION SIGN BELOW
+			case "supmult":                         // SUPERSET WITH MULTIPLICATION SIGN BELOW
 				return rune(0x2ac2), true
-			case "supnE": 
-				// SUPERSET OF ABOVE NOT EQUAL TO
+			case "supnE":                           // SUPERSET OF ABOVE NOT EQUAL TO
 				return rune(0x2acc), true
-			case "supne": 
-				// SUPERSET OF WITH NOT EQUAL TO
+			case "supne":                           // SUPERSET OF WITH NOT EQUAL TO
 				return rune(0x228b), true
-			case "supplus": 
-				// SUPERSET WITH PLUS SIGN BELOW
+			case "supplus":                         // SUPERSET WITH PLUS SIGN BELOW
 				return rune(0x2ac0), true
-			case "supset": 
-				// SUPERSET OF
+			case "supset":                          // SUPERSET OF
 				return rune(0x2283), true
-			case "supseteq": 
-				// SUPERSET OF OR EQUAL TO
+			case "supseteq":                        // SUPERSET OF OR EQUAL TO
 				return rune(0x2287), true
-			case "supseteqq": 
-				// SUPERSET OF ABOVE EQUALS SIGN
+			case "supseteqq":                       // SUPERSET OF ABOVE EQUALS SIGN
 				return rune(0x2ac6), true
-			case "supsetneq": 
-				// SUPERSET OF WITH NOT EQUAL TO
+			case "supsetneq":                       // SUPERSET OF WITH NOT EQUAL TO
 				return rune(0x228b), true
-			case "supsetneqq": 
-				// SUPERSET OF ABOVE NOT EQUAL TO
+			case "supsetneqq":                      // SUPERSET OF ABOVE NOT EQUAL TO
 				return rune(0x2acc), true
-			case "supsim": 
-				// SUPERSET OF ABOVE TILDE OPERATOR
+			case "supsim":                          // SUPERSET OF ABOVE TILDE OPERATOR
 				return rune(0x2ac8), true
-			case "supsub": 
-				// SUPERSET ABOVE SUBSET
+			case "supsub":                          // SUPERSET ABOVE SUBSET
 				return rune(0x2ad4), true
-			case "supsup": 
-				// SUPERSET ABOVE SUPERSET
+			case "supsup":                          // SUPERSET ABOVE SUPERSET
 				return rune(0x2ad6), true
-			case "swArr": 
-				// SOUTH WEST DOUBLE ARROW
+			case "swArr":                           // SOUTH WEST DOUBLE ARROW
 				return rune(0x21d9), true
-			case "swarhk": 
-				// SOUTH WEST ARROW WITH HOOK
+			case "swarhk":                          // SOUTH WEST ARROW WITH HOOK
 				return rune(0x2926), true
-			case "swarrow": 
-				// SOUTH WEST ARROW
+			case "swarr":                           // SOUTH WEST ARROW
 				return rune(0x2199), true
-			case "swarr": 
-				// SOUTH WEST ARROW
+			case "swarrow":                         // SOUTH WEST ARROW
 				return rune(0x2199), true
-			case "swnwar": 
-				// SOUTH WEST ARROW AND NORTH WEST ARROW
+			case "swnwar":                          // SOUTH WEST ARROW AND NORTH WEST ARROW
 				return rune(0x292a), true
-			case "szlig": 
-				// LATIN SMALL LETTER SHARP S
+			case "szlig":                           // LATIN SMALL LETTER SHARP S
 				return rune(0xdf), true
 		}
 
 	case 't':
 		switch name {
-			case "target": 
-				// POSITION INDICATOR
+			case "target":                          // POSITION INDICATOR
 				return rune(0x2316), true
-			case "tau": 
-				// GREEK SMALL LETTER TAU
+			case "tau":                             // GREEK SMALL LETTER TAU
 				return rune(0x03c4), true
-			case "tbrk": 
-				// TOP SQUARE BRACKET
+			case "tbrk":                            // TOP SQUARE BRACKET
 				return rune(0x23b4), true
-			case "tcaron": 
-				// LATIN SMALL LETTER T WITH CARON
+			case "tcaron":                          // LATIN SMALL LETTER T WITH CARON
 				return rune(0x0165), true
-			case "tcedil": 
-				// LATIN SMALL LETTER T WITH CEDILLA
+			case "tcedil":                          // LATIN SMALL LETTER T WITH CEDILLA
 				return rune(0x0163), true
-			case "tcy": 
-				// CYRILLIC SMALL LETTER TE
+			case "tcy":                             // CYRILLIC SMALL LETTER TE
 				return rune(0x0442), true
-			case "tdot": 
-				// COMBINING THREE DOTS ABOVE
+			case "tdot":                            // COMBINING THREE DOTS ABOVE
 				return rune(0x20db), true
-			case "telrec": 
-				// TELEPHONE RECORDER
+			case "telrec":                          // TELEPHONE RECORDER
 				return rune(0x2315), true
-			case "tfr": 
-				// MATHEMATICAL FRAKTUR SMALL T
+			case "tfr":                             // MATHEMATICAL FRAKTUR SMALL T
 				return rune(0x01d531), true
-			case "tgr": 
-				// GREEK SMALL LETTER TAU
+			case "tgr":                             // GREEK SMALL LETTER TAU
 				return rune(0x03c4), true
-			case "there4": 
-				// THEREFORE
+			case "there4":                          // THEREFORE
 				return rune(0x2234), true
-			case "therefore": 
-				// THEREFORE
+			case "therefore":                       // THEREFORE
 				return rune(0x2234), true
-			case "thermod": 
-				// THERMODYNAMIC
+			case "thermod":                         // THERMODYNAMIC
 				return rune(0x29e7), true
-			case "thetasym": 
-				// GREEK THETA SYMBOL
-				return rune(0x03d1), true
-			case "thetas": 
-				// GREEK SMALL LETTER THETA
+			case "theta":                           // GREEK SMALL LETTER THETA
 				return rune(0x03b8), true
-			case "thetav": 
-				// GREEK THETA SYMBOL
-				return rune(0x03d1), true
-			case "theta": 
-				// GREEK SMALL LETTER THETA
+			case "thetas":                          // GREEK SMALL LETTER THETA
 				return rune(0x03b8), true
-			case "thgr": 
-				// GREEK SMALL LETTER THETA
+			case "thetasym":                        // GREEK THETA SYMBOL
+				return rune(0x03d1), true
+			case "thetav":                          // GREEK THETA SYMBOL
+				return rune(0x03d1), true
+			case "thgr":                            // GREEK SMALL LETTER THETA
 				return rune(0x03b8), true
-			case "thickapprox": 
-				// ALMOST EQUAL TO
+			case "thickapprox":                     // ALMOST EQUAL TO
 				return rune(0x2248), true
-			case "thicksim": 
-				// TILDE OPERATOR
+			case "thicksim":                        // TILDE OPERATOR
 				return rune(0x223c), true
-			case "thinsp": 
-				// THIN SPACE
+			case "thinsp":                          // THIN SPACE
 				return rune(0x2009), true
-			case "thkap": 
-				// ALMOST EQUAL TO
+			case "thkap":                           // ALMOST EQUAL TO
 				return rune(0x2248), true
-			case "thksim": 
-				// TILDE OPERATOR
+			case "thksim":                          // TILDE OPERATOR
 				return rune(0x223c), true
-			case "thorn": 
-				// LATIN SMALL LETTER THORN
+			case "thorn":                           // LATIN SMALL LETTER THORN
 				return rune(0xfe), true
-			case "tilde": 
-				// SMALL TILDE
+			case "tilde":                           // SMALL TILDE
 				return rune(0x02dc), true
-			case "timeint": 
-				// INTEGRAL WITH TIMES SIGN
+			case "timeint":                         // INTEGRAL WITH TIMES SIGN
 				return rune(0x2a18), true
-			case "timesb": 
-				// SQUARED TIMES
+			case "times":                           // MULTIPLICATION SIGN
+				return rune(0xd7), true
+			case "timesb":                          // SQUARED TIMES
 				return rune(0x22a0), true
-			case "timesbar": 
-				// MULTIPLICATION SIGN WITH UNDERBAR
+			case "timesbar":                        // MULTIPLICATION SIGN WITH UNDERBAR
 				return rune(0x2a31), true
-			case "timesd": 
-				// MULTIPLICATION SIGN WITH DOT ABOVE
+			case "timesd":                          // MULTIPLICATION SIGN WITH DOT ABOVE
 				return rune(0x2a30), true
-			case "times": 
-				// MULTIPLICATION SIGN
-				return rune(0xd7), true
-			case "tint": 
-				// TRIPLE INTEGRAL
+			case "tint":                            // TRIPLE INTEGRAL
 				return rune(0x222d), true
-			case "toea": 
-				// NORTH EAST ARROW AND SOUTH EAST ARROW
+			case "toea":                            // NORTH EAST ARROW AND SOUTH EAST ARROW
 				return rune(0x2928), true
-			case "top": 
-				// DOWN TACK
+			case "top":                             // DOWN TACK
 				return rune(0x22a4), true
-			case "topbot": 
-				// APL FUNCTIONAL SYMBOL I-BEAM
+			case "topbot":                          // APL FUNCTIONAL SYMBOL I-BEAM
 				return rune(0x2336), true
-			case "topcir": 
-				// DOWN TACK WITH CIRCLE BELOW
+			case "topcir":                          // DOWN TACK WITH CIRCLE BELOW
 				return rune(0x2af1), true
-			case "topfork": 
-				// PITCHFORK WITH TEE TOP
-				return rune(0x2ada), true
-			case "topf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL T
+			case "topf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL T
 				return rune(0x01d565), true
-			case "tosa": 
-				// SOUTH EAST ARROW AND SOUTH WEST ARROW
+			case "topfork":                         // PITCHFORK WITH TEE TOP
+				return rune(0x2ada), true
+			case "tosa":                            // SOUTH EAST ARROW AND SOUTH WEST ARROW
 				return rune(0x2929), true
-			case "tprime": 
-				// TRIPLE PRIME
+			case "tprime":                          // TRIPLE PRIME
 				return rune(0x2034), true
-			case "trade": 
-				// TRADE MARK SIGN
+			case "trade":                           // TRADE MARK SIGN
 				return rune(0x2122), true
-			case "triS": 
-				// S IN TRIANGLE
+			case "triS":                            // S IN TRIANGLE
 				return rune(0x29cc), true
-			case "trianglelefteq": 
-				// NORMAL SUBGROUP OF OR EQUAL TO
-				return rune(0x22b4), true
-			case "triangleq": 
-				// DELTA EQUAL TO
-				return rune(0x225c), true
-			case "trianglerighteq": 
-				// CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
-				return rune(0x22b5), true
-			case "triangle": 
-				// WHITE UP-POINTING SMALL TRIANGLE
+			case "triangle":                        // WHITE UP-POINTING SMALL TRIANGLE
 				return rune(0x25b5), true
-			case "triangledown": 
-				// WHITE DOWN-POINTING SMALL TRIANGLE
+			case "triangledown":                    // WHITE DOWN-POINTING SMALL TRIANGLE
 				return rune(0x25bf), true
-			case "triangleleft": 
-				// WHITE LEFT-POINTING SMALL TRIANGLE
+			case "triangleleft":                    // WHITE LEFT-POINTING SMALL TRIANGLE
 				return rune(0x25c3), true
-			case "triangleright": 
-				// WHITE RIGHT-POINTING SMALL TRIANGLE
+			case "trianglelefteq":                  // NORMAL SUBGROUP OF OR EQUAL TO
+				return rune(0x22b4), true
+			case "triangleq":                       // DELTA EQUAL TO
+				return rune(0x225c), true
+			case "triangleright":                   // WHITE RIGHT-POINTING SMALL TRIANGLE
 				return rune(0x25b9), true
-			case "tribar": 
-				// TRIANGLE WITH UNDERBAR
+			case "trianglerighteq":                 // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+				return rune(0x22b5), true
+			case "tribar":                          // TRIANGLE WITH UNDERBAR
 				return rune(0x29cb), true
-			case "tridot": 
-				// WHITE UP-POINTING TRIANGLE WITH DOT
+			case "tridot":                          // WHITE UP-POINTING TRIANGLE WITH DOT
 				return rune(0x25ec), true
-			case "tridoto": 
-				// TRIANGLE WITH DOT ABOVE
+			case "tridoto":                         // TRIANGLE WITH DOT ABOVE
 				return rune(0x29ca), true
-			case "trie": 
-				// DELTA EQUAL TO
+			case "trie":                            // DELTA EQUAL TO
 				return rune(0x225c), true
-			case "triminus": 
-				// MINUS SIGN IN TRIANGLE
+			case "triminus":                        // MINUS SIGN IN TRIANGLE
 				return rune(0x2a3a), true
-			case "triplus": 
-				// PLUS SIGN IN TRIANGLE
+			case "triplus":                         // PLUS SIGN IN TRIANGLE
 				return rune(0x2a39), true
-			case "trisb": 
-				// TRIANGLE WITH SERIFS AT BOTTOM
+			case "trisb":                           // TRIANGLE WITH SERIFS AT BOTTOM
 				return rune(0x29cd), true
-			case "tritime": 
-				// MULTIPLICATION SIGN IN TRIANGLE
+			case "tritime":                         // MULTIPLICATION SIGN IN TRIANGLE
 				return rune(0x2a3b), true
-			case "trpezium": 
-				// WHITE TRAPEZIUM
+			case "trpezium":                        // WHITE TRAPEZIUM
 				return rune(0x23e2), true
-			case "tscr": 
-				// MATHEMATICAL SCRIPT SMALL T
+			case "tscr":                            // MATHEMATICAL SCRIPT SMALL T
 				return rune(0x01d4c9), true
-			case "tscy": 
-				// CYRILLIC SMALL LETTER TSE
+			case "tscy":                            // CYRILLIC SMALL LETTER TSE
 				return rune(0x0446), true
-			case "tshcy": 
-				// CYRILLIC SMALL LETTER TSHE
+			case "tshcy":                           // CYRILLIC SMALL LETTER TSHE
 				return rune(0x045b), true
-			case "tstrok": 
-				// LATIN SMALL LETTER T WITH STROKE
+			case "tstrok":                          // LATIN SMALL LETTER T WITH STROKE
 				return rune(0x0167), true
-			case "tverbar": 
-				// TRIPLE VERTICAL BAR DELIMITER
+			case "tverbar":                         // TRIPLE VERTICAL BAR DELIMITER
 				return rune(0x2980), true
-			case "twixt": 
-				// BETWEEN
+			case "twixt":                           // BETWEEN
 				return rune(0x226c), true
-			case "twoheadleftarrow": 
-				// LEFTWARDS TWO HEADED ARROW
+			case "twoheadleftarrow":                // LEFTWARDS TWO HEADED ARROW
 				return rune(0x219e), true
-			case "twoheadrightarrow": 
-				// RIGHTWARDS TWO HEADED ARROW
+			case "twoheadrightarrow":               // RIGHTWARDS TWO HEADED ARROW
 				return rune(0x21a0), true
 		}
 
 	case 'u':
 		switch name {
-			case "uAarr": 
-				// UPWARDS TRIPLE ARROW
+			case "uAarr":                           // UPWARDS TRIPLE ARROW
 				return rune(0x290a), true
-			case "uArr": 
-				// UPWARDS DOUBLE ARROW
+			case "uArr":                            // UPWARDS DOUBLE ARROW
 				return rune(0x21d1), true
-			case "uHar": 
-				// UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+			case "uHar":                            // UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
 				return rune(0x2963), true
-			case "uacgr": 
-				// GREEK SMALL LETTER UPSILON WITH TONOS
+			case "uacgr":                           // GREEK SMALL LETTER UPSILON WITH TONOS
 				return rune(0x03cd), true
-			case "uacute": 
-				// LATIN SMALL LETTER U WITH ACUTE
+			case "uacute":                          // LATIN SMALL LETTER U WITH ACUTE
 				return rune(0xfa), true
-			case "uarr2": 
-				// UPWARDS PAIRED ARROWS
-				return rune(0x21c8), true
-			case "uarr": 
-				// UPWARDS ARROW
+			case "uarr":                            // UPWARDS ARROW
 				return rune(0x2191), true
-			case "uarrb": 
-				// UPWARDS ARROW TO BAR
+			case "uarr2":                           // UPWARDS PAIRED ARROWS
+				return rune(0x21c8), true
+			case "uarrb":                           // UPWARDS ARROW TO BAR
 				return rune(0x2912), true
-			case "uarrln": 
-				// UPWARDS ARROW WITH HORIZONTAL STROKE
+			case "uarrln":                          // UPWARDS ARROW WITH HORIZONTAL STROKE
 				return rune(0x2909), true
-			case "ubrcy": 
-				// CYRILLIC SMALL LETTER SHORT U
+			case "ubrcy":                           // CYRILLIC SMALL LETTER SHORT U
 				return rune(0x045e), true
-			case "ubreve": 
-				// LATIN SMALL LETTER U WITH BREVE
+			case "ubreve":                          // LATIN SMALL LETTER U WITH BREVE
 				return rune(0x016d), true
-			case "ucirc": 
-				// LATIN SMALL LETTER U WITH CIRCUMFLEX
+			case "ucirc":                           // LATIN SMALL LETTER U WITH CIRCUMFLEX
 				return rune(0xfb), true
-			case "ucy": 
-				// CYRILLIC SMALL LETTER U
+			case "ucy":                             // CYRILLIC SMALL LETTER U
 				return rune(0x0443), true
-			case "udarr": 
-				// UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+			case "udarr":                           // UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
 				return rune(0x21c5), true
-			case "udblac": 
-				// LATIN SMALL LETTER U WITH DOUBLE ACUTE
+			case "udblac":                          // LATIN SMALL LETTER U WITH DOUBLE ACUTE
 				return rune(0x0171), true
-			case "udhar": 
-				// UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+			case "udhar":                           // UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
 				return rune(0x296e), true
-			case "udiagr": 
-				// GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+			case "udiagr":                          // GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
 				return rune(0x03b0), true
-			case "udigr": 
-				// GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+			case "udigr":                           // GREEK SMALL LETTER UPSILON WITH DIALYTIKA
 				return rune(0x03cb), true
-			case "udrbrk": 
-				// BOTTOM SQUARE BRACKET
+			case "udrbrk":                          // BOTTOM SQUARE BRACKET
 				return rune(0x23b5), true
-			case "udrcub": 
-				// BOTTOM CURLY BRACKET
+			case "udrcub":                          // BOTTOM CURLY BRACKET
 				return rune(0x23df), true
-			case "udrpar": 
-				// BOTTOM PARENTHESIS
+			case "udrpar":                          // BOTTOM PARENTHESIS
 				return rune(0x23dd), true
-			case "ufisht": 
-				// UP FISH TAIL
+			case "ufisht":                          // UP FISH TAIL
 				return rune(0x297e), true
-			case "ufr": 
-				// MATHEMATICAL FRAKTUR SMALL U
+			case "ufr":                             // MATHEMATICAL FRAKTUR SMALL U
 				return rune(0x01d532), true
-			case "ugr": 
-				// GREEK SMALL LETTER UPSILON
+			case "ugr":                             // GREEK SMALL LETTER UPSILON
 				return rune(0x03c5), true
-			case "ugrave": 
-				// LATIN SMALL LETTER U WITH GRAVE
+			case "ugrave":                          // LATIN SMALL LETTER U WITH GRAVE
 				return rune(0xf9), true
-			case "uharl": 
-				// UPWARDS HARPOON WITH BARB LEFTWARDS
+			case "uharl":                           // UPWARDS HARPOON WITH BARB LEFTWARDS
 				return rune(0x21bf), true
-			case "uharr": 
-				// UPWARDS HARPOON WITH BARB RIGHTWARDS
+			case "uharr":                           // UPWARDS HARPOON WITH BARB RIGHTWARDS
 				return rune(0x21be), true
-			case "uhblk": 
-				// UPPER HALF BLOCK
+			case "uhblk":                           // UPPER HALF BLOCK
 				return rune(0x2580), true
-			case "ulcorn": 
-				// TOP LEFT CORNER
+			case "ulcorn":                          // TOP LEFT CORNER
 				return rune(0x231c), true
-			case "ulcorner": 
-				// TOP LEFT CORNER
+			case "ulcorner":                        // TOP LEFT CORNER
 				return rune(0x231c), true
-			case "ulcrop": 
-				// TOP LEFT CROP
+			case "ulcrop":                          // TOP LEFT CROP
 				return rune(0x230f), true
-			case "uldlshar": 
-				// UP BARB LEFT DOWN BARB LEFT HARPOON
+			case "uldlshar":                        // UP BARB LEFT DOWN BARB LEFT HARPOON
 				return rune(0x2951), true
-			case "ulharb": 
-				// UPWARDS HARPOON WITH BARB LEFT TO BAR
+			case "ulharb":                          // UPWARDS HARPOON WITH BARB LEFT TO BAR
 				return rune(0x2958), true
-			case "ultri": 
-				// UPPER LEFT TRIANGLE
+			case "ultri":                           // UPPER LEFT TRIANGLE
 				return rune(0x25f8), true
-			case "umacr": 
-				// LATIN SMALL LETTER U WITH MACRON
+			case "umacr":                           // LATIN SMALL LETTER U WITH MACRON
 				return rune(0x016b), true
-			case "uml": 
-				// DIAERESIS
+			case "uml":                             // DIAERESIS
 				return rune(0xa8), true
-			case "uogon": 
-				// LATIN SMALL LETTER U WITH OGONEK
+			case "uogon":                           // LATIN SMALL LETTER U WITH OGONEK
 				return rune(0x0173), true
-			case "uopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL U
+			case "uopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL U
 				return rune(0x01d566), true
-			case "uparrow": 
-				// UPWARDS ARROW
+			case "uparrow":                         // UPWARDS ARROW
 				return rune(0x2191), true
-			case "updownarrow": 
-				// UP DOWN ARROW
+			case "updownarrow":                     // UP DOWN ARROW
 				return rune(0x2195), true
-			case "upharpoonleft": 
-				// UPWARDS HARPOON WITH BARB LEFTWARDS
+			case "upharpoonleft":                   // UPWARDS HARPOON WITH BARB LEFTWARDS
 				return rune(0x21bf), true
-			case "upharpoonright": 
-				// UPWARDS HARPOON WITH BARB RIGHTWARDS
+			case "upharpoonright":                  // UPWARDS HARPOON WITH BARB RIGHTWARDS
 				return rune(0x21be), true
-			case "upint": 
-				// INTEGRAL WITH OVERBAR
+			case "upint":                           // INTEGRAL WITH OVERBAR
 				return rune(0x2a1b), true
-			case "uplus": 
-				// MULTISET UNION
+			case "uplus":                           // MULTISET UNION
 				return rune(0x228e), true
-			case "upsih": 
-				// GREEK UPSILON WITH HOOK SYMBOL
-				return rune(0x03d2), true
-			case "upsilon": 
-				// GREEK SMALL LETTER UPSILON
+			case "upsi":                            // GREEK SMALL LETTER UPSILON
 				return rune(0x03c5), true
-			case "upsi": 
-				// GREEK SMALL LETTER UPSILON
+			case "upsih":                           // GREEK UPSILON WITH HOOK SYMBOL
+				return rune(0x03d2), true
+			case "upsilon":                         // GREEK SMALL LETTER UPSILON
 				return rune(0x03c5), true
-			case "upuparrows": 
-				// UPWARDS PAIRED ARROWS
+			case "upuparrows":                      // UPWARDS PAIRED ARROWS
 				return rune(0x21c8), true
-			case "urcorn": 
-				// TOP RIGHT CORNER
+			case "urcorn":                          // TOP RIGHT CORNER
 				return rune(0x231d), true
-			case "urcorner": 
-				// TOP RIGHT CORNER
+			case "urcorner":                        // TOP RIGHT CORNER
 				return rune(0x231d), true
-			case "urcrop": 
-				// TOP RIGHT CROP
+			case "urcrop":                          // TOP RIGHT CROP
 				return rune(0x230e), true
-			case "urdrshar": 
-				// UP BARB RIGHT DOWN BARB RIGHT HARPOON
+			case "urdrshar":                        // UP BARB RIGHT DOWN BARB RIGHT HARPOON
 				return rune(0x294f), true
-			case "urharb": 
-				// UPWARDS HARPOON WITH BARB RIGHT TO BAR
+			case "urharb":                          // UPWARDS HARPOON WITH BARB RIGHT TO BAR
 				return rune(0x2954), true
-			case "uring": 
-				// LATIN SMALL LETTER U WITH RING ABOVE
+			case "uring":                           // LATIN SMALL LETTER U WITH RING ABOVE
 				return rune(0x016f), true
-			case "urtrif": 
-				// BLACK UPPER RIGHT TRIANGLE
-				return rune(0x25e5), true
-			case "urtri": 
-				// UPPER RIGHT TRIANGLE
+			case "urtri":                           // UPPER RIGHT TRIANGLE
 				return rune(0x25f9), true
-			case "uscr": 
-				// MATHEMATICAL SCRIPT SMALL U
+			case "urtrif":                          // BLACK UPPER RIGHT TRIANGLE
+				return rune(0x25e5), true
+			case "uscr":                            // MATHEMATICAL SCRIPT SMALL U
 				return rune(0x01d4ca), true
-			case "utdot": 
-				// UP RIGHT DIAGONAL ELLIPSIS
+			case "utdot":                           // UP RIGHT DIAGONAL ELLIPSIS
 				return rune(0x22f0), true
-			case "utilde": 
-				// LATIN SMALL LETTER U WITH TILDE
+			case "utilde":                          // LATIN SMALL LETTER U WITH TILDE
 				return rune(0x0169), true
-			case "utrif": 
-				// BLACK UP-POINTING SMALL TRIANGLE
-				return rune(0x25b4), true
-			case "utri": 
-				// WHITE UP-POINTING SMALL TRIANGLE
+			case "utri":                            // WHITE UP-POINTING SMALL TRIANGLE
 				return rune(0x25b5), true
-			case "uuarr": 
-				// UPWARDS PAIRED ARROWS
+			case "utrif":                           // BLACK UP-POINTING SMALL TRIANGLE
+				return rune(0x25b4), true
+			case "uuarr":                           // UPWARDS PAIRED ARROWS
 				return rune(0x21c8), true
-			case "uuml": 
-				// LATIN SMALL LETTER U WITH DIAERESIS
+			case "uuml":                            // LATIN SMALL LETTER U WITH DIAERESIS
 				return rune(0xfc), true
-			case "uwangle": 
-				// OBLIQUE ANGLE OPENING DOWN
+			case "uwangle":                         // OBLIQUE ANGLE OPENING DOWN
 				return rune(0x29a7), true
 		}
 
 	case 'v':
 		switch name {
-			case "vArr": 
-				// UP DOWN DOUBLE ARROW
+			case "vArr":                            // UP DOWN DOUBLE ARROW
 				return rune(0x21d5), true
-			case "vBar": 
-				// SHORT UP TACK WITH UNDERBAR
+			case "vBar":                            // SHORT UP TACK WITH UNDERBAR
 				return rune(0x2ae8), true
-			case "vBarv": 
-				// SHORT UP TACK ABOVE SHORT DOWN TACK
+			case "vBarv":                           // SHORT UP TACK ABOVE SHORT DOWN TACK
 				return rune(0x2ae9), true
-			case "vDash": 
-				// TRUE
+			case "vDash":                           // TRUE
 				return rune(0x22a8), true
-			case "vDdash": 
-				// VERTICAL BAR TRIPLE RIGHT TURNSTILE
+			case "vDdash":                          // VERTICAL BAR TRIPLE RIGHT TURNSTILE
 				return rune(0x2ae2), true
-			case "vangrt": 
-				// RIGHT ANGLE VARIANT WITH SQUARE
+			case "vangrt":                          // RIGHT ANGLE VARIANT WITH SQUARE
 				return rune(0x299c), true
-			case "varepsilon": 
-				// GREEK LUNATE EPSILON SYMBOL
+			case "varepsilon":                      // GREEK LUNATE EPSILON SYMBOL
 				return rune(0x03f5), true
-			case "varkappa": 
-				// GREEK KAPPA SYMBOL
+			case "varkappa":                        // GREEK KAPPA SYMBOL
 				return rune(0x03f0), true
-			case "varnothing": 
-				// EMPTY SET
+			case "varnothing":                      // EMPTY SET
 				return rune(0x2205), true
-			case "varphi": 
-				// GREEK PHI SYMBOL
+			case "varphi":                          // GREEK PHI SYMBOL
 				return rune(0x03d5), true
-			case "varpi": 
-				// GREEK PI SYMBOL
+			case "varpi":                           // GREEK PI SYMBOL
 				return rune(0x03d6), true
-			case "varpropto": 
-				// PROPORTIONAL TO
+			case "varpropto":                       // PROPORTIONAL TO
 				return rune(0x221d), true
-			case "varr": 
-				// UP DOWN ARROW
+			case "varr":                            // UP DOWN ARROW
 				return rune(0x2195), true
-			case "varrho": 
-				// GREEK RHO SYMBOL
+			case "varrho":                          // GREEK RHO SYMBOL
 				return rune(0x03f1), true
-			case "varsigma": 
-				// GREEK SMALL LETTER FINAL SIGMA
+			case "varsigma":                        // GREEK SMALL LETTER FINAL SIGMA
 				return rune(0x03c2), true
-			case "varsubsetneq": 
-				// SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
+			case "varsubsetneq":                    // SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
 				return rune(0x228a), true
-			case "varsubsetneqq": 
-				// SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
+			case "varsubsetneqq":                   // SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
 				return rune(0x2acb), true
-			case "varsupsetneq": 
-				// SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
+			case "varsupsetneq":                    // SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
 				return rune(0x228b), true
-			case "varsupsetneqq": 
-				// SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
+			case "varsupsetneqq":                   // SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
 				return rune(0x2acc), true
-			case "vartheta": 
-				// GREEK THETA SYMBOL
+			case "vartheta":                        // GREEK THETA SYMBOL
 				return rune(0x03d1), true
-			case "vartriangleleft": 
-				// NORMAL SUBGROUP OF
+			case "vartriangleleft":                 // NORMAL SUBGROUP OF
 				return rune(0x22b2), true
-			case "vartriangleright": 
-				// CONTAINS AS NORMAL SUBGROUP
+			case "vartriangleright":                // CONTAINS AS NORMAL SUBGROUP
 				return rune(0x22b3), true
-			case "vbrtri": 
-				// VERTICAL BAR BESIDE RIGHT TRIANGLE
+			case "vbrtri":                          // VERTICAL BAR BESIDE RIGHT TRIANGLE
 				return rune(0x29d0), true
-			case "vcy": 
-				// CYRILLIC SMALL LETTER VE
+			case "vcy":                             // CYRILLIC SMALL LETTER VE
 				return rune(0x0432), true
-			case "vdash": 
-				// RIGHT TACK
+			case "vdash":                           // RIGHT TACK
 				return rune(0x22a2), true
-			case "vee": 
-				// LOGICAL OR
+			case "vee":                             // LOGICAL OR
 				return rune(0x2228), true
-			case "veeBar": 
-				// LOGICAL OR WITH DOUBLE UNDERBAR
+			case "veeBar":                          // LOGICAL OR WITH DOUBLE UNDERBAR
 				return rune(0x2a63), true
-			case "veebar": 
-				// XOR
+			case "veebar":                          // XOR
 				return rune(0x22bb), true
-			case "veeeq": 
-				// EQUIANGULAR TO
+			case "veeeq":                           // EQUIANGULAR TO
 				return rune(0x225a), true
-			case "vellip": 
-				// VERTICAL ELLIPSIS
+			case "vellip":                          // VERTICAL ELLIPSIS
 				return rune(0x22ee), true
-			case "vellip4": 
-				// DOTTED FENCE
+			case "vellip4":                         // DOTTED FENCE
 				return rune(0x2999), true
-			case "vellipv": 
-				// TRIPLE COLON OPERATOR
+			case "vellipv":                         // TRIPLE COLON OPERATOR
 				return rune(0x2af6), true
-			case "verbar": 
-				// VERTICAL LINE
+			case "verbar":                          // VERTICAL LINE
 				return rune(0x7c), true
-			case "vert3": 
-				// TRIPLE VERTICAL BAR BINARY RELATION
-				return rune(0x2af4), true
-			case "vert": 
-				// VERTICAL LINE
+			case "vert":                            // VERTICAL LINE
 				return rune(0x7c), true
-			case "vfr": 
-				// MATHEMATICAL FRAKTUR SMALL V
+			case "vert3":                           // TRIPLE VERTICAL BAR BINARY RELATION
+				return rune(0x2af4), true
+			case "vfr":                             // MATHEMATICAL FRAKTUR SMALL V
 				return rune(0x01d533), true
-			case "vldash": 
-				// LEFT SQUARE BRACKET LOWER CORNER
+			case "vldash":                          // LEFT SQUARE BRACKET LOWER CORNER
 				return rune(0x23a3), true
-			case "vltri": 
-				// NORMAL SUBGROUP OF
+			case "vltri":                           // NORMAL SUBGROUP OF
 				return rune(0x22b2), true
-			case "vnsub": 
-				// SUBSET OF with vertical line
+			case "vnsub":                           // SUBSET OF with vertical line
 				return rune(0x2282), true
-			case "vnsup": 
-				// SUPERSET OF with vertical line
+			case "vnsup":                           // SUPERSET OF with vertical line
 				return rune(0x2283), true
-			case "vopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL V
+			case "vopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL V
 				return rune(0x01d567), true
-			case "vprime": 
-				// PRIME
+			case "vprime":                          // PRIME
 				return rune(0x2032), true
-			case "vprop": 
-				// PROPORTIONAL TO
+			case "vprop":                           // PROPORTIONAL TO
 				return rune(0x221d), true
-			case "vrtri": 
-				// CONTAINS AS NORMAL SUBGROUP
+			case "vrtri":                           // CONTAINS AS NORMAL SUBGROUP
 				return rune(0x22b3), true
-			case "vscr": 
-				// MATHEMATICAL SCRIPT SMALL V
+			case "vscr":                            // MATHEMATICAL SCRIPT SMALL V
 				return rune(0x01d4cb), true
-			case "vsubnE": 
-				// SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
+			case "vsubnE":                          // SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
 				return rune(0x2acb), true
-			case "vsubne": 
-				// SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
+			case "vsubne":                          // SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
 				return rune(0x228a), true
-			case "vsupnE": 
-				// SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
+			case "vsupnE":                          // SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
 				return rune(0x2acc), true
-			case "vsupne": 
-				// SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
+			case "vsupne":                          // SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
 				return rune(0x228b), true
-			case "vzigzag": 
-				// VERTICAL ZIGZAG LINE
+			case "vzigzag":                         // VERTICAL ZIGZAG LINE
 				return rune(0x299a), true
 		}
 
 	case 'w':
 		switch name {
-			case "wcirc": 
-				// LATIN SMALL LETTER W WITH CIRCUMFLEX
+			case "wcirc":                           // LATIN SMALL LETTER W WITH CIRCUMFLEX
 				return rune(0x0175), true
-			case "wedbar": 
-				// LOGICAL AND WITH UNDERBAR
+			case "wedbar":                          // LOGICAL AND WITH UNDERBAR
 				return rune(0x2a5f), true
-			case "wedge": 
-				// LOGICAL AND
+			case "wedge":                           // LOGICAL AND
 				return rune(0x2227), true
-			case "wedgeq": 
-				// ESTIMATES
+			case "wedgeq":                          // ESTIMATES
 				return rune(0x2259), true
-			case "weierp": 
-				// SCRIPT CAPITAL P
+			case "weierp":                          // SCRIPT CAPITAL P
 				return rune(0x2118), true
-			case "wfr": 
-				// MATHEMATICAL FRAKTUR SMALL W
+			case "wfr":                             // MATHEMATICAL FRAKTUR SMALL W
 				return rune(0x01d534), true
-			case "wopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL W
+			case "wopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL W
 				return rune(0x01d568), true
-			case "wp": 
-				// SCRIPT CAPITAL P
+			case "wp":                              // SCRIPT CAPITAL P
 				return rune(0x2118), true
-			case "wreath": 
-				// WREATH PRODUCT
+			case "wr":                              // WREATH PRODUCT
 				return rune(0x2240), true
-			case "wr": 
-				// WREATH PRODUCT
+			case "wreath":                          // WREATH PRODUCT
 				return rune(0x2240), true
-			case "wscr": 
-				// MATHEMATICAL SCRIPT SMALL W
+			case "wscr":                            // MATHEMATICAL SCRIPT SMALL W
 				return rune(0x01d4cc), true
 		}
 
 	case 'x':
 		switch name {
-			case "xandand": 
-				// TWO LOGICAL AND OPERATOR
+			case "xandand":                         // TWO LOGICAL AND OPERATOR
 				return rune(0x2a07), true
-			case "xbsol": 
-				// BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+			case "xbsol":                           // BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
 				return rune(0x2571), true
-			case "xcap": 
-				// N-ARY INTERSECTION
+			case "xcap":                            // N-ARY INTERSECTION
 				return rune(0x22c2), true
-			case "xcirc": 
-				// LARGE CIRCLE
+			case "xcirc":                           // LARGE CIRCLE
 				return rune(0x25ef), true
-			case "xcup": 
-				// N-ARY UNION
+			case "xcup":                            // N-ARY UNION
 				return rune(0x22c3), true
-			case "xcupdot": 
-				// N-ARY UNION OPERATOR WITH DOT
+			case "xcupdot":                         // N-ARY UNION OPERATOR WITH DOT
 				return rune(0x2a03), true
-			case "xdtri": 
-				// WHITE DOWN-POINTING TRIANGLE
+			case "xdtri":                           // WHITE DOWN-POINTING TRIANGLE
 				return rune(0x25bd), true
-			case "xfr": 
-				// MATHEMATICAL FRAKTUR SMALL X
+			case "xfr":                             // MATHEMATICAL FRAKTUR SMALL X
 				return rune(0x01d535), true
-			case "xgr": 
-				// GREEK SMALL LETTER XI
+			case "xgr":                             // GREEK SMALL LETTER XI
 				return rune(0x03be), true
-			case "xhArr": 
-				// LONG LEFT RIGHT DOUBLE ARROW
+			case "xhArr":                           // LONG LEFT RIGHT DOUBLE ARROW
 				return rune(0x27fa), true
-			case "xharr": 
-				// LONG LEFT RIGHT ARROW
+			case "xharr":                           // LONG LEFT RIGHT ARROW
 				return rune(0x27f7), true
-			case "xi": 
-				// GREEK SMALL LETTER XI
+			case "xi":                              // GREEK SMALL LETTER XI
 				return rune(0x03be), true
-			case "xlArr": 
-				// LONG LEFTWARDS DOUBLE ARROW
+			case "xlArr":                           // LONG LEFTWARDS DOUBLE ARROW
 				return rune(0x27f8), true
-			case "xlarr": 
-				// LONG LEFTWARDS ARROW
+			case "xlarr":                           // LONG LEFTWARDS ARROW
 				return rune(0x27f5), true
-			case "xmap": 
-				// LONG RIGHTWARDS ARROW FROM BAR
+			case "xmap":                            // LONG RIGHTWARDS ARROW FROM BAR
 				return rune(0x27fc), true
-			case "xnis": 
-				// CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+			case "xnis":                            // CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
 				return rune(0x22fb), true
-			case "xodot": 
-				// N-ARY CIRCLED DOT OPERATOR
+			case "xodot":                           // N-ARY CIRCLED DOT OPERATOR
 				return rune(0x2a00), true
-			case "xopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL X
+			case "xopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL X
 				return rune(0x01d569), true
-			case "xoplus": 
-				// N-ARY CIRCLED PLUS OPERATOR
+			case "xoplus":                          // N-ARY CIRCLED PLUS OPERATOR
 				return rune(0x2a01), true
-			case "xoror": 
-				// TWO LOGICAL OR OPERATOR
+			case "xoror":                           // TWO LOGICAL OR OPERATOR
 				return rune(0x2a08), true
-			case "xotime": 
-				// N-ARY CIRCLED TIMES OPERATOR
+			case "xotime":                          // N-ARY CIRCLED TIMES OPERATOR
 				return rune(0x2a02), true
-			case "xrArr": 
-				// LONG RIGHTWARDS DOUBLE ARROW
+			case "xrArr":                           // LONG RIGHTWARDS DOUBLE ARROW
 				return rune(0x27f9), true
-			case "xrarr": 
-				// LONG RIGHTWARDS ARROW
+			case "xrarr":                           // LONG RIGHTWARDS ARROW
 				return rune(0x27f6), true
-			case "xscr": 
-				// MATHEMATICAL SCRIPT SMALL X
+			case "xscr":                            // MATHEMATICAL SCRIPT SMALL X
 				return rune(0x01d4cd), true
-			case "xsol": 
-				// BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+			case "xsol":                            // BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
 				return rune(0x2572), true
-			case "xsqcap": 
-				// N-ARY SQUARE INTERSECTION OPERATOR
+			case "xsqcap":                          // N-ARY SQUARE INTERSECTION OPERATOR
 				return rune(0x2a05), true
-			case "xsqcup": 
-				// N-ARY SQUARE UNION OPERATOR
+			case "xsqcup":                          // N-ARY SQUARE UNION OPERATOR
 				return rune(0x2a06), true
-			case "xsqu": 
-				// WHITE MEDIUM SQUARE
+			case "xsqu":                            // WHITE MEDIUM SQUARE
 				return rune(0x25fb), true
-			case "xsquf": 
-				// BLACK MEDIUM SQUARE
+			case "xsquf":                           // BLACK MEDIUM SQUARE
 				return rune(0x25fc), true
-			case "xtimes": 
-				// N-ARY TIMES OPERATOR
+			case "xtimes":                          // N-ARY TIMES OPERATOR
 				return rune(0x2a09), true
-			case "xuplus": 
-				// N-ARY UNION OPERATOR WITH PLUS
+			case "xuplus":                          // N-ARY UNION OPERATOR WITH PLUS
 				return rune(0x2a04), true
-			case "xutri": 
-				// WHITE UP-POINTING TRIANGLE
+			case "xutri":                           // WHITE UP-POINTING TRIANGLE
 				return rune(0x25b3), true
-			case "xvee": 
-				// N-ARY LOGICAL OR
+			case "xvee":                            // N-ARY LOGICAL OR
 				return rune(0x22c1), true
-			case "xwedge": 
-				// N-ARY LOGICAL AND
+			case "xwedge":                          // N-ARY LOGICAL AND
 				return rune(0x22c0), true
 		}
 
 	case 'y':
 		switch name {
-			case "yacute": 
-				// LATIN SMALL LETTER Y WITH ACUTE
+			case "yacute":                          // LATIN SMALL LETTER Y WITH ACUTE
 				return rune(0xfd), true
-			case "yacy": 
-				// CYRILLIC SMALL LETTER YA
+			case "yacy":                            // CYRILLIC SMALL LETTER YA
 				return rune(0x044f), true
-			case "ycirc": 
-				// LATIN SMALL LETTER Y WITH CIRCUMFLEX
+			case "ycirc":                           // LATIN SMALL LETTER Y WITH CIRCUMFLEX
 				return rune(0x0177), true
-			case "ycy": 
-				// CYRILLIC SMALL LETTER YERU
+			case "ycy":                             // CYRILLIC SMALL LETTER YERU
 				return rune(0x044b), true
-			case "yen": 
-				// YEN SIGN
+			case "yen":                             // YEN SIGN
 				return rune(0xa5), true
-			case "yfr": 
-				// MATHEMATICAL FRAKTUR SMALL Y
+			case "yfr":                             // MATHEMATICAL FRAKTUR SMALL Y
 				return rune(0x01d536), true
-			case "yicy": 
-				// CYRILLIC SMALL LETTER YI
+			case "yicy":                            // CYRILLIC SMALL LETTER YI
 				return rune(0x0457), true
-			case "yopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL Y
+			case "yopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL Y
 				return rune(0x01d56a), true
-			case "yscr": 
-				// MATHEMATICAL SCRIPT SMALL Y
+			case "yscr":                            // MATHEMATICAL SCRIPT SMALL Y
 				return rune(0x01d4ce), true
-			case "yucy": 
-				// CYRILLIC SMALL LETTER YU
+			case "yucy":                            // CYRILLIC SMALL LETTER YU
 				return rune(0x044e), true
-			case "yuml": 
-				// LATIN SMALL LETTER Y WITH DIAERESIS
+			case "yuml":                            // LATIN SMALL LETTER Y WITH DIAERESIS
 				return rune(0xff), true
 		}
 
 	case 'z':
 		switch name {
-			case "zacute": 
-				// LATIN SMALL LETTER Z WITH ACUTE
+			case "zacute":                          // LATIN SMALL LETTER Z WITH ACUTE
 				return rune(0x017a), true
-			case "zcaron": 
-				// LATIN SMALL LETTER Z WITH CARON
+			case "zcaron":                          // LATIN SMALL LETTER Z WITH CARON
 				return rune(0x017e), true
-			case "zcy": 
-				// CYRILLIC SMALL LETTER ZE
+			case "zcy":                             // CYRILLIC SMALL LETTER ZE
 				return rune(0x0437), true
-			case "zdot": 
-				// LATIN SMALL LETTER Z WITH DOT ABOVE
+			case "zdot":                            // LATIN SMALL LETTER Z WITH DOT ABOVE
 				return rune(0x017c), true
-			case "zeetrf": 
-				// BLACK-LETTER CAPITAL Z
+			case "zeetrf":                          // BLACK-LETTER CAPITAL Z
 				return rune(0x2128), true
-			case "zeta": 
-				// GREEK SMALL LETTER ZETA
+			case "zeta":                            // GREEK SMALL LETTER ZETA
 				return rune(0x03b6), true
-			case "zfr": 
-				// MATHEMATICAL FRAKTUR SMALL Z
+			case "zfr":                             // MATHEMATICAL FRAKTUR SMALL Z
 				return rune(0x01d537), true
-			case "zgr": 
-				// GREEK SMALL LETTER ZETA
+			case "zgr":                             // GREEK SMALL LETTER ZETA
 				return rune(0x03b6), true
-			case "zhcy": 
-				// CYRILLIC SMALL LETTER ZHE
+			case "zhcy":                            // CYRILLIC SMALL LETTER ZHE
 				return rune(0x0436), true
-			case "zigrarr": 
-				// RIGHTWARDS SQUIGGLE ARROW
+			case "zigrarr":                         // RIGHTWARDS SQUIGGLE ARROW
 				return rune(0x21dd), true
-			case "zopf": 
-				// MATHEMATICAL DOUBLE-STRUCK SMALL Z
+			case "zopf":                            // MATHEMATICAL DOUBLE-STRUCK SMALL Z
 				return rune(0x01d56b), true
-			case "zscr": 
-				// MATHEMATICAL SCRIPT SMALL Z
+			case "zscr":                            // MATHEMATICAL SCRIPT SMALL Z
 				return rune(0x01d4cf), true
-			case "zwj": 
-				// ZERO WIDTH JOINER
+			case "zwj":                             // ZERO WIDTH JOINER
 				return rune(0x200d), true
-			case "zwnj": 
-				// ZERO WIDTH NON-JOINER
+			case "zwnj":                            // ZERO WIDTH NON-JOINER
 				return rune(0x200c), true
 		}
 	}

+ 80 - 69
core/unicode/tools/generate_entity_table.odin

@@ -2,7 +2,7 @@ package xml_example
 
 import "core:encoding/xml"
 import "core:os"
-import "core:path"
+import path "core:path/filepath"
 import "core:mem"
 import "core:strings"
 import "core:strconv"
@@ -23,38 +23,38 @@ Entity :: struct {
 }
 
 generate_encoding_entity_table :: proc() {
-	using fmt
-
-	filename := path.join(ODIN_ROOT, "tests", "core", "assets", "XML", "unicode.xml")
+	filename := path.join({ODIN_ROOT, "tests", "core", "assets", "XML", "unicode.xml"})
 	defer delete(filename)
 
-	generated_filename := path.join(ODIN_ROOT, "core", "encoding", "entity", "generated.odin")
+	generated_filename := path.join({ODIN_ROOT, "core", "encoding", "entity", "generated.odin"})
 	defer delete(generated_filename)
 
-	doc, err := xml.parse(filename, OPTIONS, Error_Handler)
+	doc, err := xml.load_from_file(filename, OPTIONS, Error_Handler)
 	defer xml.destroy(doc)
 
 	if err != .None {
-		printf("Load/Parse error: %v\n", err)
+		fmt.printf("Load/Parse error: %v\n", err)
 		if err == .File_Error {
-			printf("\"%v\" not found. Did you run \"tests\\download_assets.py\"?", filename)
+			fmt.printf("\"%v\" not found. Did you run \"tests\\download_assets.py\"?", filename)
 		}
 		os.exit(1)
 	}
 
-	printf("\"%v\" loaded and parsed.\n", filename)
+	fmt.printf("\"%v\" loaded and parsed.\n", filename)
 
 	generated_buf: strings.Builder
 	defer strings.builder_destroy(&generated_buf)
 	w := strings.to_writer(&generated_buf)
 
-	charlist, charlist_ok := xml.find_child_by_ident(doc.root, "charlist")
+	charlist_id, charlist_ok := xml.find_child_by_ident(doc, 0, "charlist")
 	if !charlist_ok {
-		eprintln("Could not locate top-level `<charlist>` tag.")
+		fmt.eprintln("Could not locate top-level `<charlist>` tag.")
 		os.exit(1)
 	}
 
-	printf("Found `<charlist>` with %v children.\n", len(charlist.children))
+	charlist := doc.elements[charlist_id]
+
+	fmt.printf("Found `<charlist>` with %v children.\n", len(charlist.value))
 
 	entity_map: map[string]Entity
 	names: [dynamic]string
@@ -65,20 +65,26 @@ generate_encoding_entity_table :: proc() {
 	longest_name:  string
 
 	count := 0
-	for char in charlist.children {
+	for char_id in charlist.value {
+		id := char_id.(xml.Element_ID)
+		char := doc.elements[id]
+
 		if char.ident != "character" {
-			eprintf("Expected `<character>`, got `<%v>`\n", char.ident)
+			fmt.eprintf("Expected `<character>`, got `<%v>`\n", char.ident)
 			os.exit(1)
 		}
 
-		if codepoint_string, ok := xml.find_attribute_val_by_key(char, "dec"); !ok {
-			eprintln("`<character id=\"...\">` attribute not found.")
+		if codepoint_string, ok := xml.find_attribute_val_by_key(doc, id, "dec"); !ok {
+			fmt.eprintln("`<character id=\"...\">` attribute not found.")
 			os.exit(1)
 		} else {
 			codepoint := strconv.atoi(codepoint_string)
 
-			desc, desc_ok := xml.find_child_by_ident(char, "description")
-			description   := desc.value if desc_ok else ""
+			desc, desc_ok := xml.find_child_by_ident(doc, id, "description")
+			description := ""
+			if len(doc.elements[desc].value) == 1 {
+				description = doc.elements[desc].value[0].(string)
+			}
 
 			/*
 				For us to be interested in this codepoint, it has to have at least one entity.
@@ -86,9 +92,9 @@ generate_encoding_entity_table :: proc() {
 
 			nth := 0
 			for {
-				character_entity := xml.find_child_by_ident(char, "entity", nth) or_break
+				character_entity := xml.find_child_by_ident(doc, id, "entity", nth) or_break
 				nth += 1
-				name := xml.find_attribute_val_by_key(character_entity, "id") or_continue
+				name := xml.find_attribute_val_by_key(doc, character_entity, "id") or_continue
 				if len(name) == 0 {
 					/*
 						Invalid name. Skip.
@@ -97,8 +103,8 @@ generate_encoding_entity_table :: proc() {
 				}
 
 				if name == "\"\"" {
-					printf("%#v\n", char)
-					printf("%#v\n", character_entity)
+					fmt.printf("%#v\n", char)
+					fmt.printf("%#v\n", character_entity)
 				}
 
 				if len(name) > max_name_length { longest_name  = name }
@@ -129,29 +135,27 @@ generate_encoding_entity_table :: proc() {
 	*/
 	slice.sort(names[:])
 
-	printf("Found %v unique `&name;` -> rune mappings.\n", count)
-	printf("Shortest name: %v (%v)\n", shortest_name, min_name_length)
-	printf("Longest name:  %v (%v)\n", longest_name,  max_name_length)
-
-	// println(rune_to_string(1234))
+	fmt.printf("Found %v unique `&name;` -> rune mappings.\n", count)
+	fmt.printf("Shortest name: %v (%v)\n", shortest_name, min_name_length)
+	fmt.printf("Longest name:  %v (%v)\n", longest_name,  max_name_length)
 
 	/*
 		Generate table.
 	*/
-	wprintln(w, "package unicode_entity")
-	wprintln(w, "")
-	wprintln(w, GENERATED)
-	wprintln(w, "")
-	wprintf (w, TABLE_FILE_PROLOG)
-	wprintln(w, "")
-
-	wprintf (w, "// `&%v;`\n", shortest_name)
-	wprintf (w, "XML_NAME_TO_RUNE_MIN_LENGTH :: %v\n", min_name_length)
-	wprintf (w, "// `&%v;`\n", longest_name)
-	wprintf (w, "XML_NAME_TO_RUNE_MAX_LENGTH :: %v\n", max_name_length)
-	wprintln(w, "")
-
-	wprintln(w,
+	fmt.wprintln(w, "package unicode_entity")
+	fmt.wprintln(w, "")
+	fmt.wprintln(w, GENERATED)
+	fmt.wprintln(w, "")
+	fmt.wprintf (w, TABLE_FILE_PROLOG)
+	fmt.wprintln(w, "")
+
+	fmt.wprintf (w, "// `&%v;`\n", shortest_name)
+	fmt.wprintf (w, "XML_NAME_TO_RUNE_MIN_LENGTH :: %v\n", min_name_length)
+	fmt.wprintf (w, "// `&%v;`\n", longest_name)
+	fmt.wprintf (w, "XML_NAME_TO_RUNE_MAX_LENGTH :: %v\n", max_name_length)
+	fmt.wprintln(w, "")
+
+	fmt.wprintln(w,
 `
 /*
 	Input:
@@ -181,38 +185,41 @@ named_xml_entity_to_rune :: proc(name: string) -> (decoded: rune, ok: bool) {
 	for v in names {
 		if rune(v[0]) != prefix {
 			if should_close {
-				wprintln(w, "\t\t}\n")
+				fmt.wprintln(w, "\t\t}\n")
 			}
 
 			prefix = rune(v[0])
-			wprintf (w, "\tcase '%v':\n", prefix)
-			wprintln(w, "\t\tswitch name {")
+			fmt.wprintf (w, "\tcase '%v':\n", prefix)
+			fmt.wprintln(w, "\t\tswitch name {")
 		}
 
 		e := entity_map[v]
 
-		wprintf(w, "\t\t\tcase \"%v\": \n",     e.name)
-		wprintf(w, "\t\t\t\t// %v\n",           e.description)
-		wprintf(w, "\t\t\t\treturn %v, true\n", rune_to_string(e.codepoint))
+		fmt.wprintf(w, "\t\t\tcase \"%v\":", e.name)
+		for i := len(e.name); i < max_name_length; i += 1 {
+			fmt.wprintf(w, " ")
+		}
+		fmt.wprintf(w, " // %v\n", e.description)
+		fmt.wprintf(w, "\t\t\t\treturn %v, true\n", rune_to_string(e.codepoint))
 
 		should_close = true
 	}
-	wprintln(w, "\t\t}")
-	wprintln(w, "\t}")
-	wprintln(w, "\treturn -1, false")
-	wprintln(w, "}\n")
-	wprintln(w, GENERATED)
+	fmt.wprintln(w, "\t\t}")
+	fmt.wprintln(w, "\t}")
+	fmt.wprintln(w, "\treturn -1, false")
+	fmt.wprintln(w, "}\n")
+	fmt.wprintln(w, GENERATED)
 
-	println()
-	println(strings.to_string(generated_buf))
-	println()
+	fmt.println()
+	fmt.println(strings.to_string(generated_buf))
+	fmt.println()
 
 	written := os.write_entire_file(generated_filename, transmute([]byte)strings.to_string(generated_buf))
 
 	if written {
-		fmt.printf("Successfully written generated \"%v\".", generated_filename)
+		fmt.printf("Successfully written generated \"%v\".\n", generated_filename)
 	} else {
-		fmt.printf("Failed to write generated \"%v\".", generated_filename)
+		fmt.printf("Failed to write generated \"%v\".\n", generated_filename)
 	}
 
 	delete(entity_map)
@@ -227,7 +234,7 @@ GENERATED :: `/*
 */`
 
 TABLE_FILE_PROLOG :: `/*
-	This file is generated from "https://www.w3.org/2003/entities/2007xml/unicode.xml".
+	This file is generated from "https://github.com/w3c/xml-entities/blob/gh-pages/unicode.xml".
 	
 	UPDATE:
 		- Ensure the XML file was downloaded using "tests\core\download_assets.py".
@@ -235,15 +242,21 @@ TABLE_FILE_PROLOG :: `/*
 
 	Odin unicode generated tables: https://github.com/odin-lang/Odin/tree/master/core/encoding/entity
 
-		Copyright © 2021 World Wide Web Consortium, (Massachusetts Institute of Technology,
-		European Research Consortium for Informatics and Mathematics, Keio University, Beihang).
+		Copyright David Carlisle 1999-2023
+
+		Use and distribution of this code are permitted under the terms of the
+		W3C Software Notice and License.
+		http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html
 
-		All Rights Reserved.
 
-		This work is distributed under the W3C® Software License [1] in the hope that it will be useful,
-		but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-		[1] http://www.w3.org/Consortium/Legal/copyright-software
+		This file is a collection of information about how to map
+		Unicode entities to LaTeX, and various SGML/XML entity
+		sets (ISO and MathML/HTML). A Unicode character may be mapped
+		to several entities.
+
+		Originally designed by Sebastian Rahtz in conjunction with
+		Barbara Beeton for the STIX project
 
 	See also: LICENSE_table.md
 */
@@ -265,8 +278,6 @@ is_dotted_name :: proc(name: string) -> (dotted: bool) {
 }
 
 main :: proc() {
-	using fmt
-
 	track: mem.Tracking_Allocator
 	mem.tracking_allocator_init(&track, context.allocator)
 	context.allocator = mem.tracking_allocator(&track)
@@ -274,10 +285,10 @@ main :: proc() {
 	generate_encoding_entity_table()
 
 	if len(track.allocation_map) > 0 {
-		println()
+		fmt.println()
 		for _, v in track.allocation_map {
-			printf("%v Leaked %v bytes.\n", v.location, v.size)
+			fmt.printf("%v Leaked %v bytes.\n", v.location, v.size)
 		}
 	}
-	println("Done and cleaned up!")
+	fmt.println("Done and cleaned up!")
 }

+ 102 - 102
tests/core/build.bat

@@ -1,102 +1,102 @@
-@echo off
-set COMMON=-no-bounds-check -vet -strict-style
-set COLLECTION=-collection:tests=..
-set PATH_TO_ODIN==..\..\odin
-python3 download_assets.py
-echo ---
-echo Running core:image tests
-echo ---
-%PATH_TO_ODIN% run image    %COMMON% -out:test_core_image.exe || exit /b
-
-echo ---
-echo Running core:compress tests
-echo ---
-%PATH_TO_ODIN% run compress %COMMON% -out:test_core_compress.exe || exit /b
-
-echo ---
-echo Running core:strings tests
-echo ---
-%PATH_TO_ODIN% run strings %COMMON% -out:test_core_strings.exe || exit /b
-
-echo ---
-echo Running core:hash tests
-echo ---
-%PATH_TO_ODIN% run hash %COMMON% -o:size -out:test_core_hash.exe || exit /b
-
-echo ---
-echo Running core:odin tests
-echo ---
-%PATH_TO_ODIN% run odin %COMMON% -o:size -out:test_core_odin.exe || exit /b
-
-echo ---
-echo Running core:crypto hash tests
-echo ---
-%PATH_TO_ODIN% run crypto %COMMON% -out:test_crypto_hash.exe || exit /b
-
-echo ---
-echo Running core:encoding tests
-echo ---
-%PATH_TO_ODIN% run encoding/hxa    %COMMON% %COLLECTION% -out:test_hxa.exe || exit /b
-%PATH_TO_ODIN% run encoding/json   %COMMON% -out:test_json.exe || exit /b
-%PATH_TO_ODIN% run encoding/varint %COMMON% -out:test_varint.exe || exit /b
-%PATH_TO_ODIN% run encoding/xml    %COMMON% -out:test_xml.exe || exit /b
-
-echo ---
-echo Running core:math/noise tests
-echo ---
-%PATH_TO_ODIN% run math/noise %COMMON% -out:test_noise.exe || exit /b
-
-echo ---
-echo Running core:math tests
-echo ---
-%PATH_TO_ODIN% run math %COMMON% %COLLECTION% -out:test_core_math.exe || exit /b
-
-echo ---
-echo Running core:math/linalg/glsl tests
-echo ---
-%PATH_TO_ODIN% run math/linalg/glsl %COMMON% %COLLECTION% -out:test_linalg_glsl.exe || exit /b
-
-echo ---
-echo Running core:path/filepath tests
-echo ---
-%PATH_TO_ODIN% run path/filepath %COMMON% %COLLECTION% -out:test_core_filepath.exe || exit /b
-
-echo ---
-echo Running core:reflect tests
-echo ---
-%PATH_TO_ODIN% run reflect %COMMON% %COLLECTION% -out:test_core_reflect.exe || exit /b
-
-echo ---
-echo Running core:slice tests
-echo ---
-%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe || exit /b
-
-echo ---
-echo Running core:text/i18n tests
-echo ---
-%PATH_TO_ODIN% run text\i18n %COMMON% -out:test_core_i18n.exe || exit /b
-
-echo ---
-echo Running core:net
-echo ---
-%PATH_TO_ODIN% run net %COMMON% -out:test_core_net.exe || exit /b
-
-echo ---
-echo Running core:slice tests
-echo ---
-%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe || exit /b
-
-echo ---
-echo Running core:container tests
-echo ---
-%PATH_TO_ODIN% run container %COMMON% %COLLECTION% -out:test_core_container.exe || exit /b
-
-echo ---
-echo Running core:thread tests
-echo ---
-%PATH_TO_ODIN% run thread %COMMON% %COLLECTION% -out:test_core_thread.exe || exit /b
-
-echo ---
-echo Running core:runtime tests
-echo ---
-%PATH_TO_ODIN% run runtime %COMMON% %COLLECTION% -out:test_core_runtime.exe || exit /b
+@echo off
+set COMMON=-no-bounds-check -vet -strict-style
+set COLLECTION=-collection:tests=..
+set PATH_TO_ODIN==..\..\odin
+python3 download_assets.py
+echo ---
+echo Running core:image tests
+echo ---
+%PATH_TO_ODIN% run image    %COMMON% -out:test_core_image.exe || exit /b
+
+echo ---
+echo Running core:compress tests
+echo ---
+%PATH_TO_ODIN% run compress %COMMON% -out:test_core_compress.exe || exit /b
+
+echo ---
+echo Running core:strings tests
+echo ---
+%PATH_TO_ODIN% run strings %COMMON% -out:test_core_strings.exe || exit /b
+
+echo ---
+echo Running core:hash tests
+echo ---
+%PATH_TO_ODIN% run hash %COMMON% -o:size -out:test_core_hash.exe || exit /b
+
+echo ---
+echo Running core:odin tests
+echo ---
+%PATH_TO_ODIN% run odin %COMMON% -o:size -out:test_core_odin.exe || exit /b
+
+echo ---
+echo Running core:crypto hash tests
+echo ---
+%PATH_TO_ODIN% run crypto %COMMON% -out:test_crypto_hash.exe || exit /b
+
+echo ---
+echo Running core:encoding tests
+echo ---
+rem %PATH_TO_ODIN% run encoding/hxa    %COMMON% %COLLECTION% -out:test_hxa.exe || exit /b
+%PATH_TO_ODIN% run encoding/json   %COMMON% -out:test_json.exe || exit /b
+%PATH_TO_ODIN% run encoding/varint %COMMON% -out:test_varint.exe || exit /b
+%PATH_TO_ODIN% run encoding/xml    %COMMON% -out:test_xml.exe || exit /b
+
+echo ---
+echo Running core:math/noise tests
+echo ---
+%PATH_TO_ODIN% run math/noise %COMMON% -out:test_noise.exe || exit /b
+
+echo ---
+echo Running core:math tests
+echo ---
+%PATH_TO_ODIN% run math %COMMON% %COLLECTION% -out:test_core_math.exe || exit /b
+
+echo ---
+echo Running core:math/linalg/glsl tests
+echo ---
+%PATH_TO_ODIN% run math/linalg/glsl %COMMON% %COLLECTION% -out:test_linalg_glsl.exe || exit /b
+
+echo ---
+echo Running core:path/filepath tests
+echo ---
+%PATH_TO_ODIN% run path/filepath %COMMON% %COLLECTION% -out:test_core_filepath.exe || exit /b
+
+echo ---
+echo Running core:reflect tests
+echo ---
+%PATH_TO_ODIN% run reflect %COMMON% %COLLECTION% -out:test_core_reflect.exe || exit /b
+
+echo ---
+echo Running core:slice tests
+echo ---
+%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe || exit /b
+
+echo ---
+echo Running core:text/i18n tests
+echo ---
+%PATH_TO_ODIN% run text\i18n %COMMON% -out:test_core_i18n.exe || exit /b
+
+echo ---
+echo Running core:net
+echo ---
+%PATH_TO_ODIN% run net %COMMON% -out:test_core_net.exe || exit /b
+
+echo ---
+echo Running core:slice tests
+echo ---
+%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe || exit /b
+
+echo ---
+echo Running core:container tests
+echo ---
+%PATH_TO_ODIN% run container %COMMON% %COLLECTION% -out:test_core_container.exe || exit /b
+
+echo ---
+echo Running core:thread tests
+echo ---
+%PATH_TO_ODIN% run thread %COMMON% %COLLECTION% -out:test_core_thread.exe || exit /b
+
+echo ---
+echo Running core:runtime tests
+echo ---
+%PATH_TO_ODIN% run runtime %COMMON% %COLLECTION% -out:test_core_runtime.exe || exit /b

+ 2 - 2
tests/core/encoding/xml/test_core_xml.odin

@@ -159,7 +159,7 @@ TESTS :: []TEST{
 	},
 
 	/*
-		Parse the 8.2 MiB unicode.xml for good measure.
+		Parse the 9.08 MiB unicode.xml for good measure.
 	*/
 	{
 		filename  = "XML/unicode.xml",
@@ -170,7 +170,7 @@ TESTS :: []TEST{
 			expected_doctype = "",
 		},
 		err       = .None,
-		crc32     = 0x420dbac5,
+		crc32     = 0x0b6100ab,
 	},
 }