Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

AngleSharp

, 3 Jul 2013 BSD
Bringing the DOM to C# with a HTML5/CSS3 parser written in C#.
Demo.zip
AngleSharp
Css
Tokens
DOM
Collections
Css
Properties
Rules
Selector
Values
Enums
Exception
Html
Basic
Formatting
Forms
Frames
Head
Lists
Media
Objects
Semantic
Tables
Interfaces
Mathml
Objects
Svg
Various
Xml
Foundation
Attributes
Helpers
Mutations
Html
Tokens
Properties
Stream
Xml
Tokens
packages
ModernUI.WPF.1.0.4
lib
net40
FirstFloor.ModernUI.dll
Microsoft.Windows.Shell.dll
net45
FirstFloor.ModernUI.dll
ModernUI.WPF.1.0.4.nupkg
ModernUI.WPF.1.0.4.nuspec
OxyPlot.Core.2013.1.49.1
lib
portable-net4+sl4+wp71+win8
OxyPlot.dll
OxyPlot.Core.2013.1.49.1.nupkg
OxyPlot.Core.2013.1.49.1.nuspec
OxyPlot.Wpf.2013.1.49.1
lib
NET40
OxyPlot.Wpf.dll
OxyPlot.Xps.dll
NET45
OxyPlot.Wpf.dll
OxyPlot.Xps.dll
OxyPlot.Wpf.2013.1.49.1.nupkg
OxyPlot.Wpf.2013.1.49.1.nuspec
Samples
Logo.ico
Pages
Properties
Settings.settings
ViewModels
Source.zip
Documents
using System;
using System.Text;

namespace AngleSharp
{
    /// <summary>
    /// Represents the list of all Html entities.
    /// </summary>
    static class Entities
    {
        /// <summary>
        /// Gets an identity specified by its name.
        /// </summary>
        /// <param name="name">The name of the identity, specified by &amp;NAME; in the Html source code.</param>
        /// <returns>The array containing the found entity or empty.</returns>
        public static char[] GetSymbol(string name)
        {
            if (string.IsNullOrEmpty(name))
                return null;

            switch (name[0])
            {
                case 'a':
                case 'A':
                    return GetSymbolA(name);
                case 'b':
                case 'B':
                    return GetSymbolB(name);
                case 'c':
                case 'C':
                    return GetSymbolC(name);
                case 'd':
                case 'D':
                    return GetSymbolD(name);
                case 'e':
                case 'E':
                    return GetSymbolE(name);
                case 'f':
                case 'F':
                    return GetSymbolF(name);
                case 'g':
                case 'G':
                    return GetSymbolG(name);
                case 'h':
                case 'H':
                    return GetSymbolH(name);
                case 'i':
                case 'I':
                    return GetSymbolI(name);
                case 'j':
                case 'J':
                    return GetSymbolJ(name);
                case 'k':
                case 'K':
                    return GetSymbolK(name);
                case 'l':
                case 'L':
                    return GetSymbolL(name);
                case 'm':
                case 'M':
                    return GetSymbolM(name);
                case 'n':
                case 'N':
                    return GetSymbolN(name);
                case 'o':
                case 'O':
                    return GetSymbolO(name);
                case 'p':
                case 'P':
                    return GetSymbolP(name);
                case 'q':
                case 'Q':
                    return GetSymbolQ(name);
                case 'r':
                case 'R':
                    return GetSymbolR(name);
                case 's':
                case 'S':
                    return GetSymbolS(name);
                case 't':
                case 'T':
                    return GetSymbolT(name);
                case 'u':
                case 'U':
                    return GetSymbolU(name);
                case 'v':
                case 'V':
                    return GetSymbolV(name);
                case 'w':
                case 'W':
                    return GetSymbolW(name);
                case 'x':
                case 'X':
                    return GetSymbolX(name);
                case 'y':
                case 'Y':
                    return GetSymbolY(name);
                case 'z':
                case 'Z':
                    return GetSymbolZ(name);
            }

            return null;
        }

        #region Symbol Methods

        static char[] GetSymbolA(string name)
        {
            switch (name)
            {
                case "Aacute": return Convert(0x00C1);
                case "aacute": return Convert(0x00E1);
                case "Abreve": return Convert(0x0102);
                case "abreve": return Convert(0x0103);
                case "ac": return Convert(0x223E);
                case "acd": return Convert(0x223F);
                case "acE": return Convert(0x223E, 0x0333);
                case "Acirc": return Convert(0x00C2);
                case "acirc": return Convert(0x00E2);
                case "acute": return Convert(0x00B4);
                case "Acy": return Convert(0x0410);
                case "acy": return Convert(0x0430);
                case "AElig": return Convert(0x00C6);
                case "aelig": return Convert(0x00E6);
                case "af": return Convert(0x2061);
                case "Afr": return Convert(0xD835, 0xDD04);
                case "afr": return Convert(0xD835, 0xDD1E);
                case "Agrave": return Convert(0x00C0);
                case "agrave": return Convert(0x00E0);
                case "alefsym": return Convert(0x2135);
                case "aleph": return Convert(0x2135);
                case "Alpha": return Convert(0x0391);
                case "alpha": return Convert(0x03B1);
                case "Amacr": return Convert(0x0100);
                case "amacr": return Convert(0x0101);
                case "amalg": return Convert(0x2A3F);
                case "AMP": return Convert(0x0026);
                case "amp": return Convert(0x0026);
                case "And": return Convert(0x2A53);
                case "and": return Convert(0x2227);
                case "andand": return Convert(0x2A55);
                case "andd": return Convert(0x2A5C);
                case "andslope": return Convert(0x2A58);
                case "andv": return Convert(0x2A5A);
                case "ang": return Convert(0x2220);
                case "ange": return Convert(0x29A4);
                case "angle": return Convert(0x2220);
                case "angmsd": return Convert(0x2221);
                case "angmsdaa": return Convert(0x29A8);
                case "angmsdab": return Convert(0x29A9);
                case "angmsdac": return Convert(0x29AA);
                case "angmsdad": return Convert(0x29AB);
                case "angmsdae": return Convert(0x29AC);
                case "angmsdaf": return Convert(0x29AD);
                case "angmsdag": return Convert(0x29AE);
                case "angmsdah": return Convert(0x29AF);
                case "angrt": return Convert(0x221F);
                case "angrtvb": return Convert(0x22BE);
                case "angrtvbd": return Convert(0x299D);
                case "angsph": return Convert(0x2222);
                case "angst": return Convert(0x00C5);
                case "angzarr": return Convert(0x237C);
                case "Aogon": return Convert(0x0104);
                case "aogon": return Convert(0x0105);
                case "Aopf": return Convert(0xD835, 0xDD38);
                case "aopf": return Convert(0xD835, 0xDD52);
                case "ap": return Convert(0x2248);
                case "apacir": return Convert(0x2A6F);
                case "apE": return Convert(0x2A70);
                case "ape": return Convert(0x224A);
                case "apid": return Convert(0x224B);
                case "apos": return Convert(0x0027);
                case "ApplyFunction": return Convert(0x2061);
                case "approx": return Convert(0x2248);
                case "approxeq": return Convert(0x224A);
                case "Aring": return Convert(0x00C5);
                case "aring": return Convert(0x00E5);
                case "Ascr": return Convert(0xD835, 0xDC9C);
                case "ascr": return Convert(0xD835, 0xDCB6);
                case "Assign": return Convert(0x2254);
                case "ast": return Convert(0x002A);
                case "asymp": return Convert(0x2248);
                case "asympeq": return Convert(0x224D);
                case "Atilde": return Convert(0x00C3);
                case "atilde": return Convert(0x00E3);
                case "Auml": return Convert(0x00C4);
                case "auml": return Convert(0x00E4);
                case "awconint": return Convert(0x2233);
                case "awint": return Convert(0x2A11);
            }

            return null;
        }

        static char[] GetSymbolB(string name)
        {
            switch (name)
            {
                case "backcong": return Convert(0x224C);
                case "backepsilon": return Convert(0x03F6);
                case "backprime": return Convert(0x2035);
                case "backsim": return Convert(0x223D);
                case "backsimeq": return Convert(0x22CD);
                case "Backslash": return Convert(0x2216);
                case "Barv": return Convert(0x2AE7);
                case "barvee": return Convert(0x22BD);
                case "Barwed": return Convert(0x2306);
                case "barwed": return Convert(0x2305);
                case "barwedge": return Convert(0x2305);
                case "bbrk": return Convert(0x23B5);
                case "bbrktbrk": return Convert(0x23B6);
                case "bcong": return Convert(0x224C);
                case "Bcy": return Convert(0x0411);
                case "bcy": return Convert(0x0431);
                case "bdquo": return Convert(0x201E);
                case "becaus": return Convert(0x2235);
                case "Because": return Convert(0x2235);
                case "because": return Convert(0x2235);
                case "bemptyv": return Convert(0x29B0);
                case "bepsi": return Convert(0x03F6);
                case "bernou": return Convert(0x212C);
                case "Bernoullis": return Convert(0x212C);
                case "Beta": return Convert(0x0392);
                case "beta": return Convert(0x03B2);
                case "beth": return Convert(0x2136);
                case "between": return Convert(0x226C);
                case "Bfr": return Convert(0xD835, 0xDD05);
                case "bfr": return Convert(0xD835, 0xDD1F);
                case "bigcap": return Convert(0x22C2);
                case "bigcirc": return Convert(0x25EF);
                case "bigcup": return Convert(0x22C3);
                case "bigodot": return Convert(0x2A00);
                case "bigoplus": return Convert(0x2A01);
                case "bigotimes": return Convert(0x2A02);
                case "bigsqcup": return Convert(0x2A06);
                case "bigstar": return Convert(0x2605);
                case "bigtriangledown": return Convert(0x25BD);
                case "bigtriangleup": return Convert(0x25B3);
                case "biguplus": return Convert(0x2A04);
                case "bigvee": return Convert(0x22C1);
                case "bigwedge": return Convert(0x22C0);
                case "bkarow": return Convert(0x290D);
                case "blacklozenge": return Convert(0x29EB);
                case "blacksquare": return Convert(0x25AA);
                case "blacktriangle": return Convert(0x25B4);
                case "blacktriangledown": return Convert(0x25BE);
                case "blacktriangleleft": return Convert(0x25C2);
                case "blacktriangleright": return Convert(0x25B8);
                case "blank": return Convert(0x2423);
                case "blk12": return Convert(0x2592);
                case "blk14": return Convert(0x2591);
                case "blk34": return Convert(0x2593);
                case "block": return Convert(0x2588);
                case "bne": return Convert(0x003D, 0x20E5);
                case "bnequiv": return Convert(0x2261, 0x20E5);
                case "bNot": return Convert(0x2AED);
                case "bnot": return Convert(0x2310);
                case "Bopf": return Convert(0xD835, 0xDD39);
                case "bopf": return Convert(0xD835, 0xDD53);
                case "bot": return Convert(0x22A5);
                case "bottom": return Convert(0x22A5);
                case "bowtie": return Convert(0x22C8);
                case "boxbox": return Convert(0x29C9);
                case "boxDL": return Convert(0x2557);
                case "boxDl": return Convert(0x2556);
                case "boxdL": return Convert(0x2555);
                case "boxdl": return Convert(0x2510);
                case "boxDR": return Convert(0x2554);
                case "boxDr": return Convert(0x2553);
                case "boxdR": return Convert(0x2552);
                case "boxdr": return Convert(0x250C);
                case "boxH": return Convert(0x2550);
                case "boxh": return Convert(0x2500);
                case "boxHD": return Convert(0x2566);
                case "boxHd": return Convert(0x2564);
                case "boxhD": return Convert(0x2565);
                case "boxhd": return Convert(0x252C);
                case "boxHU": return Convert(0x2569);
                case "boxHu": return Convert(0x2567);
                case "boxhU": return Convert(0x2568);
                case "boxhu": return Convert(0x2534);
                case "boxminus": return Convert(0x229F);
                case "boxplus": return Convert(0x229E);
                case "boxtimes": return Convert(0x22A0);
                case "boxUL": return Convert(0x255D);
                case "boxUl": return Convert(0x255C);
                case "boxuL": return Convert(0x255B);
                case "boxul": return Convert(0x2518);
                case "boxUR": return Convert(0x255A);
                case "boxUr": return Convert(0x2559);
                case "boxuR": return Convert(0x2558);
                case "boxur": return Convert(0x2514);
                case "boxV": return Convert(0x2551);
                case "boxv": return Convert(0x2502);
                case "boxVH": return Convert(0x256C);
                case "boxVh": return Convert(0x256B);
                case "boxvH": return Convert(0x256A);
                case "boxvh": return Convert(0x253C);
                case "boxVL": return Convert(0x2563);
                case "boxVl": return Convert(0x2562);
                case "boxvL": return Convert(0x2561);
                case "boxvl": return Convert(0x2524);
                case "boxVR": return Convert(0x2560);
                case "boxVr": return Convert(0x255F);
                case "boxvR": return Convert(0x255E);
                case "boxvr": return Convert(0x251C);
                case "bprime": return Convert(0x2035);
                case "Breve": return Convert(0x02D8);
                case "breve": return Convert(0x02D8);
                case "brvbar": return Convert(0x00A6);
                case "Bscr": return Convert(0x212C);
                case "bscr": return Convert(0xD835, 0xDCB7);
                case "bsemi": return Convert(0x204F);
                case "bsim": return Convert(0x223D);
                case "bsime": return Convert(0x22CD);
                case "bsol": return Convert(0x005C);
                case "bsolb": return Convert(0x29C5);
                case "bsolhsub": return Convert(0x27C8);
                case "bull": return Convert(0x2022);
                case "bullet": return Convert(0x2022);
                case "bump": return Convert(0x224E);
                case "bumpE": return Convert(0x2AAE);
                case "bumpe": return Convert(0x224F);
                case "Bumpeq": return Convert(0x224E);
                case "bumpeq": return Convert(0x224F);
            }

            return null;
        }

