{"version":3,"file":"hdi.340fbf70.js","names":["c","ignoreUnreadableDirectories","p","force","h","o","Entry","sizeComp","uname","gname","constructor","e","archive","size","mode","uid","gid","atime","mtime","rsrcPathRaw","u","pathResourceFork","pathRaw","rsrcPath","pathNormalize","path","d","Archive","FILE_EXTENSIONS","HAS_NAMED_VOLUMES","mounterMac","i","Mounter","nobrowse","read","_read","n","a","each","r","statToPathType","l","f","s","PathType","FILE","t","createReadStream","m","SYMLINK","fsReadlinkRaw","g","type","readData","readSymlink","D","trigger","fsLstatExists","readRsrc","RESOURCE_FORK","attach","readonly","devices","mountPoint","basename","fsWalk","join","eject","hdiutil","_runAttach","_argsAttach","ejectSync","_createEjects","attachSync","_runAttachSync","_runEject","_argsEject","_runEjectSync","push","_fileArg","spawn","stdout","on","Promise","once","Error","_parseDevices","Buffer","concat","toString","status","error","spawnSync","startsWith","Plist","fromXml","valueCastAs","ValueDict","getValue","castAs","ValueArray","value","ValueString","ValueBoolean","get","devEntry","potentiallyMountable","contentHint","unmappedContentHint","volumeKind","_findRootDevice","length","process","off","XML_DECLARATION","XML_DOCTYPE","xmlDeclaration","xmlDoctype","valueCastTo","castTo","TYPE","declaration","doctype","documentElement","xmlDecode","fromXmlElement","tagName","xmlElementChildElements","childFromXmlElement","toXml","indentRoot","INDENT_ROOT","newlineString","NEWLINE_STRING","filter","DOMParser","locator","errorHandler","warning","fatalError","parseFromString","childNodes","test","nodeValue","charCodeAt","Uint8Array","DOMImplementation","XMLSerializer","w","b","E","y","v","N","x","T","S","A","C","hasOwnProperty","_","Object","keys","split","reduce","R","prototype","call","q","console","I","message","captureStackTrace","code","L","k","_node","_refresh","O","_inc","ownerDocument","ew","$$length","M","F","V","ownerElement","H","namespaceURI","XMLNS","_nsMap","prefix","localName","P","U","B","X","j","firstChild","nextSibling","G","$","z","previousSibling","lastChild","parentNode","Y","nodeType","DOCUMENT_TYPE_NODE","W","ELEMENT_NODE","Q","TEXT_NODE","K","indexOf","Z","J","DOCUMENT_FRAGMENT_NODE","ee","DOCUMENT_NODE","COMMENT_NODE","PROCESSING_INSTRUCTION_NODE","removeChild","et","er","en","ea","ei","eo","es","el","eu","ec","ep","eh","ed","ef","lookupPrefix","namespace","eD","em","XML","eg","replace","attributes","isHTML","item","name","nodeName","data","slice","publicId","systemId","internalSubset","target","find","NAMESPACE","ATTRIBUTE_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","NOTATION_NODE","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","Array","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","createDocument","implementation","appendChild","createElementNS","createDocumentType","insertBefore","replaceChild","hasChildNodes","cloneNode","setAttributeNode","normalize","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","getElementById","getAttribute","getElementsByClassName","every","createElement","createDocumentFragment","createTextNode","createComment","createCDATASection","createProcessingInstruction","createAttribute","specified","createEntityReference","createAttributeNS","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","substring","insertData","replaceData","deleteData","splitText","serializeToString","defineProperty","set","freeze","HTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","SVG","options","cdata","lineNumber","columnNumber","substr","java","lang","String","currentElement","doc","ParseError","XMLReader","domBuilder","xmlns","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","Function","xml","normalizeLineEndings","parse","startDocument","documentURI","startElement","getURI","getQName","getLocator","endElement","startPrefixMapping","endPrefixMapping","processingInstruction","ignorableWhitespace","characters","apply","arguments","skippedEntity","endDocument","comment","startCDATA","endCDATA","startDTD","warn","amp","apos","gt","lt","quot","Aacute","aacute","Abreve","abreve","ac","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","AMP","And","and","andand","andd","andslope","andv","ang","ange","angle","angmsd","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","Aogon","aogon","Aopf","aopf","ap","apacir","apE","ape","apid","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","Barwed","barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","Because","because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxDL","boxDl","boxdL","boxdl","boxDR","boxDr","boxdR","boxdr","boxH","boxh","boxHD","boxHd","boxhD","boxhd","boxHU","boxHu","boxhU","boxhu","boxminus","boxplus","boxtimes","boxUL","boxUl","boxuL","boxul","boxUR","boxUr","boxuR","boxur","boxV","boxv","boxVH","boxVh","boxvH","boxvh","boxVL","boxVl","boxvL","boxvl","boxVR","boxVr","boxvR","boxvr","bprime","Breve","breve","brvbar","Bscr","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","Cap","cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","CenterDot","centerdot","Cfr","cfr","CHcy","chcy","check","checkmark","Chi","chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","Colon","colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","Conint","conint","ContourIntegral","Copf","copf","coprod","Coproduct","COPY","copy","copysr","CounterClockwiseContourIntegral","crarr","Cross","cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","Cup","cup","cupbrcap","CupCap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","Dagger","dagger","daleth","Darr","dArr","darr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","DD","dd","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","Diamond","diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","Downarrow","downarrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","ecir","Ecirc","ecirc","ecolon","Ecy","ecy","eDDot","Edot","eDot","edot","efDot","Efr","efr","Egrave","egrave","egs","egsdot","Element","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","it","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","lE","le","LeftAngleBracket","LeftArrow","Leftarrow","leftarrow","LeftArrowBar","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","LeftRightArrow","Leftrightarrow","leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","leftthreetimes","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","lEg","leg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","Lfr","lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","Ll","ll","llarr","llcorner","Lleftarrow","llhard","lltri","Lmidot","lmidot","lmoust","lmoustache","lnap","lnapprox","lnE","lne","lneq","lneqq","lnsim","loang","loarr","lobrk","LongLeftArrow","Longleftarrow","longleftarrow","LongLeftRightArrow","Longleftrightarrow","longleftrightarrow","longmapsto","LongRightArrow","Longrightarrow","longrightarrow","looparrowleft","looparrowright","lopar","Lopf","lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","Lscr","lscr","Lsh","lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","Lstrok","lstrok","Lt","LT","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","Map","map","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","ne","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","ni","nis","nisd","niv","NJcy","njcy","nlArr","nlarr","nldr","nlE","nle","nLeftarrow","nleftarrow","nLeftrightarrow","nleftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nLt","nlt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","Nopf","nopf","Not","not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrArr","nrarr","nrarrc","nrarrw","nRightarrow","nrightarrow","nrtri","nrtrie","nsc","nsccue","nsce","Nscr","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","Ntilde","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","Nu","nu","num","numero","numsp","nvap","nVDash","nVdash","nvDash","nvdash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwArr","nwarr","nwarrow","nwnear","Oacute","oacute","oast","ocir","Ocirc","ocirc","Ocy","ocy","odash","Odblac","odblac","odiv","odot","odsold","OElig","oelig","ofcir","Ofr","ofr","ogon","Ograve","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","Omacr","omacr","Omega","omega","Omicron","omicron","omid","ominus","Oopf","oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","Or","or","orarr","ord","order","orderof","ordf","ordm","origof","oror","orslope","orv","oS","Oscr","oscr","Oslash","oslash","osol","Otilde","otilde","Otimes","otimes","otimesas","Ouml","ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","par","para","parallel","parsim","parsl","part","PartialD","Pcy","pcy","percnt","period","permil","perp","pertenk","Pfr","pfr","Phi","phi","phiv","phmmat","phone","Pi","pi","pitchfork","piv","planck","planckh","plankv","plus","plusacir","plusb","pluscir","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","Popf","popf","pound","Pr","pr","prap","prcue","prE","pre","prec","precapprox","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","precsim","Prime","prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","prop","Proportion","Proportional","propto","prsim","prurel","Pscr","pscr","Psi","psi","puncsp","Qfr","qfr","qint","Qopf","qopf","qprime","Qscr","qscr","quaternions","quatint","quest","questeq","QUOT","rAarr","race","Racute","racute","radic","raemptyv","Rang","rang","rangd","range","rangle","raquo","Rarr","rArr","rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","Rarrtl","rarrtl","rarrw","rAtail","ratail","ratio","rationals","RBarr","rBarr","rbarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","Rcaron","rcaron","Rcedil","rcedil","rceil","rcub","Rcy","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","Re","real","realine","realpart","reals","rect","REG","reg","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","Rfr","rfr","rHar","rhard","rharu","rharul","Rho","rho","rhov","RightAngleBracket","RightArrow","Rightarrow","rightarrow","RightArrowBar","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTee","RightTeeArrow","RightTeeVector","rightthreetimes","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","Ropf","ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","Rscr","rscr","Rsh","rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","Sacute","sacute","sbquo","Sc","sc","scap","Scaron","scaron","sccue","scE","sce","Scedil","scedil","Scirc","scirc","scnap","scnE","scnsim","scpolint","scsim","Scy","scy","sdot","sdotb","sdote","searhk","seArr","searr","searrow","sect","semi","seswar","setminus","setmn","sext","Sfr","sfr","sfrown","sharp","SHCHcy","shchcy","SHcy","shcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","Sigma","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","SOFTcy","softcy","sol","solb","solbar","Sopf","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","Square","square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squf","srarr","Sscr","sscr","ssetmn","ssmile","sstarf","Star","star","starf","straightepsilon","straightphi","strns","Sub","sub","subdot","subE","sube","subedot","submult","subnE","subne","subplus","subrarr","Subset","subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","qName","uri","closed","currentNSMap","localNSMap","attributeNames","RegExp","source","charAt","parseInt","fromCharCode","exec","index","match","pop","toLowerCase","lastIndex","endDTD","addValue","setTagName","lastIndexOf","offset","Math","max","getLocalName","Value","TAG_NAMES","CHILD_TAG_NAMES","ValueData","ValueInteger","ValueReal","has","delete","clear","assertXmlTagName","xmlElementText","indentString","INDENT_STRING","repeat","replaceAll","popValue","shift","shiftValue","assertNoXmlElementChildNodes","base64Decode","dataColumns","DATA_COLUMNS","base64Encode","Number","isInteger","asBigInt","BigInt","asNumber","promisify","pipeline","_triggering","_triggered","_extracted","_readData","_readRsrc","_readSymlink","hasNamedVolume","hasNamedVolumes","volumeName","volumePath","stream","_beginExtract","_stream","streamToBuffer","extract","_extract","setAttributes","ignorePermissions","ignoreTimes","DIRECTORY","fsLchmod","fsChmod","modePermissionBits","fsLutimes","fsUtimes","_errorExtractPathExists","_errorNoResourceFork","afterReadSetAttributesRemove","_extractFile","_extractResourceFork","_extractDirectory","_extractSymlink","_extractStreamToFile","rm","recursive","mkdir","dirname","writeFile","alloc","createWriteStream","resourceForkAsFile","isFile","isDirectory","afterReadSetAttributes","symlinkAsFile","fsSymlink","_streamFile","_streamResourceFork","_streamDirectory","_streamSymlink","Readable","then","emit","_reading","_afterReadSetAttributes","fileExtensions","resolve","entry","_afterReadSetAttributesTrigger","sort","isSymbolicLink","Writable","write","open","chmod","close","utimes","readlink","symlink","readdir","lstat","reverse","O_WRONLY","O_SYMLINK","constants","promises","finished"],"sources":["../../","../../node_modules/@shockpkg/archive-files/esm/archive/hdi.mjs","../../node_modules/@shockpkg/archive-files/src/archive/hdi.ts","../../node_modules/@shockpkg/hdi-mac/esm/mounter.mjs","../../node_modules/@shockpkg/hdi-mac/src/mounter.ts","../../node_modules/@shockpkg/plist-dom/esm/plist.mjs","../../node_modules/@shockpkg/plist-dom/src/plist.ts","../../node_modules/@shockpkg/plist-dom/esm/options.mjs","../../node_modules/@shockpkg/plist-dom/src/options.ts","../../node_modules/@shockpkg/plist-dom/esm/util.mjs","../../node_modules/@shockpkg/plist-dom/src/util.ts","../../node_modules/@xmldom/xmldom/lib/index.js","../../node_modules/@xmldom/xmldom/lib/dom.js","../../node_modules/@xmldom/xmldom/lib/conventions.js","../../node_modules/@xmldom/xmldom/lib/dom-parser.js","../../node_modules/@xmldom/xmldom/lib/entities.js","../../node_modules/@xmldom/xmldom/lib/sax.js","../../node_modules/@shockpkg/plist-dom/esm/value/dict.mjs","../../node_modules/@shockpkg/plist-dom/src/value/dict.ts","../../node_modules/@shockpkg/plist-dom/esm/value.mjs","../../node_modules/@shockpkg/plist-dom/src/value.ts","../../node_modules/@shockpkg/plist-dom/esm/value/array.mjs","../../node_modules/@shockpkg/plist-dom/src/value/array.ts","../../node_modules/@shockpkg/plist-dom/esm/value/boolean.mjs","../../node_modules/@shockpkg/plist-dom/src/value/boolean.ts","../../node_modules/@shockpkg/plist-dom/esm/value/data.mjs","../../node_modules/@shockpkg/plist-dom/src/value/data.ts","../../node_modules/@shockpkg/plist-dom/esm/value/integer.mjs","../../node_modules/@shockpkg/plist-dom/src/value/integer.ts","../../node_modules/@shockpkg/plist-dom/esm/value/real.mjs","../../node_modules/@shockpkg/plist-dom/src/value/real.ts","../../node_modules/@shockpkg/plist-dom/esm/value/string.mjs","../../node_modules/@shockpkg/plist-dom/src/value/string.ts","../../node_modules/@shockpkg/archive-files/esm/archive.mjs","../../node_modules/@shockpkg/archive-files/src/archive.ts","../../node_modules/@shockpkg/archive-files/esm/types.mjs","../../node_modules/@shockpkg/archive-files/src/types.ts","../../node_modules/@shockpkg/archive-files/esm/util.mjs","../../node_modules/@shockpkg/archive-files/src/util.ts","../../src/utils/compat/stream/promises.ts"],"sourcesContent":["var $2m7eL$nodefs = require(\"node:fs\");\nvar $2m7eL$nodepath = require(\"node:path\");\nvar $2m7eL$nodechild_process = require(\"node:child_process\");\nvar $2m7eL$nodestream = require(\"node:stream\");\nvar $2m7eL$nodeutil = require(\"node:util\");\nvar $2m7eL$stream = require(\"stream\");\nvar $2m7eL$util = require(\"util\");\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n var parcelRequire = $parcel$global[\"parcelRequire810d\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"8Fs7q\", function(module, exports) {\n\n$parcel$export(module.exports, \"ArchiveHdi\", () => $406037fd281833a8$export$c1aa0fd1ad465eab);\n/* eslint-disable max-classes-per-file */ \n\n\nvar $4ripN = parcelRequire(\"4ripN\");\n\nvar $g6mhR = parcelRequire(\"g6mhR\");\n\nvar $1cM2y = parcelRequire(\"1cM2y\");\n\nvar $lU4sB = parcelRequire(\"lU4sB\");\nconst $406037fd281833a8$var$walkOpts = {\n ignoreUnreadableDirectories: true\n};\nconst $406037fd281833a8$var$ejectOptions = {\n force: true\n};\nclass $406037fd281833a8$export$6bde309da83df86d extends (0, $g6mhR.Entry) {\n /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ sizeComp = null;\n /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ uname = null;\n /**\n * @inheritdoc\n */ gname = null;\n /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ /**\n * EntryHdi constructor.\n *\n * @param info Info object.\n */ constructor(info){\n super(info);\n this.archive = info.archive;\n this.size = info.size;\n this.mode = info.mode;\n this.uid = info.uid;\n this.gid = info.gid;\n this.atime = info.atime;\n this.mtime = info.mtime;\n }\n /**\n * Get the path of resource psuedo-file, raw.\n *\n * @returns Path string.\n */ get rsrcPathRaw() {\n return (0, $lU4sB.pathResourceFork)(this.pathRaw);\n }\n /**\n * Get the path of resource psuedo-file, normalized.\n *\n * @returns Path string.\n */ get rsrcPath() {\n return (0, $lU4sB.pathNormalize)((0, $lU4sB.pathResourceFork)(this.path));\n }\n}\nclass $406037fd281833a8$export$c1aa0fd1ad465eab extends (0, $g6mhR.Archive) {\n /**\n * @inheritdoc\n */ static FILE_EXTENSIONS = [\n \".dmg\",\n \".iso\",\n \".cdr\"\n ];\n /**\n * @inheritdoc\n */ static HAS_NAMED_VOLUMES = true;\n /**\n * @inheritdoc\n */ Entry = $406037fd281833a8$export$6bde309da83df86d;\n /**\n * Mounter, Mac.\n */ mounterMac = new (0, $4ripN.Mounter)();\n /**\n * Hide mounted disk image from the file explorers.\n */ nobrowse = false;\n /**\n * ArchiveHdi constructor.\n *\n * @param path File path.\n */ constructor(path){\n super(path);\n }\n /**\n * @inheritdoc\n */ async read(itter) {\n await super.read(itter);\n }\n /**\n * @inheritdoc\n */ async _read(itter) {\n const { mounterMac: mounterMac, nobrowse: nobrowse } = this;\n /**\n * Each itterator.\n *\n * @param pathFull Full path.\n * @param pathRaw Raw path.\n * @param stat Stat object.\n * @returns Recursion hint.\n */ const each = async (pathFull, pathRaw, stat)=>{\n const type = (0, $lU4sB.statToPathType)(stat);\n if (type === null) return true;\n const { size: size, mode: mode, uid: uid, gid: gid, atime: atime, mtime: mtime } = stat;\n const readData = type === (0, $1cM2y.PathType).FILE ? // eslint-disable-next-line max-len\n // eslint-disable-next-line @typescript-eslint/require-await\n async ()=>(0, $2m7eL$nodefs.createReadStream)(pathFull) : null;\n const readSymlink = type === (0, $1cM2y.PathType).SYMLINK ? async ()=>(0, $lU4sB.fsReadlinkRaw)(pathFull) : null;\n const entry = new this.Entry({\n archive: this,\n type: type,\n pathRaw: pathRaw,\n size: size,\n mode: mode,\n uid: uid,\n gid: gid,\n atime: atime,\n mtime: mtime,\n readData: readData,\n readSymlink: readSymlink\n });\n const ret = await entry.trigger(itter);\n if (ret === false) return null;\n if (ret === null) return false;\n if (type === (0, $1cM2y.PathType).FILE) {\n const rsrcPathFull = (0, $lU4sB.pathResourceFork)(pathFull);\n const rsrcStat = await (0, $lU4sB.fsLstatExists)(rsrcPathFull);\n if (rsrcStat) {\n const sizeRsrc = rsrcStat.size;\n /**\n * Read RSRC.\n *\n * @returns Read stream.\n */ // eslint-disable-next-line @typescript-eslint/require-await\n const readRsrc = async ()=>(0, $2m7eL$nodefs.createReadStream)(rsrcPathFull);\n const entryRsrc = new this.Entry({\n archive: this,\n type: (0, $1cM2y.PathType).RESOURCE_FORK,\n pathRaw: pathRaw,\n size: sizeRsrc,\n mode: mode,\n uid: uid,\n gid: gid,\n atime: atime,\n mtime: mtime,\n readRsrc: readRsrc\n });\n const ret = await entryRsrc.trigger(itter);\n if (ret === false) return null;\n if (ret === null) return false;\n }\n }\n return true;\n };\n // Using auto-eject on normal exit option.\n const info = await mounterMac.attach(this.path, {\n nobrowse: nobrowse,\n readonly: true\n }, $406037fd281833a8$var$ejectOptions);\n // Eject device when done.\n try {\n for (const device of info.devices){\n const { mountPoint: mountPoint } = device;\n if (!mountPoint) continue;\n const volumeName = (0, $2m7eL$nodepath.basename)(mountPoint);\n // eslint-disable-next-line no-await-in-loop\n await (0, $lU4sB.fsWalk)(mountPoint, async (pathRel, stat)=>{\n const pathFull = (0, $2m7eL$nodepath.join)(mountPoint, pathRel);\n const pathRaw = (0, $2m7eL$nodepath.join)(volumeName, pathRel);\n return each(pathFull, pathRaw, stat);\n }, $406037fd281833a8$var$walkOpts);\n }\n } finally{\n await info.eject($406037fd281833a8$var$ejectOptions);\n }\n }\n}\n\n});\nparcelRegister(\"4ripN\", function(module, exports) {\n\n$parcel$export(module.exports, \"Mounter\", () => $2f8c61bb43087a2d$export$2109cd350bcf6eda);\n\n\nvar $2dJww = parcelRequire(\"2dJww\");\nvar $5t69V = parcelRequire(\"5t69V\");\nvar $cAWOc = parcelRequire(\"cAWOc\");\nvar $ico3M = parcelRequire(\"ico3M\");\nvar $iH99z = parcelRequire(\"iH99z\");\nclass $2f8c61bb43087a2d$export$2109cd350bcf6eda {\n /**\n * The path to hdiutil.\n */ /**\n * Mounter constructor.\n *\n * @param options Options object.\n */ constructor(options = null){\n this.hdiutil = (options ? options.hdiutil : null) || \"hdiutil\";\n }\n /**\n * Attach a disk image.\n *\n * @param file Path to disk image.\n * @param options Options object.\n * @param ejectOnExit Eject on exit options, or null.\n * @returns Info object.\n */ async attach(file, options = null, ejectOnExit = null) {\n const devices = await this._runAttach(this._argsAttach(file, options));\n const { eject: eject, ejectSync: ejectSync } = this._createEjects(devices);\n return {\n devices: devices,\n eject: eject,\n ejectSync: ejectSync\n };\n }\n /**\n * Attach a disk image.\n *\n * @param file Path to disk image.\n * @param options Options object.\n * @param ejectOnExit Eject on exit options, or null.\n * @returns Info object.\n */ attachSync(file, options = null, ejectOnExit = null) {\n // eslint-disable-next-line no-sync\n const devices = this._runAttachSync(this._argsAttach(file, options));\n const { eject: eject, ejectSync: ejectSync } = this._createEjects(devices);\n return {\n devices: devices,\n eject: eject,\n ejectSync: ejectSync\n };\n }\n /**\n * Eject a disk image.\n *\n * @param file Path to device file or volume mount point.\n * @param options Options object.\n */ async eject(file, options = null) {\n await this._runEject(this._argsEject(file, options));\n }\n /**\n * Eject a disk image.\n *\n * @param file Path to device file or volume mount point.\n * @param options Options object.\n */ ejectSync(file, options = null) {\n // eslint-disable-next-line no-sync\n this._runEjectSync(this._argsEject(file, options));\n }\n /**\n * Create args for attach.\n *\n * @param file Path to disk image.\n * @param options Options object.\n * @returns Argument list.\n */ _argsAttach(file, options = null) {\n const args = [\n \"attach\",\n \"-plist\"\n ];\n if (options) {\n if (options.readonly) args.push(\"-readonly\");\n if (options.nobrowse) args.push(\"-nobrowse\");\n }\n args.push(this._fileArg(file));\n return args;\n }\n /**\n * Create args for eject.\n *\n * @param file Path to device file or volume mount point.\n * @param options Options object.\n * @returns Argument list.\n */ _argsEject(file, options = null) {\n const args = [\n \"eject\"\n ];\n if (options && options.force) args.push(\"-force\");\n args.push(this._fileArg(file));\n return args;\n }\n /**\n * Run hdiutil attach command, returning the devices list on success.\n *\n * @param args CLI args.\n * @returns Devices list.\n */ async _runAttach(args) {\n const stdouts = [];\n const proc = (0, $2m7eL$nodechild_process.spawn)(this.hdiutil, args);\n proc.stdout.on(\"data\", (data)=>{\n stdouts.push(data);\n });\n const code = await new Promise((resolve, reject)=>{\n proc.once(\"exit\", resolve);\n proc.once(\"error\", reject);\n });\n if (code) throw new Error(`Attach failed: hdiutil exit code: ${code}`);\n return this._parseDevices(Buffer.concat(stdouts).toString());\n }\n /**\n * Run hdiutil attach command, returning the devices list on success.\n *\n * @param args CLI args.\n * @returns Devices list.\n */ _runAttachSync(args) {\n const { status: status, error: error, stdout: stdout } = (0, $2m7eL$nodechild_process.spawnSync)(this.hdiutil, args);\n if (error) throw error;\n if (status) throw new Error(`Attach failed: hdiutil exit code: ${status}`);\n return this._parseDevices(stdout.toString());\n }\n /**\n * Run hdiutil eject command.\n *\n * @param args CLI args.\n */ async _runEject(args) {\n const proc = (0, $2m7eL$nodechild_process.spawn)(this.hdiutil, args);\n const status = await new Promise((resolve, reject)=>{\n proc.once(\"exit\", resolve);\n proc.once(\"error\", reject);\n });\n if (status) throw new Error(`Eject failed: hdiutil exit code: ${status}`);\n }\n /**\n * Run hdiutil eject command.\n *\n * @param args CLI args.\n */ _runEjectSync(args) {\n const { status: status, error: error } = (0, $2m7eL$nodechild_process.spawnSync)(this.hdiutil, args);\n if (error) throw error;\n if (status) throw new Error(`Eject failed: hdiutil exit code: ${status}`);\n }\n /**\n * Create file argument from file path.\n *\n * @param file File path.\n * @returns A path for use as argument.\n */ _fileArg(file) {\n // Make sure it will not be recognized as option argument.\n return file.startsWith(\"-\") ? `./${file}` : file;\n }\n /**\n * Parse devices plist into devices list.\n *\n * @param xml XML plist.\n * @returns Devices list.\n */ _parseDevices(xml) {\n const plist = new (0, $2dJww.Plist)();\n plist.fromXml(xml);\n const systemEntities = plist.valueCastAs((0, $ico3M.ValueDict)).getValue(\"system-entities\").castAs((0, $5t69V.ValueArray));\n const r = [];\n for (const value of systemEntities.value){\n const dict = value.castAs((0, $ico3M.ValueDict));\n const devEntry = dict.getValue(\"dev-entry\").castAs((0, $iH99z.ValueString)).value;\n const potentiallyMountable = dict.getValue(\"potentially-mountable\").castAs((0, $cAWOc.ValueBoolean)).value;\n const contentHint = dict.get(\"content-hint\");\n const unmappedContentHint = dict.get(\"unmapped-content-hint\");\n const volumeKind = dict.get(\"volume-kind\");\n const mountPoint = dict.get(\"mount-point\");\n const device = {\n devEntry: devEntry,\n potentiallyMountable: potentiallyMountable\n };\n if (contentHint) device.contentHint = contentHint.castAs((0, $iH99z.ValueString)).value;\n if (unmappedContentHint) device.unmappedContentHint = unmappedContentHint.castAs((0, $iH99z.ValueString)).value;\n if (volumeKind) device.volumeKind = volumeKind.castAs((0, $iH99z.ValueString)).value;\n if (mountPoint) device.mountPoint = mountPoint.castAs((0, $iH99z.ValueString)).value;\n r.push(device);\n }\n return r;\n }\n /**\n * Find the root device, null on empty list.\n *\n * @param devices Device list.\n * @returns Root device or null if an empty list.\n */ _findRootDevice(devices) {\n let r = null;\n for (const device of devices)if (r === null || r.devEntry.length > device.devEntry.length) r = device;\n return r;\n }\n /**\n * Create ejects callback from a list of devices.\n *\n * @param devices Device list.\n * @param ejectOnExit Eject on exit options, or null.\n * @returns Callback function.\n */ _createEjects(devices, ejectOnExit = null) {\n // Find the root device, to use to eject (none possible in theory).\n let devEntry = this._findRootDevice(devices)?.devEntry;\n let shutdown = null;\n const info = {\n /**\n * The eject callback function.\n *\n * @param options Eject options.\n */ eject: async (options = null)=>{\n if (devEntry) {\n await this.eject(devEntry, options);\n devEntry = \"\";\n if (shutdown) process.off(\"exit\", shutdown);\n }\n },\n /**\n * The eject callback function.\n *\n * @param options Eject options.\n */ ejectSync: (options = null)=>{\n if (devEntry) {\n // eslint-disable-next-line no-sync\n this.ejectSync(devEntry, options);\n devEntry = \"\";\n if (shutdown) process.off(\"exit\", shutdown);\n }\n }\n };\n if (ejectOnExit) {\n /**\n * Attempt to auto-eject on normal shutdown.\n * Does not catch signals (no clean way in a library).\n * Users can explicitly call process.exit() on signals to use this.\n */ shutdown = ()=>{\n // eslint-disable-next-line no-sync\n info.ejectSync(ejectOnExit);\n };\n process.once(\"exit\", shutdown);\n }\n return info;\n }\n}\n\n});\nparcelRegister(\"2dJww\", function(module, exports) {\n\n$parcel$export(module.exports, \"Plist\", () => $e9c3f1985b20a145$export$2a65c73fe54050b8);\n\nvar $X4gie = parcelRequire(\"X4gie\");\n\nvar $6xjCQ = parcelRequire(\"6xjCQ\");\n\nvar $ico3M = parcelRequire(\"ico3M\");\nconst $e9c3f1985b20a145$var$xmlDeclaration = '';\nconst $e9c3f1985b20a145$var$xmlDoctype = '';\nclass $e9c3f1985b20a145$export$2a65c73fe54050b8 {\n /**\n * Default XML declaration.\n */ static XML_DECLARATION = $e9c3f1985b20a145$var$xmlDeclaration;\n /**\n * Default XML doctype.\n */ static XML_DOCTYPE = $e9c3f1985b20a145$var$xmlDoctype;\n /**\n * XML declaration.\n */ xmlDeclaration = $e9c3f1985b20a145$var$xmlDeclaration;\n /**\n * XML doctype.\n */ xmlDoctype = $e9c3f1985b20a145$var$xmlDoctype;\n /**\n * Value element.\n */ value = null;\n /**\n * Plist constructor.\n *\n * @param value The value.\n */ constructor(value = null){\n this.value = value;\n }\n /**\n * Get value or throw if null.\n *\n * @returns The value.\n */ getValue() {\n const { value: value } = this;\n if (!value) throw new Error(\"Value is null\");\n return value;\n }\n /**\n * Cast to specific type or null.\n *\n * @param Type Type constructor.\n * @returns The object or null.\n */ valueCastTo(Type) {\n const { value: value } = this;\n return value ? value.castTo(Type) : null;\n }\n /**\n * Cast to specific type or throw.\n *\n * @param Type Type constructor.\n * @returns The object.\n */ valueCastAs(Type) {\n const casted = this.valueCastTo(Type);\n if (!casted) throw new Error(`Cannot cast value to type '${Type.TYPE}'`);\n return casted;\n }\n /**\n * Decode document from string.\n *\n * @param xml XML string.\n */ fromXml(xml) {\n const { declaration: declaration, doctype: doctype, documentElement: documentElement } = (0, $6xjCQ.xmlDecode)(xml);\n this.fromXmlElement(documentElement, declaration, doctype);\n }\n /**\n * Decode document from element.\n *\n * @param element XML element.\n * @param declaration XML declaration.\n * @param doctype XML doctype.\n */ fromXmlElement(element, declaration = null, doctype = null) {\n const { tagName: tagName } = element;\n if (tagName !== \"plist\") throw new Error(`Unexpected root plist tag name: ${tagName}`);\n const childElements = (0, $6xjCQ.xmlElementChildElements)(element);\n const childElementsL = childElements.length;\n if (childElementsL > 1) throw new Error(`Multiple root plist child tag: ${childElementsL}`);\n this.value = childElementsL ? this.childFromXmlElement(childElements[0]) : null;\n this.xmlDeclaration = declaration || \"\";\n this.xmlDoctype = doctype || \"\";\n }\n /**\n * Decode child element from XML element.\n *\n * @param element XML element.\n * @returns Value element.\n */ childFromXmlElement(element) {\n const a = new (0, $ico3M.ValueDict)();\n return a.childFromXmlElement(element);\n }\n /**\n * Encode documents to string.\n *\n * @param options Options object.\n * @returns XML string.\n */ toXml(options = null) {\n const ir = options?.indentRoot ?? (0, $X4gie.INDENT_ROOT);\n const n = options?.newlineString ?? (0, $X4gie.NEWLINE_STRING);\n const v = this.value;\n return [\n ...[\n this.xmlDeclaration,\n this.xmlDoctype\n ].filter((s)=>s),\n '',\n ...v ? [\n v.toXml(options, ir ? 1 : 0)\n ] : [],\n \"\",\n \"\"\n ].join(n);\n }\n}\n\n});\nparcelRegister(\"X4gie\", function(module, exports) {\n\n$parcel$export(module.exports, \"INDENT_STRING\", () => $804d25eba61521ef$export$1e80556a1db28146);\n$parcel$export(module.exports, \"NEWLINE_STRING\", () => $804d25eba61521ef$export$ed174037a9bdff2c);\n$parcel$export(module.exports, \"DATA_COLUMNS\", () => $804d25eba61521ef$export$5c824d2ec83ff619);\n$parcel$export(module.exports, \"INDENT_ROOT\", () => $804d25eba61521ef$export$6d03a526e379b09b);\nconst $804d25eba61521ef$export$1e80556a1db28146 = \"\t\";\nconst $804d25eba61521ef$export$ed174037a9bdff2c = \"\\n\";\nconst $804d25eba61521ef$export$5c824d2ec83ff619 = 68;\nconst $804d25eba61521ef$export$6d03a526e379b09b = false;\n\n});\n\nparcelRegister(\"6xjCQ\", function(module, exports) {\n\n$parcel$export(module.exports, \"xmlDecode\", () => $917ae6f095b4d567$export$18944fc6e74f8282);\n$parcel$export(module.exports, \"xmlElementChildElements\", () => $917ae6f095b4d567$export$ed00f817df6be0c9);\n$parcel$export(module.exports, \"xmlElementText\", () => $917ae6f095b4d567$export$17118775901adc6b);\n$parcel$export(module.exports, \"assertXmlTagName\", () => $917ae6f095b4d567$export$1aae4f5e3a8a9756);\n$parcel$export(module.exports, \"assertNoXmlElementChildNodes\", () => $917ae6f095b4d567$export$6f0da40b035c9e7a);\n$parcel$export(module.exports, \"base64Encode\", () => $917ae6f095b4d567$export$e510a73ee562749);\n$parcel$export(module.exports, \"base64Decode\", () => $917ae6f095b4d567$export$c62426fdd000a97e);\n\nvar $56vpm = parcelRequire(\"56vpm\");\nconst $917ae6f095b4d567$var$B6 = 0x3f;\nconst $917ae6f095b4d567$var$B8 = 0xff;\nconst $917ae6f095b4d567$var$C64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nconst $917ae6f095b4d567$var$C64M = [\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 62,\n -1,\n -1,\n -1,\n 63,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n -1,\n -1,\n -1,\n 64,\n -1,\n -1,\n -1,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51\n];\nfunction $917ae6f095b4d567$export$18944fc6e74f8282(xml) {\n let declaration = null;\n let doctype = null;\n const errors = [];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\n const parser = new (0, $56vpm.DOMParser)({\n locator: {},\n errorHandler: {\n /**\n * Warning callback.\n *\n * @param e Error string.\n */ warning: (e)=>{\n // Ignore warnings.\n },\n /**\n * Error callback.\n *\n * @param e Error string.\n */ error: (e)=>{\n errors.push(e);\n },\n /**\n * Fatal error callback.\n *\n * @param e Error string.\n */ fatalError: (e)=>{\n errors.push(e);\n }\n }\n });\n const doc = parser.parseFromString(xml, \"text/xml\");\n if (errors.length) throw new Error(`XML decode error: ${errors[0]}`);\n const { childNodes: childNodes } = doc;\n const documentElement = doc.documentElement || null;\n for(let i = 0, l = childNodes.length; i < l; i++){\n const childNode = childNodes[i];\n if (childNode === documentElement) break;\n const str = childNode.toString();\n if (/^<\\?xml[^>]*\\?>$/.test(str)) declaration = str;\n if (/^]*>$/.test(str)) doctype = str;\n }\n if (!documentElement) throw new Error(\"XML decode error: No document element\");\n return {\n declaration: declaration,\n doctype: doctype,\n documentElement: documentElement\n };\n}\nfunction $917ae6f095b4d567$export$ed00f817df6be0c9(element) {\n const { childNodes: childNodes } = element;\n const r = [];\n for(let i = 0, l = childNodes.length; i < l; i++){\n const childNode = childNodes[i];\n if (\"tagName\" in childNode) {\n r.push(childNode);\n continue;\n }\n const { nodeValue: nodeValue } = childNode;\n if (nodeValue && !/^\\s*$/.test(nodeValue)) throw new Error(`Found text children of: ${element.tagName}`);\n }\n return r;\n}\nfunction $917ae6f095b4d567$export$17118775901adc6b(element) {\n const { childNodes: childNodes } = element;\n let r = null;\n for(let i = 0, l = childNodes.length; i < l; i++){\n if (i) throw new Error(`Multiple child elements in: ${element.tagName}`);\n const childNode = childNodes[i];\n if (!(\"tagName\" in childNode) && \"data\" in childNode && \"nodeValue\" in childNode) r = childNode;\n else throw new Error(`Unexpected child element in: ${element.tagName}`);\n }\n return r;\n}\nfunction $917ae6f095b4d567$export$1aae4f5e3a8a9756(element, tagName) {\n const tn = element.tagName;\n if (tn !== tagName) throw new Error(`Unexpected tagName: ${tagName}`);\n}\nfunction $917ae6f095b4d567$export$6f0da40b035c9e7a(element) {\n const { childNodes: childNodes } = element;\n if (childNodes.length) throw new Error(`Unexpected child nodes: ${element.tagName}`);\n}\nfunction $917ae6f095b4d567$export$e510a73ee562749(data) {\n const l = data.length;\n let r = \"\";\n for(let i = 0; i < l;){\n const a = data[i++];\n const b = i < l ? data[i++] : null;\n const c = i < l ? data[i++] : null;\n // eslint-disable-next-line no-bitwise\n const o = a << 16 | (b || 0) << 8 | (c || 0);\n r += // eslint-disable-next-line no-bitwise\n $917ae6f095b4d567$var$C64[o >> 18] + // eslint-disable-next-line no-bitwise\n $917ae6f095b4d567$var$C64[o >> 12 & $917ae6f095b4d567$var$B6] + // eslint-disable-next-line no-bitwise\n $917ae6f095b4d567$var$C64[b === null ? 64 : o >> 6 & $917ae6f095b4d567$var$B6] + // eslint-disable-next-line no-bitwise\n $917ae6f095b4d567$var$C64[c === null ? 64 : o & $917ae6f095b4d567$var$B6];\n }\n return r;\n}\nfunction $917ae6f095b4d567$export$c62426fdd000a97e(base64) {\n const l = base64.length;\n const r = [];\n OUTER: for(let a, b, c, d, m, z, i = 0; i < l;){\n for(;;){\n if ((m = $917ae6f095b4d567$var$C64M[base64.charCodeAt(i++)]) >= 0) {\n a = m;\n break;\n }\n if (i >= l) break OUTER;\n }\n for(;;){\n if ((m = $917ae6f095b4d567$var$C64M[base64.charCodeAt(i++)]) >= 0) {\n b = m;\n break;\n }\n if (i >= l) break OUTER;\n }\n for(;;){\n if ((m = $917ae6f095b4d567$var$C64M[base64.charCodeAt(i++)]) >= 0) {\n c = m;\n break;\n }\n if (i >= l) break OUTER;\n }\n for(;;){\n if ((m = $917ae6f095b4d567$var$C64M[base64.charCodeAt(i++)]) >= 0) {\n d = m;\n break;\n }\n if (i >= l) break OUTER;\n }\n // eslint-disable-next-line no-bitwise\n z = (a & $917ae6f095b4d567$var$B6) << 18 | (b & $917ae6f095b4d567$var$B6) << 12 | (c & $917ae6f095b4d567$var$B6) << 6 | d & $917ae6f095b4d567$var$B6;\n // eslint-disable-next-line default-case, no-nested-ternary\n switch(c > $917ae6f095b4d567$var$B6 ? d > $917ae6f095b4d567$var$B6 ? 2 : 0 : d > $917ae6f095b4d567$var$B6 ? 1 : 0){\n case 0:\n // eslint-disable-next-line no-bitwise\n r.push(z >> 16 & $917ae6f095b4d567$var$B8, z >> 8 & $917ae6f095b4d567$var$B8, z & $917ae6f095b4d567$var$B8);\n break;\n case 1:\n // eslint-disable-next-line no-bitwise\n r.push(z >> 16 & $917ae6f095b4d567$var$B8, z >> 8 & $917ae6f095b4d567$var$B8);\n break;\n case 2:\n // eslint-disable-next-line no-bitwise\n r.push(z >> 16 & $917ae6f095b4d567$var$B8);\n break;\n }\n }\n return new Uint8Array(r);\n}\n\n});\nparcelRegister(\"56vpm\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $3b75e047c54047b2$export$1059c6e7d2ce5669, (v) => $3b75e047c54047b2$export$1059c6e7d2ce5669 = v);\nvar $3b75e047c54047b2$export$455426655eab1d48;\nvar $3b75e047c54047b2$export$64f0bed4ae6f0f24;\nvar $3b75e047c54047b2$export$1059c6e7d2ce5669;\n\nvar $fSAop = parcelRequire(\"fSAop\");\n$3b75e047c54047b2$export$455426655eab1d48 = $fSAop.DOMImplementation;\n$3b75e047c54047b2$export$64f0bed4ae6f0f24 = $fSAop.XMLSerializer;\n\n$3b75e047c54047b2$export$1059c6e7d2ce5669 = (parcelRequire(\"i9SYz\")).DOMParser;\n\n});\nparcelRegister(\"fSAop\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMImplementation\", () => $b8f821026a6eb0fb$export$455426655eab1d48, (v) => $b8f821026a6eb0fb$export$455426655eab1d48 = v);\n$parcel$export(module.exports, \"XMLSerializer\", () => $b8f821026a6eb0fb$export$64f0bed4ae6f0f24, (v) => $b8f821026a6eb0fb$export$64f0bed4ae6f0f24 = v);\n//if(typeof require == 'function'){\nvar $b8f821026a6eb0fb$export$d1d99cf900472499;\nvar $b8f821026a6eb0fb$export$fe58bcf938607f6a;\nvar $b8f821026a6eb0fb$export$455426655eab1d48;\nvar $b8f821026a6eb0fb$export$db77ccec0bb4ccac;\nvar $b8f821026a6eb0fb$export$85c928794f8d04d4;\nvar $b8f821026a6eb0fb$export$79b41aa5d56abdff;\nvar $b8f821026a6eb0fb$export$64f0bed4ae6f0f24;\n\nvar $12jBw = parcelRequire(\"12jBw\");\nvar $b8f821026a6eb0fb$var$find = $12jBw.find;\nvar $b8f821026a6eb0fb$var$NAMESPACE = $12jBw.NAMESPACE;\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$notEmptyString(input) {\n return input !== \"\";\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */ function $b8f821026a6eb0fb$var$splitOnASCIIWhitespace(input) {\n // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n return input ? input.split(/[\\t\\n\\f\\r ]+/).filter($b8f821026a6eb0fb$var$notEmptyString) : [];\n}\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */ function $b8f821026a6eb0fb$var$orderedSetReducer(current, element) {\n if (!current.hasOwnProperty(element)) current[element] = true;\n return current;\n}\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */ function $b8f821026a6eb0fb$var$toOrderedSet(input) {\n if (!input) return [];\n var list = $b8f821026a6eb0fb$var$splitOnASCIIWhitespace(input);\n return Object.keys(list.reduce($b8f821026a6eb0fb$var$orderedSetReducer, {}));\n}\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */ function $b8f821026a6eb0fb$var$arrayIncludes(list) {\n return function(element) {\n return list && list.indexOf(element) !== -1;\n };\n}\nfunction $b8f821026a6eb0fb$var$copy(src, dest) {\n for(var p in src)if (Object.prototype.hasOwnProperty.call(src, p)) dest[p] = src[p];\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */ function $b8f821026a6eb0fb$var$_extends(Class, Super) {\n var pt = Class.prototype;\n if (!(pt instanceof Super)) {\n function t() {}\n t.prototype = Super.prototype;\n t = new t();\n $b8f821026a6eb0fb$var$copy(pt, t);\n Class.prototype = pt = t;\n }\n if (pt.constructor != Class) {\n if (typeof Class != \"function\") console.error(\"unknown Class:\" + Class);\n pt.constructor = Class;\n }\n}\n// Node Types\nvar $b8f821026a6eb0fb$var$NodeType = {};\nvar $b8f821026a6eb0fb$var$ELEMENT_NODE = $b8f821026a6eb0fb$var$NodeType.ELEMENT_NODE = 1;\nvar $b8f821026a6eb0fb$var$ATTRIBUTE_NODE = $b8f821026a6eb0fb$var$NodeType.ATTRIBUTE_NODE = 2;\nvar $b8f821026a6eb0fb$var$TEXT_NODE = $b8f821026a6eb0fb$var$NodeType.TEXT_NODE = 3;\nvar $b8f821026a6eb0fb$var$CDATA_SECTION_NODE = $b8f821026a6eb0fb$var$NodeType.CDATA_SECTION_NODE = 4;\nvar $b8f821026a6eb0fb$var$ENTITY_REFERENCE_NODE = $b8f821026a6eb0fb$var$NodeType.ENTITY_REFERENCE_NODE = 5;\nvar $b8f821026a6eb0fb$var$ENTITY_NODE = $b8f821026a6eb0fb$var$NodeType.ENTITY_NODE = 6;\nvar $b8f821026a6eb0fb$var$PROCESSING_INSTRUCTION_NODE = $b8f821026a6eb0fb$var$NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar $b8f821026a6eb0fb$var$COMMENT_NODE = $b8f821026a6eb0fb$var$NodeType.COMMENT_NODE = 8;\nvar $b8f821026a6eb0fb$var$DOCUMENT_NODE = $b8f821026a6eb0fb$var$NodeType.DOCUMENT_NODE = 9;\nvar $b8f821026a6eb0fb$var$DOCUMENT_TYPE_NODE = $b8f821026a6eb0fb$var$NodeType.DOCUMENT_TYPE_NODE = 10;\nvar $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE = $b8f821026a6eb0fb$var$NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar $b8f821026a6eb0fb$var$NOTATION_NODE = $b8f821026a6eb0fb$var$NodeType.NOTATION_NODE = 12;\n// ExceptionCode\nvar $b8f821026a6eb0fb$var$ExceptionCode = {};\nvar $b8f821026a6eb0fb$var$ExceptionMessage = {};\nvar $b8f821026a6eb0fb$var$INDEX_SIZE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INDEX_SIZE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[1] = \"Index size error\", 1);\nvar $b8f821026a6eb0fb$var$DOMSTRING_SIZE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.DOMSTRING_SIZE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[2] = \"DOMString size error\", 2);\nvar $b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR = $b8f821026a6eb0fb$var$ExceptionCode.HIERARCHY_REQUEST_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[3] = \"Hierarchy request error\", 3);\nvar $b8f821026a6eb0fb$var$WRONG_DOCUMENT_ERR = $b8f821026a6eb0fb$var$ExceptionCode.WRONG_DOCUMENT_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[4] = \"Wrong document\", 4);\nvar $b8f821026a6eb0fb$var$INVALID_CHARACTER_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_CHARACTER_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[5] = \"Invalid character\", 5);\nvar $b8f821026a6eb0fb$var$NO_DATA_ALLOWED_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NO_DATA_ALLOWED_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[6] = \"No data allowed\", 6);\nvar $b8f821026a6eb0fb$var$NO_MODIFICATION_ALLOWED_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[7] = \"No modification allowed\", 7);\nvar $b8f821026a6eb0fb$var$NOT_FOUND_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NOT_FOUND_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[8] = \"Not found\", 8);\nvar $b8f821026a6eb0fb$var$NOT_SUPPORTED_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NOT_SUPPORTED_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[9] = \"Not supported\", 9);\nvar $b8f821026a6eb0fb$var$INUSE_ATTRIBUTE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INUSE_ATTRIBUTE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[10] = \"Attribute in use\", 10);\n//level2\nvar $b8f821026a6eb0fb$var$INVALID_STATE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_STATE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[11] = \"Invalid state\", 11);\nvar $b8f821026a6eb0fb$var$SYNTAX_ERR = $b8f821026a6eb0fb$var$ExceptionCode.SYNTAX_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[12] = \"Syntax error\", 12);\nvar $b8f821026a6eb0fb$var$INVALID_MODIFICATION_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_MODIFICATION_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[13] = \"Invalid modification\", 13);\nvar $b8f821026a6eb0fb$var$NAMESPACE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NAMESPACE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[14] = \"Invalid namespace\", 14);\nvar $b8f821026a6eb0fb$var$INVALID_ACCESS_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_ACCESS_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[15] = \"Invalid access\", 15);\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */ function $b8f821026a6eb0fb$var$DOMException(code, message) {\n if (message instanceof Error) var error = message;\n else {\n error = this;\n Error.call(this, $b8f821026a6eb0fb$var$ExceptionMessage[code]);\n this.message = $b8f821026a6eb0fb$var$ExceptionMessage[code];\n if (Error.captureStackTrace) Error.captureStackTrace(this, $b8f821026a6eb0fb$var$DOMException);\n }\n error.code = code;\n if (message) this.message = this.message + \": \" + message;\n return error;\n}\n$b8f821026a6eb0fb$var$DOMException.prototype = Error.prototype;\n$b8f821026a6eb0fb$var$copy($b8f821026a6eb0fb$var$ExceptionCode, $b8f821026a6eb0fb$var$DOMException);\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */ function $b8f821026a6eb0fb$var$NodeList() {}\n$b8f821026a6eb0fb$var$NodeList.prototype = {\n /**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */ length: 0,\n /**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */ item: function(index) {\n return index >= 0 && index < this.length ? this[index] : null;\n },\n toString: function(isHTML, nodeFilter) {\n for(var buf = [], i = 0; i < this.length; i++)$b8f821026a6eb0fb$var$serializeToString(this[i], buf, isHTML, nodeFilter);\n return buf.join(\"\");\n },\n /**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */ filter: function(predicate) {\n return Array.prototype.filter.call(this, predicate);\n },\n /**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */ indexOf: function(item) {\n return Array.prototype.indexOf.call(this, item);\n }\n};\nfunction $b8f821026a6eb0fb$var$LiveNodeList(node, refresh) {\n this._node = node;\n this._refresh = refresh;\n $b8f821026a6eb0fb$var$_updateLiveList(this);\n}\nfunction $b8f821026a6eb0fb$var$_updateLiveList(list) {\n var inc = list._node._inc || list._node.ownerDocument._inc;\n if (list._inc !== inc) {\n var ls = list._refresh(list._node);\n $b8f821026a6eb0fb$var$__set__(list, \"length\", ls.length);\n if (!list.$$length || ls.length < list.$$length) {\n for(var i = ls.length; (i in list); i++)if (Object.prototype.hasOwnProperty.call(list, i)) delete list[i];\n }\n $b8f821026a6eb0fb$var$copy(ls, list);\n list._inc = inc;\n }\n}\n$b8f821026a6eb0fb$var$LiveNodeList.prototype.item = function(i) {\n $b8f821026a6eb0fb$var$_updateLiveList(this);\n return this[i] || null;\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$LiveNodeList, $b8f821026a6eb0fb$var$NodeList);\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */ function $b8f821026a6eb0fb$var$NamedNodeMap() {}\nfunction $b8f821026a6eb0fb$var$_findNodeIndex(list, node) {\n var i = list.length;\n while(i--){\n if (list[i] === node) return i;\n }\n}\nfunction $b8f821026a6eb0fb$var$_addNamedNode(el, list, newAttr, oldAttr) {\n if (oldAttr) list[$b8f821026a6eb0fb$var$_findNodeIndex(list, oldAttr)] = newAttr;\n else list[list.length++] = newAttr;\n if (el) {\n newAttr.ownerElement = el;\n var doc = el.ownerDocument;\n if (doc) {\n oldAttr && $b8f821026a6eb0fb$var$_onRemoveAttribute(doc, el, oldAttr);\n $b8f821026a6eb0fb$var$_onAddAttribute(doc, el, newAttr);\n }\n }\n}\nfunction $b8f821026a6eb0fb$var$_removeNamedNode(el, list, attr) {\n //console.log('remove attr:'+attr)\n var i = $b8f821026a6eb0fb$var$_findNodeIndex(list, attr);\n if (i >= 0) {\n var lastIndex = list.length - 1;\n while(i < lastIndex)list[i] = list[++i];\n list.length = lastIndex;\n if (el) {\n var doc = el.ownerDocument;\n if (doc) {\n $b8f821026a6eb0fb$var$_onRemoveAttribute(doc, el, attr);\n attr.ownerElement = null;\n }\n }\n } else throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$NOT_FOUND_ERR, new Error(el.tagName + \"@\" + attr));\n}\n$b8f821026a6eb0fb$var$NamedNodeMap.prototype = {\n length: 0,\n item: $b8f821026a6eb0fb$var$NodeList.prototype.item,\n getNamedItem: function(key) {\n //\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n //\t\t\treturn null;\n //\t\t}\n //console.log()\n var i = this.length;\n while(i--){\n var attr = this[i];\n //console.log(attr.nodeName,key)\n if (attr.nodeName == key) return attr;\n }\n },\n setNamedItem: function(attr) {\n var el = attr.ownerElement;\n if (el && el != this._ownerElement) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$INUSE_ATTRIBUTE_ERR);\n var oldAttr = this.getNamedItem(attr.nodeName);\n $b8f821026a6eb0fb$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ setNamedItemNS: function(attr) {\n var el = attr.ownerElement, oldAttr;\n if (el && el != this._ownerElement) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$INUSE_ATTRIBUTE_ERR);\n oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n $b8f821026a6eb0fb$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ removeNamedItem: function(key) {\n var attr = this.getNamedItem(key);\n $b8f821026a6eb0fb$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n //for level2\n removeNamedItemNS: function(namespaceURI, localName) {\n var attr = this.getNamedItemNS(namespaceURI, localName);\n $b8f821026a6eb0fb$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n getNamedItemNS: function(namespaceURI, localName) {\n var i = this.length;\n while(i--){\n var node = this[i];\n if (node.localName == localName && node.namespaceURI == namespaceURI) return node;\n }\n return null;\n }\n};\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */ function $b8f821026a6eb0fb$var$DOMImplementation() {}\n$b8f821026a6eb0fb$var$DOMImplementation.prototype = {\n /**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */ hasFeature: function(feature, version) {\n return true;\n },\n /**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocument: function(namespaceURI, qualifiedName, doctype) {\n var doc = new $b8f821026a6eb0fb$var$Document();\n doc.implementation = this;\n doc.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n doc.doctype = doctype || null;\n if (doctype) doc.appendChild(doctype);\n if (qualifiedName) {\n var root = doc.createElementNS(namespaceURI, qualifiedName);\n doc.appendChild(root);\n }\n return doc;\n },\n /**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocumentType: function(qualifiedName, publicId, systemId) {\n var node = new $b8f821026a6eb0fb$var$DocumentType();\n node.name = qualifiedName;\n node.nodeName = qualifiedName;\n node.publicId = publicId || \"\";\n node.systemId = systemId || \"\";\n return node;\n }\n};\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */ function $b8f821026a6eb0fb$var$Node() {}\n$b8f821026a6eb0fb$var$Node.prototype = {\n firstChild: null,\n lastChild: null,\n previousSibling: null,\n nextSibling: null,\n attributes: null,\n parentNode: null,\n childNodes: null,\n ownerDocument: null,\n nodeValue: null,\n namespaceURI: null,\n prefix: null,\n localName: null,\n // Modified in DOM Level 2:\n insertBefore: function(newChild, refChild) {\n return $b8f821026a6eb0fb$var$_insertBefore(this, newChild, refChild);\n },\n replaceChild: function(newChild, oldChild) {\n $b8f821026a6eb0fb$var$_insertBefore(this, newChild, oldChild, $b8f821026a6eb0fb$var$assertPreReplacementValidityInDocument);\n if (oldChild) this.removeChild(oldChild);\n },\n removeChild: function(oldChild) {\n return $b8f821026a6eb0fb$var$_removeChild(this, oldChild);\n },\n appendChild: function(newChild) {\n return this.insertBefore(newChild, null);\n },\n hasChildNodes: function() {\n return this.firstChild != null;\n },\n cloneNode: function(deep) {\n return $b8f821026a6eb0fb$var$cloneNode(this.ownerDocument || this, this, deep);\n },\n // Modified in DOM Level 2:\n normalize: function() {\n var child = this.firstChild;\n while(child){\n var next = child.nextSibling;\n if (next && next.nodeType == $b8f821026a6eb0fb$var$TEXT_NODE && child.nodeType == $b8f821026a6eb0fb$var$TEXT_NODE) {\n this.removeChild(next);\n child.appendData(next.data);\n } else {\n child.normalize();\n child = next;\n }\n }\n },\n // Introduced in DOM Level 2:\n isSupported: function(feature, version) {\n return this.ownerDocument.implementation.hasFeature(feature, version);\n },\n // Introduced in DOM Level 2:\n hasAttributes: function() {\n return this.attributes.length > 0;\n },\n /**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */ lookupPrefix: function(namespaceURI) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) for(var n in map){\n if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) return n;\n }\n el = el.nodeType == $b8f821026a6eb0fb$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI: function(prefix) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) {\n if (Object.prototype.hasOwnProperty.call(map, prefix)) return map[prefix];\n }\n el = el.nodeType == $b8f821026a6eb0fb$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace: function(namespaceURI) {\n var prefix = this.lookupPrefix(namespaceURI);\n return prefix == null;\n }\n};\nfunction $b8f821026a6eb0fb$var$_xmlEncoder(c) {\n return c == \"<\" && \"<\" || c == \">\" && \">\" || c == \"&\" && \"&\" || c == '\"' && \""\" || \"&#\" + c.charCodeAt() + \";\";\n}\n$b8f821026a6eb0fb$var$copy($b8f821026a6eb0fb$var$NodeType, $b8f821026a6eb0fb$var$Node);\n$b8f821026a6eb0fb$var$copy($b8f821026a6eb0fb$var$NodeType, $b8f821026a6eb0fb$var$Node.prototype);\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */ function $b8f821026a6eb0fb$var$_visitNode(node, callback) {\n if (callback(node)) return true;\n if (node = node.firstChild) do {\n if ($b8f821026a6eb0fb$var$_visitNode(node, callback)) return true;\n }while (node = node.nextSibling);\n}\nfunction $b8f821026a6eb0fb$var$Document() {\n this.ownerDocument = this;\n}\nfunction $b8f821026a6eb0fb$var$_onAddAttribute(doc, el, newAttr) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $b8f821026a6eb0fb$var$NAMESPACE.XMLNS) //update namespace\n el._nsMap[newAttr.prefix ? newAttr.localName : \"\"] = newAttr.value;\n}\nfunction $b8f821026a6eb0fb$var$_onRemoveAttribute(doc, el, newAttr, remove) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $b8f821026a6eb0fb$var$NAMESPACE.XMLNS) //update namespace\n delete el._nsMap[newAttr.prefix ? newAttr.localName : \"\"];\n}\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */ function $b8f821026a6eb0fb$var$_onUpdateChild(doc, el, newChild) {\n if (doc && doc._inc) {\n doc._inc++;\n //update childNodes\n var cs = el.childNodes;\n if (newChild) cs[cs.length++] = newChild;\n else {\n var child = el.firstChild;\n var i = 0;\n while(child){\n cs[i++] = child;\n child = child.nextSibling;\n }\n cs.length = i;\n delete cs[cs.length];\n }\n }\n}\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */ function $b8f821026a6eb0fb$var$_removeChild(parentNode, child) {\n var previous = child.previousSibling;\n var next = child.nextSibling;\n if (previous) previous.nextSibling = next;\n else parentNode.firstChild = next;\n if (next) next.previousSibling = previous;\n else parentNode.lastChild = previous;\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n $b8f821026a6eb0fb$var$_onUpdateChild(parentNode.ownerDocument, parentNode);\n return child;\n}\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$hasValidParentNodeType(node) {\n return node && (node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.ELEMENT_NODE);\n}\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$hasInsertableNodeType(node) {\n return node && ($b8f821026a6eb0fb$var$isElementNode(node) || $b8f821026a6eb0fb$var$isTextNode(node) || $b8f821026a6eb0fb$var$isDocTypeNode(node) || node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.COMMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.PROCESSING_INSTRUCTION_NODE);\n}\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$isDocTypeNode(node) {\n return node && node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_TYPE_NODE;\n}\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$isElementNode(node) {\n return node && node.nodeType === $b8f821026a6eb0fb$var$Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$isTextNode(node) {\n return node && node.nodeType === $b8f821026a6eb0fb$var$Node.TEXT_NODE;\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $b8f821026a6eb0fb$var$isElementInsertionPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isElementNode) || $b8f821026a6eb0fb$var$isDocTypeNode(child)) return false;\n var docTypeNode = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $b8f821026a6eb0fb$var$isElementReplacementPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n function hasElementChildThatIsNotChild(node) {\n return $b8f821026a6eb0fb$var$isElementNode(node) && node !== child;\n }\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, hasElementChildThatIsNotChild)) return false;\n var docTypeNode = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $b8f821026a6eb0fb$var$assertPreInsertionValidity1to5(parent, node, child) {\n // 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n if (!$b8f821026a6eb0fb$var$hasValidParentNodeType(parent)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Unexpected parent node type \" + parent.nodeType);\n // 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n // not implemented!\n // 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n if (child && child.parentNode !== parent) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$NOT_FOUND_ERR, \"child not in parent\");\n if (// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n !$b8f821026a6eb0fb$var$hasInsertableNodeType(node) || // 5. If either `node` is a Text node and `parent` is a document,\n // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n // or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n $b8f821026a6eb0fb$var$isDocTypeNode(node) && parent.nodeType !== $b8f821026a6eb0fb$var$Node.DOCUMENT_NODE) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Unexpected node type \" + node.nodeType + \" for parent node type \" + parent.nodeType);\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $b8f821026a6eb0fb$var$assertPreInsertionValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($b8f821026a6eb0fb$var$isElementNode);\n // If node has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $b8f821026a6eb0fb$var$find(nodeChildNodes, $b8f821026a6eb0fb$var$isTextNode)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child,\n // `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$b8f821026a6eb0fb$var$isElementInsertionPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($b8f821026a6eb0fb$var$isElementNode(node)) {\n // `parent` has an element child, `child` is a doctype,\n // or `child` is non-null and a doctype is following `child`.\n if (!$b8f821026a6eb0fb$var$isElementInsertionPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($b8f821026a6eb0fb$var$isDocTypeNode(node)) {\n // `parent` has a doctype child,\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isDocTypeNode)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isElementNode);\n // `child` is non-null and an element is preceding `child`,\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n // or `child` is null and `parent` has an element child.\n if (!child && parentElementChild) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Doctype can not be appended since element is present\");\n }\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $b8f821026a6eb0fb$var$assertPreReplacementValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($b8f821026a6eb0fb$var$isElementNode);\n // If `node` has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $b8f821026a6eb0fb$var$find(nodeChildNodes, $b8f821026a6eb0fb$var$isTextNode)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$b8f821026a6eb0fb$var$isElementReplacementPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($b8f821026a6eb0fb$var$isElementNode(node)) {\n // `parent` has an element child that is not `child` or a doctype is following `child`.\n if (!$b8f821026a6eb0fb$var$isElementReplacementPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($b8f821026a6eb0fb$var$isDocTypeNode(node)) {\n function hasDoctypeChildThatIsNotChild(node) {\n return $b8f821026a6eb0fb$var$isDocTypeNode(node) && node !== child;\n }\n // `parent` has a doctype child that is not `child`,\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, hasDoctypeChildThatIsNotChild)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isElementNode);\n // or an element is preceding `child`.\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n }\n}\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $b8f821026a6eb0fb$var$_insertBefore(parent, node, child, _inDocumentAssertion) {\n // To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n $b8f821026a6eb0fb$var$assertPreInsertionValidity1to5(parent, node, child);\n // If parent is a document, and any of the statements below, switched on the interface node implements,\n // are true, then throw a \"HierarchyRequestError\" DOMException.\n if (parent.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_NODE) (_inDocumentAssertion || $b8f821026a6eb0fb$var$assertPreInsertionValidityInDocument)(parent, node, child);\n var cp = node.parentNode;\n if (cp) cp.removeChild(node); //remove and update\n if (node.nodeType === $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) {\n var newFirst = node.firstChild;\n if (newFirst == null) return node;\n var newLast = node.lastChild;\n } else newFirst = newLast = node;\n var pre = child ? child.previousSibling : parent.lastChild;\n newFirst.previousSibling = pre;\n newLast.nextSibling = child;\n if (pre) pre.nextSibling = newFirst;\n else parent.firstChild = newFirst;\n if (child == null) parent.lastChild = newLast;\n else child.previousSibling = newLast;\n do newFirst.parentNode = parent;\n while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n $b8f821026a6eb0fb$var$_onUpdateChild(parent.ownerDocument || parent, parent);\n //console.log(parent.lastChild.nextSibling == null)\n if (node.nodeType == $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) node.firstChild = node.lastChild = null;\n return node;\n}\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */ function $b8f821026a6eb0fb$var$_appendSingleChild(parentNode, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.parentNode = parentNode;\n newChild.previousSibling = parentNode.lastChild;\n newChild.nextSibling = null;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parentNode.firstChild = newChild;\n parentNode.lastChild = newChild;\n $b8f821026a6eb0fb$var$_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n return newChild;\n}\n$b8f821026a6eb0fb$var$Document.prototype = {\n //implementation : null,\n nodeName: \"#document\",\n nodeType: $b8f821026a6eb0fb$var$DOCUMENT_NODE,\n /**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */ doctype: null,\n documentElement: null,\n _inc: 1,\n insertBefore: function(newChild, refChild) {\n if (newChild.nodeType == $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) {\n var child = newChild.firstChild;\n while(child){\n var next = child.nextSibling;\n this.insertBefore(child, refChild);\n child = next;\n }\n return newChild;\n }\n $b8f821026a6eb0fb$var$_insertBefore(this, newChild, refChild);\n newChild.ownerDocument = this;\n if (this.documentElement === null && newChild.nodeType === $b8f821026a6eb0fb$var$ELEMENT_NODE) this.documentElement = newChild;\n return newChild;\n },\n removeChild: function(oldChild) {\n if (this.documentElement == oldChild) this.documentElement = null;\n return $b8f821026a6eb0fb$var$_removeChild(this, oldChild);\n },\n replaceChild: function(newChild, oldChild) {\n //raises\n $b8f821026a6eb0fb$var$_insertBefore(this, newChild, oldChild, $b8f821026a6eb0fb$var$assertPreReplacementValidityInDocument);\n newChild.ownerDocument = this;\n if (oldChild) this.removeChild(oldChild);\n if ($b8f821026a6eb0fb$var$isElementNode(newChild)) this.documentElement = newChild;\n },\n // Introduced in DOM Level 2:\n importNode: function(importedNode, deep) {\n return $b8f821026a6eb0fb$var$importNode(this, importedNode, deep);\n },\n // Introduced in DOM Level 2:\n getElementById: function(id) {\n var rtv = null;\n $b8f821026a6eb0fb$var$_visitNode(this.documentElement, function(node) {\n if (node.nodeType == $b8f821026a6eb0fb$var$ELEMENT_NODE) {\n if (node.getAttribute(\"id\") == id) {\n rtv = node;\n return true;\n }\n }\n });\n return rtv;\n },\n /**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */ getElementsByClassName: function(classNames) {\n var classNamesSet = $b8f821026a6eb0fb$var$toOrderedSet(classNames);\n return new $b8f821026a6eb0fb$var$LiveNodeList(this, function(base) {\n var ls = [];\n if (classNamesSet.length > 0) $b8f821026a6eb0fb$var$_visitNode(base.documentElement, function(node) {\n if (node !== base && node.nodeType === $b8f821026a6eb0fb$var$ELEMENT_NODE) {\n var nodeClassNames = node.getAttribute(\"class\");\n // can be null if the attribute does not exist\n if (nodeClassNames) {\n // before splitting and iterating just compare them for the most common case\n var matches = classNames === nodeClassNames;\n if (!matches) {\n var nodeClassNamesSet = $b8f821026a6eb0fb$var$toOrderedSet(nodeClassNames);\n matches = classNamesSet.every($b8f821026a6eb0fb$var$arrayIncludes(nodeClassNamesSet));\n }\n if (matches) ls.push(node);\n }\n }\n });\n return ls;\n });\n },\n //document factory method:\n createElement: function(tagName) {\n var node = new $b8f821026a6eb0fb$var$Element();\n node.ownerDocument = this;\n node.nodeName = tagName;\n node.tagName = tagName;\n node.localName = tagName;\n node.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n var attrs = node.attributes = new $b8f821026a6eb0fb$var$NamedNodeMap();\n attrs._ownerElement = node;\n return node;\n },\n createDocumentFragment: function() {\n var node = new $b8f821026a6eb0fb$var$DocumentFragment();\n node.ownerDocument = this;\n node.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n return node;\n },\n createTextNode: function(data) {\n var node = new $b8f821026a6eb0fb$var$Text();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createComment: function(data) {\n var node = new $b8f821026a6eb0fb$var$Comment();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createCDATASection: function(data) {\n var node = new $b8f821026a6eb0fb$var$CDATASection();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createProcessingInstruction: function(target, data) {\n var node = new $b8f821026a6eb0fb$var$ProcessingInstruction();\n node.ownerDocument = this;\n node.tagName = node.nodeName = node.target = target;\n node.nodeValue = node.data = data;\n return node;\n },\n createAttribute: function(name) {\n var node = new $b8f821026a6eb0fb$var$Attr();\n node.ownerDocument = this;\n node.name = name;\n node.nodeName = name;\n node.localName = name;\n node.specified = true;\n return node;\n },\n createEntityReference: function(name) {\n var node = new $b8f821026a6eb0fb$var$EntityReference();\n node.ownerDocument = this;\n node.nodeName = name;\n return node;\n },\n // Introduced in DOM Level 2:\n createElementNS: function(namespaceURI, qualifiedName) {\n var node = new $b8f821026a6eb0fb$var$Element();\n var pl = qualifiedName.split(\":\");\n var attrs = node.attributes = new $b8f821026a6eb0fb$var$NamedNodeMap();\n node.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.tagName = qualifiedName;\n node.namespaceURI = namespaceURI;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n attrs._ownerElement = node;\n return node;\n },\n // Introduced in DOM Level 2:\n createAttributeNS: function(namespaceURI, qualifiedName) {\n var node = new $b8f821026a6eb0fb$var$Attr();\n var pl = qualifiedName.split(\":\");\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.name = qualifiedName;\n node.namespaceURI = namespaceURI;\n node.specified = true;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n return node;\n }\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Document, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Element() {\n this._nsMap = {};\n}\n$b8f821026a6eb0fb$var$Element.prototype = {\n nodeType: $b8f821026a6eb0fb$var$ELEMENT_NODE,\n hasAttribute: function(name) {\n return this.getAttributeNode(name) != null;\n },\n getAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n return attr && attr.value || \"\";\n },\n getAttributeNode: function(name) {\n return this.attributes.getNamedItem(name);\n },\n setAttribute: function(name, value) {\n var attr = this.ownerDocument.createAttribute(name);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n removeAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n attr && this.removeAttributeNode(attr);\n },\n //four real opeartion method\n appendChild: function(newChild) {\n if (newChild.nodeType === $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) return this.insertBefore(newChild, null);\n else return $b8f821026a6eb0fb$var$_appendSingleChild(this, newChild);\n },\n setAttributeNode: function(newAttr) {\n return this.attributes.setNamedItem(newAttr);\n },\n setAttributeNodeNS: function(newAttr) {\n return this.attributes.setNamedItemNS(newAttr);\n },\n removeAttributeNode: function(oldAttr) {\n //console.log(this == oldAttr.ownerElement)\n return this.attributes.removeNamedItem(oldAttr.nodeName);\n },\n //get real attribute name,and remove it by removeAttributeNode\n removeAttributeNS: function(namespaceURI, localName) {\n var old = this.getAttributeNodeNS(namespaceURI, localName);\n old && this.removeAttributeNode(old);\n },\n hasAttributeNS: function(namespaceURI, localName) {\n return this.getAttributeNodeNS(namespaceURI, localName) != null;\n },\n getAttributeNS: function(namespaceURI, localName) {\n var attr = this.getAttributeNodeNS(namespaceURI, localName);\n return attr && attr.value || \"\";\n },\n setAttributeNS: function(namespaceURI, qualifiedName, value) {\n var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n getAttributeNodeNS: function(namespaceURI, localName) {\n return this.attributes.getNamedItemNS(namespaceURI, localName);\n },\n getElementsByTagName: function(tagName) {\n return new $b8f821026a6eb0fb$var$LiveNodeList(this, function(base) {\n var ls = [];\n $b8f821026a6eb0fb$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType == $b8f821026a6eb0fb$var$ELEMENT_NODE && (tagName === \"*\" || node.tagName == tagName)) ls.push(node);\n });\n return ls;\n });\n },\n getElementsByTagNameNS: function(namespaceURI, localName) {\n return new $b8f821026a6eb0fb$var$LiveNodeList(this, function(base) {\n var ls = [];\n $b8f821026a6eb0fb$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType === $b8f821026a6eb0fb$var$ELEMENT_NODE && (namespaceURI === \"*\" || node.namespaceURI === namespaceURI) && (localName === \"*\" || node.localName == localName)) ls.push(node);\n });\n return ls;\n });\n }\n};\n$b8f821026a6eb0fb$var$Document.prototype.getElementsByTagName = $b8f821026a6eb0fb$var$Element.prototype.getElementsByTagName;\n$b8f821026a6eb0fb$var$Document.prototype.getElementsByTagNameNS = $b8f821026a6eb0fb$var$Element.prototype.getElementsByTagNameNS;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Element, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Attr() {}\n$b8f821026a6eb0fb$var$Attr.prototype.nodeType = $b8f821026a6eb0fb$var$ATTRIBUTE_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Attr, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$CharacterData() {}\n$b8f821026a6eb0fb$var$CharacterData.prototype = {\n data: \"\",\n substringData: function(offset, count) {\n return this.data.substring(offset, offset + count);\n },\n appendData: function(text) {\n text = this.data + text;\n this.nodeValue = this.data = text;\n this.length = text.length;\n },\n insertData: function(offset, text) {\n this.replaceData(offset, 0, text);\n },\n appendChild: function(newChild) {\n throw new Error($b8f821026a6eb0fb$var$ExceptionMessage[$b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR]);\n },\n deleteData: function(offset, count) {\n this.replaceData(offset, count, \"\");\n },\n replaceData: function(offset, count, text) {\n var start = this.data.substring(0, offset);\n var end = this.data.substring(offset + count);\n text = start + text + end;\n this.nodeValue = this.data = text;\n this.length = text.length;\n }\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$CharacterData, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Text() {}\n$b8f821026a6eb0fb$var$Text.prototype = {\n nodeName: \"#text\",\n nodeType: $b8f821026a6eb0fb$var$TEXT_NODE,\n splitText: function(offset) {\n var text = this.data;\n var newText = text.substring(offset);\n text = text.substring(0, offset);\n this.data = this.nodeValue = text;\n this.length = text.length;\n var newNode = this.ownerDocument.createTextNode(newText);\n if (this.parentNode) this.parentNode.insertBefore(newNode, this.nextSibling);\n return newNode;\n }\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Text, $b8f821026a6eb0fb$var$CharacterData);\nfunction $b8f821026a6eb0fb$var$Comment() {}\n$b8f821026a6eb0fb$var$Comment.prototype = {\n nodeName: \"#comment\",\n nodeType: $b8f821026a6eb0fb$var$COMMENT_NODE\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Comment, $b8f821026a6eb0fb$var$CharacterData);\nfunction $b8f821026a6eb0fb$var$CDATASection() {}\n$b8f821026a6eb0fb$var$CDATASection.prototype = {\n nodeName: \"#cdata-section\",\n nodeType: $b8f821026a6eb0fb$var$CDATA_SECTION_NODE\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$CDATASection, $b8f821026a6eb0fb$var$CharacterData);\nfunction $b8f821026a6eb0fb$var$DocumentType() {}\n$b8f821026a6eb0fb$var$DocumentType.prototype.nodeType = $b8f821026a6eb0fb$var$DOCUMENT_TYPE_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$DocumentType, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Notation() {}\n$b8f821026a6eb0fb$var$Notation.prototype.nodeType = $b8f821026a6eb0fb$var$NOTATION_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Notation, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Entity() {}\n$b8f821026a6eb0fb$var$Entity.prototype.nodeType = $b8f821026a6eb0fb$var$ENTITY_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Entity, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$EntityReference() {}\n$b8f821026a6eb0fb$var$EntityReference.prototype.nodeType = $b8f821026a6eb0fb$var$ENTITY_REFERENCE_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$EntityReference, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$DocumentFragment() {}\n$b8f821026a6eb0fb$var$DocumentFragment.prototype.nodeName = \"#document-fragment\";\n$b8f821026a6eb0fb$var$DocumentFragment.prototype.nodeType = $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$DocumentFragment, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$ProcessingInstruction() {}\n$b8f821026a6eb0fb$var$ProcessingInstruction.prototype.nodeType = $b8f821026a6eb0fb$var$PROCESSING_INSTRUCTION_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$ProcessingInstruction, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$XMLSerializer() {}\n$b8f821026a6eb0fb$var$XMLSerializer.prototype.serializeToString = function(node, isHtml, nodeFilter) {\n return $b8f821026a6eb0fb$var$nodeSerializeToString.call(node, isHtml, nodeFilter);\n};\n$b8f821026a6eb0fb$var$Node.prototype.toString = $b8f821026a6eb0fb$var$nodeSerializeToString;\nfunction $b8f821026a6eb0fb$var$nodeSerializeToString(isHtml, nodeFilter) {\n var buf = [];\n var refNode = this.nodeType == 9 && this.documentElement || this;\n var prefix = refNode.prefix;\n var uri = refNode.namespaceURI;\n if (uri && prefix == null) {\n //console.log(prefix)\n var prefix = refNode.lookupPrefix(uri);\n if (prefix == null) //isHTML = true;\n var visibleNamespaces = [\n {\n namespace: uri,\n prefix: null\n }\n ];\n }\n $b8f821026a6eb0fb$var$serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);\n //console.log('###',this.nodeType,uri,prefix,buf.join(''))\n return buf.join(\"\");\n}\nfunction $b8f821026a6eb0fb$var$needNamespaceDefine(node, isHTML, visibleNamespaces) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n // > [...] Furthermore, the attribute value [...] must not be an empty string.\n // so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n if (!uri) return false;\n if (prefix === \"xml\" && uri === $b8f821026a6eb0fb$var$NAMESPACE.XML || uri === $b8f821026a6eb0fb$var$NAMESPACE.XMLNS) return false;\n var i = visibleNamespaces.length;\n while(i--){\n var ns = visibleNamespaces[i];\n // get namespace prefix\n if (ns.prefix === prefix) return ns.namespace !== uri;\n }\n return true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */ function $b8f821026a6eb0fb$var$addSerializedAttribute(buf, qualifiedName, value) {\n buf.push(\" \", qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, $b8f821026a6eb0fb$var$_xmlEncoder), '\"');\n}\nfunction $b8f821026a6eb0fb$var$serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) {\n if (!visibleNamespaces) visibleNamespaces = [];\n if (nodeFilter) {\n node = nodeFilter(node);\n if (node) {\n if (typeof node == \"string\") {\n buf.push(node);\n return;\n }\n } else return;\n //buf.sort.apply(attrs, attributeSorter);\n }\n switch(node.nodeType){\n case $b8f821026a6eb0fb$var$ELEMENT_NODE:\n var attrs = node.attributes;\n var len = attrs.length;\n var child = node.firstChild;\n var nodeName = node.tagName;\n isHTML = $b8f821026a6eb0fb$var$NAMESPACE.isHTML(node.namespaceURI) || isHTML;\n var prefixedNodeName = nodeName;\n if (!isHTML && !node.prefix && node.namespaceURI) {\n var defaultNS;\n // lookup current default ns from `xmlns` attribute\n for(var ai = 0; ai < attrs.length; ai++)if (attrs.item(ai).name === \"xmlns\") {\n defaultNS = attrs.item(ai).value;\n break;\n }\n if (!defaultNS) // lookup current default ns in visibleNamespaces\n for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.prefix === \"\" && namespace.namespace === node.namespaceURI) {\n defaultNS = namespace.namespace;\n break;\n }\n }\n if (defaultNS !== node.namespaceURI) for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.namespace === node.namespaceURI) {\n if (namespace.prefix) prefixedNodeName = namespace.prefix + \":\" + nodeName;\n break;\n }\n }\n }\n buf.push(\"<\", prefixedNodeName);\n for(var i = 0; i < len; i++){\n // add namespaces for attributes\n var attr = attrs.item(i);\n if (attr.prefix == \"xmlns\") visibleNamespaces.push({\n prefix: attr.localName,\n namespace: attr.value\n });\n else if (attr.nodeName == \"xmlns\") visibleNamespaces.push({\n prefix: \"\",\n namespace: attr.value\n });\n }\n for(var i = 0; i < len; i++){\n var attr = attrs.item(i);\n if ($b8f821026a6eb0fb$var$needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n var prefix = attr.prefix || \"\";\n var uri = attr.namespaceURI;\n $b8f821026a6eb0fb$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n $b8f821026a6eb0fb$var$serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces);\n }\n // add namespace for current node\n if (nodeName === prefixedNodeName && $b8f821026a6eb0fb$var$needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n $b8f821026a6eb0fb$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n buf.push(\">\");\n //if is cdata child node\n if (isHTML && /^script$/i.test(nodeName)) while(child){\n if (child.data) buf.push(child.data);\n else $b8f821026a6eb0fb$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n else while(child){\n $b8f821026a6eb0fb$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n buf.push(\"\");\n } else buf.push(\"/>\");\n // remove added visible namespaces\n //visibleNamespaces.length = startVisibleNamespaces;\n return;\n case $b8f821026a6eb0fb$var$DOCUMENT_NODE:\n case $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE:\n var child = node.firstChild;\n while(child){\n $b8f821026a6eb0fb$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n return;\n case $b8f821026a6eb0fb$var$ATTRIBUTE_NODE:\n return $b8f821026a6eb0fb$var$addSerializedAttribute(buf, node.name, node.value);\n case $b8f821026a6eb0fb$var$TEXT_NODE:\n /**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */ return buf.push(node.data.replace(/[<&>]/g, $b8f821026a6eb0fb$var$_xmlEncoder));\n case $b8f821026a6eb0fb$var$CDATA_SECTION_NODE:\n return buf.push(\"\");\n case $b8f821026a6eb0fb$var$COMMENT_NODE:\n return buf.push(\"\");\n case $b8f821026a6eb0fb$var$DOCUMENT_TYPE_NODE:\n var pubid = node.publicId;\n var sysid = node.systemId;\n buf.push(\"\");\n } else if (sysid && sysid != \".\") buf.push(\" SYSTEM \", sysid, \">\");\n else {\n var sub = node.internalSubset;\n if (sub) buf.push(\" [\", sub, \"]\");\n buf.push(\">\");\n }\n return;\n case $b8f821026a6eb0fb$var$PROCESSING_INSTRUCTION_NODE:\n return buf.push(\"\");\n case $b8f821026a6eb0fb$var$ENTITY_REFERENCE_NODE:\n return buf.push(\"&\", node.nodeName, \";\");\n //case ENTITY_NODE:\n //case NOTATION_NODE:\n default:\n buf.push(\"??\", node.nodeName);\n }\n}\nfunction $b8f821026a6eb0fb$var$importNode(doc, node, deep) {\n var node2;\n switch(node.nodeType){\n case $b8f821026a6eb0fb$var$ELEMENT_NODE:\n node2 = node.cloneNode(false);\n node2.ownerDocument = doc;\n //var attrs = node2.attributes;\n //var len = attrs.length;\n //for(var i=0;i $0c152f5a1a56ce9f$export$71aa6c912b956294, (v) => $0c152f5a1a56ce9f$export$71aa6c912b956294 = v);\n$parcel$export(module.exports, \"freeze\", () => $0c152f5a1a56ce9f$export$792f3d81ea979f55, (v) => $0c152f5a1a56ce9f$export$792f3d81ea979f55 = v);\n$parcel$export(module.exports, \"NAMESPACE\", () => $0c152f5a1a56ce9f$export$6aad947bda0f3f46, (v) => $0c152f5a1a56ce9f$export$6aad947bda0f3f46 = v);\nvar $0c152f5a1a56ce9f$export$e6e34fd1f2686227;\nvar $0c152f5a1a56ce9f$export$71aa6c912b956294;\nvar $0c152f5a1a56ce9f$export$792f3d81ea979f55;\nvar $0c152f5a1a56ce9f$export$c6cb9dd1e3ada1aa;\nvar $0c152f5a1a56ce9f$export$6aad947bda0f3f46;\n\"use strict\";\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */ function $0c152f5a1a56ce9f$var$find(list, predicate, ac) {\n if (ac === undefined) ac = Array.prototype;\n if (list && typeof ac.find === \"function\") return ac.find.call(list, predicate);\n for(var i = 0; i < list.length; i++)if (Object.prototype.hasOwnProperty.call(list, i)) {\n var item = list[i];\n if (predicate.call(undefined, item, i, list)) return item;\n }\n}\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */ function $0c152f5a1a56ce9f$var$freeze(object, oc) {\n if (oc === undefined) oc = Object;\n return oc && typeof oc.freeze === \"function\" ? oc.freeze(object) : object;\n}\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */ function $0c152f5a1a56ce9f$var$assign(target, source) {\n if (target === null || typeof target !== \"object\") throw new TypeError(\"target is not an object\");\n for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n return target;\n}\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */ var $0c152f5a1a56ce9f$var$MIME_TYPE = $0c152f5a1a56ce9f$var$freeze({\n /**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */ HTML: \"text/html\",\n /**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */ isHTML: function(value) {\n return value === $0c152f5a1a56ce9f$var$MIME_TYPE.HTML;\n },\n /**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_APPLICATION: \"application/xml\",\n /**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_TEXT: \"text/xml\",\n /**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */ XML_XHTML_APPLICATION: \"application/xhtml+xml\",\n /**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */ XML_SVG_IMAGE: \"image/svg+xml\"\n});\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */ var $0c152f5a1a56ce9f$var$NAMESPACE = $0c152f5a1a56ce9f$var$freeze({\n /**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */ HTML: \"http://www.w3.org/1999/xhtml\",\n /**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */ isHTML: function(uri) {\n return uri === $0c152f5a1a56ce9f$var$NAMESPACE.HTML;\n },\n /**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */ SVG: \"http://www.w3.org/2000/svg\",\n /**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */ XML: \"http://www.w3.org/XML/1998/namespace\",\n /**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */ XMLNS: \"http://www.w3.org/2000/xmlns/\"\n});\n$0c152f5a1a56ce9f$export$e6e34fd1f2686227 = $0c152f5a1a56ce9f$var$assign;\n$0c152f5a1a56ce9f$export$71aa6c912b956294 = $0c152f5a1a56ce9f$var$find;\n$0c152f5a1a56ce9f$export$792f3d81ea979f55 = $0c152f5a1a56ce9f$var$freeze;\n$0c152f5a1a56ce9f$export$c6cb9dd1e3ada1aa = $0c152f5a1a56ce9f$var$MIME_TYPE;\n$0c152f5a1a56ce9f$export$6aad947bda0f3f46 = $0c152f5a1a56ce9f$var$NAMESPACE;\n\n});\n\n\nparcelRegister(\"i9SYz\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $d383b6561dce1487$export$1059c6e7d2ce5669, (v) => $d383b6561dce1487$export$1059c6e7d2ce5669 = v);\nvar $d383b6561dce1487$export$181392475aa39887;\nvar $d383b6561dce1487$export$ba13e0e2f19e61a1;\nvar $d383b6561dce1487$export$1059c6e7d2ce5669;\n\nvar $12jBw = parcelRequire(\"12jBw\");\n\nvar $fSAop = parcelRequire(\"fSAop\");\n\nvar $g5ebD = parcelRequire(\"g5ebD\");\n\nvar $gqQA6 = parcelRequire(\"gqQA6\");\nvar $d383b6561dce1487$var$DOMImplementation = $fSAop.DOMImplementation;\nvar $d383b6561dce1487$var$NAMESPACE = $12jBw.NAMESPACE;\nvar $d383b6561dce1487$var$ParseError = $gqQA6.ParseError;\nvar $d383b6561dce1487$var$XMLReader = $gqQA6.XMLReader;\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */ function $d383b6561dce1487$var$normalizeLineEndings(input) {\n return input.replace(/\\r[\\n\\u0085]/g, \"\\n\").replace(/[\\r\\u0085\\u2028]/g, \"\\n\");\n}\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */ /**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */ /**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */ function $d383b6561dce1487$var$DOMParser(options) {\n this.options = options || {\n locator: {}\n };\n}\n$d383b6561dce1487$var$DOMParser.prototype.parseFromString = function(source, mimeType) {\n var options = this.options;\n var sax = new $d383b6561dce1487$var$XMLReader();\n var domBuilder = options.domBuilder || new $d383b6561dce1487$var$DOMHandler(); //contentHandler and LexicalHandler\n var errorHandler = options.errorHandler;\n var locator = options.locator;\n var defaultNSMap = options.xmlns || {};\n var isHTML = /\\/x?html?$/.test(mimeType); //mimeType.toLowerCase().indexOf('html') > -1;\n var entityMap = isHTML ? $g5ebD.HTML_ENTITIES : $g5ebD.XML_ENTITIES;\n if (locator) domBuilder.setDocumentLocator(locator);\n sax.errorHandler = $d383b6561dce1487$var$buildErrorHandler(errorHandler, domBuilder, locator);\n sax.domBuilder = options.domBuilder || domBuilder;\n if (isHTML) defaultNSMap[\"\"] = $d383b6561dce1487$var$NAMESPACE.HTML;\n defaultNSMap.xml = defaultNSMap.xml || $d383b6561dce1487$var$NAMESPACE.XML;\n var normalize = options.normalizeLineEndings || $d383b6561dce1487$var$normalizeLineEndings;\n if (source && typeof source === \"string\") sax.parse(normalize(source), defaultNSMap, entityMap);\n else sax.errorHandler.error(\"invalid doc source\");\n return domBuilder.doc;\n};\nfunction $d383b6561dce1487$var$buildErrorHandler(errorImpl, domBuilder, locator) {\n if (!errorImpl) {\n if (domBuilder instanceof $d383b6561dce1487$var$DOMHandler) return domBuilder;\n errorImpl = domBuilder;\n }\n var errorHandler = {};\n var isCallback = errorImpl instanceof Function;\n locator = locator || {};\n function build(key) {\n var fn = errorImpl[key];\n if (!fn && isCallback) fn = errorImpl.length == 2 ? function(msg) {\n errorImpl(key, msg);\n } : errorImpl;\n errorHandler[key] = fn && function(msg) {\n fn(\"[xmldom \" + key + \"]\t\" + msg + $d383b6561dce1487$var$_locator(locator));\n } || function() {};\n }\n build(\"warning\");\n build(\"error\");\n build(\"fatalError\");\n return errorHandler;\n}\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */ function $d383b6561dce1487$var$DOMHandler() {\n this.cdata = false;\n}\nfunction $d383b6561dce1487$var$position(locator, node) {\n node.lineNumber = locator.lineNumber;\n node.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */ $d383b6561dce1487$var$DOMHandler.prototype = {\n startDocument: function() {\n this.doc = new $d383b6561dce1487$var$DOMImplementation().createDocument(null, null, null);\n if (this.locator) this.doc.documentURI = this.locator.systemId;\n },\n startElement: function(namespaceURI, localName, qName, attrs) {\n var doc = this.doc;\n var el = doc.createElementNS(namespaceURI, qName || localName);\n var len = attrs.length;\n $d383b6561dce1487$var$appendElement(this, el);\n this.currentElement = el;\n this.locator && $d383b6561dce1487$var$position(this.locator, el);\n for(var i = 0; i < len; i++){\n var namespaceURI = attrs.getURI(i);\n var value = attrs.getValue(i);\n var qName = attrs.getQName(i);\n var attr = doc.createAttributeNS(namespaceURI, qName);\n this.locator && $d383b6561dce1487$var$position(attrs.getLocator(i), attr);\n attr.value = attr.nodeValue = value;\n el.setAttributeNode(attr);\n }\n },\n endElement: function(namespaceURI, localName, qName) {\n var current = this.currentElement;\n var tagName = current.tagName;\n this.currentElement = current.parentNode;\n },\n startPrefixMapping: function(prefix, uri) {},\n endPrefixMapping: function(prefix) {},\n processingInstruction: function(target, data) {\n var ins = this.doc.createProcessingInstruction(target, data);\n this.locator && $d383b6561dce1487$var$position(this.locator, ins);\n $d383b6561dce1487$var$appendElement(this, ins);\n },\n ignorableWhitespace: function(ch, start, length) {},\n characters: function(chars, start, length) {\n chars = $d383b6561dce1487$var$_toString.apply(this, arguments);\n //console.log(chars)\n if (chars) {\n if (this.cdata) var charNode = this.doc.createCDATASection(chars);\n else var charNode = this.doc.createTextNode(chars);\n if (this.currentElement) this.currentElement.appendChild(charNode);\n else if (/^\\s*$/.test(chars)) this.doc.appendChild(charNode);\n this.locator && $d383b6561dce1487$var$position(this.locator, charNode);\n }\n },\n skippedEntity: function(name) {},\n endDocument: function() {\n this.doc.normalize();\n },\n setDocumentLocator: function(locator) {\n if (this.locator = locator) locator.lineNumber = 0;\n },\n //LexicalHandler\n comment: function(chars, start, length) {\n chars = $d383b6561dce1487$var$_toString.apply(this, arguments);\n var comm = this.doc.createComment(chars);\n this.locator && $d383b6561dce1487$var$position(this.locator, comm);\n $d383b6561dce1487$var$appendElement(this, comm);\n },\n startCDATA: function() {\n //used in characters() methods\n this.cdata = true;\n },\n endCDATA: function() {\n this.cdata = false;\n },\n startDTD: function(name, publicId, systemId) {\n var impl = this.doc.implementation;\n if (impl && impl.createDocumentType) {\n var dt = impl.createDocumentType(name, publicId, systemId);\n this.locator && $d383b6561dce1487$var$position(this.locator, dt);\n $d383b6561dce1487$var$appendElement(this, dt);\n this.doc.doctype = dt;\n }\n },\n /**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */ warning: function(error) {\n console.warn(\"[xmldom warning]\t\" + error, $d383b6561dce1487$var$_locator(this.locator));\n },\n error: function(error) {\n console.error(\"[xmldom error]\t\" + error, $d383b6561dce1487$var$_locator(this.locator));\n },\n fatalError: function(error) {\n throw new $d383b6561dce1487$var$ParseError(error, this.locator);\n }\n};\nfunction $d383b6561dce1487$var$_locator(l) {\n if (l) return \"\\n@\" + (l.systemId || \"\") + \"#[line:\" + l.lineNumber + \",col:\" + l.columnNumber + \"]\";\n}\nfunction $d383b6561dce1487$var$_toString(chars, start, length) {\n if (typeof chars == \"string\") return chars.substr(start, length);\n else {\n if (chars.length >= start + length || start) return new java.lang.String(chars, start, length) + \"\";\n return chars;\n }\n}\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */ \"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g, function(key) {\n $d383b6561dce1487$var$DOMHandler.prototype[key] = function() {\n return null;\n };\n});\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ function $d383b6561dce1487$var$appendElement(hander, node) {\n if (!hander.currentElement) hander.doc.appendChild(node);\n else hander.currentElement.appendChild(node);\n} //appendChild and setAttributeNS are preformance key\n$d383b6561dce1487$export$181392475aa39887 = $d383b6561dce1487$var$DOMHandler;\n$d383b6561dce1487$export$ba13e0e2f19e61a1 = $d383b6561dce1487$var$normalizeLineEndings;\n$d383b6561dce1487$export$1059c6e7d2ce5669 = $d383b6561dce1487$var$DOMParser;\n\n});\nparcelRegister(\"g5ebD\", function(module, exports) {\n\n$parcel$export(module.exports, \"XML_ENTITIES\", () => $bb581e29d81da91f$export$91f0e5ff03dc84f, (v) => $bb581e29d81da91f$export$91f0e5ff03dc84f = v);\n$parcel$export(module.exports, \"HTML_ENTITIES\", () => $bb581e29d81da91f$export$b7e4d4631df36afa, (v) => $bb581e29d81da91f$export$b7e4d4631df36afa = v);\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */ var $bb581e29d81da91f$export$91f0e5ff03dc84f;\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */ var $bb581e29d81da91f$export$b7e4d4631df36afa;\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */ var $bb581e29d81da91f$export$79451380caed3f98;\n\"use strict\";\n\nvar $12jBw = parcelRequire(\"12jBw\");\nvar $bb581e29d81da91f$require$freeze = $12jBw.freeze;\n$bb581e29d81da91f$export$91f0e5ff03dc84f = $bb581e29d81da91f$require$freeze({\n amp: \"&\",\n apos: \"'\",\n gt: \">\",\n lt: \"<\",\n quot: '\"'\n});\n$bb581e29d81da91f$export$b7e4d4631df36afa = $bb581e29d81da91f$require$freeze({\n Aacute: \"\\xc1\",\n aacute: \"\\xe1\",\n Abreve: \"\\u0102\",\n abreve: \"\\u0103\",\n ac: \"\\u223E\",\n acd: \"\\u223F\",\n acE: \"\\u223E\\u0333\",\n Acirc: \"\\xc2\",\n acirc: \"\\xe2\",\n acute: \"\\xb4\",\n Acy: \"\\u0410\",\n acy: \"\\u0430\",\n AElig: \"\\xc6\",\n aelig: \"\\xe6\",\n af: \"\\u2061\",\n Afr: \"\\uD835\\uDD04\",\n afr: \"\\uD835\\uDD1E\",\n Agrave: \"\\xc0\",\n agrave: \"\\xe0\",\n alefsym: \"\\u2135\",\n aleph: \"\\u2135\",\n Alpha: \"\\u0391\",\n alpha: \"\\u03B1\",\n Amacr: \"\\u0100\",\n amacr: \"\\u0101\",\n amalg: \"\\u2A3F\",\n AMP: \"&\",\n amp: \"&\",\n And: \"\\u2A53\",\n and: \"\\u2227\",\n andand: \"\\u2A55\",\n andd: \"\\u2A5C\",\n andslope: \"\\u2A58\",\n andv: \"\\u2A5A\",\n ang: \"\\u2220\",\n ange: \"\\u29A4\",\n angle: \"\\u2220\",\n angmsd: \"\\u2221\",\n angmsdaa: \"\\u29A8\",\n angmsdab: \"\\u29A9\",\n angmsdac: \"\\u29AA\",\n angmsdad: \"\\u29AB\",\n angmsdae: \"\\u29AC\",\n angmsdaf: \"\\u29AD\",\n angmsdag: \"\\u29AE\",\n angmsdah: \"\\u29AF\",\n angrt: \"\\u221F\",\n angrtvb: \"\\u22BE\",\n angrtvbd: \"\\u299D\",\n angsph: \"\\u2222\",\n angst: \"\\xc5\",\n angzarr: \"\\u237C\",\n Aogon: \"\\u0104\",\n aogon: \"\\u0105\",\n Aopf: \"\\uD835\\uDD38\",\n aopf: \"\\uD835\\uDD52\",\n ap: \"\\u2248\",\n apacir: \"\\u2A6F\",\n apE: \"\\u2A70\",\n ape: \"\\u224A\",\n apid: \"\\u224B\",\n apos: \"'\",\n ApplyFunction: \"\\u2061\",\n approx: \"\\u2248\",\n approxeq: \"\\u224A\",\n Aring: \"\\xc5\",\n aring: \"\\xe5\",\n Ascr: \"\\uD835\\uDC9C\",\n ascr: \"\\uD835\\uDCB6\",\n Assign: \"\\u2254\",\n ast: \"*\",\n asymp: \"\\u2248\",\n asympeq: \"\\u224D\",\n Atilde: \"\\xc3\",\n atilde: \"\\xe3\",\n Auml: \"\\xc4\",\n auml: \"\\xe4\",\n awconint: \"\\u2233\",\n awint: \"\\u2A11\",\n backcong: \"\\u224C\",\n backepsilon: \"\\u03F6\",\n backprime: \"\\u2035\",\n backsim: \"\\u223D\",\n backsimeq: \"\\u22CD\",\n Backslash: \"\\u2216\",\n Barv: \"\\u2AE7\",\n barvee: \"\\u22BD\",\n Barwed: \"\\u2306\",\n barwed: \"\\u2305\",\n barwedge: \"\\u2305\",\n bbrk: \"\\u23B5\",\n bbrktbrk: \"\\u23B6\",\n bcong: \"\\u224C\",\n Bcy: \"\\u0411\",\n bcy: \"\\u0431\",\n bdquo: \"\\u201E\",\n becaus: \"\\u2235\",\n Because: \"\\u2235\",\n because: \"\\u2235\",\n bemptyv: \"\\u29B0\",\n bepsi: \"\\u03F6\",\n bernou: \"\\u212C\",\n Bernoullis: \"\\u212C\",\n Beta: \"\\u0392\",\n beta: \"\\u03B2\",\n beth: \"\\u2136\",\n between: \"\\u226C\",\n Bfr: \"\\uD835\\uDD05\",\n bfr: \"\\uD835\\uDD1F\",\n bigcap: \"\\u22C2\",\n bigcirc: \"\\u25EF\",\n bigcup: \"\\u22C3\",\n bigodot: \"\\u2A00\",\n bigoplus: \"\\u2A01\",\n bigotimes: \"\\u2A02\",\n bigsqcup: \"\\u2A06\",\n bigstar: \"\\u2605\",\n bigtriangledown: \"\\u25BD\",\n bigtriangleup: \"\\u25B3\",\n biguplus: \"\\u2A04\",\n bigvee: \"\\u22C1\",\n bigwedge: \"\\u22C0\",\n bkarow: \"\\u290D\",\n blacklozenge: \"\\u29EB\",\n blacksquare: \"\\u25AA\",\n blacktriangle: \"\\u25B4\",\n blacktriangledown: \"\\u25BE\",\n blacktriangleleft: \"\\u25C2\",\n blacktriangleright: \"\\u25B8\",\n blank: \"\\u2423\",\n blk12: \"\\u2592\",\n blk14: \"\\u2591\",\n blk34: \"\\u2593\",\n block: \"\\u2588\",\n bne: \"=\\u20E5\",\n bnequiv: \"\\u2261\\u20E5\",\n bNot: \"\\u2AED\",\n bnot: \"\\u2310\",\n Bopf: \"\\uD835\\uDD39\",\n bopf: \"\\uD835\\uDD53\",\n bot: \"\\u22A5\",\n bottom: \"\\u22A5\",\n bowtie: \"\\u22C8\",\n boxbox: \"\\u29C9\",\n boxDL: \"\\u2557\",\n boxDl: \"\\u2556\",\n boxdL: \"\\u2555\",\n boxdl: \"\\u2510\",\n boxDR: \"\\u2554\",\n boxDr: \"\\u2553\",\n boxdR: \"\\u2552\",\n boxdr: \"\\u250C\",\n boxH: \"\\u2550\",\n boxh: \"\\u2500\",\n boxHD: \"\\u2566\",\n boxHd: \"\\u2564\",\n boxhD: \"\\u2565\",\n boxhd: \"\\u252C\",\n boxHU: \"\\u2569\",\n boxHu: \"\\u2567\",\n boxhU: \"\\u2568\",\n boxhu: \"\\u2534\",\n boxminus: \"\\u229F\",\n boxplus: \"\\u229E\",\n boxtimes: \"\\u22A0\",\n boxUL: \"\\u255D\",\n boxUl: \"\\u255C\",\n boxuL: \"\\u255B\",\n boxul: \"\\u2518\",\n boxUR: \"\\u255A\",\n boxUr: \"\\u2559\",\n boxuR: \"\\u2558\",\n boxur: \"\\u2514\",\n boxV: \"\\u2551\",\n boxv: \"\\u2502\",\n boxVH: \"\\u256C\",\n boxVh: \"\\u256B\",\n boxvH: \"\\u256A\",\n boxvh: \"\\u253C\",\n boxVL: \"\\u2563\",\n boxVl: \"\\u2562\",\n boxvL: \"\\u2561\",\n boxvl: \"\\u2524\",\n boxVR: \"\\u2560\",\n boxVr: \"\\u255F\",\n boxvR: \"\\u255E\",\n boxvr: \"\\u251C\",\n bprime: \"\\u2035\",\n Breve: \"\\u02D8\",\n breve: \"\\u02D8\",\n brvbar: \"\\xa6\",\n Bscr: \"\\u212C\",\n bscr: \"\\uD835\\uDCB7\",\n bsemi: \"\\u204F\",\n bsim: \"\\u223D\",\n bsime: \"\\u22CD\",\n bsol: \"\\\\\",\n bsolb: \"\\u29C5\",\n bsolhsub: \"\\u27C8\",\n bull: \"\\u2022\",\n bullet: \"\\u2022\",\n bump: \"\\u224E\",\n bumpE: \"\\u2AAE\",\n bumpe: \"\\u224F\",\n Bumpeq: \"\\u224E\",\n bumpeq: \"\\u224F\",\n Cacute: \"\\u0106\",\n cacute: \"\\u0107\",\n Cap: \"\\u22D2\",\n cap: \"\\u2229\",\n capand: \"\\u2A44\",\n capbrcup: \"\\u2A49\",\n capcap: \"\\u2A4B\",\n capcup: \"\\u2A47\",\n capdot: \"\\u2A40\",\n CapitalDifferentialD: \"\\u2145\",\n caps: \"\\u2229\\uFE00\",\n caret: \"\\u2041\",\n caron: \"\\u02C7\",\n Cayleys: \"\\u212D\",\n ccaps: \"\\u2A4D\",\n Ccaron: \"\\u010C\",\n ccaron: \"\\u010D\",\n Ccedil: \"\\xc7\",\n ccedil: \"\\xe7\",\n Ccirc: \"\\u0108\",\n ccirc: \"\\u0109\",\n Cconint: \"\\u2230\",\n ccups: \"\\u2A4C\",\n ccupssm: \"\\u2A50\",\n Cdot: \"\\u010A\",\n cdot: \"\\u010B\",\n cedil: \"\\xb8\",\n Cedilla: \"\\xb8\",\n cemptyv: \"\\u29B2\",\n cent: \"\\xa2\",\n CenterDot: \"\\xb7\",\n centerdot: \"\\xb7\",\n Cfr: \"\\u212D\",\n cfr: \"\\uD835\\uDD20\",\n CHcy: \"\\u0427\",\n chcy: \"\\u0447\",\n check: \"\\u2713\",\n checkmark: \"\\u2713\",\n Chi: \"\\u03A7\",\n chi: \"\\u03C7\",\n cir: \"\\u25CB\",\n circ: \"\\u02C6\",\n circeq: \"\\u2257\",\n circlearrowleft: \"\\u21BA\",\n circlearrowright: \"\\u21BB\",\n circledast: \"\\u229B\",\n circledcirc: \"\\u229A\",\n circleddash: \"\\u229D\",\n CircleDot: \"\\u2299\",\n circledR: \"\\xae\",\n circledS: \"\\u24C8\",\n CircleMinus: \"\\u2296\",\n CirclePlus: \"\\u2295\",\n CircleTimes: \"\\u2297\",\n cirE: \"\\u29C3\",\n cire: \"\\u2257\",\n cirfnint: \"\\u2A10\",\n cirmid: \"\\u2AEF\",\n cirscir: \"\\u29C2\",\n ClockwiseContourIntegral: \"\\u2232\",\n CloseCurlyDoubleQuote: \"\\u201D\",\n CloseCurlyQuote: \"\\u2019\",\n clubs: \"\\u2663\",\n clubsuit: \"\\u2663\",\n Colon: \"\\u2237\",\n colon: \":\",\n Colone: \"\\u2A74\",\n colone: \"\\u2254\",\n coloneq: \"\\u2254\",\n comma: \",\",\n commat: \"@\",\n comp: \"\\u2201\",\n compfn: \"\\u2218\",\n complement: \"\\u2201\",\n complexes: \"\\u2102\",\n cong: \"\\u2245\",\n congdot: \"\\u2A6D\",\n Congruent: \"\\u2261\",\n Conint: \"\\u222F\",\n conint: \"\\u222E\",\n ContourIntegral: \"\\u222E\",\n Copf: \"\\u2102\",\n copf: \"\\uD835\\uDD54\",\n coprod: \"\\u2210\",\n Coproduct: \"\\u2210\",\n COPY: \"\\xa9\",\n copy: \"\\xa9\",\n copysr: \"\\u2117\",\n CounterClockwiseContourIntegral: \"\\u2233\",\n crarr: \"\\u21B5\",\n Cross: \"\\u2A2F\",\n cross: \"\\u2717\",\n Cscr: \"\\uD835\\uDC9E\",\n cscr: \"\\uD835\\uDCB8\",\n csub: \"\\u2ACF\",\n csube: \"\\u2AD1\",\n csup: \"\\u2AD0\",\n csupe: \"\\u2AD2\",\n ctdot: \"\\u22EF\",\n cudarrl: \"\\u2938\",\n cudarrr: \"\\u2935\",\n cuepr: \"\\u22DE\",\n cuesc: \"\\u22DF\",\n cularr: \"\\u21B6\",\n cularrp: \"\\u293D\",\n Cup: \"\\u22D3\",\n cup: \"\\u222A\",\n cupbrcap: \"\\u2A48\",\n CupCap: \"\\u224D\",\n cupcap: \"\\u2A46\",\n cupcup: \"\\u2A4A\",\n cupdot: \"\\u228D\",\n cupor: \"\\u2A45\",\n cups: \"\\u222A\\uFE00\",\n curarr: \"\\u21B7\",\n curarrm: \"\\u293C\",\n curlyeqprec: \"\\u22DE\",\n curlyeqsucc: \"\\u22DF\",\n curlyvee: \"\\u22CE\",\n curlywedge: \"\\u22CF\",\n curren: \"\\xa4\",\n curvearrowleft: \"\\u21B6\",\n curvearrowright: \"\\u21B7\",\n cuvee: \"\\u22CE\",\n cuwed: \"\\u22CF\",\n cwconint: \"\\u2232\",\n cwint: \"\\u2231\",\n cylcty: \"\\u232D\",\n Dagger: \"\\u2021\",\n dagger: \"\\u2020\",\n daleth: \"\\u2138\",\n Darr: \"\\u21A1\",\n dArr: \"\\u21D3\",\n darr: \"\\u2193\",\n dash: \"\\u2010\",\n Dashv: \"\\u2AE4\",\n dashv: \"\\u22A3\",\n dbkarow: \"\\u290F\",\n dblac: \"\\u02DD\",\n Dcaron: \"\\u010E\",\n dcaron: \"\\u010F\",\n Dcy: \"\\u0414\",\n dcy: \"\\u0434\",\n DD: \"\\u2145\",\n dd: \"\\u2146\",\n ddagger: \"\\u2021\",\n ddarr: \"\\u21CA\",\n DDotrahd: \"\\u2911\",\n ddotseq: \"\\u2A77\",\n deg: \"\\xb0\",\n Del: \"\\u2207\",\n Delta: \"\\u0394\",\n delta: \"\\u03B4\",\n demptyv: \"\\u29B1\",\n dfisht: \"\\u297F\",\n Dfr: \"\\uD835\\uDD07\",\n dfr: \"\\uD835\\uDD21\",\n dHar: \"\\u2965\",\n dharl: \"\\u21C3\",\n dharr: \"\\u21C2\",\n DiacriticalAcute: \"\\xb4\",\n DiacriticalDot: \"\\u02D9\",\n DiacriticalDoubleAcute: \"\\u02DD\",\n DiacriticalGrave: \"`\",\n DiacriticalTilde: \"\\u02DC\",\n diam: \"\\u22C4\",\n Diamond: \"\\u22C4\",\n diamond: \"\\u22C4\",\n diamondsuit: \"\\u2666\",\n diams: \"\\u2666\",\n die: \"\\xa8\",\n DifferentialD: \"\\u2146\",\n digamma: \"\\u03DD\",\n disin: \"\\u22F2\",\n div: \"\\xf7\",\n divide: \"\\xf7\",\n divideontimes: \"\\u22C7\",\n divonx: \"\\u22C7\",\n DJcy: \"\\u0402\",\n djcy: \"\\u0452\",\n dlcorn: \"\\u231E\",\n dlcrop: \"\\u230D\",\n dollar: \"$\",\n Dopf: \"\\uD835\\uDD3B\",\n dopf: \"\\uD835\\uDD55\",\n Dot: \"\\xa8\",\n dot: \"\\u02D9\",\n DotDot: \"\\u20DC\",\n doteq: \"\\u2250\",\n doteqdot: \"\\u2251\",\n DotEqual: \"\\u2250\",\n dotminus: \"\\u2238\",\n dotplus: \"\\u2214\",\n dotsquare: \"\\u22A1\",\n doublebarwedge: \"\\u2306\",\n DoubleContourIntegral: \"\\u222F\",\n DoubleDot: \"\\xa8\",\n DoubleDownArrow: \"\\u21D3\",\n DoubleLeftArrow: \"\\u21D0\",\n DoubleLeftRightArrow: \"\\u21D4\",\n DoubleLeftTee: \"\\u2AE4\",\n DoubleLongLeftArrow: \"\\u27F8\",\n DoubleLongLeftRightArrow: \"\\u27FA\",\n DoubleLongRightArrow: \"\\u27F9\",\n DoubleRightArrow: \"\\u21D2\",\n DoubleRightTee: \"\\u22A8\",\n DoubleUpArrow: \"\\u21D1\",\n DoubleUpDownArrow: \"\\u21D5\",\n DoubleVerticalBar: \"\\u2225\",\n DownArrow: \"\\u2193\",\n Downarrow: \"\\u21D3\",\n downarrow: \"\\u2193\",\n DownArrowBar: \"\\u2913\",\n DownArrowUpArrow: \"\\u21F5\",\n DownBreve: \"\\u0311\",\n downdownarrows: \"\\u21CA\",\n downharpoonleft: \"\\u21C3\",\n downharpoonright: \"\\u21C2\",\n DownLeftRightVector: \"\\u2950\",\n DownLeftTeeVector: \"\\u295E\",\n DownLeftVector: \"\\u21BD\",\n DownLeftVectorBar: \"\\u2956\",\n DownRightTeeVector: \"\\u295F\",\n DownRightVector: \"\\u21C1\",\n DownRightVectorBar: \"\\u2957\",\n DownTee: \"\\u22A4\",\n DownTeeArrow: \"\\u21A7\",\n drbkarow: \"\\u2910\",\n drcorn: \"\\u231F\",\n drcrop: \"\\u230C\",\n Dscr: \"\\uD835\\uDC9F\",\n dscr: \"\\uD835\\uDCB9\",\n DScy: \"\\u0405\",\n dscy: \"\\u0455\",\n dsol: \"\\u29F6\",\n Dstrok: \"\\u0110\",\n dstrok: \"\\u0111\",\n dtdot: \"\\u22F1\",\n dtri: \"\\u25BF\",\n dtrif: \"\\u25BE\",\n duarr: \"\\u21F5\",\n duhar: \"\\u296F\",\n dwangle: \"\\u29A6\",\n DZcy: \"\\u040F\",\n dzcy: \"\\u045F\",\n dzigrarr: \"\\u27FF\",\n Eacute: \"\\xc9\",\n eacute: \"\\xe9\",\n easter: \"\\u2A6E\",\n Ecaron: \"\\u011A\",\n ecaron: \"\\u011B\",\n ecir: \"\\u2256\",\n Ecirc: \"\\xca\",\n ecirc: \"\\xea\",\n ecolon: \"\\u2255\",\n Ecy: \"\\u042D\",\n ecy: \"\\u044D\",\n eDDot: \"\\u2A77\",\n Edot: \"\\u0116\",\n eDot: \"\\u2251\",\n edot: \"\\u0117\",\n ee: \"\\u2147\",\n efDot: \"\\u2252\",\n Efr: \"\\uD835\\uDD08\",\n efr: \"\\uD835\\uDD22\",\n eg: \"\\u2A9A\",\n Egrave: \"\\xc8\",\n egrave: \"\\xe8\",\n egs: \"\\u2A96\",\n egsdot: \"\\u2A98\",\n el: \"\\u2A99\",\n Element: \"\\u2208\",\n elinters: \"\\u23E7\",\n ell: \"\\u2113\",\n els: \"\\u2A95\",\n elsdot: \"\\u2A97\",\n Emacr: \"\\u0112\",\n emacr: \"\\u0113\",\n empty: \"\\u2205\",\n emptyset: \"\\u2205\",\n EmptySmallSquare: \"\\u25FB\",\n emptyv: \"\\u2205\",\n EmptyVerySmallSquare: \"\\u25AB\",\n emsp: \"\\u2003\",\n emsp13: \"\\u2004\",\n emsp14: \"\\u2005\",\n ENG: \"\\u014A\",\n eng: \"\\u014B\",\n ensp: \"\\u2002\",\n Eogon: \"\\u0118\",\n eogon: \"\\u0119\",\n Eopf: \"\\uD835\\uDD3C\",\n eopf: \"\\uD835\\uDD56\",\n epar: \"\\u22D5\",\n eparsl: \"\\u29E3\",\n eplus: \"\\u2A71\",\n epsi: \"\\u03B5\",\n Epsilon: \"\\u0395\",\n epsilon: \"\\u03B5\",\n epsiv: \"\\u03F5\",\n eqcirc: \"\\u2256\",\n eqcolon: \"\\u2255\",\n eqsim: \"\\u2242\",\n eqslantgtr: \"\\u2A96\",\n eqslantless: \"\\u2A95\",\n Equal: \"\\u2A75\",\n equals: \"=\",\n EqualTilde: \"\\u2242\",\n equest: \"\\u225F\",\n Equilibrium: \"\\u21CC\",\n equiv: \"\\u2261\",\n equivDD: \"\\u2A78\",\n eqvparsl: \"\\u29E5\",\n erarr: \"\\u2971\",\n erDot: \"\\u2253\",\n Escr: \"\\u2130\",\n escr: \"\\u212F\",\n esdot: \"\\u2250\",\n Esim: \"\\u2A73\",\n esim: \"\\u2242\",\n Eta: \"\\u0397\",\n eta: \"\\u03B7\",\n ETH: \"\\xd0\",\n eth: \"\\xf0\",\n Euml: \"\\xcb\",\n euml: \"\\xeb\",\n euro: \"\\u20AC\",\n excl: \"!\",\n exist: \"\\u2203\",\n Exists: \"\\u2203\",\n expectation: \"\\u2130\",\n ExponentialE: \"\\u2147\",\n exponentiale: \"\\u2147\",\n fallingdotseq: \"\\u2252\",\n Fcy: \"\\u0424\",\n fcy: \"\\u0444\",\n female: \"\\u2640\",\n ffilig: \"\\uFB03\",\n fflig: \"\\uFB00\",\n ffllig: \"\\uFB04\",\n Ffr: \"\\uD835\\uDD09\",\n ffr: \"\\uD835\\uDD23\",\n filig: \"\\uFB01\",\n FilledSmallSquare: \"\\u25FC\",\n FilledVerySmallSquare: \"\\u25AA\",\n fjlig: \"fj\",\n flat: \"\\u266D\",\n fllig: \"\\uFB02\",\n fltns: \"\\u25B1\",\n fnof: \"\\u0192\",\n Fopf: \"\\uD835\\uDD3D\",\n fopf: \"\\uD835\\uDD57\",\n ForAll: \"\\u2200\",\n forall: \"\\u2200\",\n fork: \"\\u22D4\",\n forkv: \"\\u2AD9\",\n Fouriertrf: \"\\u2131\",\n fpartint: \"\\u2A0D\",\n frac12: \"\\xbd\",\n frac13: \"\\u2153\",\n frac14: \"\\xbc\",\n frac15: \"\\u2155\",\n frac16: \"\\u2159\",\n frac18: \"\\u215B\",\n frac23: \"\\u2154\",\n frac25: \"\\u2156\",\n frac34: \"\\xbe\",\n frac35: \"\\u2157\",\n frac38: \"\\u215C\",\n frac45: \"\\u2158\",\n frac56: \"\\u215A\",\n frac58: \"\\u215D\",\n frac78: \"\\u215E\",\n frasl: \"\\u2044\",\n frown: \"\\u2322\",\n Fscr: \"\\u2131\",\n fscr: \"\\uD835\\uDCBB\",\n gacute: \"\\u01F5\",\n Gamma: \"\\u0393\",\n gamma: \"\\u03B3\",\n Gammad: \"\\u03DC\",\n gammad: \"\\u03DD\",\n gap: \"\\u2A86\",\n Gbreve: \"\\u011E\",\n gbreve: \"\\u011F\",\n Gcedil: \"\\u0122\",\n Gcirc: \"\\u011C\",\n gcirc: \"\\u011D\",\n Gcy: \"\\u0413\",\n gcy: \"\\u0433\",\n Gdot: \"\\u0120\",\n gdot: \"\\u0121\",\n gE: \"\\u2267\",\n ge: \"\\u2265\",\n gEl: \"\\u2A8C\",\n gel: \"\\u22DB\",\n geq: \"\\u2265\",\n geqq: \"\\u2267\",\n geqslant: \"\\u2A7E\",\n ges: \"\\u2A7E\",\n gescc: \"\\u2AA9\",\n gesdot: \"\\u2A80\",\n gesdoto: \"\\u2A82\",\n gesdotol: \"\\u2A84\",\n gesl: \"\\u22DB\\uFE00\",\n gesles: \"\\u2A94\",\n Gfr: \"\\uD835\\uDD0A\",\n gfr: \"\\uD835\\uDD24\",\n Gg: \"\\u22D9\",\n gg: \"\\u226B\",\n ggg: \"\\u22D9\",\n gimel: \"\\u2137\",\n GJcy: \"\\u0403\",\n gjcy: \"\\u0453\",\n gl: \"\\u2277\",\n gla: \"\\u2AA5\",\n glE: \"\\u2A92\",\n glj: \"\\u2AA4\",\n gnap: \"\\u2A8A\",\n gnapprox: \"\\u2A8A\",\n gnE: \"\\u2269\",\n gne: \"\\u2A88\",\n gneq: \"\\u2A88\",\n gneqq: \"\\u2269\",\n gnsim: \"\\u22E7\",\n Gopf: \"\\uD835\\uDD3E\",\n gopf: \"\\uD835\\uDD58\",\n grave: \"`\",\n GreaterEqual: \"\\u2265\",\n GreaterEqualLess: \"\\u22DB\",\n GreaterFullEqual: \"\\u2267\",\n GreaterGreater: \"\\u2AA2\",\n GreaterLess: \"\\u2277\",\n GreaterSlantEqual: \"\\u2A7E\",\n GreaterTilde: \"\\u2273\",\n Gscr: \"\\uD835\\uDCA2\",\n gscr: \"\\u210A\",\n gsim: \"\\u2273\",\n gsime: \"\\u2A8E\",\n gsiml: \"\\u2A90\",\n Gt: \"\\u226B\",\n GT: \">\",\n gt: \">\",\n gtcc: \"\\u2AA7\",\n gtcir: \"\\u2A7A\",\n gtdot: \"\\u22D7\",\n gtlPar: \"\\u2995\",\n gtquest: \"\\u2A7C\",\n gtrapprox: \"\\u2A86\",\n gtrarr: \"\\u2978\",\n gtrdot: \"\\u22D7\",\n gtreqless: \"\\u22DB\",\n gtreqqless: \"\\u2A8C\",\n gtrless: \"\\u2277\",\n gtrsim: \"\\u2273\",\n gvertneqq: \"\\u2269\\uFE00\",\n gvnE: \"\\u2269\\uFE00\",\n Hacek: \"\\u02C7\",\n hairsp: \"\\u200A\",\n half: \"\\xbd\",\n hamilt: \"\\u210B\",\n HARDcy: \"\\u042A\",\n hardcy: \"\\u044A\",\n hArr: \"\\u21D4\",\n harr: \"\\u2194\",\n harrcir: \"\\u2948\",\n harrw: \"\\u21AD\",\n Hat: \"^\",\n hbar: \"\\u210F\",\n Hcirc: \"\\u0124\",\n hcirc: \"\\u0125\",\n hearts: \"\\u2665\",\n heartsuit: \"\\u2665\",\n hellip: \"\\u2026\",\n hercon: \"\\u22B9\",\n Hfr: \"\\u210C\",\n hfr: \"\\uD835\\uDD25\",\n HilbertSpace: \"\\u210B\",\n hksearow: \"\\u2925\",\n hkswarow: \"\\u2926\",\n hoarr: \"\\u21FF\",\n homtht: \"\\u223B\",\n hookleftarrow: \"\\u21A9\",\n hookrightarrow: \"\\u21AA\",\n Hopf: \"\\u210D\",\n hopf: \"\\uD835\\uDD59\",\n horbar: \"\\u2015\",\n HorizontalLine: \"\\u2500\",\n Hscr: \"\\u210B\",\n hscr: \"\\uD835\\uDCBD\",\n hslash: \"\\u210F\",\n Hstrok: \"\\u0126\",\n hstrok: \"\\u0127\",\n HumpDownHump: \"\\u224E\",\n HumpEqual: \"\\u224F\",\n hybull: \"\\u2043\",\n hyphen: \"\\u2010\",\n Iacute: \"\\xcd\",\n iacute: \"\\xed\",\n ic: \"\\u2063\",\n Icirc: \"\\xce\",\n icirc: \"\\xee\",\n Icy: \"\\u0418\",\n icy: \"\\u0438\",\n Idot: \"\\u0130\",\n IEcy: \"\\u0415\",\n iecy: \"\\u0435\",\n iexcl: \"\\xa1\",\n iff: \"\\u21D4\",\n Ifr: \"\\u2111\",\n ifr: \"\\uD835\\uDD26\",\n Igrave: \"\\xcc\",\n igrave: \"\\xec\",\n ii: \"\\u2148\",\n iiiint: \"\\u2A0C\",\n iiint: \"\\u222D\",\n iinfin: \"\\u29DC\",\n iiota: \"\\u2129\",\n IJlig: \"\\u0132\",\n ijlig: \"\\u0133\",\n Im: \"\\u2111\",\n Imacr: \"\\u012A\",\n imacr: \"\\u012B\",\n image: \"\\u2111\",\n ImaginaryI: \"\\u2148\",\n imagline: \"\\u2110\",\n imagpart: \"\\u2111\",\n imath: \"\\u0131\",\n imof: \"\\u22B7\",\n imped: \"\\u01B5\",\n Implies: \"\\u21D2\",\n in: \"\\u2208\",\n incare: \"\\u2105\",\n infin: \"\\u221E\",\n infintie: \"\\u29DD\",\n inodot: \"\\u0131\",\n Int: \"\\u222C\",\n int: \"\\u222B\",\n intcal: \"\\u22BA\",\n integers: \"\\u2124\",\n Integral: \"\\u222B\",\n intercal: \"\\u22BA\",\n Intersection: \"\\u22C2\",\n intlarhk: \"\\u2A17\",\n intprod: \"\\u2A3C\",\n InvisibleComma: \"\\u2063\",\n InvisibleTimes: \"\\u2062\",\n IOcy: \"\\u0401\",\n iocy: \"\\u0451\",\n Iogon: \"\\u012E\",\n iogon: \"\\u012F\",\n Iopf: \"\\uD835\\uDD40\",\n iopf: \"\\uD835\\uDD5A\",\n Iota: \"\\u0399\",\n iota: \"\\u03B9\",\n iprod: \"\\u2A3C\",\n iquest: \"\\xbf\",\n Iscr: \"\\u2110\",\n iscr: \"\\uD835\\uDCBE\",\n isin: \"\\u2208\",\n isindot: \"\\u22F5\",\n isinE: \"\\u22F9\",\n isins: \"\\u22F4\",\n isinsv: \"\\u22F3\",\n isinv: \"\\u2208\",\n it: \"\\u2062\",\n Itilde: \"\\u0128\",\n itilde: \"\\u0129\",\n Iukcy: \"\\u0406\",\n iukcy: \"\\u0456\",\n Iuml: \"\\xcf\",\n iuml: \"\\xef\",\n Jcirc: \"\\u0134\",\n jcirc: \"\\u0135\",\n Jcy: \"\\u0419\",\n jcy: \"\\u0439\",\n Jfr: \"\\uD835\\uDD0D\",\n jfr: \"\\uD835\\uDD27\",\n jmath: \"\\u0237\",\n Jopf: \"\\uD835\\uDD41\",\n jopf: \"\\uD835\\uDD5B\",\n Jscr: \"\\uD835\\uDCA5\",\n jscr: \"\\uD835\\uDCBF\",\n Jsercy: \"\\u0408\",\n jsercy: \"\\u0458\",\n Jukcy: \"\\u0404\",\n jukcy: \"\\u0454\",\n Kappa: \"\\u039A\",\n kappa: \"\\u03BA\",\n kappav: \"\\u03F0\",\n Kcedil: \"\\u0136\",\n kcedil: \"\\u0137\",\n Kcy: \"\\u041A\",\n kcy: \"\\u043A\",\n Kfr: \"\\uD835\\uDD0E\",\n kfr: \"\\uD835\\uDD28\",\n kgreen: \"\\u0138\",\n KHcy: \"\\u0425\",\n khcy: \"\\u0445\",\n KJcy: \"\\u040C\",\n kjcy: \"\\u045C\",\n Kopf: \"\\uD835\\uDD42\",\n kopf: \"\\uD835\\uDD5C\",\n Kscr: \"\\uD835\\uDCA6\",\n kscr: \"\\uD835\\uDCC0\",\n lAarr: \"\\u21DA\",\n Lacute: \"\\u0139\",\n lacute: \"\\u013A\",\n laemptyv: \"\\u29B4\",\n lagran: \"\\u2112\",\n Lambda: \"\\u039B\",\n lambda: \"\\u03BB\",\n Lang: \"\\u27EA\",\n lang: \"\\u27E8\",\n langd: \"\\u2991\",\n langle: \"\\u27E8\",\n lap: \"\\u2A85\",\n Laplacetrf: \"\\u2112\",\n laquo: \"\\xab\",\n Larr: \"\\u219E\",\n lArr: \"\\u21D0\",\n larr: \"\\u2190\",\n larrb: \"\\u21E4\",\n larrbfs: \"\\u291F\",\n larrfs: \"\\u291D\",\n larrhk: \"\\u21A9\",\n larrlp: \"\\u21AB\",\n larrpl: \"\\u2939\",\n larrsim: \"\\u2973\",\n larrtl: \"\\u21A2\",\n lat: \"\\u2AAB\",\n lAtail: \"\\u291B\",\n latail: \"\\u2919\",\n late: \"\\u2AAD\",\n lates: \"\\u2AAD\\uFE00\",\n lBarr: \"\\u290E\",\n lbarr: \"\\u290C\",\n lbbrk: \"\\u2772\",\n lbrace: \"{\",\n lbrack: \"[\",\n lbrke: \"\\u298B\",\n lbrksld: \"\\u298F\",\n lbrkslu: \"\\u298D\",\n Lcaron: \"\\u013D\",\n lcaron: \"\\u013E\",\n Lcedil: \"\\u013B\",\n lcedil: \"\\u013C\",\n lceil: \"\\u2308\",\n lcub: \"{\",\n Lcy: \"\\u041B\",\n lcy: \"\\u043B\",\n ldca: \"\\u2936\",\n ldquo: \"\\u201C\",\n ldquor: \"\\u201E\",\n ldrdhar: \"\\u2967\",\n ldrushar: \"\\u294B\",\n ldsh: \"\\u21B2\",\n lE: \"\\u2266\",\n le: \"\\u2264\",\n LeftAngleBracket: \"\\u27E8\",\n LeftArrow: \"\\u2190\",\n Leftarrow: \"\\u21D0\",\n leftarrow: \"\\u2190\",\n LeftArrowBar: \"\\u21E4\",\n LeftArrowRightArrow: \"\\u21C6\",\n leftarrowtail: \"\\u21A2\",\n LeftCeiling: \"\\u2308\",\n LeftDoubleBracket: \"\\u27E6\",\n LeftDownTeeVector: \"\\u2961\",\n LeftDownVector: \"\\u21C3\",\n LeftDownVectorBar: \"\\u2959\",\n LeftFloor: \"\\u230A\",\n leftharpoondown: \"\\u21BD\",\n leftharpoonup: \"\\u21BC\",\n leftleftarrows: \"\\u21C7\",\n LeftRightArrow: \"\\u2194\",\n Leftrightarrow: \"\\u21D4\",\n leftrightarrow: \"\\u2194\",\n leftrightarrows: \"\\u21C6\",\n leftrightharpoons: \"\\u21CB\",\n leftrightsquigarrow: \"\\u21AD\",\n LeftRightVector: \"\\u294E\",\n LeftTee: \"\\u22A3\",\n LeftTeeArrow: \"\\u21A4\",\n LeftTeeVector: \"\\u295A\",\n leftthreetimes: \"\\u22CB\",\n LeftTriangle: \"\\u22B2\",\n LeftTriangleBar: \"\\u29CF\",\n LeftTriangleEqual: \"\\u22B4\",\n LeftUpDownVector: \"\\u2951\",\n LeftUpTeeVector: \"\\u2960\",\n LeftUpVector: \"\\u21BF\",\n LeftUpVectorBar: \"\\u2958\",\n LeftVector: \"\\u21BC\",\n LeftVectorBar: \"\\u2952\",\n lEg: \"\\u2A8B\",\n leg: \"\\u22DA\",\n leq: \"\\u2264\",\n leqq: \"\\u2266\",\n leqslant: \"\\u2A7D\",\n les: \"\\u2A7D\",\n lescc: \"\\u2AA8\",\n lesdot: \"\\u2A7F\",\n lesdoto: \"\\u2A81\",\n lesdotor: \"\\u2A83\",\n lesg: \"\\u22DA\\uFE00\",\n lesges: \"\\u2A93\",\n lessapprox: \"\\u2A85\",\n lessdot: \"\\u22D6\",\n lesseqgtr: \"\\u22DA\",\n lesseqqgtr: \"\\u2A8B\",\n LessEqualGreater: \"\\u22DA\",\n LessFullEqual: \"\\u2266\",\n LessGreater: \"\\u2276\",\n lessgtr: \"\\u2276\",\n LessLess: \"\\u2AA1\",\n lesssim: \"\\u2272\",\n LessSlantEqual: \"\\u2A7D\",\n LessTilde: \"\\u2272\",\n lfisht: \"\\u297C\",\n lfloor: \"\\u230A\",\n Lfr: \"\\uD835\\uDD0F\",\n lfr: \"\\uD835\\uDD29\",\n lg: \"\\u2276\",\n lgE: \"\\u2A91\",\n lHar: \"\\u2962\",\n lhard: \"\\u21BD\",\n lharu: \"\\u21BC\",\n lharul: \"\\u296A\",\n lhblk: \"\\u2584\",\n LJcy: \"\\u0409\",\n ljcy: \"\\u0459\",\n Ll: \"\\u22D8\",\n ll: \"\\u226A\",\n llarr: \"\\u21C7\",\n llcorner: \"\\u231E\",\n Lleftarrow: \"\\u21DA\",\n llhard: \"\\u296B\",\n lltri: \"\\u25FA\",\n Lmidot: \"\\u013F\",\n lmidot: \"\\u0140\",\n lmoust: \"\\u23B0\",\n lmoustache: \"\\u23B0\",\n lnap: \"\\u2A89\",\n lnapprox: \"\\u2A89\",\n lnE: \"\\u2268\",\n lne: \"\\u2A87\",\n lneq: \"\\u2A87\",\n lneqq: \"\\u2268\",\n lnsim: \"\\u22E6\",\n loang: \"\\u27EC\",\n loarr: \"\\u21FD\",\n lobrk: \"\\u27E6\",\n LongLeftArrow: \"\\u27F5\",\n Longleftarrow: \"\\u27F8\",\n longleftarrow: \"\\u27F5\",\n LongLeftRightArrow: \"\\u27F7\",\n Longleftrightarrow: \"\\u27FA\",\n longleftrightarrow: \"\\u27F7\",\n longmapsto: \"\\u27FC\",\n LongRightArrow: \"\\u27F6\",\n Longrightarrow: \"\\u27F9\",\n longrightarrow: \"\\u27F6\",\n looparrowleft: \"\\u21AB\",\n looparrowright: \"\\u21AC\",\n lopar: \"\\u2985\",\n Lopf: \"\\uD835\\uDD43\",\n lopf: \"\\uD835\\uDD5D\",\n loplus: \"\\u2A2D\",\n lotimes: \"\\u2A34\",\n lowast: \"\\u2217\",\n lowbar: \"_\",\n LowerLeftArrow: \"\\u2199\",\n LowerRightArrow: \"\\u2198\",\n loz: \"\\u25CA\",\n lozenge: \"\\u25CA\",\n lozf: \"\\u29EB\",\n lpar: \"(\",\n lparlt: \"\\u2993\",\n lrarr: \"\\u21C6\",\n lrcorner: \"\\u231F\",\n lrhar: \"\\u21CB\",\n lrhard: \"\\u296D\",\n lrm: \"\\u200E\",\n lrtri: \"\\u22BF\",\n lsaquo: \"\\u2039\",\n Lscr: \"\\u2112\",\n lscr: \"\\uD835\\uDCC1\",\n Lsh: \"\\u21B0\",\n lsh: \"\\u21B0\",\n lsim: \"\\u2272\",\n lsime: \"\\u2A8D\",\n lsimg: \"\\u2A8F\",\n lsqb: \"[\",\n lsquo: \"\\u2018\",\n lsquor: \"\\u201A\",\n Lstrok: \"\\u0141\",\n lstrok: \"\\u0142\",\n Lt: \"\\u226A\",\n LT: \"<\",\n lt: \"<\",\n ltcc: \"\\u2AA6\",\n ltcir: \"\\u2A79\",\n ltdot: \"\\u22D6\",\n lthree: \"\\u22CB\",\n ltimes: \"\\u22C9\",\n ltlarr: \"\\u2976\",\n ltquest: \"\\u2A7B\",\n ltri: \"\\u25C3\",\n ltrie: \"\\u22B4\",\n ltrif: \"\\u25C2\",\n ltrPar: \"\\u2996\",\n lurdshar: \"\\u294A\",\n luruhar: \"\\u2966\",\n lvertneqq: \"\\u2268\\uFE00\",\n lvnE: \"\\u2268\\uFE00\",\n macr: \"\\xaf\",\n male: \"\\u2642\",\n malt: \"\\u2720\",\n maltese: \"\\u2720\",\n Map: \"\\u2905\",\n map: \"\\u21A6\",\n mapsto: \"\\u21A6\",\n mapstodown: \"\\u21A7\",\n mapstoleft: \"\\u21A4\",\n mapstoup: \"\\u21A5\",\n marker: \"\\u25AE\",\n mcomma: \"\\u2A29\",\n Mcy: \"\\u041C\",\n mcy: \"\\u043C\",\n mdash: \"\\u2014\",\n mDDot: \"\\u223A\",\n measuredangle: \"\\u2221\",\n MediumSpace: \"\\u205F\",\n Mellintrf: \"\\u2133\",\n Mfr: \"\\uD835\\uDD10\",\n mfr: \"\\uD835\\uDD2A\",\n mho: \"\\u2127\",\n micro: \"\\xb5\",\n mid: \"\\u2223\",\n midast: \"*\",\n midcir: \"\\u2AF0\",\n middot: \"\\xb7\",\n minus: \"\\u2212\",\n minusb: \"\\u229F\",\n minusd: \"\\u2238\",\n minusdu: \"\\u2A2A\",\n MinusPlus: \"\\u2213\",\n mlcp: \"\\u2ADB\",\n mldr: \"\\u2026\",\n mnplus: \"\\u2213\",\n models: \"\\u22A7\",\n Mopf: \"\\uD835\\uDD44\",\n mopf: \"\\uD835\\uDD5E\",\n mp: \"\\u2213\",\n Mscr: \"\\u2133\",\n mscr: \"\\uD835\\uDCC2\",\n mstpos: \"\\u223E\",\n Mu: \"\\u039C\",\n mu: \"\\u03BC\",\n multimap: \"\\u22B8\",\n mumap: \"\\u22B8\",\n nabla: \"\\u2207\",\n Nacute: \"\\u0143\",\n nacute: \"\\u0144\",\n nang: \"\\u2220\\u20D2\",\n nap: \"\\u2249\",\n napE: \"\\u2A70\\u0338\",\n napid: \"\\u224B\\u0338\",\n napos: \"\\u0149\",\n napprox: \"\\u2249\",\n natur: \"\\u266E\",\n natural: \"\\u266E\",\n naturals: \"\\u2115\",\n nbsp: \"\\xa0\",\n nbump: \"\\u224E\\u0338\",\n nbumpe: \"\\u224F\\u0338\",\n ncap: \"\\u2A43\",\n Ncaron: \"\\u0147\",\n ncaron: \"\\u0148\",\n Ncedil: \"\\u0145\",\n ncedil: \"\\u0146\",\n ncong: \"\\u2247\",\n ncongdot: \"\\u2A6D\\u0338\",\n ncup: \"\\u2A42\",\n Ncy: \"\\u041D\",\n ncy: \"\\u043D\",\n ndash: \"\\u2013\",\n ne: \"\\u2260\",\n nearhk: \"\\u2924\",\n neArr: \"\\u21D7\",\n nearr: \"\\u2197\",\n nearrow: \"\\u2197\",\n nedot: \"\\u2250\\u0338\",\n NegativeMediumSpace: \"\\u200B\",\n NegativeThickSpace: \"\\u200B\",\n NegativeThinSpace: \"\\u200B\",\n NegativeVeryThinSpace: \"\\u200B\",\n nequiv: \"\\u2262\",\n nesear: \"\\u2928\",\n nesim: \"\\u2242\\u0338\",\n NestedGreaterGreater: \"\\u226B\",\n NestedLessLess: \"\\u226A\",\n NewLine: \"\\n\",\n nexist: \"\\u2204\",\n nexists: \"\\u2204\",\n Nfr: \"\\uD835\\uDD11\",\n nfr: \"\\uD835\\uDD2B\",\n ngE: \"\\u2267\\u0338\",\n nge: \"\\u2271\",\n ngeq: \"\\u2271\",\n ngeqq: \"\\u2267\\u0338\",\n ngeqslant: \"\\u2A7E\\u0338\",\n nges: \"\\u2A7E\\u0338\",\n nGg: \"\\u22D9\\u0338\",\n ngsim: \"\\u2275\",\n nGt: \"\\u226B\\u20D2\",\n ngt: \"\\u226F\",\n ngtr: \"\\u226F\",\n nGtv: \"\\u226B\\u0338\",\n nhArr: \"\\u21CE\",\n nharr: \"\\u21AE\",\n nhpar: \"\\u2AF2\",\n ni: \"\\u220B\",\n nis: \"\\u22FC\",\n nisd: \"\\u22FA\",\n niv: \"\\u220B\",\n NJcy: \"\\u040A\",\n njcy: \"\\u045A\",\n nlArr: \"\\u21CD\",\n nlarr: \"\\u219A\",\n nldr: \"\\u2025\",\n nlE: \"\\u2266\\u0338\",\n nle: \"\\u2270\",\n nLeftarrow: \"\\u21CD\",\n nleftarrow: \"\\u219A\",\n nLeftrightarrow: \"\\u21CE\",\n nleftrightarrow: \"\\u21AE\",\n nleq: \"\\u2270\",\n nleqq: \"\\u2266\\u0338\",\n nleqslant: \"\\u2A7D\\u0338\",\n nles: \"\\u2A7D\\u0338\",\n nless: \"\\u226E\",\n nLl: \"\\u22D8\\u0338\",\n nlsim: \"\\u2274\",\n nLt: \"\\u226A\\u20D2\",\n nlt: \"\\u226E\",\n nltri: \"\\u22EA\",\n nltrie: \"\\u22EC\",\n nLtv: \"\\u226A\\u0338\",\n nmid: \"\\u2224\",\n NoBreak: \"\\u2060\",\n NonBreakingSpace: \"\\xa0\",\n Nopf: \"\\u2115\",\n nopf: \"\\uD835\\uDD5F\",\n Not: \"\\u2AEC\",\n not: \"\\xac\",\n NotCongruent: \"\\u2262\",\n NotCupCap: \"\\u226D\",\n NotDoubleVerticalBar: \"\\u2226\",\n NotElement: \"\\u2209\",\n NotEqual: \"\\u2260\",\n NotEqualTilde: \"\\u2242\\u0338\",\n NotExists: \"\\u2204\",\n NotGreater: \"\\u226F\",\n NotGreaterEqual: \"\\u2271\",\n NotGreaterFullEqual: \"\\u2267\\u0338\",\n NotGreaterGreater: \"\\u226B\\u0338\",\n NotGreaterLess: \"\\u2279\",\n NotGreaterSlantEqual: \"\\u2A7E\\u0338\",\n NotGreaterTilde: \"\\u2275\",\n NotHumpDownHump: \"\\u224E\\u0338\",\n NotHumpEqual: \"\\u224F\\u0338\",\n notin: \"\\u2209\",\n notindot: \"\\u22F5\\u0338\",\n notinE: \"\\u22F9\\u0338\",\n notinva: \"\\u2209\",\n notinvb: \"\\u22F7\",\n notinvc: \"\\u22F6\",\n NotLeftTriangle: \"\\u22EA\",\n NotLeftTriangleBar: \"\\u29CF\\u0338\",\n NotLeftTriangleEqual: \"\\u22EC\",\n NotLess: \"\\u226E\",\n NotLessEqual: \"\\u2270\",\n NotLessGreater: \"\\u2278\",\n NotLessLess: \"\\u226A\\u0338\",\n NotLessSlantEqual: \"\\u2A7D\\u0338\",\n NotLessTilde: \"\\u2274\",\n NotNestedGreaterGreater: \"\\u2AA2\\u0338\",\n NotNestedLessLess: \"\\u2AA1\\u0338\",\n notni: \"\\u220C\",\n notniva: \"\\u220C\",\n notnivb: \"\\u22FE\",\n notnivc: \"\\u22FD\",\n NotPrecedes: \"\\u2280\",\n NotPrecedesEqual: \"\\u2AAF\\u0338\",\n NotPrecedesSlantEqual: \"\\u22E0\",\n NotReverseElement: \"\\u220C\",\n NotRightTriangle: \"\\u22EB\",\n NotRightTriangleBar: \"\\u29D0\\u0338\",\n NotRightTriangleEqual: \"\\u22ED\",\n NotSquareSubset: \"\\u228F\\u0338\",\n NotSquareSubsetEqual: \"\\u22E2\",\n NotSquareSuperset: \"\\u2290\\u0338\",\n NotSquareSupersetEqual: \"\\u22E3\",\n NotSubset: \"\\u2282\\u20D2\",\n NotSubsetEqual: \"\\u2288\",\n NotSucceeds: \"\\u2281\",\n NotSucceedsEqual: \"\\u2AB0\\u0338\",\n NotSucceedsSlantEqual: \"\\u22E1\",\n NotSucceedsTilde: \"\\u227F\\u0338\",\n NotSuperset: \"\\u2283\\u20D2\",\n NotSupersetEqual: \"\\u2289\",\n NotTilde: \"\\u2241\",\n NotTildeEqual: \"\\u2244\",\n NotTildeFullEqual: \"\\u2247\",\n NotTildeTilde: \"\\u2249\",\n NotVerticalBar: \"\\u2224\",\n npar: \"\\u2226\",\n nparallel: \"\\u2226\",\n nparsl: \"\\u2AFD\\u20E5\",\n npart: \"\\u2202\\u0338\",\n npolint: \"\\u2A14\",\n npr: \"\\u2280\",\n nprcue: \"\\u22E0\",\n npre: \"\\u2AAF\\u0338\",\n nprec: \"\\u2280\",\n npreceq: \"\\u2AAF\\u0338\",\n nrArr: \"\\u21CF\",\n nrarr: \"\\u219B\",\n nrarrc: \"\\u2933\\u0338\",\n nrarrw: \"\\u219D\\u0338\",\n nRightarrow: \"\\u21CF\",\n nrightarrow: \"\\u219B\",\n nrtri: \"\\u22EB\",\n nrtrie: \"\\u22ED\",\n nsc: \"\\u2281\",\n nsccue: \"\\u22E1\",\n nsce: \"\\u2AB0\\u0338\",\n Nscr: \"\\uD835\\uDCA9\",\n nscr: \"\\uD835\\uDCC3\",\n nshortmid: \"\\u2224\",\n nshortparallel: \"\\u2226\",\n nsim: \"\\u2241\",\n nsime: \"\\u2244\",\n nsimeq: \"\\u2244\",\n nsmid: \"\\u2224\",\n nspar: \"\\u2226\",\n nsqsube: \"\\u22E2\",\n nsqsupe: \"\\u22E3\",\n nsub: \"\\u2284\",\n nsubE: \"\\u2AC5\\u0338\",\n nsube: \"\\u2288\",\n nsubset: \"\\u2282\\u20D2\",\n nsubseteq: \"\\u2288\",\n nsubseteqq: \"\\u2AC5\\u0338\",\n nsucc: \"\\u2281\",\n nsucceq: \"\\u2AB0\\u0338\",\n nsup: \"\\u2285\",\n nsupE: \"\\u2AC6\\u0338\",\n nsupe: \"\\u2289\",\n nsupset: \"\\u2283\\u20D2\",\n nsupseteq: \"\\u2289\",\n nsupseteqq: \"\\u2AC6\\u0338\",\n ntgl: \"\\u2279\",\n Ntilde: \"\\xd1\",\n ntilde: \"\\xf1\",\n ntlg: \"\\u2278\",\n ntriangleleft: \"\\u22EA\",\n ntrianglelefteq: \"\\u22EC\",\n ntriangleright: \"\\u22EB\",\n ntrianglerighteq: \"\\u22ED\",\n Nu: \"\\u039D\",\n nu: \"\\u03BD\",\n num: \"#\",\n numero: \"\\u2116\",\n numsp: \"\\u2007\",\n nvap: \"\\u224D\\u20D2\",\n nVDash: \"\\u22AF\",\n nVdash: \"\\u22AE\",\n nvDash: \"\\u22AD\",\n nvdash: \"\\u22AC\",\n nvge: \"\\u2265\\u20D2\",\n nvgt: \">\\u20D2\",\n nvHarr: \"\\u2904\",\n nvinfin: \"\\u29DE\",\n nvlArr: \"\\u2902\",\n nvle: \"\\u2264\\u20D2\",\n nvlt: \"<\\u20D2\",\n nvltrie: \"\\u22B4\\u20D2\",\n nvrArr: \"\\u2903\",\n nvrtrie: \"\\u22B5\\u20D2\",\n nvsim: \"\\u223C\\u20D2\",\n nwarhk: \"\\u2923\",\n nwArr: \"\\u21D6\",\n nwarr: \"\\u2196\",\n nwarrow: \"\\u2196\",\n nwnear: \"\\u2927\",\n Oacute: \"\\xd3\",\n oacute: \"\\xf3\",\n oast: \"\\u229B\",\n ocir: \"\\u229A\",\n Ocirc: \"\\xd4\",\n ocirc: \"\\xf4\",\n Ocy: \"\\u041E\",\n ocy: \"\\u043E\",\n odash: \"\\u229D\",\n Odblac: \"\\u0150\",\n odblac: \"\\u0151\",\n odiv: \"\\u2A38\",\n odot: \"\\u2299\",\n odsold: \"\\u29BC\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n ofcir: \"\\u29BF\",\n Ofr: \"\\uD835\\uDD12\",\n ofr: \"\\uD835\\uDD2C\",\n ogon: \"\\u02DB\",\n Ograve: \"\\xd2\",\n ograve: \"\\xf2\",\n ogt: \"\\u29C1\",\n ohbar: \"\\u29B5\",\n ohm: \"\\u03A9\",\n oint: \"\\u222E\",\n olarr: \"\\u21BA\",\n olcir: \"\\u29BE\",\n olcross: \"\\u29BB\",\n oline: \"\\u203E\",\n olt: \"\\u29C0\",\n Omacr: \"\\u014C\",\n omacr: \"\\u014D\",\n Omega: \"\\u03A9\",\n omega: \"\\u03C9\",\n Omicron: \"\\u039F\",\n omicron: \"\\u03BF\",\n omid: \"\\u29B6\",\n ominus: \"\\u2296\",\n Oopf: \"\\uD835\\uDD46\",\n oopf: \"\\uD835\\uDD60\",\n opar: \"\\u29B7\",\n OpenCurlyDoubleQuote: \"\\u201C\",\n OpenCurlyQuote: \"\\u2018\",\n operp: \"\\u29B9\",\n oplus: \"\\u2295\",\n Or: \"\\u2A54\",\n or: \"\\u2228\",\n orarr: \"\\u21BB\",\n ord: \"\\u2A5D\",\n order: \"\\u2134\",\n orderof: \"\\u2134\",\n ordf: \"\\xaa\",\n ordm: \"\\xba\",\n origof: \"\\u22B6\",\n oror: \"\\u2A56\",\n orslope: \"\\u2A57\",\n orv: \"\\u2A5B\",\n oS: \"\\u24C8\",\n Oscr: \"\\uD835\\uDCAA\",\n oscr: \"\\u2134\",\n Oslash: \"\\xd8\",\n oslash: \"\\xf8\",\n osol: \"\\u2298\",\n Otilde: \"\\xd5\",\n otilde: \"\\xf5\",\n Otimes: \"\\u2A37\",\n otimes: \"\\u2297\",\n otimesas: \"\\u2A36\",\n Ouml: \"\\xd6\",\n ouml: \"\\xf6\",\n ovbar: \"\\u233D\",\n OverBar: \"\\u203E\",\n OverBrace: \"\\u23DE\",\n OverBracket: \"\\u23B4\",\n OverParenthesis: \"\\u23DC\",\n par: \"\\u2225\",\n para: \"\\xb6\",\n parallel: \"\\u2225\",\n parsim: \"\\u2AF3\",\n parsl: \"\\u2AFD\",\n part: \"\\u2202\",\n PartialD: \"\\u2202\",\n Pcy: \"\\u041F\",\n pcy: \"\\u043F\",\n percnt: \"%\",\n period: \".\",\n permil: \"\\u2030\",\n perp: \"\\u22A5\",\n pertenk: \"\\u2031\",\n Pfr: \"\\uD835\\uDD13\",\n pfr: \"\\uD835\\uDD2D\",\n Phi: \"\\u03A6\",\n phi: \"\\u03C6\",\n phiv: \"\\u03D5\",\n phmmat: \"\\u2133\",\n phone: \"\\u260E\",\n Pi: \"\\u03A0\",\n pi: \"\\u03C0\",\n pitchfork: \"\\u22D4\",\n piv: \"\\u03D6\",\n planck: \"\\u210F\",\n planckh: \"\\u210E\",\n plankv: \"\\u210F\",\n plus: \"+\",\n plusacir: \"\\u2A23\",\n plusb: \"\\u229E\",\n pluscir: \"\\u2A22\",\n plusdo: \"\\u2214\",\n plusdu: \"\\u2A25\",\n pluse: \"\\u2A72\",\n PlusMinus: \"\\xb1\",\n plusmn: \"\\xb1\",\n plussim: \"\\u2A26\",\n plustwo: \"\\u2A27\",\n pm: \"\\xb1\",\n Poincareplane: \"\\u210C\",\n pointint: \"\\u2A15\",\n Popf: \"\\u2119\",\n popf: \"\\uD835\\uDD61\",\n pound: \"\\xa3\",\n Pr: \"\\u2ABB\",\n pr: \"\\u227A\",\n prap: \"\\u2AB7\",\n prcue: \"\\u227C\",\n prE: \"\\u2AB3\",\n pre: \"\\u2AAF\",\n prec: \"\\u227A\",\n precapprox: \"\\u2AB7\",\n preccurlyeq: \"\\u227C\",\n Precedes: \"\\u227A\",\n PrecedesEqual: \"\\u2AAF\",\n PrecedesSlantEqual: \"\\u227C\",\n PrecedesTilde: \"\\u227E\",\n preceq: \"\\u2AAF\",\n precnapprox: \"\\u2AB9\",\n precneqq: \"\\u2AB5\",\n precnsim: \"\\u22E8\",\n precsim: \"\\u227E\",\n Prime: \"\\u2033\",\n prime: \"\\u2032\",\n primes: \"\\u2119\",\n prnap: \"\\u2AB9\",\n prnE: \"\\u2AB5\",\n prnsim: \"\\u22E8\",\n prod: \"\\u220F\",\n Product: \"\\u220F\",\n profalar: \"\\u232E\",\n profline: \"\\u2312\",\n profsurf: \"\\u2313\",\n prop: \"\\u221D\",\n Proportion: \"\\u2237\",\n Proportional: \"\\u221D\",\n propto: \"\\u221D\",\n prsim: \"\\u227E\",\n prurel: \"\\u22B0\",\n Pscr: \"\\uD835\\uDCAB\",\n pscr: \"\\uD835\\uDCC5\",\n Psi: \"\\u03A8\",\n psi: \"\\u03C8\",\n puncsp: \"\\u2008\",\n Qfr: \"\\uD835\\uDD14\",\n qfr: \"\\uD835\\uDD2E\",\n qint: \"\\u2A0C\",\n Qopf: \"\\u211A\",\n qopf: \"\\uD835\\uDD62\",\n qprime: \"\\u2057\",\n Qscr: \"\\uD835\\uDCAC\",\n qscr: \"\\uD835\\uDCC6\",\n quaternions: \"\\u210D\",\n quatint: \"\\u2A16\",\n quest: \"?\",\n questeq: \"\\u225F\",\n QUOT: '\"',\n quot: '\"',\n rAarr: \"\\u21DB\",\n race: \"\\u223D\\u0331\",\n Racute: \"\\u0154\",\n racute: \"\\u0155\",\n radic: \"\\u221A\",\n raemptyv: \"\\u29B3\",\n Rang: \"\\u27EB\",\n rang: \"\\u27E9\",\n rangd: \"\\u2992\",\n range: \"\\u29A5\",\n rangle: \"\\u27E9\",\n raquo: \"\\xbb\",\n Rarr: \"\\u21A0\",\n rArr: \"\\u21D2\",\n rarr: \"\\u2192\",\n rarrap: \"\\u2975\",\n rarrb: \"\\u21E5\",\n rarrbfs: \"\\u2920\",\n rarrc: \"\\u2933\",\n rarrfs: \"\\u291E\",\n rarrhk: \"\\u21AA\",\n rarrlp: \"\\u21AC\",\n rarrpl: \"\\u2945\",\n rarrsim: \"\\u2974\",\n Rarrtl: \"\\u2916\",\n rarrtl: \"\\u21A3\",\n rarrw: \"\\u219D\",\n rAtail: \"\\u291C\",\n ratail: \"\\u291A\",\n ratio: \"\\u2236\",\n rationals: \"\\u211A\",\n RBarr: \"\\u2910\",\n rBarr: \"\\u290F\",\n rbarr: \"\\u290D\",\n rbbrk: \"\\u2773\",\n rbrace: \"}\",\n rbrack: \"]\",\n rbrke: \"\\u298C\",\n rbrksld: \"\\u298E\",\n rbrkslu: \"\\u2990\",\n Rcaron: \"\\u0158\",\n rcaron: \"\\u0159\",\n Rcedil: \"\\u0156\",\n rcedil: \"\\u0157\",\n rceil: \"\\u2309\",\n rcub: \"}\",\n Rcy: \"\\u0420\",\n rcy: \"\\u0440\",\n rdca: \"\\u2937\",\n rdldhar: \"\\u2969\",\n rdquo: \"\\u201D\",\n rdquor: \"\\u201D\",\n rdsh: \"\\u21B3\",\n Re: \"\\u211C\",\n real: \"\\u211C\",\n realine: \"\\u211B\",\n realpart: \"\\u211C\",\n reals: \"\\u211D\",\n rect: \"\\u25AD\",\n REG: \"\\xae\",\n reg: \"\\xae\",\n ReverseElement: \"\\u220B\",\n ReverseEquilibrium: \"\\u21CB\",\n ReverseUpEquilibrium: \"\\u296F\",\n rfisht: \"\\u297D\",\n rfloor: \"\\u230B\",\n Rfr: \"\\u211C\",\n rfr: \"\\uD835\\uDD2F\",\n rHar: \"\\u2964\",\n rhard: \"\\u21C1\",\n rharu: \"\\u21C0\",\n rharul: \"\\u296C\",\n Rho: \"\\u03A1\",\n rho: \"\\u03C1\",\n rhov: \"\\u03F1\",\n RightAngleBracket: \"\\u27E9\",\n RightArrow: \"\\u2192\",\n Rightarrow: \"\\u21D2\",\n rightarrow: \"\\u2192\",\n RightArrowBar: \"\\u21E5\",\n RightArrowLeftArrow: \"\\u21C4\",\n rightarrowtail: \"\\u21A3\",\n RightCeiling: \"\\u2309\",\n RightDoubleBracket: \"\\u27E7\",\n RightDownTeeVector: \"\\u295D\",\n RightDownVector: \"\\u21C2\",\n RightDownVectorBar: \"\\u2955\",\n RightFloor: \"\\u230B\",\n rightharpoondown: \"\\u21C1\",\n rightharpoonup: \"\\u21C0\",\n rightleftarrows: \"\\u21C4\",\n rightleftharpoons: \"\\u21CC\",\n rightrightarrows: \"\\u21C9\",\n rightsquigarrow: \"\\u219D\",\n RightTee: \"\\u22A2\",\n RightTeeArrow: \"\\u21A6\",\n RightTeeVector: \"\\u295B\",\n rightthreetimes: \"\\u22CC\",\n RightTriangle: \"\\u22B3\",\n RightTriangleBar: \"\\u29D0\",\n RightTriangleEqual: \"\\u22B5\",\n RightUpDownVector: \"\\u294F\",\n RightUpTeeVector: \"\\u295C\",\n RightUpVector: \"\\u21BE\",\n RightUpVectorBar: \"\\u2954\",\n RightVector: \"\\u21C0\",\n RightVectorBar: \"\\u2953\",\n ring: \"\\u02DA\",\n risingdotseq: \"\\u2253\",\n rlarr: \"\\u21C4\",\n rlhar: \"\\u21CC\",\n rlm: \"\\u200F\",\n rmoust: \"\\u23B1\",\n rmoustache: \"\\u23B1\",\n rnmid: \"\\u2AEE\",\n roang: \"\\u27ED\",\n roarr: \"\\u21FE\",\n robrk: \"\\u27E7\",\n ropar: \"\\u2986\",\n Ropf: \"\\u211D\",\n ropf: \"\\uD835\\uDD63\",\n roplus: \"\\u2A2E\",\n rotimes: \"\\u2A35\",\n RoundImplies: \"\\u2970\",\n rpar: \")\",\n rpargt: \"\\u2994\",\n rppolint: \"\\u2A12\",\n rrarr: \"\\u21C9\",\n Rrightarrow: \"\\u21DB\",\n rsaquo: \"\\u203A\",\n Rscr: \"\\u211B\",\n rscr: \"\\uD835\\uDCC7\",\n Rsh: \"\\u21B1\",\n rsh: \"\\u21B1\",\n rsqb: \"]\",\n rsquo: \"\\u2019\",\n rsquor: \"\\u2019\",\n rthree: \"\\u22CC\",\n rtimes: \"\\u22CA\",\n rtri: \"\\u25B9\",\n rtrie: \"\\u22B5\",\n rtrif: \"\\u25B8\",\n rtriltri: \"\\u29CE\",\n RuleDelayed: \"\\u29F4\",\n ruluhar: \"\\u2968\",\n rx: \"\\u211E\",\n Sacute: \"\\u015A\",\n sacute: \"\\u015B\",\n sbquo: \"\\u201A\",\n Sc: \"\\u2ABC\",\n sc: \"\\u227B\",\n scap: \"\\u2AB8\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n sccue: \"\\u227D\",\n scE: \"\\u2AB4\",\n sce: \"\\u2AB0\",\n Scedil: \"\\u015E\",\n scedil: \"\\u015F\",\n Scirc: \"\\u015C\",\n scirc: \"\\u015D\",\n scnap: \"\\u2ABA\",\n scnE: \"\\u2AB6\",\n scnsim: \"\\u22E9\",\n scpolint: \"\\u2A13\",\n scsim: \"\\u227F\",\n Scy: \"\\u0421\",\n scy: \"\\u0441\",\n sdot: \"\\u22C5\",\n sdotb: \"\\u22A1\",\n sdote: \"\\u2A66\",\n searhk: \"\\u2925\",\n seArr: \"\\u21D8\",\n searr: \"\\u2198\",\n searrow: \"\\u2198\",\n sect: \"\\xa7\",\n semi: \";\",\n seswar: \"\\u2929\",\n setminus: \"\\u2216\",\n setmn: \"\\u2216\",\n sext: \"\\u2736\",\n Sfr: \"\\uD835\\uDD16\",\n sfr: \"\\uD835\\uDD30\",\n sfrown: \"\\u2322\",\n sharp: \"\\u266F\",\n SHCHcy: \"\\u0429\",\n shchcy: \"\\u0449\",\n SHcy: \"\\u0428\",\n shcy: \"\\u0448\",\n ShortDownArrow: \"\\u2193\",\n ShortLeftArrow: \"\\u2190\",\n shortmid: \"\\u2223\",\n shortparallel: \"\\u2225\",\n ShortRightArrow: \"\\u2192\",\n ShortUpArrow: \"\\u2191\",\n shy: \"\\xad\",\n Sigma: \"\\u03A3\",\n sigma: \"\\u03C3\",\n sigmaf: \"\\u03C2\",\n sigmav: \"\\u03C2\",\n sim: \"\\u223C\",\n simdot: \"\\u2A6A\",\n sime: \"\\u2243\",\n simeq: \"\\u2243\",\n simg: \"\\u2A9E\",\n simgE: \"\\u2AA0\",\n siml: \"\\u2A9D\",\n simlE: \"\\u2A9F\",\n simne: \"\\u2246\",\n simplus: \"\\u2A24\",\n simrarr: \"\\u2972\",\n slarr: \"\\u2190\",\n SmallCircle: \"\\u2218\",\n smallsetminus: \"\\u2216\",\n smashp: \"\\u2A33\",\n smeparsl: \"\\u29E4\",\n smid: \"\\u2223\",\n smile: \"\\u2323\",\n smt: \"\\u2AAA\",\n smte: \"\\u2AAC\",\n smtes: \"\\u2AAC\\uFE00\",\n SOFTcy: \"\\u042C\",\n softcy: \"\\u044C\",\n sol: \"/\",\n solb: \"\\u29C4\",\n solbar: \"\\u233F\",\n Sopf: \"\\uD835\\uDD4A\",\n sopf: \"\\uD835\\uDD64\",\n spades: \"\\u2660\",\n spadesuit: \"\\u2660\",\n spar: \"\\u2225\",\n sqcap: \"\\u2293\",\n sqcaps: \"\\u2293\\uFE00\",\n sqcup: \"\\u2294\",\n sqcups: \"\\u2294\\uFE00\",\n Sqrt: \"\\u221A\",\n sqsub: \"\\u228F\",\n sqsube: \"\\u2291\",\n sqsubset: \"\\u228F\",\n sqsubseteq: \"\\u2291\",\n sqsup: \"\\u2290\",\n sqsupe: \"\\u2292\",\n sqsupset: \"\\u2290\",\n sqsupseteq: \"\\u2292\",\n squ: \"\\u25A1\",\n Square: \"\\u25A1\",\n square: \"\\u25A1\",\n SquareIntersection: \"\\u2293\",\n SquareSubset: \"\\u228F\",\n SquareSubsetEqual: \"\\u2291\",\n SquareSuperset: \"\\u2290\",\n SquareSupersetEqual: \"\\u2292\",\n SquareUnion: \"\\u2294\",\n squarf: \"\\u25AA\",\n squf: \"\\u25AA\",\n srarr: \"\\u2192\",\n Sscr: \"\\uD835\\uDCAE\",\n sscr: \"\\uD835\\uDCC8\",\n ssetmn: \"\\u2216\",\n ssmile: \"\\u2323\",\n sstarf: \"\\u22C6\",\n Star: \"\\u22C6\",\n star: \"\\u2606\",\n starf: \"\\u2605\",\n straightepsilon: \"\\u03F5\",\n straightphi: \"\\u03D5\",\n strns: \"\\xaf\",\n Sub: \"\\u22D0\",\n sub: \"\\u2282\",\n subdot: \"\\u2ABD\",\n subE: \"\\u2AC5\",\n sube: \"\\u2286\",\n subedot: \"\\u2AC3\",\n submult: \"\\u2AC1\",\n subnE: \"\\u2ACB\",\n subne: \"\\u228A\",\n subplus: \"\\u2ABF\",\n subrarr: \"\\u2979\",\n Subset: \"\\u22D0\",\n subset: \"\\u2282\",\n subseteq: \"\\u2286\",\n subseteqq: \"\\u2AC5\",\n SubsetEqual: \"\\u2286\",\n subsetneq: \"\\u228A\",\n subsetneqq: \"\\u2ACB\",\n subsim: \"\\u2AC7\",\n subsub: \"\\u2AD5\",\n subsup: \"\\u2AD3\",\n succ: \"\\u227B\",\n succapprox: \"\\u2AB8\",\n succcurlyeq: \"\\u227D\",\n Succeeds: \"\\u227B\",\n SucceedsEqual: \"\\u2AB0\",\n SucceedsSlantEqual: \"\\u227D\",\n SucceedsTilde: \"\\u227F\",\n succeq: \"\\u2AB0\",\n succnapprox: \"\\u2ABA\",\n succneqq: \"\\u2AB6\",\n succnsim: \"\\u22E9\",\n succsim: \"\\u227F\",\n SuchThat: \"\\u220B\",\n Sum: \"\\u2211\",\n sum: \"\\u2211\",\n sung: \"\\u266A\",\n Sup: \"\\u22D1\",\n sup: \"\\u2283\",\n sup1: \"\\xb9\",\n sup2: \"\\xb2\",\n sup3: \"\\xb3\",\n supdot: \"\\u2ABE\",\n supdsub: \"\\u2AD8\",\n supE: \"\\u2AC6\",\n supe: \"\\u2287\",\n supedot: \"\\u2AC4\",\n Superset: \"\\u2283\",\n SupersetEqual: \"\\u2287\",\n suphsol: \"\\u27C9\",\n suphsub: \"\\u2AD7\",\n suplarr: \"\\u297B\",\n supmult: \"\\u2AC2\",\n supnE: \"\\u2ACC\",\n supne: \"\\u228B\",\n supplus: \"\\u2AC0\",\n Supset: \"\\u22D1\",\n supset: \"\\u2283\",\n supseteq: \"\\u2287\",\n supseteqq: \"\\u2AC6\",\n supsetneq: \"\\u228B\",\n supsetneqq: \"\\u2ACC\",\n supsim: \"\\u2AC8\",\n supsub: \"\\u2AD4\",\n supsup: \"\\u2AD6\",\n swarhk: \"\\u2926\",\n swArr: \"\\u21D9\",\n swarr: \"\\u2199\",\n swarrow: \"\\u2199\",\n swnwar: \"\\u292A\",\n szlig: \"\\xdf\",\n Tab: \"\t\",\n target: \"\\u2316\",\n Tau: \"\\u03A4\",\n tau: \"\\u03C4\",\n tbrk: \"\\u23B4\",\n Tcaron: \"\\u0164\",\n tcaron: \"\\u0165\",\n Tcedil: \"\\u0162\",\n tcedil: \"\\u0163\",\n Tcy: \"\\u0422\",\n tcy: \"\\u0442\",\n tdot: \"\\u20DB\",\n telrec: \"\\u2315\",\n Tfr: \"\\uD835\\uDD17\",\n tfr: \"\\uD835\\uDD31\",\n there4: \"\\u2234\",\n Therefore: \"\\u2234\",\n therefore: \"\\u2234\",\n Theta: \"\\u0398\",\n theta: \"\\u03B8\",\n thetasym: \"\\u03D1\",\n thetav: \"\\u03D1\",\n thickapprox: \"\\u2248\",\n thicksim: \"\\u223C\",\n ThickSpace: \"\\u205F\\u200A\",\n thinsp: \"\\u2009\",\n ThinSpace: \"\\u2009\",\n thkap: \"\\u2248\",\n thksim: \"\\u223C\",\n THORN: \"\\xde\",\n thorn: \"\\xfe\",\n Tilde: \"\\u223C\",\n tilde: \"\\u02DC\",\n TildeEqual: \"\\u2243\",\n TildeFullEqual: \"\\u2245\",\n TildeTilde: \"\\u2248\",\n times: \"\\xd7\",\n timesb: \"\\u22A0\",\n timesbar: \"\\u2A31\",\n timesd: \"\\u2A30\",\n tint: \"\\u222D\",\n toea: \"\\u2928\",\n top: \"\\u22A4\",\n topbot: \"\\u2336\",\n topcir: \"\\u2AF1\",\n Topf: \"\\uD835\\uDD4B\",\n topf: \"\\uD835\\uDD65\",\n topfork: \"\\u2ADA\",\n tosa: \"\\u2929\",\n tprime: \"\\u2034\",\n TRADE: \"\\u2122\",\n trade: \"\\u2122\",\n triangle: \"\\u25B5\",\n triangledown: \"\\u25BF\",\n triangleleft: \"\\u25C3\",\n trianglelefteq: \"\\u22B4\",\n triangleq: \"\\u225C\",\n triangleright: \"\\u25B9\",\n trianglerighteq: \"\\u22B5\",\n tridot: \"\\u25EC\",\n trie: \"\\u225C\",\n triminus: \"\\u2A3A\",\n TripleDot: \"\\u20DB\",\n triplus: \"\\u2A39\",\n trisb: \"\\u29CD\",\n tritime: \"\\u2A3B\",\n trpezium: \"\\u23E2\",\n Tscr: \"\\uD835\\uDCAF\",\n tscr: \"\\uD835\\uDCC9\",\n TScy: \"\\u0426\",\n tscy: \"\\u0446\",\n TSHcy: \"\\u040B\",\n tshcy: \"\\u045B\",\n Tstrok: \"\\u0166\",\n tstrok: \"\\u0167\",\n twixt: \"\\u226C\",\n twoheadleftarrow: \"\\u219E\",\n twoheadrightarrow: \"\\u21A0\",\n Uacute: \"\\xda\",\n uacute: \"\\xfa\",\n Uarr: \"\\u219F\",\n uArr: \"\\u21D1\",\n uarr: \"\\u2191\",\n Uarrocir: \"\\u2949\",\n Ubrcy: \"\\u040E\",\n ubrcy: \"\\u045E\",\n Ubreve: \"\\u016C\",\n ubreve: \"\\u016D\",\n Ucirc: \"\\xdb\",\n ucirc: \"\\xfb\",\n Ucy: \"\\u0423\",\n ucy: \"\\u0443\",\n udarr: \"\\u21C5\",\n Udblac: \"\\u0170\",\n udblac: \"\\u0171\",\n udhar: \"\\u296E\",\n ufisht: \"\\u297E\",\n Ufr: \"\\uD835\\uDD18\",\n ufr: \"\\uD835\\uDD32\",\n Ugrave: \"\\xd9\",\n ugrave: \"\\xf9\",\n uHar: \"\\u2963\",\n uharl: \"\\u21BF\",\n uharr: \"\\u21BE\",\n uhblk: \"\\u2580\",\n ulcorn: \"\\u231C\",\n ulcorner: \"\\u231C\",\n ulcrop: \"\\u230F\",\n ultri: \"\\u25F8\",\n Umacr: \"\\u016A\",\n umacr: \"\\u016B\",\n uml: \"\\xa8\",\n UnderBar: \"_\",\n UnderBrace: \"\\u23DF\",\n UnderBracket: \"\\u23B5\",\n UnderParenthesis: \"\\u23DD\",\n Union: \"\\u22C3\",\n UnionPlus: \"\\u228E\",\n Uogon: \"\\u0172\",\n uogon: \"\\u0173\",\n Uopf: \"\\uD835\\uDD4C\",\n uopf: \"\\uD835\\uDD66\",\n UpArrow: \"\\u2191\",\n Uparrow: \"\\u21D1\",\n uparrow: \"\\u2191\",\n UpArrowBar: \"\\u2912\",\n UpArrowDownArrow: \"\\u21C5\",\n UpDownArrow: \"\\u2195\",\n Updownarrow: \"\\u21D5\",\n updownarrow: \"\\u2195\",\n UpEquilibrium: \"\\u296E\",\n upharpoonleft: \"\\u21BF\",\n upharpoonright: \"\\u21BE\",\n uplus: \"\\u228E\",\n UpperLeftArrow: \"\\u2196\",\n UpperRightArrow: \"\\u2197\",\n Upsi: \"\\u03D2\",\n upsi: \"\\u03C5\",\n upsih: \"\\u03D2\",\n Upsilon: \"\\u03A5\",\n upsilon: \"\\u03C5\",\n UpTee: \"\\u22A5\",\n UpTeeArrow: \"\\u21A5\",\n upuparrows: \"\\u21C8\",\n urcorn: \"\\u231D\",\n urcorner: \"\\u231D\",\n urcrop: \"\\u230E\",\n Uring: \"\\u016E\",\n uring: \"\\u016F\",\n urtri: \"\\u25F9\",\n Uscr: \"\\uD835\\uDCB0\",\n uscr: \"\\uD835\\uDCCA\",\n utdot: \"\\u22F0\",\n Utilde: \"\\u0168\",\n utilde: \"\\u0169\",\n utri: \"\\u25B5\",\n utrif: \"\\u25B4\",\n uuarr: \"\\u21C8\",\n Uuml: \"\\xdc\",\n uuml: \"\\xfc\",\n uwangle: \"\\u29A7\",\n vangrt: \"\\u299C\",\n varepsilon: \"\\u03F5\",\n varkappa: \"\\u03F0\",\n varnothing: \"\\u2205\",\n varphi: \"\\u03D5\",\n varpi: \"\\u03D6\",\n varpropto: \"\\u221D\",\n vArr: \"\\u21D5\",\n varr: \"\\u2195\",\n varrho: \"\\u03F1\",\n varsigma: \"\\u03C2\",\n varsubsetneq: \"\\u228A\\uFE00\",\n varsubsetneqq: \"\\u2ACB\\uFE00\",\n varsupsetneq: \"\\u228B\\uFE00\",\n varsupsetneqq: \"\\u2ACC\\uFE00\",\n vartheta: \"\\u03D1\",\n vartriangleleft: \"\\u22B2\",\n vartriangleright: \"\\u22B3\",\n Vbar: \"\\u2AEB\",\n vBar: \"\\u2AE8\",\n vBarv: \"\\u2AE9\",\n Vcy: \"\\u0412\",\n vcy: \"\\u0432\",\n VDash: \"\\u22AB\",\n Vdash: \"\\u22A9\",\n vDash: \"\\u22A8\",\n vdash: \"\\u22A2\",\n Vdashl: \"\\u2AE6\",\n Vee: \"\\u22C1\",\n vee: \"\\u2228\",\n veebar: \"\\u22BB\",\n veeeq: \"\\u225A\",\n vellip: \"\\u22EE\",\n Verbar: \"\\u2016\",\n verbar: \"|\",\n Vert: \"\\u2016\",\n vert: \"|\",\n VerticalBar: \"\\u2223\",\n VerticalLine: \"|\",\n VerticalSeparator: \"\\u2758\",\n VerticalTilde: \"\\u2240\",\n VeryThinSpace: \"\\u200A\",\n Vfr: \"\\uD835\\uDD19\",\n vfr: \"\\uD835\\uDD33\",\n vltri: \"\\u22B2\",\n vnsub: \"\\u2282\\u20D2\",\n vnsup: \"\\u2283\\u20D2\",\n Vopf: \"\\uD835\\uDD4D\",\n vopf: \"\\uD835\\uDD67\",\n vprop: \"\\u221D\",\n vrtri: \"\\u22B3\",\n Vscr: \"\\uD835\\uDCB1\",\n vscr: \"\\uD835\\uDCCB\",\n vsubnE: \"\\u2ACB\\uFE00\",\n vsubne: \"\\u228A\\uFE00\",\n vsupnE: \"\\u2ACC\\uFE00\",\n vsupne: \"\\u228B\\uFE00\",\n Vvdash: \"\\u22AA\",\n vzigzag: \"\\u299A\",\n Wcirc: \"\\u0174\",\n wcirc: \"\\u0175\",\n wedbar: \"\\u2A5F\",\n Wedge: \"\\u22C0\",\n wedge: \"\\u2227\",\n wedgeq: \"\\u2259\",\n weierp: \"\\u2118\",\n Wfr: \"\\uD835\\uDD1A\",\n wfr: \"\\uD835\\uDD34\",\n Wopf: \"\\uD835\\uDD4E\",\n wopf: \"\\uD835\\uDD68\",\n wp: \"\\u2118\",\n wr: \"\\u2240\",\n wreath: \"\\u2240\",\n Wscr: \"\\uD835\\uDCB2\",\n wscr: \"\\uD835\\uDCCC\",\n xcap: \"\\u22C2\",\n xcirc: \"\\u25EF\",\n xcup: \"\\u22C3\",\n xdtri: \"\\u25BD\",\n Xfr: \"\\uD835\\uDD1B\",\n xfr: \"\\uD835\\uDD35\",\n xhArr: \"\\u27FA\",\n xharr: \"\\u27F7\",\n Xi: \"\\u039E\",\n xi: \"\\u03BE\",\n xlArr: \"\\u27F8\",\n xlarr: \"\\u27F5\",\n xmap: \"\\u27FC\",\n xnis: \"\\u22FB\",\n xodot: \"\\u2A00\",\n Xopf: \"\\uD835\\uDD4F\",\n xopf: \"\\uD835\\uDD69\",\n xoplus: \"\\u2A01\",\n xotime: \"\\u2A02\",\n xrArr: \"\\u27F9\",\n xrarr: \"\\u27F6\",\n Xscr: \"\\uD835\\uDCB3\",\n xscr: \"\\uD835\\uDCCD\",\n xsqcup: \"\\u2A06\",\n xuplus: \"\\u2A04\",\n xutri: \"\\u25B3\",\n xvee: \"\\u22C1\",\n xwedge: \"\\u22C0\",\n Yacute: \"\\xdd\",\n yacute: \"\\xfd\",\n YAcy: \"\\u042F\",\n yacy: \"\\u044F\",\n Ycirc: \"\\u0176\",\n ycirc: \"\\u0177\",\n Ycy: \"\\u042B\",\n ycy: \"\\u044B\",\n yen: \"\\xa5\",\n Yfr: \"\\uD835\\uDD1C\",\n yfr: \"\\uD835\\uDD36\",\n YIcy: \"\\u0407\",\n yicy: \"\\u0457\",\n Yopf: \"\\uD835\\uDD50\",\n yopf: \"\\uD835\\uDD6A\",\n Yscr: \"\\uD835\\uDCB4\",\n yscr: \"\\uD835\\uDCCE\",\n YUcy: \"\\u042E\",\n yucy: \"\\u044E\",\n Yuml: \"\\u0178\",\n yuml: \"\\xff\",\n Zacute: \"\\u0179\",\n zacute: \"\\u017A\",\n Zcaron: \"\\u017D\",\n zcaron: \"\\u017E\",\n Zcy: \"\\u0417\",\n zcy: \"\\u0437\",\n Zdot: \"\\u017B\",\n zdot: \"\\u017C\",\n zeetrf: \"\\u2128\",\n ZeroWidthSpace: \"\\u200B\",\n Zeta: \"\\u0396\",\n zeta: \"\\u03B6\",\n Zfr: \"\\u2128\",\n zfr: \"\\uD835\\uDD37\",\n ZHcy: \"\\u0416\",\n zhcy: \"\\u0436\",\n zigrarr: \"\\u21DD\",\n Zopf: \"\\u2124\",\n zopf: \"\\uD835\\uDD6B\",\n Zscr: \"\\uD835\\uDCB5\",\n zscr: \"\\uD835\\uDCCF\",\n zwj: \"\\u200D\",\n zwnj: \"\\u200C\"\n});\n$bb581e29d81da91f$export$79451380caed3f98 = $bb581e29d81da91f$export$b7e4d4631df36afa;\n\n});\n\nparcelRegister(\"gqQA6\", function(module, exports) {\n\n$parcel$export(module.exports, \"XMLReader\", () => $bf67dc97ecf5e14f$export$ccbc9f9f018333e9, (v) => $bf67dc97ecf5e14f$export$ccbc9f9f018333e9 = v);\n$parcel$export(module.exports, \"ParseError\", () => $bf67dc97ecf5e14f$export$f9c837a54db411d, (v) => $bf67dc97ecf5e14f$export$f9c837a54db411d = v);\nvar $bf67dc97ecf5e14f$export$ccbc9f9f018333e9;\nvar $bf67dc97ecf5e14f$export$f9c837a54db411d;\n\nvar $12jBw = parcelRequire(\"12jBw\");\nvar $bf67dc97ecf5e14f$require$NAMESPACE = $12jBw.NAMESPACE;\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar $bf67dc97ecf5e14f$var$nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/ //\\u10000-\\uEFFFF\n;\nvar $bf67dc97ecf5e14f$var$nameChar = new RegExp(\"[\\\\-\\\\.0-9\" + $bf67dc97ecf5e14f$var$nameStartChar.source.slice(1, -1) + \"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar $bf67dc97ecf5e14f$var$tagNamePattern = new RegExp(\"^\" + $bf67dc97ecf5e14f$var$nameStartChar.source + $bf67dc97ecf5e14f$var$nameChar.source + \"*(?::\" + $bf67dc97ecf5e14f$var$nameStartChar.source + $bf67dc97ecf5e14f$var$nameChar.source + \"*)?$\");\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar $bf67dc97ecf5e14f$var$S_TAG = 0; //tag name offerring\nvar $bf67dc97ecf5e14f$var$S_ATTR = 1; //attr name offerring\nvar $bf67dc97ecf5e14f$var$S_ATTR_SPACE = 2; //attr name end and space offer\nvar $bf67dc97ecf5e14f$var$S_EQ = 3; //=space?\nvar $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar $bf67dc97ecf5e14f$var$S_ATTR_END = 5; //attr value end and no space(quot end)\nvar $bf67dc97ecf5e14f$var$S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar $bf67dc97ecf5e14f$var$S_TAG_CLOSE = 7; //closed el\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */ function $bf67dc97ecf5e14f$var$ParseError(message, locator) {\n this.message = message;\n this.locator = locator;\n if (Error.captureStackTrace) Error.captureStackTrace(this, $bf67dc97ecf5e14f$var$ParseError);\n}\n$bf67dc97ecf5e14f$var$ParseError.prototype = new Error();\n$bf67dc97ecf5e14f$var$ParseError.prototype.name = $bf67dc97ecf5e14f$var$ParseError.name;\nfunction $bf67dc97ecf5e14f$var$XMLReader() {}\n$bf67dc97ecf5e14f$var$XMLReader.prototype = {\n parse: function(source, defaultNSMap, entityMap) {\n var domBuilder = this.domBuilder;\n domBuilder.startDocument();\n $bf67dc97ecf5e14f$var$_copy(defaultNSMap, defaultNSMap = {});\n $bf67dc97ecf5e14f$var$parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n domBuilder.endDocument();\n }\n};\nfunction $bf67dc97ecf5e14f$var$parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n function fixedFromCharCode(code) {\n // String.prototype.fromCharCode does not supports\n // > 2 bytes unicode chars directly\n if (code > 0xffff) {\n code -= 0x10000;\n var surrogate1 = 0xd800 + (code >> 10), surrogate2 = 0xdc00 + (code & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n } else return String.fromCharCode(code);\n }\n function entityReplacer(a) {\n var k = a.slice(1, -1);\n if (Object.hasOwnProperty.call(entityMap, k)) return entityMap[k];\n else if (k.charAt(0) === \"#\") return fixedFromCharCode(parseInt(k.substr(1).replace(\"x\", \"0x\")));\n else {\n errorHandler.error(\"entity not found:\" + a);\n return a;\n }\n }\n function appendText(end) {\n if (end > start) {\n var xt = source.substring(start, end).replace(/&#?\\w+;/g, entityReplacer);\n locator && position(start);\n domBuilder.characters(xt, 0, end - start);\n start = end;\n }\n }\n function position(p, m) {\n while(p >= lineEnd && (m = linePattern.exec(source))){\n lineStart = m.index;\n lineEnd = lineStart + m[0].length;\n locator.lineNumber++;\n //console.log('line++:',locator,startPos,endPos)\n }\n locator.columnNumber = p - lineStart + 1;\n }\n var lineStart = 0;\n var lineEnd = 0;\n var linePattern = /.*(?:\\r\\n?|\\n)|.*$/g;\n var locator = domBuilder.locator;\n var parseStack = [\n {\n currentNSMap: defaultNSMapCopy\n }\n ];\n var closeMap = {};\n var start = 0;\n while(true){\n try {\n var tagStart = source.indexOf(\"<\", start);\n if (tagStart < 0) {\n if (!source.substr(start).match(/^\\s*$/)) {\n var doc = domBuilder.doc;\n var text = doc.createTextNode(source.substr(start));\n doc.appendChild(text);\n domBuilder.currentElement = text;\n }\n return;\n }\n if (tagStart > start) appendText(tagStart);\n switch(source.charAt(tagStart + 1)){\n case \"/\":\n var end = source.indexOf(\">\", tagStart + 3);\n var tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, \"\");\n var config = parseStack.pop();\n if (end < 0) {\n tagName = source.substring(tagStart + 2).replace(/[\\s<].*/, \"\");\n errorHandler.error(\"end tag name: \" + tagName + \" is not complete:\" + config.tagName);\n end = tagStart + 1 + tagName.length;\n } else if (tagName.match(/\\s start) start = end;\n else //TODO: 这里有可能sax回退,有位置错误风险\n appendText(Math.max(tagStart, start) + 1);\n }\n}\nfunction $bf67dc97ecf5e14f$var$copyLocator(f, t) {\n t.lineNumber = f.lineNumber;\n t.columnNumber = f.columnNumber;\n return t;\n}\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */ function $bf67dc97ecf5e14f$var$parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) {\n /**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */ function addAttribute(qname, value, startIndex) {\n if (el.attributeNames.hasOwnProperty(qname)) errorHandler.fatalError(\"Attribute \" + qname + \" redefined\");\n el.addValue(qname, // @see https://www.w3.org/TR/xml/#AVNormalize\n // since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n // - recursive replacement of (DTD) entity references\n // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n value.replace(/[\\t\\n\\r]/g, \" \").replace(/&#?\\w+;/g, entityReplacer), startIndex);\n }\n var attrName;\n var value;\n var p = ++start;\n var s = $bf67dc97ecf5e14f$var$S_TAG; //status\n while(true){\n var c = source.charAt(p);\n switch(c){\n case \"=\":\n if (s === $bf67dc97ecf5e14f$var$S_ATTR) {\n attrName = source.slice(start, p);\n s = $bf67dc97ecf5e14f$var$S_EQ;\n } else if (s === $bf67dc97ecf5e14f$var$S_ATTR_SPACE) s = $bf67dc97ecf5e14f$var$S_EQ;\n else //fatalError: equal must after attrName or space after attrName\n throw new Error(\"attribute equal must after attrName\"); // No known test case\n break;\n case \"'\":\n case '\"':\n if (s === $bf67dc97ecf5e14f$var$S_EQ || s === $bf67dc97ecf5e14f$var$S_ATTR //|| s == S_ATTR_SPACE\n ) {\n if (s === $bf67dc97ecf5e14f$var$S_ATTR) {\n errorHandler.warning('attribute value must after \"=\"');\n attrName = source.slice(start, p);\n }\n start = p + 1;\n p = source.indexOf(c, start);\n if (p > 0) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start - 1);\n s = $bf67dc97ecf5e14f$var$S_ATTR_END;\n } else //fatalError: no end quot match\n throw new Error(\"attribute value no end '\" + c + \"' match\");\n } else if (s == $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start);\n errorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + \")!!\");\n start = p + 1;\n s = $bf67dc97ecf5e14f$var$S_ATTR_END;\n } else //fatalError: no equal before\n throw new Error('attribute value must after \"=\"'); // No known test case\n break;\n case \"/\":\n switch(s){\n case $bf67dc97ecf5e14f$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n case $bf67dc97ecf5e14f$var$S_TAG_SPACE:\n case $bf67dc97ecf5e14f$var$S_TAG_CLOSE:\n s = $bf67dc97ecf5e14f$var$S_TAG_CLOSE;\n el.closed = true;\n case $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE:\n case $bf67dc97ecf5e14f$var$S_ATTR:\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR_SPACE:\n el.closed = true;\n break;\n //case S_EQ:\n default:\n throw new Error(\"attribute invalid close char('/')\") // No known test case\n ;\n }\n break;\n case \"\":\n errorHandler.error(\"unexpected end of input\");\n if (s == $bf67dc97ecf5e14f$var$S_TAG) el.setTagName(source.slice(start, p));\n return p;\n case \">\":\n switch(s){\n case $bf67dc97ecf5e14f$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n case $bf67dc97ecf5e14f$var$S_TAG_SPACE:\n case $bf67dc97ecf5e14f$var$S_TAG_CLOSE:\n break; //normal\n case $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE:\n case $bf67dc97ecf5e14f$var$S_ATTR:\n value = source.slice(start, p);\n if (value.slice(-1) === \"/\") {\n el.closed = true;\n value = value.slice(0, -1);\n }\n case $bf67dc97ecf5e14f$var$S_ATTR_SPACE:\n if (s === $bf67dc97ecf5e14f$var$S_ATTR_SPACE) value = attrName;\n if (s == $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE) {\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!');\n addAttribute(attrName, value, start);\n } else {\n if (!$bf67dc97ecf5e14f$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !value.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n addAttribute(value, value, start);\n }\n break;\n case $bf67dc97ecf5e14f$var$S_EQ:\n throw new Error(\"attribute value missed!!\");\n }\n //\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n return p;\n /*xml space '\\x20' | #x9 | #xD | #xA; */ case \"\\x80\":\n c = \" \";\n default:\n if (c <= \" \") switch(s){\n case $bf67dc97ecf5e14f$var$S_TAG:\n el.setTagName(source.slice(start, p)); //tagName\n s = $bf67dc97ecf5e14f$var$S_TAG_SPACE;\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR:\n attrName = source.slice(start, p);\n s = $bf67dc97ecf5e14f$var$S_ATTR_SPACE;\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE:\n var value = source.slice(start, p);\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n addAttribute(attrName, value, start);\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n s = $bf67dc97ecf5e14f$var$S_TAG_SPACE;\n break;\n }\n else //S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n //S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n switch(s){\n //case S_TAG:void();break;\n //case S_ATTR:void();break;\n //case S_ATTR_NOQUOT_VALUE:void();break;\n case $bf67dc97ecf5e14f$var$S_ATTR_SPACE:\n var tagName = el.tagName;\n if (!$bf67dc97ecf5e14f$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !attrName.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n addAttribute(attrName, attrName, start);\n start = p;\n s = $bf67dc97ecf5e14f$var$S_ATTR;\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n errorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n case $bf67dc97ecf5e14f$var$S_TAG_SPACE:\n s = $bf67dc97ecf5e14f$var$S_ATTR;\n start = p;\n break;\n case $bf67dc97ecf5e14f$var$S_EQ:\n s = $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE;\n start = p;\n break;\n case $bf67dc97ecf5e14f$var$S_TAG_CLOSE:\n throw new Error(\"elements closed character '/' and '>' must be connected to\");\n }\n } //end outer switch\n //console.log('p++',p)\n p++;\n }\n}\n/**\n * @return true if has new namespace define\n */ function $bf67dc97ecf5e14f$var$appendElement(el, domBuilder, currentNSMap) {\n var tagName = el.tagName;\n var localNSMap = null;\n //var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n var i = el.length;\n while(i--){\n var a = el[i];\n var qName = a.qName;\n var value = a.value;\n var nsp = qName.indexOf(\":\");\n if (nsp > 0) {\n var prefix = a.prefix = qName.slice(0, nsp);\n var localName = qName.slice(nsp + 1);\n var nsPrefix = prefix === \"xmlns\" && localName;\n } else {\n localName = qName;\n prefix = null;\n nsPrefix = qName === \"xmlns\" && \"\";\n }\n //can not set prefix,because prefix !== ''\n a.localName = localName;\n //prefix == null for no ns prefix attribute\n if (nsPrefix !== false) {\n if (localNSMap == null) {\n localNSMap = {};\n //console.log(currentNSMap,0)\n $bf67dc97ecf5e14f$var$_copy(currentNSMap, currentNSMap = {});\n //console.log(currentNSMap,1)\n }\n currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n a.uri = $bf67dc97ecf5e14f$require$NAMESPACE.XMLNS;\n domBuilder.startPrefixMapping(nsPrefix, value);\n }\n }\n var i = el.length;\n while(i--){\n a = el[i];\n var prefix = a.prefix;\n if (prefix) {\n if (prefix === \"xml\") a.uri = $bf67dc97ecf5e14f$require$NAMESPACE.XML;\n if (prefix !== \"xmlns\") a.uri = currentNSMap[prefix || \"\"];\n }\n }\n var nsp = tagName.indexOf(\":\");\n if (nsp > 0) {\n prefix = el.prefix = tagName.slice(0, nsp);\n localName = el.localName = tagName.slice(nsp + 1);\n } else {\n prefix = null; //important!!\n localName = el.localName = tagName;\n }\n //no prefix element has default namespace\n var ns = el.uri = currentNSMap[prefix || \"\"];\n domBuilder.startElement(ns, localName, tagName, el);\n //endPrefixMapping and startPrefixMapping have not any help for dom builder\n //localNSMap = null\n if (el.closed) {\n domBuilder.endElement(ns, localName, tagName);\n if (localNSMap) {\n for(prefix in localNSMap)if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) domBuilder.endPrefixMapping(prefix);\n }\n } else {\n el.currentNSMap = currentNSMap;\n el.localNSMap = localNSMap;\n //parseStack.push(el);\n return true;\n }\n}\nfunction $bf67dc97ecf5e14f$var$parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n if (/^(?:script|textarea)$/i.test(tagName)) {\n var elEndStart = source.indexOf(\"\", elStartEnd);\n var text = source.substring(elStartEnd + 1, elEndStart);\n if (/[&<]/.test(text)) {\n if (/^script$/i.test(tagName)) {\n //if(!/\\]\\]>/.test(text)){\n //lexHandler.startCDATA();\n domBuilder.characters(text, 0, text.length);\n //lexHandler.endCDATA();\n return elEndStart;\n //}\n } //}else{//text area\n text = text.replace(/&#?\\w+;/g, entityReplacer);\n domBuilder.characters(text, 0, text.length);\n return elEndStart;\n //}\n }\n }\n return elStartEnd + 1;\n}\nfunction $bf67dc97ecf5e14f$var$fixSelfClosed(source, elStartEnd, tagName, closeMap) {\n //if(tagName in closeMap){\n var pos = closeMap[tagName];\n if (pos == null) {\n //console.log(tagName)\n pos = source.lastIndexOf(\"\");\n if (pos < elStartEnd) pos = source.lastIndexOf(\"\", start + 4);\n //append comment source.substring(4,end)//\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('')\n\t\tif(pos',start+4);\n\t\t\t//append comment source.substring(4,end)//