        static char[] GetSymbolC(string name)
        {
            switch (name)
            {
                case "Cacute": return Convert(0x0106);
                case "cacute": return Convert(0x0107);
                case "Cap": return Convert(0x22D2);
                case "cap": return Convert(0x2229);
                case "capand": return Convert(0x2A44);
                case "capbrcup": return Convert(0x2A49);
                case "capcap": return Convert(0x2A4B);
                case "capcup": return Convert(0x2A47);
                case "capdot": return Convert(0x2A40);
                case "CapitalDifferentialD": return Convert(0x2145);
                case "caps": return Convert(0x2229, 0xFE00);
                case "caret": return Convert(0x2041);
                case "caron": return Convert(0x02C7);
                case "Cayleys": return Convert(0x212D);
                case "ccaps": return Convert(0x2A4D);
                case "Ccaron": return Convert(0x010C);
                case "ccaron": return Convert(0x010D);
                case "Ccedil": return Convert(0x00C7);
                case "ccedil": return Convert(0x00E7);
                case "Ccirc": return Convert(0x0108);
                case "ccirc": return Convert(0x0109);
                case "Cconint": return Convert(0x2230);
                case "ccups": return Convert(0x2A4C);
                case "ccupssm": return Convert(0x2A50);
                case "Cdot": return Convert(0x010A);
                case "cdot": return Convert(0x010B);
                case "cedil": return Convert(0x00B8);
                case "Cedilla": return Convert(0x00B8);
                case "cemptyv": return Convert(0x29B2);
                case "cent": return Convert(0x00A2);
                case "CenterDot": return Convert(0x00B7);
                case "centerdot": return Convert(0x00B7);
                case "Cfr": return Convert(0x212D);
                case "cfr": return Convert(0xD835, 0xDD20);
                case "CHcy": return Convert(0x0427);
                case "chcy": return Convert(0x0447);
                case "check": return Convert(0x2713);
                case "checkmark": return Convert(0x2713);
                case "Chi": return Convert(0x03A7);
                case "chi": return Convert(0x03C7);
                case "cir": return Convert(0x25CB);
                case "circ": return Convert(0x02C6);
                case "circeq": return Convert(0x2257);
                case "circlearrowleft": return Convert(0x21BA);
                case "circlearrowright": return Convert(0x21BB);
                case "circledast": return Convert(0x229B);
                case "circledcirc": return Convert(0x229A);
                case "circleddash": return Convert(0x229D);
                case "CircleDot": return Convert(0x2299);
                case "circledR": return Convert(0x00AE);
                case "circledS": return Convert(0x24C8);
                case "CircleMinus": return Convert(0x2296);
                case "CirclePlus": return Convert(0x2295);
                case "CircleTimes": return Convert(0x2297);
                case "cirE": return Convert(0x29C3);
                case "cire": return Convert(0x2257);
                case "cirfnint": return Convert(0x2A10);
                case "cirmid": return Convert(0x2AEF);
                case "cirscir": return Convert(0x29C2);
                case "ClockwiseContourIntegral": return Convert(0x2232);
                case "CloseCurlyDoubleQuote": return Convert(0x201D);
                case "CloseCurlyQuote": return Convert(0x2019);
                case "clubs": return Convert(0x2663);
                case "clubsuit": return Convert(0x2663);
                case "Colon": return Convert(0x2237);
                case "colon": return Convert(0x003A);
                case "Colone": return Convert(0x2A74);
                case "colone": return Convert(0x2254);
                case "coloneq": return Convert(0x2254);
                case "comma": return Convert(0x002C);
                case "commat": return Convert(0x0040);
                case "comp": return Convert(0x2201);
                case "compfn": return Convert(0x2218);
                case "complement": return Convert(0x2201);
                case "complexes": return Convert(0x2102);
                case "cong": return Convert(0x2245);
                case "congdot": return Convert(0x2A6D);
                case "Congruent": return Convert(0x2261);
                case "Conint": return Convert(0x222F);
                case "conint": return Convert(0x222E);
                case "ContourIntegral": return Convert(0x222E);
                case "Copf": return Convert(0x2102);
                case "copf": return Convert(0xD835, 0xDD54);
                case "coprod": return Convert(0x2210);
                case "Coproduct": return Convert(0x2210);
                case "COPY": return Convert(0x00A9);
                case "copy": return Convert(0x00A9);
                case "copysr": return Convert(0x2117);
                case "CounterClockwiseContourIntegral": return Convert(0x2233);
                case "crarr": return Convert(0x21B5);
                case "Cross": return Convert(0x2A2F);
                case "cross": return Convert(0x2717);
                case "Cscr": return Convert(0xD835, 0xDC9E);
                case "cscr": return Convert(0xD835, 0xDCB8);
                case "csub": return Convert(0x2ACF);
                case "csube": return Convert(0x2AD1);
                case "csup": return Convert(0x2AD0);
                case "csupe": return Convert(0x2AD2);
                case "ctdot": return Convert(0x22EF);
                case "cudarrl": return Convert(0x2938);
                case "cudarrr": return Convert(0x2935);
                case "cuepr": return Convert(0x22DE);
                case "cuesc": return Convert(0x22DF);
                case "cularr": return Convert(0x21B6);
                case "cularrp": return Convert(0x293D);
                case "Cup": return Convert(0x22D3);
                case "cup": return Convert(0x222A);
                case "cupbrcap": return Convert(0x2A48);
                case "CupCap": return Convert(0x224D);
                case "cupcap": return Convert(0x2A46);
                case "cupcup": return Convert(0x2A4A);
                case "cupdot": return Convert(0x228D);
                case "cupor": return Convert(0x2A45);
                case "cups": return Convert(0x222A, 0xFE00);
                case "curarr": return Convert(0x21B7);
                case "curarrm": return Convert(0x293C);
                case "curlyeqprec": return Convert(0x22DE);
                case "curlyeqsucc": return Convert(0x22DF);
                case "curlyvee": return Convert(0x22CE);
                case "curlywedge": return Convert(0x22CF);
                case "curren": return Convert(0x00A4);
                case "curvearrowleft": return Convert(0x21B6);
                case "curvearrowright": return Convert(0x21B7);
                case "cuvee": return Convert(0x22CE);
                case "cuwed": return Convert(0x22CF);
                case "cwconint": return Convert(0x2232);
                case "cwint": return Convert(0x2231);
                case "cylcty": return Convert(0x232D);
            }

            return null;
        }

        static char[] GetSymbolD(string name)
        {
            switch (name)
            {
                case "Dagger": return Convert(0x2021);
                case "dagger": return Convert(0x2020);
                case "daleth": return Convert(0x2138);
                case "Darr": return Convert(0x21A1);
                case "dArr": return Convert(0x21D3);
                case "darr": return Convert(0x2193);
                case "dash": return Convert(0x2010);
                case "Dashv": return Convert(0x2AE4);
                case "dashv": return Convert(0x22A3);
                case "dbkarow": return Convert(0x290F);
                case "dblac": return Convert(0x02DD);
                case "Dcaron": return Convert(0x010E);
                case "dcaron": return Convert(0x010F);
                case "Dcy": return Convert(0x0414);
                case "dcy": return Convert(0x0434);
                case "DD": return Convert(0x2145);
                case "dd": return Convert(0x2146);
                case "ddagger": return Convert(0x2021);
                case "ddarr": return Convert(0x21CA);
                case "DDotrahd": return Convert(0x2911);
                case "ddotseq": return Convert(0x2A77);
                case "deg": return Convert(0x00B0);
                case "Del": return Convert(0x2207);
                case "Delta": return Convert(0x0394);
                case "delta": return Convert(0x03B4);
                case "demptyv": return Convert(0x29B1);
                case "dfisht": return Convert(0x297F);
                case "Dfr": return Convert(0xD835, 0xDD07);
                case "dfr": return Convert(0xD835, 0xDD21);
                case "dHar": return Convert(0x2965);
                case "dharl": return Convert(0x21C3);
                case "dharr": return Convert(0x21C2);
                case "DiacriticalAcute": return Convert(0x00B4);
                case "DiacriticalDot": return Convert(0x02D9);
                case "DiacriticalDoubleAcute": return Convert(0x02DD);
                case "DiacriticalGrave": return Convert(0x0060);
                case "DiacriticalTilde": return Convert(0x02DC);
                case "diam": return Convert(0x22C4);
                case "Diamond": return Convert(0x22C4);
                case "diamond": return Convert(0x22C4);
                case "diamondsuit": return Convert(0x2666);
                case "diams": return Convert(0x2666);
                case "die": return Convert(0x00A8);
                case "DifferentialD": return Convert(0x2146);
                case "digamma": return Convert(0x03DD);
                case "disin": return Convert(0x22F2);
                case "div": return Convert(0x00F7);
                case "divide": return Convert(0x00F7);
                case "divideontimes": return Convert(0x22C7);
                case "divonx": return Convert(0x22C7);
                case "DJcy": return Convert(0x0402);
                case "djcy": return Convert(0x0452);
                case "dlcorn": return Convert(0x231E);
                case "dlcrop": return Convert(0x230D);
                case "dollar": return Convert(0x0024);
                case "Dopf": return Convert(0xD835, 0xDD3B);
                case "dopf": return Convert(0xD835, 0xDD55);
                case "Dot": return Convert(0x00A8);
                case "dot": return Convert(0x02D9);
                case "DotDot": return Convert(0x20DC);
                case "doteq": return Convert(0x2250);
                case "doteqdot": return Convert(0x2251);
                case "DotEqual": return Convert(0x2250);
                case "dotminus": return Convert(0x2238);
                case "dotplus": return Convert(0x2214);
                case "dotsquare": return Convert(0x22A1);
                case "doublebarwedge": return Convert(0x2306);
                case "DoubleContourIntegral": return Convert(0x222F);
                case "DoubleDot": return Convert(0x00A8);
                case "DoubleDownArrow": return Convert(0x21D3);
                case "DoubleLeftArrow": return Convert(0x21D0);
                case "DoubleLeftRightArrow": return Convert(0x21D4);
                case "DoubleLeftTee": return Convert(0x2AE4);
                case "DoubleLongLeftArrow": return Convert(0x27F8);
                case "DoubleLongLeftRightArrow": return Convert(0x27FA);
                case "DoubleLongRightArrow": return Convert(0x27F9);
                case "DoubleRightArrow": return Convert(0x21D2);
                case "DoubleRightTee": return Convert(0x22A8);
                case "DoubleUpArrow": return Convert(0x21D1);
                case "DoubleUpDownArrow": return Convert(0x21D5);
                case "DoubleVerticalBar": return Convert(0x2225);
                case "DownArrow": return Convert(0x2193);
                case "Downarrow": return Convert(0x21D3);
                case "downarrow": return Convert(0x2193);
                case "DownArrowBar": return Convert(0x2913);
                case "DownArrowUpArrow": return Convert(0x21F5);
                case "DownBreve": return Convert(0x0311);
                case "downdownarrows": return Convert(0x21CA);
                case "downharpoonleft": return Convert(0x21C3);
                case "downharpoonright": return Convert(0x21C2);
                case "DownLeftRightVector": return Convert(0x2950);
                case "DownLeftTeeVector": return Convert(0x295E);
                case "DownLeftVector": return Convert(0x21BD);
                case "DownLeftVectorBar": return Convert(0x2956);
                case "DownRightTeeVector": return Convert(0x295F);
                case "DownRightVector": return Convert(0x21C1);
                case "DownRightVectorBar": return Convert(0x2957);
                case "DownTee": return Convert(0x22A4);
                case "DownTeeArrow": return Convert(0x21A7);
                case "drbkarow": return Convert(0x2910);
                case "drcorn": return Convert(0x231F);
                case "drcrop": return Convert(0x230C);
                case "Dscr": return Convert(0xD835, 0xDC9F);
                case "dscr": return Convert(0xD835, 0xDCB9);
                case "DScy": return Convert(0x0405);
                case "dscy": return Convert(0x0455);
                case "dsol": return Convert(0x29F6);
                case "Dstrok": return Convert(0x0110);
                case "dstrok": return Convert(0x0111);
                case "dtdot": return Convert(0x22F1);
                case "dtri": return Convert(0x25BF);
                case "dtrif": return Convert(0x25BE);
                case "duarr": return Convert(0x21F5);
                case "duhar": return Convert(0x296F);
                case "dwangle": return Convert(0x29A6);
                case "DZcy": return Convert(0x040F);
                case "dzcy": return Convert(0x045F);
                case "dzigrarr": return Convert(0x27FF);
            }

            return null;
        }

        static char[] GetSymbolE(string name)
        {
            switch (name)
            {
                case "Eacute": return Convert(0x00C9);
                case "eacute": return Convert(0x00E9);
                case "easter": return Convert(0x2A6E);
                case "Ecaron": return Convert(0x011A);
                case "ecaron": return Convert(0x011B);
                case "ecir": return Convert(0x2256);
                case "Ecirc": return Convert(0x00CA);
                case "ecirc": return Convert(0x00EA);
                case "ecolon": return Convert(0x2255);
                case "Ecy": return Convert(0x042D);
                case "ecy": return Convert(0x044D);
                case "eDDot": return Convert(0x2A77);
                case "Edot": return Convert(0x0116);
                case "eDot": return Convert(0x2251);
                case "edot": return Convert(0x0117);
                case "ee": return Convert(0x2147);
                case "efDot": return Convert(0x2252);
                case "Efr": return Convert(0xD835, 0xDD08);
                case "efr": return Convert(0xD835, 0xDD22);
                case "eg": return Convert(0x2A9A);
                case "Egrave": return Convert(0x00C8);
                case "egrave": return Convert(0x00E8);
                case "egs": return Convert(0x2A96);
                case "egsdot": return Convert(0x2A98);
                case "el": return Convert(0x2A99);
                case "Element": return Convert(0x2208);
                case "elinters": return Convert(0x23E7);
                case "ell": return Convert(0x2113);
                case "els": return Convert(0x2A95);
                case "elsdot": return Convert(0x2A97);
                case "Emacr": return Convert(0x0112);
                case "emacr": return Convert(0x0113);
                case "empty": return Convert(0x2205);
                case "emptyset": return Convert(0x2205);
                case "EmptySmallSquare": return Convert(0x25FB);
                case "emptyv": return Convert(0x2205);
                case "EmptyVerySmallSquare": return Convert(0x25AB);
                case "emsp": return Convert(0x2003);
                case "emsp13": return Convert(0x2004);
                case "emsp14": return Convert(0x2005);
                case "ENG": return Convert(0x014A);
                case "eng": return Convert(0x014B);
                case "ensp": return Convert(0x2002);
                case "Eogon": return Convert(0x0118);
                case "eogon": return Convert(0x0119);
                case "Eopf": return Convert(0xD835, 0xDD3C);
                case "eopf": return Convert(0xD835, 0xDD56);
                case "epar": return Convert(0x22D5);
                case "eparsl": return Convert(0x29E3);
                case "eplus": return Convert(0x2A71);
                case "epsi": return Convert(0x03B5);
                case "Epsilon": return Convert(0x0395);
                case "epsilon": return Convert(0x03B5);
                case "epsiv": return Convert(0x03F5);
                case "eqcirc": return Convert(0x2256);
                case "eqcolon": return Convert(0x2255);
                case "eqsim": return Convert(0x2242);
                case "eqslantgtr": return Convert(0x2A96);
                case "eqslantless": return Convert(0x2A95);
                case "Equal": return Convert(0x2A75);
                case "equals": return Convert(0x003D);
                case "EqualTilde": return Convert(0x2242);
                case "equest": return Convert(0x225F);
                case "Equilibrium": return Convert(0x21CC);
                case "equiv": return Convert(0x2261);
                case "equivDD": return Convert(0x2A78);
                case "eqvparsl": return Convert(0x29E5);
                case "erarr": return Convert(0x2971);
                case "erDot": return Convert(0x2253);
                case "Escr": return Convert(0x2130);
                case "escr": return Convert(0x212F);
                case "esdot": return Convert(0x2250);
                case "Esim": return Convert(0x2A73);
                case "esim": return Convert(0x2242);
                case "Eta": return Convert(0x0397);
                case "eta": return Convert(0x03B7);
                case "ETH": return Convert(0x00D0);
                case "eth": return Convert(0x00F0);
                case "Euml": return Convert(0x00CB);
                case "euml": return Convert(0x00EB);
                case "euro": return Convert(0x20AC);
                case "excl": return Convert(0x0021);
                case "exist": return Convert(0x2203);
                case "Exists": return Convert(0x2203);
                case "expectation": return Convert(0x2130);
                case "ExponentialE": return Convert(0x2147);
                case "exponentiale": return Convert(0x2147);
            }

            return null;
        }

        static char[] GetSymbolF(string name)
        {
            switch (name)
            {
                case "fallingdotseq": return Convert(0x2252);
                case "Fcy": return Convert(0x0424);
                case "fcy": return Convert(0x0444);
                case "female": return Convert(0x2640);
                case "ffilig": return Convert(0xFB03);
                case "fflig": return Convert(0xFB00);
                case "ffllig": return Convert(0xFB04);
                case "Ffr": return Convert(0xD835, 0xDD09);
                case "ffr": return Convert(0xD835, 0xDD23);
                case "filig": return Convert(0xFB01);
                case "FilledSmallSquare": return Convert(0x25FC);
                case "FilledVerySmallSquare": return Convert(0x25AA);
                case "fjlig": return Convert(0x0066, 0x006A);
                case "flat": return Convert(0x266D);
                case "fllig": return Convert(0xFB02);
                case "fltns": return Convert(0x25B1);
                case "fnof": return Convert(0x0192);
                case "Fopf": return Convert(0xD835, 0xDD3D);
                case "fopf": return Convert(0xD835, 0xDD57);
                case "ForAll": return Convert(0x2200);
                case "forall": return Convert(0x2200);
                case "fork": return Convert(0x22D4);
                case "forkv": return Convert(0x2AD9);
                case "Fouriertrf": return Convert(0x2131);
                case "fpartint": return Convert(0x2A0D);
                case "frac12": return Convert(0x00BD);
                case "frac13": return Convert(0x2153);
                case "frac14": return Convert(0x00BC);
                case "frac15": return Convert(0x2155);
                case "frac16": return Convert(0x2159);
                case "frac18": return Convert(0x215B);
                case "frac23": return Convert(0x2154);
                case "frac25": return Convert(0x2156);
                case "frac34": return Convert(0x00BE);
                case "frac35": return Convert(0x2157);
                case "frac38": return Convert(0x215C);
                case "frac45": return Convert(0x2158);
                case "frac56": return Convert(0x215A);
                case "frac58": return Convert(0x215D);
                case "frac78": return Convert(0x215E);
                case "frasl": return Convert(0x2044);
                case "frown": return Convert(0x2322);
                case "Fscr": return Convert(0x2131);
                case "fscr": return Convert(0xD835, 0xDCBB);
            }

            return null;
        }

        static char[] GetSymbolG(string name)
        {
            switch (name)
            {
                case "gacute": return Convert(0x01F5);
                case "Gamma": return Convert(0x0393);
                case "gamma": return Convert(0x03B3);
                case "Gammad": return Convert(0x03DC);
                case "gammad": return Convert(0x03DD);
                case "gap": return Convert(0x2A86);
                case "Gbreve": return Convert(0x011E);
                case "gbreve": return Convert(0x011F);
                case "Gcedil": return Convert(0x0122);
                case "Gcirc": return Convert(0x011C);
                case "gcirc": return Convert(0x011D);
                case "Gcy": return Convert(0x0413);
                case "gcy": return Convert(0x0433);
                case "Gdot": return Convert(0x0120);
                case "gdot": return Convert(0x0121);
                case "gE": return Convert(0x2267);
                case "ge": return Convert(0x2265);
                case "gEl": return Convert(0x2A8C);
                case "gel": return Convert(0x22DB);
                case "geq": return Convert(0x2265);
                case "geqq": return Convert(0x2267);
                case "geqslant": return Convert(0x2A7E);
                case "ges": return Convert(0x2A7E);
                case "gescc": return Convert(0x2AA9);
                case "gesdot": return Convert(0x2A80);
                case "gesdoto": return Convert(0x2A82);
                case "gesdotol": return Convert(0x2A84);
                case "gesl": return Convert(0x22DB, 0xFE00);
                case "gesles": return Convert(0x2A94);
                case "Gfr": return Convert(0xD835, 0xDD0A);
                case "gfr": return Convert(0xD835, 0xDD24);
                case "Gg": return Convert(0x22D9);
                case "gg": return Convert(0x226B);
                case "ggg": return Convert(0x22D9);
                case "gimel": return Convert(0x2137);
                case "GJcy": return Convert(0x0403);
                case "gjcy": return Convert(0x0453);
                case "gl": return Convert(0x2277);
                case "gla": return Convert(0x2AA5);
                case "glE": return Convert(0x2A92);
                case "glj": return Convert(0x2AA4);
                case "gnap": return Convert(0x2A8A);
                case "gnapprox": return Convert(0x2A8A);
                case "gnE": return Convert(0x2269);
                case "gne": return Convert(0x2A88);
                case "gneq": return Convert(0x2A88);
                case "gneqq": return Convert(0x2269);
                case "gnsim": return Convert(0x22E7);
                case "Gopf": return Convert(0xD835, 0xDD3E);
                case "gopf": return Convert(0xD835, 0xDD58);
                case "grave": return Convert(0x0060);
                case "GreaterEqual": return Convert(0x2265);
                case "GreaterEqualLess": return Convert(0x22DB);
                case "GreaterFullEqual": return Convert(0x2267);
                case "GreaterGreater": return Convert(0x2AA2);
                case "GreaterLess": return Convert(0x2277);
                case "GreaterSlantEqual": return Convert(0x2A7E);
                case "GreaterTilde": return Convert(0x2273);
                case "Gscr": return Convert(0xD835, 0xDCA2);
                case "gscr": return Convert(0x210A);
                case "gsim": return Convert(0x2273);
                case "gsime": return Convert(0x2A8E);
                case "gsiml": return Convert(0x2A90);
                case "GT": return Convert(0x003E);
                case "Gt": return Convert(0x226B);
                case "gt": return Convert(0x003E);
                case "gtcc": return Convert(0x2AA7);
                case "gtcir": return Convert(0x2A7A);
                case "gtdot": return Convert(0x22D7);
                case "gtlPar": return Convert(0x2995);
                case "gtquest": return Convert(0x2A7C);
                case "gtrapprox": return Convert(0x2A86);
                case "gtrarr": return Convert(0x2978);
                case "gtrdot": return Convert(0x22D7);
                case "gtreqless": return Convert(0x22DB);
                case "gtreqqless": return Convert(0x2A8C);
                case "gtrless": return Convert(0x2277);
                case "gtrsim": return Convert(0x2273);
                case "gvertneqq": return Convert(0x2269, 0xFE00);
                case "gvnE": return Convert(0x2269, 0xFE00);
            }

            return null;
        }

        static char[] GetSymbolH(string name)
        {
            switch (name)
            {
                case "Hacek": return Convert(0x02C7);
                case "hairsp": return Convert(0x200A);
                case "half": return Convert(0x00BD);
                case "hamilt": return Convert(0x210B);
                case "HARDcy": return Convert(0x042A);
                case "hardcy": return Convert(0x044A);
                case "hArr": return Convert(0x21D4);
                case "harr": return Convert(0x2194);
                case "harrcir": return Convert(0x2948);
                case "harrw": return Convert(0x21AD);
                case "Hat": return Convert(0x005E);
                case "hbar": return Convert(0x210F);
                case "Hcirc": return Convert(0x0124);
                case "hcirc": return Convert(0x0125);
                case "hearts": return Convert(0x2665);
                case "heartsuit": return Convert(0x2665);
                case "hellip": return Convert(0x2026);
                case "hercon": return Convert(0x22B9);
                case "Hfr": return Convert(0x210C);
                case "hfr": return Convert(0xD835, 0xDD25);
                case "HilbertSpace": return Convert(0x210B);
                case "hksearow": return Convert(0x2925);
                case "hkswarow": return Convert(0x2926);
                case "hoarr": return Convert(0x21FF);
                case "homtht": return Convert(0x223B);
                case "hookleftarrow": return Convert(0x21A9);
                case "hookrightarrow": return Convert(0x21AA);
                case "Hopf": return Convert(0x210D);
                case "hopf": return Convert(0xD835, 0xDD59);
                case "horbar": return Convert(0x2015);
                case "HorizontalLine": return Convert(0x2500);
                case "Hscr": return Convert(0x210B);
                case "hscr": return Convert(0xD835, 0xDCBD);
                case "hslash": return Convert(0x210F);
                case "Hstrok": return Convert(0x0126);
                case "hstrok": return Convert(0x0127);
                case "HumpDownHump": return Convert(0x224E);
                case "HumpEqual": return Convert(0x224F);
                case "hybull": return Convert(0x2043);
                case "hyphen": return Convert(0x2010);
            }

            return null;
        }

        static char[] GetSymbolI(string name)
        {
            switch (name)
            {
                case "Iacute": return Convert(0x00CD);
                case "iacute": return Convert(0x00ED);
                case "ic": return Convert(0x2063);
                case "Icirc": return Convert(0x00CE);
                case "icirc": return Convert(0x00EE);
                case "Icy": return Convert(0x0418);
                case "icy": return Convert(0x0438);
                case "Idot": return Convert(0x0130);
                case "IEcy": return Convert(0x0415);
                case "iecy": return Convert(0x0435);
                case "iexcl": return Convert(0x00A1);
                case "iff": return Convert(0x21D4);
                case "Ifr": return Convert(0x2111);
                case "ifr": return Convert(0xD835, 0xDD26);
                case "Igrave": return Convert(0x00CC);
                case "igrave": return Convert(0x00EC);
                case "ii": return Convert(0x2148);
                case "iiiint": return Convert(0x2A0C);
                case "iiint": return Convert(0x222D);
                case "iinfin": return Convert(0x29DC);
                case "iiota": return Convert(0x2129);
                case "IJlig": return Convert(0x0132);
                case "ijlig": return Convert(0x0133);
                case "Im": return Convert(0x2111);
                case "Imacr": return Convert(0x012A);
                case "imacr": return Convert(0x012B);
                case "image": return Convert(0x2111);
                case "ImaginaryI": return Convert(0x2148);
                case "imagline": return Convert(0x2110);
                case "imagpart": return Convert(0x2111);
                case "imath": return Convert(0x0131);
                case "imof": return Convert(0x22B7);
                case "imped": return Convert(0x01B5);
                case "Implies": return Convert(0x21D2);
                case "in": return Convert(0x2208);
                case "incare": return Convert(0x2105);
                case "infin": return Convert(0x221E);
                case "infintie": return Convert(0x29DD);
                case "inodot": return Convert(0x0131);
                case "Int": return Convert(0x222C);
                case "int": return Convert(0x222B);
                case "intcal": return Convert(0x22BA);
                case "integers": return Convert(0x2124);
                case "Integral": return Convert(0x222B);
                case "intercal": return Convert(0x22BA);
                case "Intersection": return Convert(0x22C2);
                case "intlarhk": return Convert(0x2A17);
                case "intprod": return Convert(0x2A3C);
                case "InvisibleComma": return Convert(0x2063);
                case "InvisibleTimes": return Convert(0x2062);
                case "IOcy": return Convert(0x0401);
                case "iocy": return Convert(0x0451);
                case "Iogon": return Convert(0x012E);
                case "iogon": return Convert(0x012F);
                case "Iopf": return Convert(0xD835, 0xDD40);
                case "iopf": return Convert(0xD835, 0xDD5A);
                case "Iota": return Convert(0x0399);
                case "iota": return Convert(0x03B9);
                case "iprod": return Convert(0x2A3C);
                case "iquest": return Convert(0x00BF);
                case "Iscr": return Convert(0x2110);
                case "iscr": return Convert(0xD835, 0xDCBE);
                case "isin": return Convert(0x2208);
                case "isindot": return Convert(0x22F5);
                case "isinE": return Convert(0x22F9);
                case "isins": return Convert(0x22F4);
                case "isinsv": return Convert(0x22F3);
                case "isinv": return Convert(0x2208);
                case "it": return Convert(0x2062);
                case "Itilde": return Convert(0x0128);
                case "itilde": return Convert(0x0129);
                case "Iukcy": return Convert(0x0406);
                case "iukcy": return Convert(0x0456);
                case "Iuml": return Convert(0x00CF);
                case "iuml": return Convert(0x00EF);
            }

            return null;
        }

        static char[] GetSymbolJ(string name)
        {
            switch (name)
            {
                case "Jcirc": return Convert(0x0134);
                case "jcirc": return Convert(0x0135);
                case "Jcy": return Convert(0x0419);
                case "jcy": return Convert(0x0439);
                case "Jfr": return Convert(0xD835, 0xDD0D);
                case "jfr": return Convert(0xD835, 0xDD27);
                case "jmath": return Convert(0x0237);
                case "Jopf": return Convert(0xD835, 0xDD41);
                case "jopf": return Convert(0xD835, 0xDD5B);
                case "Jscr": return Convert(0xD835, 0xDCA5);
                case "jscr": return Convert(0xD835, 0xDCBF);
                case "Jsercy": return Convert(0x0408);
                case "jsercy": return Convert(0x0458);
                case "Jukcy": return Convert(0x0404);
                case "jukcy": return Convert(0x0454);
            }

            return null;
        }

        static char[] GetSymbolK(string name)
        {
            switch (name)
            {
                case "Kappa": return Convert(0x039A);
                case "kappa": return Convert(0x03BA);
                case "kappav": return Convert(0x03F0);
                case "Kcedil": return Convert(0x0136);
                case "kcedil": return Convert(0x0137);
                case "Kcy": return Convert(0x041A);
                case "kcy": return Convert(0x043A);
                case "Kfr": return Convert(0xD835, 0xDD0E);
                case "kfr": return Convert(0xD835, 0xDD28);
                case "kgreen": return Convert(0x0138);
                case "KHcy": return Convert(0x0425);
                case "khcy": return Convert(0x0445);
                case "KJcy": return Convert(0x040C);
                case "kjcy": return Convert(0x045C);
                case "Kopf": return Convert(0xD835, 0xDD42);
                case "kopf": return Convert(0xD835, 0xDD5C);
                case "Kscr": return Convert(0xD835, 0xDCA6);
                case "kscr": return Convert(0xD835, 0xDCC0);
            }

            return null;
        }

        static char[] GetSymbolL(string name)
        {
            switch (name)
            {
                case "lAarr": return Convert(0x21DA);
                case "Lacute": return Convert(0x0139);
                case "lacute": return Convert(0x013A);
                case "laemptyv": return Convert(0x29B4);
                case "lagran": return Convert(0x2112);
                case "Lambda": return Convert(0x039B);
                case "lambda": return Convert(0x03BB);
                case "Lang": return Convert(0x27EA);
                case "lang": return Convert(0x27E8);
                case "langd": return Convert(0x2991);
                case "langle": return Convert(0x27E8);
                case "lap": return Convert(0x2A85);
                case "Laplacetrf": return Convert(0x2112);
                case "laquo": return Convert(0x00AB);
                case "Larr": return Convert(0x219E);
                case "lArr": return Convert(0x21D0);
                case "larr": return Convert(0x2190);
                case "larrb": return Convert(0x21E4);
                case "larrbfs": return Convert(0x291F);
                case "larrfs": return Convert(0x291D);
                case "larrhk": return Convert(0x21A9);
                case "larrlp": return Convert(0x21AB);
                case "larrpl": return Convert(0x2939);
                case "larrsim": return Convert(0x2973);
                case "larrtl": return Convert(0x21A2);
                case "lat": return Convert(0x2AAB);
                case "lAtail": return Convert(0x291B);
                case "latail": return Convert(0x2919);
                case "late": return Convert(0x2AAD);
                case "lates": return Convert(0x2AAD, 0xFE00);
                case "lBarr": return Convert(0x290E);
                case "lbarr": return Convert(0x290C);
                case "lbbrk": return Convert(0x2772);
                case "lbrace": return Convert(0x007B);
                case "lbrack": return Convert(0x005B);
                case "lbrke": return Convert(0x298B);
                case "lbrksld": return Convert(0x298F);
                case "lbrkslu": return Convert(0x298D);
                case "Lcaron": return Convert(0x013D);
                case "lcaron": return Convert(0x013E);
                case "Lcedil": return Convert(0x013B);
                case "lcedil": return Convert(0x013C);
                case "lceil": return Convert(0x2308);
                case "lcub": return Convert(0x007B);
                case "Lcy": return Convert(0x041B);
                case "lcy": return Convert(0x043B);
                case "ldca": return Convert(0x2936);
                case "ldquo": return Convert(0x201C);
                case "ldquor": return Convert(0x201E);
                case "ldrdhar": return Convert(0x2967);
                case "ldrushar": return Convert(0x294B);
                case "ldsh": return Convert(0x21B2);
                case "lE": return Convert(0x2266);
                case "le": return Convert(0x2264);
                case "LeftAngleBracket": return Convert(0x27E8);
                case "LeftArrow": return Convert(0x2190);
                case "Leftarrow": return Convert(0x21D0);
                case "leftarrow": return Convert(0x2190);
                case "LeftArrowBar": return Convert(0x21E4);
                case "LeftArrowRightArrow": return Convert(0x21C6);
                case "leftarrowtail": return Convert(0x21A2);
                case "LeftCeiling": return Convert(0x2308);
                case "LeftDoubleBracket": return Convert(0x27E6);
                case "LeftDownTeeVector": return Convert(0x2961);
                case "LeftDownVector": return Convert(0x21C3);
                case "LeftDownVectorBar": return Convert(0x2959);
                case "LeftFloor": return Convert(0x230A);
                case "leftharpoondown": return Convert(0x21BD);
                case "leftharpoonup": return Convert(0x21BC);
                case "leftleftarrows": return Convert(0x21C7);
                case "LeftRightArrow": return Convert(0x2194);
                case "Leftrightarrow": return Convert(0x21D4);
                case "leftrightarrow": return Convert(0x2194);
                case "leftrightarrows": return Convert(0x21C6);
                case "leftrightharpoons": return Convert(0x21CB);
                case "leftrightsquigarrow": return Convert(0x21AD);
                case "LeftRightVector": return Convert(0x294E);
                case "LeftTee": return Convert(0x22A3);
                case "LeftTeeArrow": return Convert(0x21A4);
                case "LeftTeeVector": return Convert(0x295A);
                case "leftthreetimes": return Convert(0x22CB);
                case "LeftTriangle": return Convert(0x22B2);
                case "LeftTriangleBar": return Convert(0x29CF);
                case "LeftTriangleEqual": return Convert(0x22B4);
                case "LeftUpDownVector": return Convert(0x2951);
                case "LeftUpTeeVector": return Convert(0x2960);
                case "LeftUpVector": return Convert(0x21BF);
                case "LeftUpVectorBar": return Convert(0x2958);
                case "LeftVector": return Convert(0x21BC);
                case "LeftVectorBar": return Convert(0x2952);
                case "lEg": return Convert(0x2A8B);
                case "leg": return Convert(0x22DA);
                case "leq": return Convert(0x2264);
                case "leqq": return Convert(0x2266);
                case "leqslant": return Convert(0x2A7D);
                case "les": return Convert(0x2A7D);
                case "lescc": return Convert(0x2AA8);
                case "lesdot": return Convert(0x2A7F);
                case "lesdoto": return Convert(0x2A81);
                case "lesdotor": return Convert(0x2A83);
                case "lesg": return Convert(0x22DA, 0xFE00);
                case "lesges": return Convert(0x2A93);
                case "lessapprox": return Convert(0x2A85);
                case "lessdot": return Convert(0x22D6);
                case "lesseqgtr": return Convert(0x22DA);
                case "lesseqqgtr": return Convert(0x2A8B);
                case "LessEqualGreater": return Convert(0x22DA);
                case "LessFullEqual": return Convert(0x2266);
                case "LessGreater": return Convert(0x2276);
                case "lessgtr": return Convert(0x2276);
                case "LessLess": return Convert(0x2AA1);
                case "lesssim": return Convert(0x2272);
                case "LessSlantEqual": return Convert(0x2A7D);
                case "LessTilde": return Convert(0x2272);
                case "lfisht": return Convert(0x297C);
                case "lfloor": return Convert(0x230A);
                case "Lfr": return Convert(0xD835, 0xDD0F);
                case "lfr": return Convert(0xD835, 0xDD29);
                case "lg": return Convert(0x2276);
                case "lgE": return Convert(0x2A91);
                case "lHar": return Convert(0x2962);
                case "lhard": return Convert(0x21BD);
                case "lharu": return Convert(0x21BC);
                case "lharul": return Convert(0x296A);
                case "lhblk": return Convert(0x2584);
                case "LJcy": return Convert(0x0409);
                case "ljcy": return Convert(0x0459);
                case "Ll": return Convert(0x22D8);
                case "ll": return Convert(0x226A);
                case "llarr": return Convert(0x21C7);
                case "llcorner": return Convert(0x231E);
                case "Lleftarrow": return Convert(0x21DA);
                case "llhard": return Convert(0x296B);
                case "lltri": return Convert(0x25FA);
                case "Lmidot": return Convert(0x013F);
                case "lmidot": return Convert(0x0140);
                case "lmoust": return Convert(0x23B0);
                case "lmoustache": return Convert(0x23B0);
                case "lnap": return Convert(0x2A89);
                case "lnapprox": return Convert(0x2A89);
                case "lnE": return Convert(0x2268);
                case "lne": return Convert(0x2A87);
                case "lneq": return Convert(0x2A87);
                case "lneqq": return Convert(0x2268);
                case "lnsim": return Convert(0x22E6);
                case "loang": return Convert(0x27EC);
                case "loarr": return Convert(0x21FD);
                case "lobrk": return Convert(0x27E6);
                case "LongLeftArrow": return Convert(0x27F5);
                case "Longleftarrow": return Convert(0x27F8);
                case "longleftarrow": return Convert(0x27F5);
                case "LongLeftRightArrow": return Convert(0x27F7);
                case "Longleftrightarrow": return Convert(0x27FA);
                case "longleftrightarrow": return Convert(0x27F7);
                case "longmapsto": return Convert(0x27FC);
                case "LongRightArrow": return Convert(0x27F6);
                case "Longrightarrow": return Convert(0x27F9);
                case "longrightarrow": return Convert(0x27F6);
                case "looparrowleft": return Convert(0x21AB);
                case "looparrowright": return Convert(0x21AC);
                case "lopar": return Convert(0x2985);
                case "Lopf": return Convert(0xD835, 0xDD43);
                case "lopf": return Convert(0xD835, 0xDD5D);
                case "loplus": return Convert(0x2A2D);
                case "lotimes": return Convert(0x2A34);
                case "lowast": return Convert(0x2217);
                case "lowbar": return Convert(0x005F);
                case "LowerLeftArrow": return Convert(0x2199);
                case "LowerRightArrow": return Convert(0x2198);
                case "loz": return Convert(0x25CA);
                case "lozenge": return Convert(0x25CA);
                case "lozf": return Convert(0x29EB);
                case "lpar": return Convert(0x0028);
                case "lparlt": return Convert(0x2993);
                case "lrarr": return Convert(0x21C6);
                case "lrcorner": return Convert(0x231F);
                case "lrhar": return Convert(0x21CB);
                case "lrhard": return Convert(0x296D);
                case "lrm": return Convert(0x200E);
                case "lrtri": return Convert(0x22BF);
                case "lsaquo": return Convert(0x2039);
                case "Lscr": return Convert(0x2112);
                case "lscr": return Convert(0xD835, 0xDCC1);
                case "Lsh": return Convert(0x21B0);
                case "lsh": return Convert(0x21B0);
                case "lsim": return Convert(0x2272);
                case "lsime": return Convert(0x2A8D);
                case "lsimg": return Convert(0x2A8F);
                case "lsqb": return Convert(0x005B);
                case "lsquo": return Convert(0x2018);
                case "lsquor": return Convert(0x201A);
                case "Lstrok": return Convert(0x0141);
                case "lstrok": return Convert(0x0142);
                case "LT": return Convert(0x003C);
                case "Lt": return Convert(0x226A);
                case "lt": return Convert(0x003C);
                case "ltcc": return Convert(0x2AA6);
                case "ltcir": return Convert(0x2A79);
                case "ltdot": return Convert(0x22D6);
                case "lthree": return Convert(0x22CB);
                case "ltimes": return Convert(0x22C9);
                case "ltlarr": return Convert(0x2976);
                case "ltquest": return Convert(0x2A7B);
                case "ltri": return Convert(0x25C3);
                case "ltrie": return Convert(0x22B4);
                case "ltrif": return Convert(0x25C2);
                case "ltrPar": return Convert(0x2996);
                case "lurdshar": return Convert(0x294A);
                case "luruhar": return Convert(0x2966);
                case "lvertneqq": return Convert(0x2268, 0xFE00);
                case "lvnE": return Convert(0x2268, 0xFE00);
            }

            return null;
        }

        static char[] GetSymbolM(string name)
        {
            switch (name)
            {
                case "macr": return Convert(0x00AF);
                case "male": return Convert(0x2642);
                case "malt": return Convert(0x2720);
                case "maltese": return Convert(0x2720);
                case "Map": return Convert(0x2905);
                case "map": return Convert(0x21A6);
                case "mapsto": return Convert(0x21A6);
                case "mapstodown": return Convert(0x21A7);
                case "mapstoleft": return Convert(0x21A4);
                case "mapstoup": return Convert(0x21A5);
                case "marker": return Convert(0x25AE);
                case "mcomma": return Convert(0x2A29);
                case "Mcy": return Convert(0x041C);
                case "mcy": return Convert(0x043C);
                case "mdash": return Convert(0x2014);
                case "mDDot": return Convert(0x223A);
                case "measuredangle": return Convert(0x2221);
                case "MediumSpace": return Convert(0x205F);
                case "Mellintrf": return Convert(0x2133);
                case "Mfr": return Convert(0xD835, 0xDD10);
                case "mfr": return Convert(0xD835, 0xDD2A);
                case "mho": return Convert(0x2127);
                case "micro": return Convert(0x00B5);
                case "mid": return Convert(0x2223);
                case "midast": return Convert(0x002A);
                case "midcir": return Convert(0x2AF0);
                case "middot": return Convert(0x00B7);
                case "minus": return Convert(0x2212);
                case "minusb": return Convert(0x229F);
                case "minusd": return Convert(0x2238);
                case "minusdu": return Convert(0x2A2A);
                case "MinusPlus": return Convert(0x2213);
                case "mlcp": return Convert(0x2ADB);
                case "mldr": return Convert(0x2026);
                case "mnplus": return Convert(0x2213);
                case "models": return Convert(0x22A7);
                case "Mopf": return Convert(0xD835, 0xDD44);
                case "mopf": return Convert(0xD835, 0xDD5E);
                case "mp": return Convert(0x2213);
                case "Mscr": return Convert(0x2133);
                case "mscr": return Convert(0xD835, 0xDCC2);
                case "mstpos": return Convert(0x223E);
                case "Mu": return Convert(0x039C);
                case "mu": return Convert(0x03BC);
                case "multimap": return Convert(0x22B8);
                case "mumap": return Convert(0x22B8);
            }

            return null;
        }

        static char[] GetSymbolN(string name)
        {
            switch (name)
            {
                case "nabla": return Convert(0x2207);
                case "Nacute": return Convert(0x0143);
                case "nacute": return Convert(0x0144);
                case "nang": return Convert(0x2220, 0x20D2);
                case "nap": return Convert(0x2249);
                case "napE": return Convert(0x2A70, 0x0338);
                case "napid": return Convert(0x224B, 0x0338);
                case "napos": return Convert(0x0149);
                case "napprox": return Convert(0x2249);
                case "natur": return Convert(0x266E);
                case "natural": return Convert(0x266E);
                case "naturals": return Convert(0x2115);
                case "nbsp": return Convert(0x00A0);
                case "nbump": return Convert(0x224E, 0x0338);
                case "nbumpe": return Convert(0x224F, 0x0338);
                case "ncap": return Convert(0x2A43);
                case "Ncaron": return Convert(0x0147);
                case "ncaron": return Convert(0x0148);
                case "Ncedil": return Convert(0x0145);
                case "ncedil": return Convert(0x0146);
                case "ncong": return Convert(0x2247);
                case "ncongdot": return Convert(0x2A6D, 0x0338);
                case "ncup": return Convert(0x2A42);
                case "Ncy": return Convert(0x041D);
                case "ncy": return Convert(0x043D);
                case "ndash": return Convert(0x2013);
                case "ne": return Convert(0x2260);
                case "nearhk": return Convert(0x2924);
                case "neArr": return Convert(0x21D7);
                case "nearr": return Convert(0x2197);
                case "nearrow": return Convert(0x2197);
                case "nedot": return Convert(0x2250, 0x0338);
                case "NegativeMediumSpace": return Convert(0x200B);
                case "NegativeThickSpace": return Convert(0x200B);
                case "NegativeThinSpace": return Convert(0x200B);
                case "NegativeVeryThinSpace": return Convert(0x200B);
                case "nequiv": return Convert(0x2262);
                case "nesear": return Convert(0x2928);
                case "nesim": return Convert(0x2242, 0x0338);
                case "NestedGreaterGreater": return Convert(0x226B);
                case "NestedLessLess": return Convert(0x226A);
                case "NewLine": return Convert(0x000A);
                case "nexist": return Convert(0x2204);
                case "nexists": return Convert(0x2204);
                case "Nfr": return Convert(0xD835, 0xDD11);
                case "nfr": return Convert(0xD835, 0xDD2B);
                case "ngE": return Convert(0x2267, 0x0338);
                case "nge": return Convert(0x2271);
                case "ngeq": return Convert(0x2271);
                case "ngeqq": return Convert(0x2267, 0x0338);
                case "ngeqslant": return Convert(0x2A7E, 0x0338);
                case "nges": return Convert(0x2A7E, 0x0338);
                case "nGg": return Convert(0x22D9, 0x0338);
                case "ngsim": return Convert(0x2275);
                case "nGt": return Convert(0x226B, 0x20D2);
                case "ngt": return Convert(0x226F);
                case "ngtr": return Convert(0x226F);
                case "nGtv": return Convert(0x226B, 0x0338);
                case "nhArr": return Convert(0x21CE);
                case "nharr": return Convert(0x21AE);
                case "nhpar": return Convert(0x2AF2);
                case "ni": return Convert(0x220B);
                case "nis": return Convert(0x22FC);
                case "nisd": return Convert(0x22FA);
                case "niv": return Convert(0x220B);
                case "NJcy": return Convert(0x040A);
                case "njcy": return Convert(0x045A);
                case "nlArr": return Convert(0x21CD);
                case "nlarr": return Convert(0x219A);
                case "nldr": return Convert(0x2025);
                case "nlE": return Convert(0x2266, 0x0338);
                case "nle": return Convert(0x2270);
                case "nLeftarrow": return Convert(0x21CD);
                case "nleftarrow": return Convert(0x219A);
                case "nLeftrightarrow": return Convert(0x21CE);
                case "nleftrightarrow": return Convert(0x21AE);
                case "nleq": return Convert(0x2270);
                case "nleqq": return Convert(0x2266, 0x0338);
                case "nleqslant": return Convert(0x2A7D, 0x0338);
                case "nles": return Convert(0x2A7D, 0x0338);
                case "nless": return Convert(0x226E);
                case "nLl": return Convert(0x22D8, 0x0338);
                case "nlsim": return Convert(0x2274);
                case "nLt": return Convert(0x226A, 0x20D2);
                case "nlt": return Convert(0x226E);
                case "nltri": return Convert(0x22EA);
                case "nltrie": return Convert(0x22EC);
                case "nLtv": return Convert(0x226A, 0x0338);
                case "nmid": return Convert(0x2224);
                case "NoBreak": return Convert(0x2060);
                case "NonBreakingSpace": return Convert(0x00A0);
                case "Nopf": return Convert(0x2115);
                case "nopf": return Convert(0xD835, 0xDD5F);
                case "Not": return Convert(0x2AEC);
                case "not": return Convert(0x00AC);
                case "NotCongruent": return Convert(0x2262);
                case "NotCupCap": return Convert(0x226D);
                case "NotDoubleVerticalBar": return Convert(0x2226);
                case "NotElement": return Convert(0x2209);
                case "NotEqual": return Convert(0x2260);
                case "NotEqualTilde": return Convert(0x2242, 0x0338);
                case "NotExists": return Convert(0x2204);
                case "NotGreater": return Convert(0x226F);
                case "NotGreaterEqual": return Convert(0x2271);
                case "NotGreaterFullEqual": return Convert(0x2267, 0x0338);
                case "NotGreaterGreater": return Convert(0x226B, 0x0338);
                case "NotGreaterLess": return Convert(0x2279);
                case "NotGreaterSlantEqual": return Convert(0x2A7E, 0x0338);
                case "NotGreaterTilde": return Convert(0x2275);
                case "NotHumpDownHump": return Convert(0x224E, 0x0338);
                case "NotHumpEqual": return Convert(0x224F, 0x0338);
                case "notin": return Convert(0x2209);
                case "notindot": return Convert(0x22F5, 0x0338);
                case "notinE": return Convert(0x22F9, 0x0338);
                case "notinva": return Convert(0x2209);
                case "notinvb": return Convert(0x22F7);
                case "notinvc": return Convert(0x22F6);
                case "NotLeftTriangle": return Convert(0x22EA);
                case "NotLeftTriangleBar": return Convert(0x29CF, 0x0338);
                case "NotLeftTriangleEqual": return Convert(0x22EC);
                case "NotLess": return Convert(0x226E);
                case "NotLessEqual": return Convert(0x2270);
                case "NotLessGreater": return Convert(0x2278);
                case "NotLessLess": return Convert(0x226A, 0x0338);
                case "NotLessSlantEqual": return Convert(0x2A7D, 0x0338);
                case "NotLessTilde": return Convert(0x2274);
                case "NotNestedGreaterGreater": return Convert(0x2AA2, 0x0338);
                case "NotNestedLessLess": return Convert(0x2AA1, 0x0338);
                case "notni": return Convert(0x220C);
                case "notniva": return Convert(0x220C);
                case "notnivb": return Convert(0x22FE);
                case "notnivc": return Convert(0x22FD);
                case "NotPrecedes": return Convert(0x2280);
                case "NotPrecedesEqual": return Convert(0x2AAF, 0x0338);
                case "NotPrecedesSlantEqual": return Convert(0x22E0);
                case "NotReverseElement": return Convert(0x220C);
                case "NotRightTriangle": return Convert(0x22EB);
                case "NotRightTriangleBar": return Convert(0x29D0, 0x0338);
                case "NotRightTriangleEqual": return Convert(0x22ED);
                case "NotSquareSubset": return Convert(0x228F, 0x0338);
                case "NotSquareSubsetEqual": return Convert(0x22E2);
                case "NotSquareSuperset": return Convert(0x2290, 0x0338);
                case "NotSquareSupersetEqual": return Convert(0x22E3);
                case "NotSubset": return Convert(0x2282, 0x20D2);
                case "NotSubsetEqual": return Convert(0x2288);
                case "NotSucceeds": return Convert(0x2281);
                case "NotSucceedsEqual": return Convert(0x2AB0, 0x0338);
                case "NotSucceedsSlantEqual": return Convert(0x22E1);
                case "NotSucceedsTilde": return Convert(0x227F, 0x0338);
                case "NotSuperset": return Convert(0x2283, 0x20D2);
                case "NotSupersetEqual": return Convert(0x2289);
                case "NotTilde": return Convert(0x2241);
                case "NotTildeEqual": return Convert(0x2244);
                case "NotTildeFullEqual": return Convert(0x2247);
                case "NotTildeTilde": return Convert(0x2249);
                case "NotVerticalBar": return Convert(0x2224);
                case "npar": return Convert(0x2226);
                case "nparallel": return Convert(0x2226);
                case "nparsl": return Convert(0x2AFD, 0x20E5);
                case "npart": return Convert(0x2202, 0x0338);
                case "npolint": return Convert(0x2A14);
                case "npr": return Convert(0x2280);
                case "nprcue": return Convert(0x22E0);
                case "npre": return Convert(0x2AAF, 0x0338);
                case "nprec": return Convert(0x2280);
                case "npreceq": return Convert(0x2AAF, 0x0338);
                case "nrArr": return Convert(0x21CF);
                case "nrarr": return Convert(0x219B);
                case "nrarrc": return Convert(0x2933, 0x0338);
                case "nrarrw": return Convert(0x219D, 0x0338);
                case "nRightarrow": return Convert(0x21CF);
                case "nrightarrow": return Convert(0x219B);
                case "nrtri": return Convert(0x22EB);
                case "nrtrie": return Convert(0x22ED);
                case "nsc": return Convert(0x2281);
                case "nsccue": return Convert(0x22E1);
                case "nsce": return Convert(0x2AB0, 0x0338);
                case "Nscr": return Convert(0xD835, 0xDCA9);
                case "nscr": return Convert(0xD835, 0xDCC3);
                case "nshortmid": return Convert(0x2224);
                case "nshortparallel": return Convert(0x2226);
                case "nsim": return Convert(0x2241);
                case "nsime": return Convert(0x2244);
                case "nsimeq": return Convert(0x2244);
                case "nsmid": return Convert(0x2224);
                case "nspar": return Convert(0x2226);
                case "nsqsube": return Convert(0x22E2);
                case "nsqsupe": return Convert(0x22E3);
                case "nsub": return Convert(0x2284);
                case "nsubE": return Convert(0x2AC5, 0x0338);
                case "nsube": return Convert(0x2288);
                case "nsubset": return Convert(0x2282, 0x20D2);
                case "nsubseteq": return Convert(0x2288);
                case "nsubseteqq": return Convert(0x2AC5, 0x0338);
                case "nsucc": return Convert(0x2281);
                case "nsucceq": return Convert(0x2AB0, 0x0338);
                case "nsup": return Convert(0x2285);
                case "nsupE": return Convert(0x2AC6, 0x0338);
                case "nsupe": return Convert(0x2289);
                case "nsupset": return Convert(0x2283, 0x20D2);
                case "nsupseteq": return Convert(0x2289);
                case "nsupseteqq": return Convert(0x2AC6, 0x0338);
                case "ntgl": return Convert(0x2279);
                case "Ntilde": return Convert(0x00D1);
                case "ntilde": return Convert(0x00F1);
                case "ntlg": return Convert(0x2278);
                case "ntriangleleft": return Convert(0x22EA);
                case "ntrianglelefteq": return Convert(0x22EC);
                case "ntriangleright": return Convert(0x22EB);
                case "ntrianglerighteq": return Convert(0x22ED);
                case "Nu": return Convert(0x039D);
                case "nu": return Convert(0x03BD);
                case "num": return Convert(0x0023);
                case "numero": return Convert(0x2116);
                case "numsp": return Convert(0x2007);
                case "nvap": return Convert(0x224D, 0x20D2);
                case "nVDash": return Convert(0x22AF);
                case "nVdash": return Convert(0x22AE);
                case "nvDash": return Convert(0x22AD);
                case "nvdash": return Convert(0x22AC);
                case "nvge": return Convert(0x2265, 0x20D2);
                case "nvgt": return Convert(0x003E, 0x20D2);
                case "nvHarr": return Convert(0x2904);
                case "nvinfin": return Convert(0x29DE);
                case "nvlArr": return Convert(0x2902);
                case "nvle": return Convert(0x2264, 0x20D2);
                case "nvlt": return Convert(0x003C, 0x20D2);
                case "nvltrie": return Convert(0x22B4, 0x20D2);
                case "nvrArr": return Convert(0x2903);
                case "nvrtrie": return Convert(0x22B5, 0x20D2);
                case "nvsim": return Convert(0x223C, 0x20D2);
                case "nwarhk": return Convert(0x2923);
                case "nwArr": return Convert(0x21D6);
                case "nwarr": return Convert(0x2196);
                case "nwarrow": return Convert(0x2196);
                case "nwnear": return Convert(0x2927);
            }

            return null;
        }

        static char[] GetSymbolO(string name)
        {
            switch (name)
            {
                case "Oacute": return Convert(0x00D3);
                case "oacute": return Convert(0x00F3);
                case "oast": return Convert(0x229B);
                case "ocir": return Convert(0x229A);
                case "Ocirc": return Convert(0x00D4);
                case "ocirc": return Convert(0x00F4);
                case "Ocy": return Convert(0x041E);
                case "ocy": return Convert(0x043E);
                case "odash": return Convert(0x229D);
                case "Odblac": return Convert(0x0150);
                case "odblac": return Convert(0x0151);
                case "odiv": return Convert(0x2A38);
                case "odot": return Convert(0x2299);
                case "odsold": return Convert(0x29BC);
                case "OElig": return Convert(0x0152);
                case "oelig": return Convert(0x0153);
                case "ofcir": return Convert(0x29BF);
                case "Ofr": return Convert(0xD835, 0xDD12);
                case "ofr": return Convert(0xD835, 0xDD2C);
                case "ogon": return Convert(0x02DB);
                case "Ograve": return Convert(0x00D2);
                case "ograve": return Convert(0x00F2);
                case "ogt": return Convert(0x29C1);
                case "ohbar": return Convert(0x29B5);
                case "ohm": return Convert(0x03A9);
                case "oint": return Convert(0x222E);
                case "olarr": return Convert(0x21BA);
                case "olcir": return Convert(0x29BE);
                case "olcross": return Convert(0x29BB);
                case "oline": return Convert(0x203E);
                case "olt": return Convert(0x29C0);
                case "Omacr": return Convert(0x014C);
                case "omacr": return Convert(0x014D);
                case "Omega": return Convert(0x03A9);
                case "omega": return Convert(0x03C9);
                case "Omicron": return Convert(0x039F);
                case "omicron": return Convert(0x03BF);
                case "omid": return Convert(0x29B6);
                case "ominus": return Convert(0x2296);
                case "Oopf": return Convert(0xD835, 0xDD46);
                case "oopf": return Convert(0xD835, 0xDD60);
                case "opar": return Convert(0x29B7);
                case "OpenCurlyDoubleQuote": return Convert(0x201C);
                case "OpenCurlyQuote": return Convert(0x2018);
                case "operp": return Convert(0x29B9);
                case "oplus": return Convert(0x2295);
                case "Or": return Convert(0x2A54);
                case "or": return Convert(0x2228);
                case "orarr": return Convert(0x21BB);
                case "ord": return Convert(0x2A5D);
                case "order": return Convert(0x2134);
                case "orderof": return Convert(0x2134);
                case "ordf": return Convert(0x00AA);
                case "ordm": return Convert(0x00BA);
                case "origof": return Convert(0x22B6);
                case "oror": return Convert(0x2A56);
                case "orslope": return Convert(0x2A57);
                case "orv": return Convert(0x2A5B);
                case "oS": return Convert(0x24C8);
                case "Oscr": return Convert(0xD835, 0xDCAA);
                case "oscr": return Convert(0x2134);
                case "Oslash": return Convert(0x00D8);
                case "oslash": return Convert(0x00F8);
                case "osol": return Convert(0x2298);
                case "Otilde": return Convert(0x00D5);
                case "otilde": return Convert(0x00F5);
                case "Otimes": return Convert(0x2A37);
                case "otimes": return Convert(0x2297);
                case "otimesas": return Convert(0x2A36);
                case "Ouml": return Convert(0x00D6);
                case "ouml": return Convert(0x00F6);
                case "ovbar": return Convert(0x233D);
                case "OverBar": return Convert(0x203E);
                case "OverBrace": return Convert(0x23DE);
                case "OverBracket": return Convert(0x23B4);
                case "OverParenthesis": return Convert(0x23DC);
            }

            return null;
        }

        static char[] GetSymbolP(string name)
        {
            switch (name)
            {
                case "par": return Convert(0x2225);
                case "para": return Convert(0x00B6);
                case "parallel": return Convert(0x2225);
                case "parsim": return Convert(0x2AF3);
                case "parsl": return Convert(0x2AFD);
                case "part": return Convert(0x2202);
                case "PartialD": return Convert(0x2202);
                case "Pcy": return Convert(0x041F);
                case "pcy": return Convert(0x043F);
                case "percnt": return Convert(0x0025);
                case "period": return Convert(0x002E);
                case "permil": return Convert(0x2030);
                case "perp": return Convert(0x22A5);
                case "pertenk": return Convert(0x2031);
                case "Pfr": return Convert(0xD835, 0xDD13);
                case "pfr": return Convert(0xD835, 0xDD2D);
                case "Phi": return Convert(0x03A6);
                case "phi": return Convert(0x03C6);
                case "phiv": return Convert(0x03D5);
                case "phmmat": return Convert(0x2133);
                case "phone": return Convert(0x260E);
                case "Pi": return Convert(0x03A0);
                case "pi": return Convert(0x03C0);
                case "pitchfork": return Convert(0x22D4);
                case "piv": return Convert(0x03D6);
                case "planck": return Convert(0x210F);
                case "planckh": return Convert(0x210E);
                case "plankv": return Convert(0x210F);
                case "plus": return Convert(0x002B);
                case "plusacir": return Convert(0x2A23);
                case "plusb": return Convert(0x229E);
                case "pluscir": return Convert(0x2A22);
                case "plusdo": return Convert(0x2214);
                case "plusdu": return Convert(0x2A25);
                case "pluse": return Convert(0x2A72);
                case "PlusMinus": return Convert(0x00B1);
                case "plusmn": return Convert(0x00B1);
                case "plussim": return Convert(0x2A26);
                case "plustwo": return Convert(0x2A27);
                case "pm": return Convert(0x00B1);
                case "Poincareplane": return Convert(0x210C);
                case "pointint": return Convert(0x2A15);
                case "Popf": return Convert(0x2119);
                case "popf": return Convert(0xD835, 0xDD61);
                case "pound": return Convert(0x00A3);
                case "Pr": return Convert(0x2ABB);
                case "pr": return Convert(0x227A);
                case "prap": return Convert(0x2AB7);
                case "prcue": return Convert(0x227C);
                case "prE": return Convert(0x2AB3);
                case "pre": return Convert(0x2AAF);
                case "prec": return Convert(0x227A);
                case "precapprox": return Convert(0x2AB7);
                case "preccurlyeq": return Convert(0x227C);
                case "Precedes": return Convert(0x227A);
                case "PrecedesEqual": return Convert(0x2AAF);
                case "PrecedesSlantEqual": return Convert(0x227C);
                case "PrecedesTilde": return Convert(0x227E);
                case "preceq": return Convert(0x2AAF);
                case "precnapprox": return Convert(0x2AB9);
                case "precneqq": return Convert(0x2AB5);
                case "precnsim": return Convert(0x22E8);
                case "precsim": return Convert(0x227E);
                case "Prime": return Convert(0x2033);
                case "prime": return Convert(0x2032);
                case "primes": return Convert(0x2119);
                case "prnap": return Convert(0x2AB9);
                case "prnE": return Convert(0x2AB5);
                case "prnsim": return Convert(0x22E8);
                case "prod": return Convert(0x220F);
                case "Product": return Convert(0x220F);
                case "profalar": return Convert(0x232E);
                case "profline": return Convert(0x2312);
                case "profsurf": return Convert(0x2313);
                case "prop": return Convert(0x221D);
                case "Proportion": return Convert(0x2237);
                case "Proportional": return Convert(0x221D);
                case "propto": return Convert(0x221D);
                case "prsim": return Convert(0x227E);
                case "prurel": return Convert(0x22B0);
                case "Pscr": return Convert(0xD835, 0xDCAB);
                case "pscr": return Convert(0xD835, 0xDCC5);
                case "Psi": return Convert(0x03A8);
                case "psi": return Convert(0x03C8);
                case "puncsp": return Convert(0x2008);
            }

            return null;
        }

        static char[] GetSymbolQ(string name)
        {
            switch (name)
            {
                case "Qfr": return Convert(0xD835, 0xDD14);
                case "qfr": return Convert(0xD835, 0xDD2E);
                case "qint": return Convert(0x2A0C);
                case "Qopf": return Convert(0x211A);
                case "qopf": return Convert(0xD835, 0xDD62);
                case "qprime": return Convert(0x2057);
                case "Qscr": return Convert(0xD835, 0xDCAC);
                case "qscr": return Convert(0xD835, 0xDCC6);
                case "quaternions": return Convert(0x210D);
                case "quatint": return Convert(0x2A16);
                case "quest": return Convert(0x003F);
                case "questeq": return Convert(0x225F);
                case "QUOT": return Convert(0x0022);
                case "quot": return Convert(0x0022);
            }

            return null;
        }

        static char[] GetSymbolR(string name)
        {
            switch (name)
            {
                case "rAarr": return Convert(0x21DB);
                case "race": return Convert(0x223D, 0x0331);
                case "Racute": return Convert(0x0154);
                case "racute": return Convert(0x0155);
                case "radic": return Convert(0x221A);
                case "raemptyv": return Convert(0x29B3);
                case "Rang": return Convert(0x27EB);
                case "rang": return Convert(0x27E9);
                case "rangd": return Convert(0x2992);
                case "range": return Convert(0x29A5);
                case "rangle": return Convert(0x27E9);
                case "raquo": return Convert(0x00BB);
                case "Rarr": return Convert(0x21A0);
                case "rArr": return Convert(0x21D2);
                case "rarr": return Convert(0x2192);
                case "rarrap": return Convert(0x2975);
                case "rarrb": return Convert(0x21E5);
                case "rarrbfs": return Convert(0x2920);
                case "rarrc": return Convert(0x2933);
                case "rarrfs": return Convert(0x291E);
                case "rarrhk": return Convert(0x21AA);
                case "rarrlp": return Convert(0x21AC);
                case "rarrpl": return Convert(0x2945);
                case "rarrsim": return Convert(0x2974);
                case "Rarrtl": return Convert(0x2916);
                case "rarrtl": return Convert(0x21A3);
                case "rarrw": return Convert(0x219D);
                case "rAtail": return Convert(0x291C);
                case "ratail": return Convert(0x291A);
                case "ratio": return Convert(0x2236);
                case "rationals": return Convert(0x211A);
                case "RBarr": return Convert(0x2910);
                case "rBarr": return Convert(0x290F);
                case "rbarr": return Convert(0x290D);
                case "rbbrk": return Convert(0x2773);
                case "rbrace": return Convert(0x007D);
                case "rbrack": return Convert(0x005D);
                case "rbrke": return Convert(0x298C);
                case "rbrksld": return Convert(0x298E);
                case "rbrkslu": return Convert(0x2990);
                case "Rcaron": return Convert(0x0158);
                case "rcaron": return Convert(0x0159);
                case "Rcedil": return Convert(0x0156);
                case "rcedil": return Convert(0x0157);
                case "rceil": return Convert(0x2309);
                case "rcub": return Convert(0x007D);
                case "Rcy": return Convert(0x0420);
                case "rcy": return Convert(0x0440);
                case "rdca": return Convert(0x2937);
                case "rdldhar": return Convert(0x2969);
                case "rdquo": return Convert(0x201D);
                case "rdquor": return Convert(0x201D);
                case "rdsh": return Convert(0x21B3);
                case "Re": return Convert(0x211C);
                case "real": return Convert(0x211C);
                case "realine": return Convert(0x211B);
                case "realpart": return Convert(0x211C);
                case "reals": return Convert(0x211D);
                case "rect": return Convert(0x25AD);
                case "REG": return Convert(0x00AE);
                case "reg": return Convert(0x00AE);
                case "ReverseElement": return Convert(0x220B);
                case "ReverseEquilibrium": return Convert(0x21CB);
                case "ReverseUpEquilibrium": return Convert(0x296F);
                case "rfisht": return Convert(0x297D);
                case "rfloor": return Convert(0x230B);
                case "Rfr": return Convert(0x211C);
                case "rfr": return Convert(0xD835, 0xDD2F);
                case "rHar": return Convert(0x2964);
                case "rhard": return Convert(0x21C1);
                case "rharu": return Convert(0x21C0);
                case "rharul": return Convert(0x296C);
                case "Rho": return Convert(0x03A1);
                case "rho": return Convert(0x03C1);
                case "rhov": return Convert(0x03F1);
                case "RightAngleBracket": return Convert(0x27E9);
                case "RightArrow": return Convert(0x2192);
                case "Rightarrow": return Convert(0x21D2);
                case "rightarrow": return Convert(0x2192);
                case "RightArrowBar": return Convert(0x21E5);
                case "RightArrowLeftArrow": return Convert(0x21C4);
                case "rightarrowtail": return Convert(0x21A3);
                case "RightCeiling": return Convert(0x2309);
                case "RightDoubleBracket": return Convert(0x27E7);
                case "RightDownTeeVector": return Convert(0x295D);
                case "RightDownVector": return Convert(0x21C2);
                case "RightDownVectorBar": return Convert(0x2955);
                case "RightFloor": return Convert(0x230B);
                case "rightharpoondown": return Convert(0x21C1);
                case "rightharpoonup": return Convert(0x21C0);
                case "rightleftarrows": return Convert(0x21C4);
                case "rightleftharpoons": return Convert(0x21CC);
                case "rightrightarrows": return Convert(0x21C9);
                case "rightsquigarrow": return Convert(0x219D);
                case "RightTee": return Convert(0x22A2);
                case "RightTeeArrow": return Convert(0x21A6);
                case "RightTeeVector": return Convert(0x295B);
                case "rightthreetimes": return Convert(0x22CC);
                case "RightTriangle": return Convert(0x22B3);
                case "RightTriangleBar": return Convert(0x29D0);
                case "RightTriangleEqual": return Convert(0x22B5);
                case "RightUpDownVector": return Convert(0x294F);
                case "RightUpTeeVector": return Convert(0x295C);
                case "RightUpVector": return Convert(0x21BE);
                case "RightUpVectorBar": return Convert(0x2954);
                case "RightVector": return Convert(0x21C0);
                case "RightVectorBar": return Convert(0x2953);
                case "ring": return Convert(0x02DA);
                case "risingdotseq": return Convert(0x2253);
                case "rlarr": return Convert(0x21C4);
                case "rlhar": return Convert(0x21CC);
                case "rlm": return Convert(0x200F);
                case "rmoust": return Convert(0x23B1);
                case "rmoustache": return Convert(0x23B1);
                case "rnmid": return Convert(0x2AEE);
                case "roang": return Convert(0x27ED);
                case "roarr": return Convert(0x21FE);
                case "robrk": return Convert(0x27E7);
                case "ropar": return Convert(0x2986);
                case "Ropf": return Convert(0x211D);
                case "ropf": return Convert(0xD835, 0xDD63);
                case "roplus": return Convert(0x2A2E);
                case "rotimes": return Convert(0x2A35);
                case "RoundImplies": return Convert(0x2970);
                case "rpar": return Convert(0x0029);
                case "rpargt": return Convert(0x2994);
                case "rppolint": return Convert(0x2A12);
                case "rrarr": return Convert(0x21C9);
                case "Rrightarrow": return Convert(0x21DB);
                case "rsaquo": return Convert(0x203A);
                case "Rscr": return Convert(0x211B);
                case "rscr": return Convert(0xD835, 0xDCC7);
                case "Rsh": return Convert(0x21B1);
                case "rsh": return Convert(0x21B1);
                case "rsqb": return Convert(0x005D);
                case "rsquo": return Convert(0x2019);
                case "rsquor": return Convert(0x2019);
                case "rthree": return Convert(0x22CC);
                case "rtimes": return Convert(0x22CA);
                case "rtri": return Convert(0x25B9);
                case "rtrie": return Convert(0x22B5);
                case "rtrif": return Convert(0x25B8);
                case "rtriltri": return Convert(0x29CE);
                case "RuleDelayed": return Convert(0x29F4);
                case "ruluhar": return Convert(0x2968);
                case "rx": return Convert(0x211E);
            }

            return null;
        }

        static char[] GetSymbolS(string name)
        {
            switch (name)
            {
                case "Sacute": return Convert(0x015A);
                case "sacute": return Convert(0x015B);
                case "sbquo": return Convert(0x201A);
                case "Sc": return Convert(0x2ABC);
                case "sc": return Convert(0x227B);
                case "scap": return Convert(0x2AB8);
                case "Scaron": return Convert(0x0160);
                case "scaron": return Convert(0x0161);
                case "sccue": return Convert(0x227D);
                case "scE": return Convert(0x2AB4);
                case "sce": return Convert(0x2AB0);
                case "Scedil": return Convert(0x015E);
                case "scedil": return Convert(0x015F);
                case "Scirc": return Convert(0x015C);
                case "scirc": return Convert(0x015D);
                case "scnap": return Convert(0x2ABA);
                case "scnE": return Convert(0x2AB6);
                case "scnsim": return Convert(0x22E9);
                case "scpolint": return Convert(0x2A13);
                case "scsim": return Convert(0x227F);
                case "Scy": return Convert(0x0421);
                case "scy": return Convert(0x0441);
                case "sdot": return Convert(0x22C5);
                case "sdotb": return Convert(0x22A1);
                case "sdote": return Convert(0x2A66);
                case "searhk": return Convert(0x2925);
                case "seArr": return Convert(0x21D8);
                case "searr": return Convert(0x2198);
                case "searrow": return Convert(0x2198);
                case "sect": return Convert(0x00A7);
                case "semi": return Convert(0x003B);
                case "seswar": return Convert(0x2929);
                case "setminus": return Convert(0x2216);
                case "setmn": return Convert(0x2216);
                case "sext": return Convert(0x2736);
                case "Sfr": return Convert(0xD835, 0xDD16);
                case "sfr": return Convert(0xD835, 0xDD30);
                case "sfrown": return Convert(0x2322);
                case "sharp": return Convert(0x266F);
                case "SHCHcy": return Convert(0x0429);
                case "shchcy": return Convert(0x0449);
                case "SHcy": return Convert(0x0428);
                case "shcy": return Convert(0x0448);
                case "ShortDownArrow": return Convert(0x2193);
                case "ShortLeftArrow": return Convert(0x2190);
                case "shortmid": return Convert(0x2223);
                case "shortparallel": return Convert(0x2225);
                case "ShortRightArrow": return Convert(0x2192);
                case "ShortUpArrow": return Convert(0x2191);
                case "shy": return Convert(0x00AD);
                case "Sigma": return Convert(0x03A3);
                case "sigma": return Convert(0x03C3);
                case "sigmaf": return Convert(0x03C2);
                case "sigmav": return Convert(0x03C2);
                case "sim": return Convert(0x223C);
                case "simdot": return Convert(0x2A6A);
                case "sime": return Convert(0x2243);
                case "simeq": return Convert(0x2243);
                case "simg": return Convert(0x2A9E);
                case "simgE": return Convert(0x2AA0);
                case "siml": return Convert(0x2A9D);
                case "simlE": return Convert(0x2A9F);
                case "simne": return Convert(0x2246);
                case "simplus": return Convert(0x2A24);
                case "simrarr": return Convert(0x2972);
                case "slarr": return Convert(0x2190);
                case "SmallCircle": return Convert(0x2218);
                case "smallsetminus": return Convert(0x2216);
                case "smashp": return Convert(0x2A33);
                case "smeparsl": return Convert(0x29E4);
                case "smid": return Convert(0x2223);
                case "smile": return Convert(0x2323);
                case "smt": return Convert(0x2AAA);
                case "smte": return Convert(0x2AAC);
                case "smtes": return Convert(0x2AAC, 0xFE00);
                case "SOFTcy": return Convert(0x042C);
                case "softcy": return Convert(0x044C);
                case "sol": return Convert(0x002F);
                case "solb": return Convert(0x29C4);
                case "solbar": return Convert(0x233F);
                case "Sopf": return Convert(0xD835, 0xDD4A);
                case "sopf": return Convert(0xD835, 0xDD64);
                case "spades": return Convert(0x2660);
                case "spadesuit": return Convert(0x2660);
                case "spar": return Convert(0x2225);
                case "sqcap": return Convert(0x2293);
                case "sqcaps": return Convert(0x2293, 0xFE00);
                case "sqcup": return Convert(0x2294);
                case "sqcups": return Convert(0x2294, 0xFE00);
                case "Sqrt": return Convert(0x221A);
                case "sqsub": return Convert(0x228F);
                case "sqsube": return Convert(0x2291);
                case "sqsubset": return Convert(0x228F);
                case "sqsubseteq": return Convert(0x2291);
                case "sqsup": return Convert(0x2290);
                case "sqsupe": return Convert(0x2292);
                case "sqsupset": return Convert(0x2290);
                case "sqsupseteq": return Convert(0x2292);
                case "squ": return Convert(0x25A1);
                case "Square": return Convert(0x25A1);
                case "square": return Convert(0x25A1);
                case "SquareIntersection": return Convert(0x2293);
                case "SquareSubset": return Convert(0x228F);
                case "SquareSubsetEqual": return Convert(0x2291);
                case "SquareSuperset": return Convert(0x2290);
                case "SquareSupersetEqual": return Convert(0x2292);
                case "SquareUnion": return Convert(0x2294);
                case "squarf": return Convert(0x25AA);
                case "squf": return Convert(0x25AA);
                case "srarr": return Convert(0x2192);
                case "Sscr": return Convert(0xD835, 0xDCAE);
                case "sscr": return Convert(0xD835, 0xDCC8);
                case "ssetmn": return Convert(0x2216);
                case "ssmile": return Convert(0x2323);
                case "sstarf": return Convert(0x22C6);
                case "Star": return Convert(0x22C6);
                case "star": return Convert(0x2606);
                case "starf": return Convert(0x2605);
                case "straightepsilon": return Convert(0x03F5);
                case "straightphi": return Convert(0x03D5);
                case "strns": return Convert(0x00AF);
                case "Sub": return Convert(0x22D0);
                case "sub": return Convert(0x2282);
                case "subdot": return Convert(0x2ABD);
                case "subE": return Convert(0x2AC5);
                case "sube": return Convert(0x2286);
                case "subedot": return Convert(0x2AC3);
                case "submult": return Convert(0x2AC1);
                case "subnE": return Convert(0x2ACB);
                case "subne": return Convert(0x228A);
                case "subplus": return Convert(0x2ABF);
                case "subrarr": return Convert(0x2979);
                case "Subset": return Convert(0x22D0);
                case "subset": return Convert(0x2282);
                case "subseteq": return Convert(0x2286);
                case "subseteqq": return Convert(0x2AC5);
                case "SubsetEqual": return Convert(0x2286);
                case "subsetneq": return Convert(0x228A);
                case "subsetneqq": return Convert(0x2ACB);
                case "subsim": return Convert(0x2AC7);
                case "subsub": return Convert(0x2AD5);
                case "subsup": return Convert(0x2AD3);
                case "succ": return Convert(0x227B);
                case "succapprox": return Convert(0x2AB8);
                case "succcurlyeq": return Convert(0x227D);
                case "Succeeds": return Convert(0x227B);
                case "SucceedsEqual": return Convert(0x2AB0);
                case "SucceedsSlantEqual": return Convert(0x227D);
                case "SucceedsTilde": return Convert(0x227F);
                case "succeq": return Convert(0x2AB0);
                case "succnapprox": return Convert(0x2ABA);
                case "succneqq": return Convert(0x2AB6);
                case "succnsim": return Convert(0x22E9);
                case "succsim": return Convert(0x227F);
                case "SuchThat": return Convert(0x220B);
                case "Sum": return Convert(0x2211);
                case "sum": return Convert(0x2211);
                case "sung": return Convert(0x266A);
                case "Sup": return Convert(0x22D1);
                case "sup": return Convert(0x2283);
                case "sup1": return Convert(0x00B9);
                case "sup2": return Convert(0x00B2);
                case "sup3": return Convert(0x00B3);
                case "supdot": return Convert(0x2ABE);
                case "supdsub": return Convert(0x2AD8);
                case "supE": return Convert(0x2AC6);
                case "supe": return Convert(0x2287);
                case "supedot": return Convert(0x2AC4);
                case "Superset": return Convert(0x2283);
                case "SupersetEqual": return Convert(0x2287);
                case "suphsol": return Convert(0x27C9);
                case "suphsub": return Convert(0x2AD7);
                case "suplarr": return Convert(0x297B);
                case "supmult": return Convert(0x2AC2);
                case "supnE": return Convert(0x2ACC);
                case "supne": return Convert(0x228B);
                case "supplus": return Convert(0x2AC0);
                case "Supset": return Convert(0x22D1);
                case "supset": return Convert(0x2283);
                case "supseteq": return Convert(0x2287);
                case "supseteqq": return Convert(0x2AC6);
                case "supsetneq": return Convert(0x228B);
                case "supsetneqq": return Convert(0x2ACC);
                case "supsim": return Convert(0x2AC8);
                case "supsub": return Convert(0x2AD4);
                case "supsup": return Convert(0x2AD6);
                case "swarhk": return Convert(0x2926);
                case "swArr": return Convert(0x21D9);
                case "swarr": return Convert(0x2199);
                case "swarrow": return Convert(0x2199);
                case "swnwar": return Convert(0x292A);
                case "szlig": return Convert(0x00DF);
            }

            return null;
        }

        static char[] GetSymbolT(string name)
        {
            switch (name)
            {
                case "Tab": return Convert(0x0009);
                case "target": return Convert(0x2316);
                case "Tau": return Convert(0x03A4);
                case "tau": return Convert(0x03C4);
                case "tbrk": return Convert(0x23B4);
                case "Tcaron": return Convert(0x0164);
                case "tcaron": return Convert(0x0165);
                case "Tcedil": return Convert(0x0162);
                case "tcedil": return Convert(0x0163);
                case "Tcy": return Convert(0x0422);
                case "tcy": return Convert(0x0442);
                case "tdot": return Convert(0x20DB);
                case "telrec": return Convert(0x2315);
                case "Tfr": return Convert(0xD835, 0xDD17);
                case "tfr": return Convert(0xD835, 0xDD31);
                case "there4": return Convert(0x2234);
                case "Therefore": return Convert(0x2234);
                case "therefore": return Convert(0x2234);
                case "Theta": return Convert(0x0398);
                case "theta": return Convert(0x03B8);
                case "thetasym": return Convert(0x03D1);
                case "thetav": return Convert(0x03D1);
                case "thickapprox": return Convert(0x2248);
                case "thicksim": return Convert(0x223C);
                case "ThickSpace": return Convert(0x205F, 0x200A);
                case "thinsp": return Convert(0x2009);
                case "ThinSpace": return Convert(0x2009);
                case "thkap": return Convert(0x2248);
                case "thksim": return Convert(0x223C);
                case "THORN": return Convert(0x00DE);
                case "thorn": return Convert(0x00FE);
                case "Tilde": return Convert(0x223C);
                case "tilde": return Convert(0x02DC);
                case "TildeEqual": return Convert(0x2243);
                case "TildeFullEqual": return Convert(0x2245);
                case "TildeTilde": return Convert(0x2248);
                case "times": return Convert(0x00D7);
                case "timesb": return Convert(0x22A0);
                case "timesbar": return Convert(0x2A31);
                case "timesd": return Convert(0x2A30);
                case "tint": return Convert(0x222D);
                case "toea": return Convert(0x2928);
                case "top": return Convert(0x22A4);
                case "topbot": return Convert(0x2336);
                case "topcir": return Convert(0x2AF1);
                case "Topf": return Convert(0xD835, 0xDD4B);
                case "topf": return Convert(0xD835, 0xDD65);
                case "topfork": return Convert(0x2ADA);
                case "tosa": return Convert(0x2929);
                case "tprime": return Convert(0x2034);
                case "TRADE": return Convert(0x2122);
                case "trade": return Convert(0x2122);
                case "triangle": return Convert(0x25B5);
                case "triangledown": return Convert(0x25BF);
                case "triangleleft": return Convert(0x25C3);
                case "trianglelefteq": return Convert(0x22B4);
                case "triangleq": return Convert(0x225C);
                case "triangleright": return Convert(0x25B9);
                case "trianglerighteq": return Convert(0x22B5);
                case "tridot": return Convert(0x25EC);
                case "trie": return Convert(0x225C);
                case "triminus": return Convert(0x2A3A);
                case "TripleDot": return Convert(0x20DB);
                case "triplus": return Convert(0x2A39);
                case "trisb": return Convert(0x29CD);
                case "tritime": return Convert(0x2A3B);
                case "trpezium": return Convert(0x23E2);
                case "Tscr": return Convert(0xD835, 0xDCAF);
                case "tscr": return Convert(0xD835, 0xDCC9);
                case "TScy": return Convert(0x0426);
                case "tscy": return Convert(0x0446);
                case "TSHcy": return Convert(0x040B);
                case "tshcy": return Convert(0x045B);
                case "Tstrok": return Convert(0x0166);
                case "tstrok": return Convert(0x0167);
                case "twixt": return Convert(0x226C);
                case "twoheadleftarrow": return Convert(0x219E);
                case "twoheadrightarrow": return Convert(0x21A0);
            }

            return null;
        }

        static char[] GetSymbolU(string name)
        {
            switch (name)
            {
                case "Uacute": return Convert(0x00DA);
                case "uacute": return Convert(0x00FA);
                case "Uarr": return Convert(0x219F);
                case "uArr": return Convert(0x21D1);
                case "uarr": return Convert(0x2191);
                case "Uarrocir": return Convert(0x2949);
                case "Ubrcy": return Convert(0x040E);
                case "ubrcy": return Convert(0x045E);
                case "Ubreve": return Convert(0x016C);
                case "ubreve": return Convert(0x016D);
                case "Ucirc": return Convert(0x00DB);
                case "ucirc": return Convert(0x00FB);
                case "Ucy": return Convert(0x0423);
                case "ucy": return Convert(0x0443);
                case "udarr": return Convert(0x21C5);
                case "Udblac": return Convert(0x0170);
                case "udblac": return Convert(0x0171);
                case "udhar": return Convert(0x296E);
                case "ufisht": return Convert(0x297E);
                case "Ufr": return Convert(0xD835, 0xDD18);
                case "ufr": return Convert(0xD835, 0xDD32);
                case "Ugrave": return Convert(0x00D9);
                case "ugrave": return Convert(0x00F9);
                case "uHar": return Convert(0x2963);
                case "uharl": return Convert(0x21BF);
                case "uharr": return Convert(0x21BE);
                case "uhblk": return Convert(0x2580);
                case "ulcorn": return Convert(0x231C);
                case "ulcorner": return Convert(0x231C);
                case "ulcrop": return Convert(0x230F);
                case "ultri": return Convert(0x25F8);
                case "Umacr": return Convert(0x016A);
                case "umacr": return Convert(0x016B);
                case "uml": return Convert(0x00A8);
                case "UnderBar": return Convert(0x005F);
                case "UnderBrace": return Convert(0x23DF);
                case "UnderBracket": return Convert(0x23B5);
                case "UnderParenthesis": return Convert(0x23DD);
                case "Union": return Convert(0x22C3);
                case "UnionPlus": return Convert(0x228E);
                case "Uogon": return Convert(0x0172);
                case "uogon": return Convert(0x0173);
                case "Uopf": return Convert(0xD835, 0xDD4C);
                case "uopf": return Convert(0xD835, 0xDD66);
                case "UpArrow": return Convert(0x2191);
                case "Uparrow": return Convert(0x21D1);
                case "uparrow": return Convert(0x2191);
                case "UpArrowBar": return Convert(0x2912);
                case "UpArrowDownArrow": return Convert(0x21C5);
                case "UpDownArrow": return Convert(0x2195);
                case "Updownarrow": return Convert(0x21D5);
                case "updownarrow": return Convert(0x2195);
                case "UpEquilibrium": return Convert(0x296E);
                case "upharpoonleft": return Convert(0x21BF);
                case "upharpoonright": return Convert(0x21BE);
                case "uplus": return Convert(0x228E);
                case "UpperLeftArrow": return Convert(0x2196);
                case "UpperRightArrow": return Convert(0x2197);
                case "Upsi": return Convert(0x03D2);
                case "upsi": return Convert(0x03C5);
                case "upsih": return Convert(0x03D2);
                case "Upsilon": return Convert(0x03A5);
                case "upsilon": return Convert(0x03C5);
                case "UpTee": return Convert(0x22A5);
                case "UpTeeArrow": return Convert(0x21A5);
                case "upuparrows": return Convert(0x21C8);
                case "urcorn": return Convert(0x231D);
                case "urcorner": return Convert(0x231D);
                case "urcrop": return Convert(0x230E);
                case "Uring": return Convert(0x016E);
                case "uring": return Convert(0x016F);
                case "urtri": return Convert(0x25F9);
                case "Uscr": return Convert(0xD835, 0xDCB0);
                case "uscr": return Convert(0xD835, 0xDCCA);
                case "utdot": return Convert(0x22F0);
                case "Utilde": return Convert(0x0168);
                case "utilde": return Convert(0x0169);
                case "utri": return Convert(0x25B5);
                case "utrif": return Convert(0x25B4);
                case "uuarr": return Convert(0x21C8);
                case "Uuml": return Convert(0x00DC);
                case "uuml": return Convert(0x00FC);
                case "uwangle": return Convert(0x29A7);
            }

            return null;
        }

        static char[] GetSymbolV(string name)
        {
            switch (name)
            {
                case "vangrt": return Convert(0x299C);
                case "varepsilon": return Convert(0x03F5);
                case "varkappa": return Convert(0x03F0);
                case "varnothing": return Convert(0x2205);
                case "varphi": return Convert(0x03D5);
                case "varpi": return Convert(0x03D6);
                case "varpropto": return Convert(0x221D);
                case "vArr": return Convert(0x21D5);
                case "varr": return Convert(0x2195);
                case "varrho": return Convert(0x03F1);
                case "varsigma": return Convert(0x03C2);
                case "varsubsetneq": return Convert(0x228A, 0xFE00);
                case "varsubsetneqq": return Convert(0x2ACB, 0xFE00);
                case "varsupsetneq": return Convert(0x228B, 0xFE00);
                case "varsupsetneqq": return Convert(0x2ACC, 0xFE00);
                case "vartheta": return Convert(0x03D1);
                case "vartriangleleft": return Convert(0x22B2);
                case "vartriangleright": return Convert(0x22B3);
                case "Vbar": return Convert(0x2AEB);
                case "vBar": return Convert(0x2AE8);
                case "vBarv": return Convert(0x2AE9);
                case "Vcy": return Convert(0x0412);
                case "vcy": return Convert(0x0432);
                case "VDash": return Convert(0x22AB);
                case "Vdash": return Convert(0x22A9);
                case "vDash": return Convert(0x22A8);
                case "vdash": return Convert(0x22A2);
                case "Vdashl": return Convert(0x2AE6);
                case "Vee": return Convert(0x22C1);
                case "vee": return Convert(0x2228);
                case "veebar": return Convert(0x22BB);
                case "veeeq": return Convert(0x225A);
                case "vellip": return Convert(0x22EE);
                case "Verbar": return Convert(0x2016);
                case "verbar": return Convert(0x007C);
                case "Vert": return Convert(0x2016);
                case "vert": return Convert(0x007C);
                case "VerticalBar": return Convert(0x2223);
                case "VerticalLine": return Convert(0x007C);
                case "VerticalSeparator": return Convert(0x2758);
                case "VerticalTilde": return Convert(0x2240);
                case "VeryThinSpace": return Convert(0x200A);
                case "Vfr": return Convert(0xD835, 0xDD19);
                case "vfr": return Convert(0xD835, 0xDD33);
                case "vltri": return Convert(0x22B2);
                case "vnsub": return Convert(0x2282, 0x20D2);
                case "vnsup": return Convert(0x2283, 0x20D2);
                case "Vopf": return Convert(0xD835, 0xDD4D);
                case "vopf": return Convert(0xD835, 0xDD67);
                case "vprop": return Convert(0x221D);
                case "vrtri": return Convert(0x22B3);
                case "Vscr": return Convert(0xD835, 0xDCB1);
                case "vscr": return Convert(0xD835, 0xDCCB);
                case "vsubnE": return Convert(0x2ACB, 0xFE00);
                case "vsubne": return Convert(0x228A, 0xFE00);
                case "vsupnE": return Convert(0x2ACC, 0xFE00);
                case "vsupne": return Convert(0x228B, 0xFE00);
                case "Vvdash": return Convert(0x22AA);
                case "vzigzag": return Convert(0x299A);
            }

            return null;
        }

        static char[] GetSymbolW(string name)
        {
            switch (name)
            {
                case "Wcirc": return Convert(0x0174);
                case "wcirc": return Convert(0x0175);
                case "wedbar": return Convert(0x2A5F);
                case "Wedge": return Convert(0x22C0);
                case "wedge": return Convert(0x2227);
                case "wedgeq": return Convert(0x2259);
                case "weierp": return Convert(0x2118);
                case "Wfr": return Convert(0xD835, 0xDD1A);
                case "wfr": return Convert(0xD835, 0xDD34);
                case "Wopf": return Convert(0xD835, 0xDD4E);
                case "wopf": return Convert(0xD835, 0xDD68);
                case "wp": return Convert(0x2118);
                case "wr": return Convert(0x2240);
                case "wreath": return Convert(0x2240);
                case "Wscr": return Convert(0xD835, 0xDCB2);
                case "wscr": return Convert(0xD835, 0xDCCC);
            }

            return null;
        }

        static char[] GetSymbolX(string name)
        {
            switch (name)
            {
                case "xcap": return Convert(0x22C2);
                case "xcirc": return Convert(0x25EF);
                case "xcup": return Convert(0x22C3);
                case "xdtri": return Convert(0x25BD);
                case "Xfr": return Convert(0xD835, 0xDD1B);
                case "xfr": return Convert(0xD835, 0xDD35);
                case "xhArr": return Convert(0x27FA);
                case "xharr": return Convert(0x27F7);
                case "Xi": return Convert(0x039E);
                case "xi": return Convert(0x03BE);
                case "xlArr": return Convert(0x27F8);
                case "xlarr": return Convert(0x27F5);
                case "xmap": return Convert(0x27FC);
                case "xnis": return Convert(0x22FB);
                case "xodot": return Convert(0x2A00);
                case "Xopf": return Convert(0xD835, 0xDD4F);
                case "xopf": return Convert(0xD835, 0xDD69);
                case "xoplus": return Convert(0x2A01);
                case "xotime": return Convert(0x2A02);
                case "xrArr": return Convert(0x27F9);
                case "xrarr": return Convert(0x27F6);
                case "Xscr": return Convert(0xD835, 0xDCB3);
                case "xscr": return Convert(0xD835, 0xDCCD);
                case "xsqcup": return Convert(0x2A06);
                case "xuplus": return Convert(0x2A04);
                case "xutri": return Convert(0x25B3);
                case "xvee": return Convert(0x22C1);
                case "xwedge": return Convert(0x22C0);
            }

            return null;
        }

        static char[] GetSymbolY(string name)
        {
            switch (name)
            {
                case "Yacute": return Convert(0x00DD);
                case "yacute": return Convert(0x00FD);
                case "YAcy": return Convert(0x042F);
                case "yacy": return Convert(0x044F);
                case "Ycirc": return Convert(0x0176);
                case "ycirc": return Convert(0x0177);
                case "Ycy": return Convert(0x042B);
                case "ycy": return Convert(0x044B);
                case "yen": return Convert(0x00A5);
                case "Yfr": return Convert(0xD835, 0xDD1C);
                case "yfr": return Convert(0xD835, 0xDD36);
                case "YIcy": return Convert(0x0407);
                case "yicy": return Convert(0x0457);
                case "Yopf": return Convert(0xD835, 0xDD50);
                case "yopf": return Convert(0xD835, 0xDD6A);
                case "Yscr": return Convert(0xD835, 0xDCB4);
                case "yscr": return Convert(0xD835, 0xDCCE);
                case "YUcy": return Convert(0x042E);
                case "yucy": return Convert(0x044E);
                case "Yuml": return Convert(0x0178);
                case "yuml": return Convert(0x00FF);
            }

            return null;
        }

        static char[] GetSymbolZ(string name)
        {
            switch (name)
            {
                case "Zacute": return Convert(0x0179);
                case "zacute": return Convert(0x017A);
                case "Zcaron": return Convert(0x017D);
                case "zcaron": return Convert(0x017E);
                case "Zcy": return Convert(0x0417);
                case "zcy": return Convert(0x0437);
                case "Zdot": return Convert(0x017B);
                case "zdot": return Convert(0x017C);
                case "zeetrf": return Convert(0x2128);
                case "ZeroWidthSpace": return Convert(0x200B);
                case "Zeta": return Convert(0x0396);
                case "zeta": return Convert(0x03B6);
                case "Zfr": return Convert(0x2128);
                case "zfr": return Convert(0xD835, 0xDD37);
                case "ZHcy": return Convert(0x0416);
                case "zhcy": return Convert(0x0436);
                case "zigrarr": return Convert(0x21DD);
                case "Zopf": return Convert(0x2124);
                case "zopf": return Convert(0xD835, 0xDD6B);
                case "Zscr": return Convert(0xD835, 0xDCB5);
                case "zscr": return Convert(0xD835, 0xDCCF);
                case "zwj": return Convert(0x200D);
                case "zwnj": return Convert(0x200C);
            }

            return null;
        }

        #endregion

        /// <summary>
        /// Converts a given number into its unicode character.
        /// </summary>
        /// <param name="code">The code to convert.</param>
        /// <returns>The array containing the character.</returns>
        public static char[] Convert(int code)
        {
            return new char[] { (char)code };
        }

        /// <summary>
        /// Converts a set of two numbers into their unicode characters.
        /// </summary>
        /// <param name="leadingCode">The first (leading) character code.</param>
        /// <param name="trailingCode">The second (trailing) character code.</param>
        /// <returns>The array containing the two characters.</returns>
        public static char[] Convert(int leadingCode, int trailingCode)
        {
            return new char[] { (char)leadingCode, (char)trailingCode };
        }

        /// <summary>
        /// Determines if the code is an invalid number.
        /// </summary>
        /// <param name="code">The code to examine.</param>
        /// <returns>True if it is an invalid number, false otherwise.</returns>
        public static bool IsInvalidNumber(int code)
        {
            /*
             * Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
             * greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
             * REPLACEMENT CHARACTER.
             */

            return (code >= 0xD800 && code <= 0xDFFF) || (code > 0x10FFFF);
        }

        /// <summary>
        /// Determines if the given code is actually in the table of common redirections.
        /// </summary>
        /// <param name="code">The code to examine.</param>
        /// <returns>True if the code is in the table, otherwise false.</returns>
        public static bool IsInCharacterTable(int code)
        {
            /* 
             * If that number is one of the numbers in the first column of the
             * following table, then this is a parse error. Find the row with that
             * number in the first column, and return a character token for the
             * Unicode character given in the second column of that row.
             */

            return code == 0x00 || code == 0x0D || code == 0x80 || code == 0x81 ||
                   code == 0x82 || code == 0x83 || code == 0x84 || code == 0x85 ||
                   code == 0x86 || code == 0x87 || code == 0x88 || code == 0x89 ||
                   code == 0x8A || code == 0x8B || code == 0x8C || code == 0x8D ||
                   code == 0x8E || code == 0x8F || code == 0x90 || code == 0x91 ||
                   code == 0x92 || code == 0x93 || code == 0x94 || code == 0x95 ||
                   code == 0x96 || code == 0x97 || code == 0x98 || code == 0x99 ||
                   code == 0x9A || code == 0x9B || code == 0x9C || code == 0x9D ||
                   code == 0x9E || code == 0x9F;
        }

        /// <summary>
        /// Gets the symbol mapped by the table of common redirections.
        /// </summary>
        /// <param name="code">The original code.</param>
        /// <returns>The character wrapped in a string.</returns>
        public static char[] GetSymbolFromTable(int code)
        {
            switch (code)
            { 
                case 0x00:
                    return Convert(0xfffd);
                case 0x0D:
                    return Convert(0xd);
                case 0x80:
                    return Convert(0x20ac);
                case 0x81:
                    return Convert(0x81);;
                case 0x82:
                    return Convert(0x201a);
                case 0x83: 	
                    return Convert(0x192);
                case 0x84:  
                    return Convert(0x201e);
                case 0x85:
                    return Convert(0x2026);
                case 0x86: 	
                    return Convert(0x2020);
                case 0x87: 
                    return Convert(0x2021);
                case 0x88:
                    return Convert(0x02C6);
                case 0x89:
                    return Convert(0x2030);
                case 0x8A:
                    return Convert(0x0160);
                case 0x8B:
                    return Convert(0x2039);
                case 0x8C:
                    return Convert(0x0152);
                case 0x8D:
                    return Convert(0x008D);
                case 0x8E:
                    return Convert(0x017D);
                case 0x8F: 	
                    return Convert(0x008F);
                case 0x90:
                    return Convert(0x0090);
                case 0x91: 	
                    return Convert(0x2018);
                case 0x92: 	
                    return Convert(0x2019);
                case 0x93: 	
                    return Convert(0x201C);
                case 0x94: 	
                    return Convert(0x201D);
                case 0x95: 	
                    return Convert(0x2022);
                case 0x96: 	
                    return Convert(0x2013);
                case 0x97: 	
                    return Convert(0x2014);
                case 0x98: 	
                    return Convert(0x02DC);
                case 0x99: 	
                    return Convert(0x2122);
                case 0x9A: 	
                    return Convert(0x0161);
                case 0x9B: 	
                    return Convert(0x203A);
                case 0x9C: 	
                    return Convert(0x0153);
                case 0x9D:
                    return Convert(0x009D);
                case 0x9E: 	
                    return Convert(0x017E);
                case 0x9F: 
                    return Convert(0x0178);
                default:
                    return null;
            }
        }

        /// <summary>
        /// Determines if the code is within an invalid range.
        /// </summary>
        /// <param name="code">The code to examine.</param>
        /// <returns>True if it is within an invalid range, false otherwise.</returns>
        public static bool IsInInvalidRange(int code)
        {
            /*
             * Otherwise, return a character token for the Unicode character whose
             * code point is that number.  Additionally, if the number is in the
             * range 0x0001 to 0x0008, 0x000E to 0x001F, 0x007F to 0x009F,
             * 0xFDD0 to 0xFDEF, or is one of 0x000B, 0xFFFE, 0xFFFF, 0x1FFFE,
             * 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF,
             * 0x5FFFE, 0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE,
             * 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF,
             * 0xCFFFE, 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE,
             * 0xFFFFF, 0x10FFFE, or 0x10FFFF, then this is a parse error.
             */

            return (code >= 0x0001 && code <= 0x0008) ||
                    (code >= 0x000E && code <= 0x001F) ||
                    (code >= 0x007F && code <= 0x009F) ||
                    (code >= 0xFDD0 && code <= 0xFDEF) ||
                    (code == 0x000B || code == 0xFFFE) ||
                    (code == 0xFFFF || code == 0x1FFFE) ||
                    (code == 0x2FFFE || code == 0x1FFFF) ||
                    (code == 0x2FFFF || code == 0x3FFFE) ||
                    (code == 0x3FFFF || code == 0x4FFFE) ||
                    (code == 0x4FFFF || code == 0x5FFFE) ||
                    (code == 0x5FFFF || code == 0x6FFFE) ||
                    (code == 0x6FFFF || code == 0x7FFFE) ||
                    (code == 0x7FFFF || code == 0x8FFFE) ||
                    (code == 0x8FFFE || code == 0x9FFFF) ||
                    (code == 0x9FFFF || code == 0xAFFFE) ||
                    (code == 0xAFFFF || code == 0xBFFFE) ||
                    (code == 0xBFFFF || code == 0xCFFFE) ||
                    (code == 0xCFFFF || code == 0xDFFFE) ||
                    (code == 0xDFFFF || code == 0xEFFFE) ||
                    (code == 0xEFFFF || code == 0xFFFFE) ||
                    (code == 0xFFFFF || code == 0x10FFFE) ||
                    (code == 0x10FFFF);
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The BSD License

Share

About the Author

Florian Rappl
Chief Technology Officer
Germany Germany
Florian is from Regensburg, Germany. He started his programming career with Perl. After programming C/C++ for some years he discovered his favorite programming language C#. He did work at Siemens as a programmer until he decided to study Physics. During his studies he worked as an IT consultant for various companies.
 
Florian is also giving lectures in C#, HTML5 with CSS3 and JavaScript, and other topics. Having graduated from University with a Master's degree in theoretical physics he is currently busy doing his PhD in the field of High Performance Computing.
Follow on   Google+

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.141223.1 | Last Updated 4 Jul 2013
Article Copyright 2013 by Florian Rappl
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid