From ae2015a6049a60f0b63e6df8ef311ecb84964b02 Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Sat, 9 Dec 2023 20:25:49 +0000 Subject: [PATCH] Add the blog app. git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4669 ed5197a5-7fde-0310-b194-c3ffbd925b24 --- apps/blog.json | 5 ++ apps/blog/app.js | 8 ++ apps/blog/blog.js | 149 +++++++++++++++++++++++++++++++++++ apps/blog/commonmark.min.js | 1 + apps/blog/handler.js | 22 ++++++ apps/blog/lit-all.min.js | 126 +++++++++++++++++++++++++++++ apps/blog/lit-all.min.js.map | 1 + 7 files changed, 312 insertions(+) create mode 100644 apps/blog.json create mode 100644 apps/blog/app.js create mode 100644 apps/blog/blog.js create mode 100644 apps/blog/commonmark.min.js create mode 100644 apps/blog/handler.js create mode 100644 apps/blog/lit-all.min.js create mode 100644 apps/blog/lit-all.min.js.map diff --git a/apps/blog.json b/apps/blog.json new file mode 100644 index 00000000..0ac94ac7 --- /dev/null +++ b/apps/blog.json @@ -0,0 +1,5 @@ +{ + "type": "tildefriends-app", + "emoji": "🪵", + "previous": "&CMKodqxRSDNxt/MMpYRysfN+6ArnEWaHUiE27J6BOIA=.sha256" +} \ No newline at end of file diff --git a/apps/blog/app.js b/apps/blog/app.js new file mode 100644 index 00000000..99c0165d --- /dev/null +++ b/apps/blog/app.js @@ -0,0 +1,8 @@ +import * as blog from './blog.js'; + +async function main() { + let blogs = await blog.get_posts(); + await app.setDocument(blog.render_html(blogs)); +} + +main(); \ No newline at end of file diff --git a/apps/blog/blog.js b/apps/blog/blog.js new file mode 100644 index 00000000..94998167 --- /dev/null +++ b/apps/blog/blog.js @@ -0,0 +1,149 @@ +import * as commonmark from './commonmark.min.js'; + +function escape(text) { + return (text ?? '').replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>'); +} + +function escapeAttribute(text) { + return (text ?? '').replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", '''); +} + +function markdown(md) { + let reader = new commonmark.Parser({safe: true}); + let writer = new commonmark.HtmlRenderer(); + let parsed = reader.parse(md || ''); + let walker = parsed.walker(); + let event, node; + while ((event = walker.next())) { + node = event.node; + if (event.entering) { + if (node.type == 'image') { + if (node.destination.startsWith('&')) { + node.destination = '/' + node.destination + '/view'; + } + } + } + } + return writer.render(parsed); +} + +export async function render_blog_post_html(blog_post) { + let blob = utf8Decode(await ssb.blobGet(blog_post.blog)); + return ` + + +
+
${escape(blog_post.name)} ${escape(new Date(blog_post.timestamp).toString())}
+
${markdown(blob)}
+
+ + + `; +} + +function render_blog_post(blog_post) { + return ` +
+

${escape(blog_post.title)}

+
${escape(blog_post.name)} ${escape(new Date(blog_post.timestamp).toString())}
+
${markdown(blog_post.summary)}
+
+ `; +} + +export function render_html(blogs) { + return ` + + + 🪵Tilde Blog + + + + + +
+

🪵Tilde Blog

+
atom feed
+
+ ${blogs.map(blog_post => render_blog_post(blog_post)).join('\n')} + + `; +} + +function render_blog_post_atom(blog_post) { + return ` + ${escape(blog_post.title)} + + ${blog_post.id} + ${escape(new Date(blog_post.timestamp).toString())} + ${escape(blog_post.summary)} + + ${escape(blog_post.name)} + ${escape(blog_post.author)} + + `; +} + +export function render_atom(blogs) { + return ` + + 🪵Tilde Blog + A subtitle. + + + https://www.tildefriends.net/~cory/blog/ + ${new Date().toString()} + ${blogs.map(blog_post => render_blog_post_atom(blog_post)).join('\n')} +`; +} + +export async function get_posts() { + let blogs = []; + await ssb.sqlAsync(` + WITH + blogs AS ( + SELECT + messages.author, + messages.id, + json_extract(messages.content, '$.title') AS title, + json_extract(messages.content, '$.summary') AS summary, + json_extract(messages.content, '$.blog') AS blog, + messages.timestamp + FROM messages_fts('blog') + JOIN messages ON messages.rowid = messages_fts.rowid + WHERE json_extract(messages.content, '$.type') = 'blog'), + public AS ( + SELECT author FROM ( + SELECT + messages.author, + RANK() OVER (PARTITION BY messages.author ORDER BY messages.sequence DESC) AS author_rank, + json_extract(messages.content, '$.publicWebHosting') AS is_public + FROM messages_fts('about') + JOIN messages ON messages.rowid = messages_fts.rowid + WHERE json_extract(messages.content, '$.type') = 'about' AND is_public IS NOT NULL) + WHERE author_rank = 1 AND is_public), + names AS ( + SELECT author, name FROM ( + SELECT + messages.author, + RANK() OVER (PARTITION BY messages.author ORDER BY messages.sequence DESC) AS author_rank, + json_extract(messages.content, '$.name') AS name + FROM messages_fts('about') + JOIN messages ON messages.rowid = messages_fts.rowid + WHERE json_extract(messages.content, '$.type') = 'about' AND + json_extract(messages.content, '$.about') = messages.author AND + name IS NOT NULL) + WHERE author_rank = 1) + SELECT blogs.*, names.name FROM blogs + JOIN public ON public.author = blogs.author + LEFT OUTER JOIN names ON names.author = blogs.author + ORDER BY blogs.timestamp DESC LIMIT 20 + `, [], function(row) { + blogs.push(row); + }); + return blogs; +} \ No newline at end of file diff --git a/apps/blog/commonmark.min.js b/apps/blog/commonmark.min.js new file mode 100644 index 00000000..b1e382ec --- /dev/null +++ b/apps/blog/commonmark.min.js @@ -0,0 +1 @@ +function isContainer(e){switch(e._type){case"document":case"block_quote":case"list":case"item":case"paragraph":case"heading":case"emph":case"strong":case"link":case"image":case"custom_inline":case"custom_block":return!0;default:return!1}}var resumeAt=function(e,r){this.current=e,this.entering=!0===r},next=function(){var e,r=this.current,t=this.entering;return null===r?null:(e=isContainer(r),t&&e?r._firstChild?(this.current=r._firstChild,this.entering=!0):this.entering=!1:r===this.root?this.current=null:null===r._next?(this.current=r._parent,this.entering=!1):(this.current=r._next,this.entering=!0),{entering:t,node:r})},NodeWalker=function(e){return{current:e,root:e,entering:!0,next:next,resumeAt:resumeAt}},Node=function(e,r){this._type=e,this._parent=null,this._firstChild=null,this._lastChild=null,this._prev=null,this._next=null,this._sourcepos=r,this._open=!0,this._string_content=null,this._literal=null,this._listData={},this._info=null,this._destination=null,this._title=null,this._isFenced=!1,this._fenceChar=null,this._fenceLength=0,this._fenceOffset=null,this._level=null,this._onEnter=null,this._onExit=null},proto=Node.prototype,encodeCache=(Object.defineProperty(proto,"isContainer",{get:function(){return isContainer(this)}}),Object.defineProperty(proto,"type",{get:function(){return this._type}}),Object.defineProperty(proto,"firstChild",{get:function(){return this._firstChild}}),Object.defineProperty(proto,"lastChild",{get:function(){return this._lastChild}}),Object.defineProperty(proto,"next",{get:function(){return this._next}}),Object.defineProperty(proto,"prev",{get:function(){return this._prev}}),Object.defineProperty(proto,"parent",{get:function(){return this._parent}}),Object.defineProperty(proto,"sourcepos",{get:function(){return this._sourcepos}}),Object.defineProperty(proto,"literal",{get:function(){return this._literal},set:function(e){this._literal=e}}),Object.defineProperty(proto,"destination",{get:function(){return this._destination},set:function(e){this._destination=e}}),Object.defineProperty(proto,"title",{get:function(){return this._title},set:function(e){this._title=e}}),Object.defineProperty(proto,"info",{get:function(){return this._info},set:function(e){this._info=e}}),Object.defineProperty(proto,"level",{get:function(){return this._level},set:function(e){this._level=e}}),Object.defineProperty(proto,"listType",{get:function(){return this._listData.type},set:function(e){this._listData.type=e}}),Object.defineProperty(proto,"listTight",{get:function(){return this._listData.tight},set:function(e){this._listData.tight=e}}),Object.defineProperty(proto,"listStart",{get:function(){return this._listData.start},set:function(e){this._listData.start=e}}),Object.defineProperty(proto,"listDelimiter",{get:function(){return this._listData.delimiter},set:function(e){this._listData.delimiter=e}}),Object.defineProperty(proto,"onEnter",{get:function(){return this._onEnter},set:function(e){this._onEnter=e}}),Object.defineProperty(proto,"onExit",{get:function(){return this._onExit},set:function(e){this._onExit=e}}),Node.prototype.appendChild=function(e){e.unlink(),(e._parent=this)._lastChild?(this._lastChild._next=e)._prev=this._lastChild:this._firstChild=e,this._lastChild=e},Node.prototype.prependChild=function(e){e.unlink(),(e._parent=this)._firstChild?((this._firstChild._prev=e)._next=this._firstChild,this._firstChild=e):(this._firstChild=e,this._lastChild=e)},Node.prototype.unlink=function(){this._prev?this._prev._next=this._next:this._parent&&(this._parent._firstChild=this._next),this._next?this._next._prev=this._prev:this._parent&&(this._parent._lastChild=this._prev),this._parent=null,this._next=null,this._prev=null},Node.prototype.insertAfter=function(e){e.unlink(),e._next=this._next,e._next&&(e._next._prev=e),((e._prev=this)._next=e)._parent=this._parent,e._next||(e._parent._lastChild=e)},Node.prototype.insertBefore=function(e){e.unlink(),e._prev=this._prev,e._prev&&(e._prev._next=e),((e._next=this)._prev=e)._parent=this._parent,e._prev||(e._parent._firstChild=e)},Node.prototype.walker=function(){return new NodeWalker(this)},{});function getEncodeCache(e){var r,t,o=encodeCache[e];if(!o){for(o=encodeCache[e]=[],r=0;r<128;r++)t=String.fromCharCode(r),/^[0-9a-z]$/i.test(t)?o.push(t):o.push("%"+("0"+r.toString(16).toUpperCase()).slice(-2));for(r=0;r>>10&1023|55296),e=56320|1023&e),r+=String.fromCharCode(e)};r.default=function(e){var r;return 55296<=e&&e<=57343||1114111>8;if(0!=a){if(1==a)return o===e[t]?t+1:-1;var r=r&f.JUMP_TABLE;if(r)return(r=o-c.JUMP_OFFSET_BASE-r)<0||a>>1,l=e[s];if(l",lt$1="<",quot$1='"',xml={amp:amp$1,apos:apos$1,gt:gt$1,lt:lt$1,quot:quot$1},xml$1=Object.freeze({__proto__:null,amp:amp$1,apos:apos$1,gt:gt$1,lt:lt$1,quot:quot$1,default:xml}),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="&",AMP="&",andand="⩕",And="⩓",and="∧",andd="⩜",andslope="⩘",andv="⩚",ang="∠",ange="⦤",angle="∠",angmsdaa="⦨",angmsdab="⦩",angmsdac="⦪",angmsdad="⦫",angmsdae="⦬",angmsdaf="⦭",angmsdag="⦮",angmsdah="⦯",angmsd="∡",angrt="∟",angrtvb="⊾",angrtvbd="⦝",angsph="∢",angst="Å",angzarr="⍼",Aogon="Ą",aogon="ą",Aopf="𝔸",aopf="𝕒",apacir="⩯",ap="≈",apE="⩰",ape="≊",apid="≋",apos="'",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="⋍",bsolb="⧅",bsol="\\",bsolhsub="⟈",bull="•",bullet="•",bump="≎",bumpE="⪮",bumpe="≏",Bumpeq="≎",bumpeq="≏",Cacute="Ć",cacute="ć",capand="⩄",capbrcup="⩉",capcap="⩋",cap="∩",Cap="⋒",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="χ",circ="ˆ",circeq="≗",circlearrowleft="↺",circlearrowright="↻",circledast="⊛",circledcirc="⊚",circleddash="⊝",CircleDot="⊙",circledR="®",circledS="Ⓢ",CircleMinus="⊖",CirclePlus="⊕",CircleTimes="⊗",cir="○",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="⤽",cupbrcap="⩈",cupcap="⩆",CupCap="≍",cup="∪",Cup="⋓",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="д",ddagger="‡",ddarr="⇊",DD="ⅅ",dd="ⅆ",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="∥",DownArrowBar="⤓",downarrow="↓",DownArrow="↓",Downarrow="⇓",DownArrowUpArrow="⇵",DownBreve="̑",downdownarrows="⇊",downharpoonleft="⇃",downharpoonright="⇂",DownLeftRightVector="⥐",DownLeftTeeVector="⥞",DownLeftVectorBar="⥖",DownLeftVector="↽",DownRightTeeVector="⥟",DownRightVectorBar="⥗",DownRightVector="⇁",DownTeeArrow="↧",DownTee="⊤",drbkarow="⤐",drcorn="⌟",drcrop="⌌",Dscr="𝒟",dscr="𝒹",DScy="Ѕ",dscy="ѕ",dsol="⧶",Dstrok="Đ",dstrok="đ",dtdot="⋱",dtri="▿",dtrif="▾",duarr="⇵",duhar="⥯",dwangle="⦦",DZcy="Џ",dzcy="џ",dzigrarr="⟿",Eacute="É",eacute="é",easter="⩮",Ecaron="Ě",ecaron="ě",Ecirc="Ê",ecirc="ê",ecir="≖",ecolon="≕",Ecy="Э",ecy="э",eDDot="⩷",Edot="Ė",edot="ė",eDot="≑",ee="ⅇ",efDot="≒",Efr="𝔈",efr="𝔢",eg="⪚",Egrave="È",egrave="è",egs="⪖",egsdot="⪘",el="⪙",Element="∈",elinters="⏧",ell="ℓ",els="⪕",elsdot="⪗",Emacr="Ē",emacr="ē",empty="∅",emptyset="∅",EmptySmallSquare="◻",emptyv="∅",EmptyVerySmallSquare="▫",emsp13=" ",emsp14=" ",emsp=" ",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="ffi",fflig="ff",ffllig="ffl",Ffr="𝔉",ffr="𝔣",filig="fi",FilledSmallSquare="◼",FilledVerySmallSquare="▪",fjlig="fj",flat="♭",fllig="fl",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="⩾",gescc="⪩",ges="⩾",gesdot="⪀",gesdoto="⪂",gesdotol="⪄",gesl="⋛︀",gesles="⪔",Gfr="𝔊",gfr="𝔤",gg="≫",Gg="⋙",ggg="⋙",gimel="ℷ",GJcy="Ѓ",gjcy="ѓ",gla="⪥",gl="≷",glE="⪒",glj="⪤",gnap="⪊",gnapprox="⪊",gne="⪈",gnE="≩",gneq="⪈",gneqq="≩",gnsim="⋧",Gopf="𝔾",gopf="𝕘",grave="`",GreaterEqual="≥",GreaterEqualLess="⋛",GreaterFullEqual="≧",GreaterGreater="⪢",GreaterLess="≷",GreaterSlantEqual="⩾",GreaterTilde="≳",Gscr="𝒢",gscr="ℊ",gsim="≳",gsime="⪎",gsiml="⪐",gtcc="⪧",gtcir="⩺",gt=">",GT=">",Gt="≫",gtdot="⋗",gtlPar="⦕",gtquest="⩼",gtrapprox="⪆",gtrarr="⥸",gtrdot="⋗",gtreqless="⋛",gtreqqless="⪌",gtrless="≷",gtrsim="≳",gvertneqq="≩︀",gvnE="≩︀",Hacek="ˇ",hairsp=" ",half="½",hamilt="ℋ",HARDcy="Ъ",hardcy="ъ",harrcir="⥈",harr="↔",hArr="⇔",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="IJ",ijlig="ij",Imacr="Ī",imacr="ī",image$1="ℑ",ImaginaryI="ⅈ",imagline="ℐ",imagpart="ℑ",imath="ı",Im="ℑ",imof="⊷",imped="Ƶ",Implies="⇒",incare="℅",infin="∞",infintie="⧝",inodot="ı",intcal="⊺",int="∫",Int="∬",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="⟨",Lang="⟪",langd="⦑",langle="⟨",lap="⪅",Laplacetrf="ℒ",laquo="«",larrb="⇤",larrbfs="⤟",larr="←",Larr="↞",lArr="⇐",larrfs="⤝",larrhk="↩",larrlp="↫",larrpl="⤹",larrsim="⥳",larrtl="↢",latail="⤙",lAtail="⤛",lat="⪫",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="⟨",LeftArrowBar="⇤",leftarrow="←",LeftArrow="←",Leftarrow="⇐",LeftArrowRightArrow="⇆",leftarrowtail="↢",LeftCeiling="⌈",LeftDoubleBracket="⟦",LeftDownTeeVector="⥡",LeftDownVectorBar="⥙",LeftDownVector="⇃",LeftFloor="⌊",leftharpoondown="↽",leftharpoonup="↼",leftleftarrows="⇇",leftrightarrow="↔",LeftRightArrow="↔",Leftrightarrow="⇔",leftrightarrows="⇆",leftrightharpoons="⇋",leftrightsquigarrow="↭",LeftRightVector="⥎",LeftTeeArrow="↤",LeftTee="⊣",LeftTeeVector="⥚",leftthreetimes="⋋",LeftTriangleBar="⧏",LeftTriangle="⊲",LeftTriangleEqual="⊴",LeftUpDownVector="⥑",LeftUpTeeVector="⥠",LeftUpVectorBar="⥘",LeftUpVector="↿",LeftVectorBar="⥒",LeftVector="↼",lEg="⪋",leg="⋚",leq="≤",leqq="≦",leqslant="⩽",lescc="⪨",les="⩽",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="љ",llarr="⇇",ll="≪",Ll="⋘",llcorner="⌞",Lleftarrow="⇚",llhard="⥫",lltri="◺",Lmidot="Ŀ",lmidot="ŀ",lmoustache="⎰",lmoust="⎰",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="ł",ltcc="⪦",ltcir="⩹",lt="<",LT="<",Lt="≪",ltdot="⋖",lthree="⋋",ltimes="⋉",ltlarr="⥶",ltquest="⩻",ltri="◃",ltrie="⊴",ltrif="◂",ltrPar="⦖",lurdshar="⥊",luruhar="⥦",lvertneqq="≨︀",lvnE="≨︀",macr="¯",male="♂",malt="✠",maltese="✠",map="↦",mapsto="↦",mapstodown="↧",mapstoleft="↤",mapstoup="↥",marker="▮",mcomma="⨩",Mcy="М",mcy="м",mdash="—",mDDot="∺",measuredangle="∡",MediumSpace=" ",Mellintrf="ℳ",Mfr="𝔐",mfr="𝔪",mho="℧",micro="µ",midast="*",midcir="⫰",mid="∣",middot="·",minusb="⊟",minus="−",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="ʼn",napprox="≉",natural="♮",naturals="ℕ",natur="♮",nbsp=" ",nbump="≎̸",nbumpe="≏̸",ncap="⩃",Ncaron="Ň",ncaron="ň",Ncedil="Ņ",ncedil="ņ",ncong="≇",ncongdot="⩭̸",ncup="⩂",Ncy="Н",ncy="н",ndash="–",nearhk="⤤",nearr="↗",neArr="⇗",nearrow="↗",ne="≠",nedot="≐̸",NegativeMediumSpace="​",NegativeThickSpace="​",NegativeThinSpace="​",NegativeVeryThinSpace="​",nequiv="≢",nesear="⤨",nesim="≂̸",NestedGreaterGreater="≫",NestedLessLess="≪",NewLine="\n",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="⋶",NotLeftTriangleBar="⧏̸",NotLeftTriangle="⋪",NotLeftTriangleEqual="⋬",NotLess="≮",NotLessEqual="≰",NotLessGreater="≸",NotLessLess="≪̸",NotLessSlantEqual="⩽̸",NotLessTilde="≴",NotNestedGreaterGreater="⪢̸",NotNestedLessLess="⪡̸",notni="∌",notniva="∌",notnivb="⋾",notnivc="⋽",NotPrecedes="⊀",NotPrecedesEqual="⪯̸",NotPrecedesSlantEqual="⋠",NotReverseElement="∌",NotRightTriangleBar="⧐̸",NotRightTriangle="⋫",NotRightTriangleEqual="⋭",NotSquareSubset="⊏̸",NotSquareSubsetEqual="⋢",NotSquareSuperset="⊐̸",NotSquareSupersetEqual="⋣",NotSubset="⊂⃒",NotSubsetEqual="⊈",NotSucceeds="⊁",NotSucceedsEqual="⪰̸",NotSucceedsSlantEqual="⋡",NotSucceedsTilde="≿̸",NotSuperset="⊃⃒",NotSupersetEqual="⊉",NotTilde="≁",NotTildeEqual="≄",NotTildeFullEqual="≇",NotTildeTilde="≉",NotVerticalBar="∤",nparallel="∦",npar="∦",nparsl="⫽⃥",npart="∂̸",npolint="⨔",npr="⊀",nprcue="⋠",nprec="⊀",npreceq="⪯̸",npre="⪯̸",nrarrc="⤳̸",nrarr="↛",nrArr="⇏",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="⊛",Ocirc="Ô",ocirc="ô",ocir="⊚",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="⊕",orarr="↻",Or="⩔",or="∨",ord="⩝",order="ℴ",orderof="ℴ",ordf="ª",ordm="º",origof="⊶",oror="⩖",orslope="⩗",orv="⩛",oS="Ⓢ",Oscr="𝒪",oscr="ℴ",Oslash="Ø",oslash="ø",osol="⊘",Otilde="Õ",otilde="õ",otimesas="⨶",Otimes="⨷",otimes="⊗",Ouml="Ö",ouml="ö",ovbar="⌽",OverBar="‾",OverBrace="⏞",OverBracket="⎴",OverParenthesis="⏜",para="¶",parallel="∥",par="∥",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="ℏ",plusacir="⨣",plusb="⊞",pluscir="⨢",plus="+",plusdo="∔",plusdu="⨥",pluse="⩲",PlusMinus="±",plusmn="±",plussim="⨦",plustwo="⨧",pm="±",Poincareplane="ℌ",pointint="⨕",popf="𝕡",Popf="ℙ",pound="£",prap="⪷",Pr="⪻",pr="≺",prcue="≼",precapprox="⪷",prec="≺",preccurlyeq="≼",Precedes="≺",PrecedesEqual="⪯",PrecedesSlantEqual="≼",PrecedesTilde="≾",preceq="⪯",precnapprox="⪹",precneqq="⪵",precnsim="⋨",pre="⪯",prE="⪳",precsim="≾",prime="′",Prime="″",primes="ℙ",prnap="⪹",prnE="⪵",prnsim="⋨",prod="∏",Product="∏",profalar="⌮",profline="⌒",profsurf="⌓",prop="∝",Proportional="∝",Proportion="∷",propto="∝",prsim="≾",prurel="⊰",Pscr="𝒫",pscr="𝓅",Psi="Ψ",psi="ψ",puncsp=" ",Qfr="𝔔",qfr="𝔮",qint="⨌",qopf="𝕢",Qopf="ℚ",qprime="⁗",Qscr="𝒬",qscr="𝓆",quaternions="ℍ",quatint="⨖",quest="?",questeq="≟",quot='"',QUOT='"',rAarr="⇛",race="∽̱",Racute="Ŕ",racute="ŕ",radic="√",raemptyv="⦳",rang="⟩",Rang="⟫",rangd="⦒",range="⦥",rangle="⟩",raquo="»",rarrap="⥵",rarrb="⇥",rarrbfs="⤠",rarrc="⤳",rarr="→",Rarr="↠",rArr="⇒",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="↳",real="ℜ",realine="ℛ",realpart="ℜ",reals="ℝ",Re="ℜ",rect="▭",reg="®",REG="®",ReverseElement="∋",ReverseEquilibrium="⇋",ReverseUpEquilibrium="⥯",rfisht="⥽",rfloor="⌋",rfr="𝔯",Rfr="ℜ",rHar="⥤",rhard="⇁",rharu="⇀",rharul="⥬",Rho="Ρ",rho="ρ",rhov="ϱ",RightAngleBracket="⟩",RightArrowBar="⇥",rightarrow="→",RightArrow="→",Rightarrow="⇒",RightArrowLeftArrow="⇄",rightarrowtail="↣",RightCeiling="⌉",RightDoubleBracket="⟧",RightDownTeeVector="⥝",RightDownVectorBar="⥕",RightDownVector="⇂",RightFloor="⌋",rightharpoondown="⇁",rightharpoonup="⇀",rightleftarrows="⇄",rightleftharpoons="⇌",rightrightarrows="⇉",rightsquigarrow="↝",RightTeeArrow="↦",RightTee="⊢",RightTeeVector="⥛",rightthreetimes="⋌",RightTriangleBar="⧐",RightTriangle="⊳",RightTriangleEqual="⊵",RightUpDownVector="⥏",RightUpTeeVector="⥜",RightUpVectorBar="⥔",RightUpVector="↾",RightVectorBar="⥓",RightVector="⇀",ring="˚",risingdotseq="≓",rlarr="⇄",rlhar="⇌",rlm="‏",rmoustache="⎱",rmoust="⎱",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="‚",scap="⪸",Scaron="Š",scaron="š",Sc="⪼",sc="≻",sccue="≽",sce="⪰",scE="⪴",Scedil="Ş",scedil="ş",Scirc="Ŝ",scirc="ŝ",scnap="⪺",scnE="⪶",scnsim="⋩",scpolint="⨓",scsim="≿",Scy="С",scy="с",sdotb="⊡",sdot="⋅",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="ь",solbar="⌿",solb="⧄",sol="/",Sopf="𝕊",sopf="𝕤",spades="♠",spadesuit="♠",spar="∥",sqcap="⊓",sqcaps="⊓︀",sqcup="⊔",sqcups="⊔︀",Sqrt="√",sqsub="⊏",sqsube="⊑",sqsubset="⊏",sqsubseteq="⊑",sqsup="⊐",sqsupe="⊒",sqsupset="⊐",sqsupseteq="⊒",square="□",Square="□",SquareIntersection="⊓",SquareSubset="⊏",SquareSubsetEqual="⊑",SquareSuperset="⊐",SquareSupersetEqual="⊒",SquareUnion="⊔",squarf="▪",squ="□",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="⫓",succapprox="⪸",succ="≻",succcurlyeq="≽",Succeeds="≻",SucceedsEqual="⪰",SucceedsSlantEqual="≽",SucceedsTilde="≿",succeq="⪰",succnapprox="⪺",succneqq="⪶",succnsim="⋩",succsim="≿",SuchThat="∋",sum="∑",Sum="∑",sung="♪",sup1="¹",sup2="²",sup3="³",sup="⊃",Sup="⋑",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="\t",target="⌖",Tau="Τ",tau="τ",tbrk="⎴",Tcaron="Ť",tcaron="ť",Tcedil="Ţ",tcedil="ţ",Tcy="Т",tcy="т",tdot="⃛",telrec="⌕",Tfr="𝔗",tfr="𝔱",there4="∴",therefore="∴",Therefore="∴",Theta="Θ",theta="θ",thetasym="ϑ",thetav="ϑ",thickapprox="≈",thicksim="∼",ThickSpace="  ",ThinSpace=" ",thinsp=" ",thkap="≈",thksim="∼",THORN="Þ",thorn="þ",tilde="˜",Tilde="∼",TildeEqual="≃",TildeFullEqual="≅",TildeTilde="≈",timesbar="⨱",timesb="⊠",times="×",timesd="⨰",tint="∭",toea="⤨",topbot="⌶",topcir="⫱",top="⊤",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="𝕦",UpArrowBar="⤒",uparrow="↑",UpArrow="↑",Uparrow="⇑",UpArrowDownArrow="⇅",updownarrow="↕",UpDownArrow="↕",Updownarrow="⇕",UpEquilibrium="⥮",upharpoonleft="↿",upharpoonright="↾",uplus="⊎",UpperLeftArrow="↖",UpperRightArrow="↗",upsi="υ",Upsi="ϒ",upsih="ϒ",Upsilon="Υ",upsilon="υ",UpTeeArrow="↥",UpTee="⊥",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="⫦",veebar="⊻",vee="∨",Vee="⋁",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="‌",entities={Aacute:Aacute,aacute:aacute,Abreve:Abreve,abreve:abreve,ac:ac,acd:acd,acE:acE,Acirc:Acirc,acirc:acirc,acute:acute,Acy:Acy,acy:acy,AElig:AElig,aelig:aelig,af:af,Afr:Afr,afr:afr,Agrave:Agrave,agrave:agrave,alefsym:alefsym,aleph:aleph,Alpha:Alpha,alpha:alpha,Amacr:Amacr,amacr:amacr,amalg:amalg,amp:amp,AMP:AMP,andand:andand,And:And,and:and,andd:andd,andslope:andslope,andv:andv,ang:ang,ange:ange,angle:angle,angmsdaa:angmsdaa,angmsdab:angmsdab,angmsdac:angmsdac,angmsdad:angmsdad,angmsdae:angmsdae,angmsdaf:angmsdaf,angmsdag:angmsdag,angmsdah:angmsdah,angmsd:angmsd,angrt:angrt,angrtvb:angrtvb,angrtvbd:angrtvbd,angsph:angsph,angst:angst,angzarr:angzarr,Aogon:Aogon,aogon:aogon,Aopf:Aopf,aopf:aopf,apacir:apacir,ap:ap,apE:apE,ape:ape,apid:apid,apos:apos,ApplyFunction:ApplyFunction,approx:approx,approxeq:approxeq,Aring:Aring,aring:aring,Ascr:Ascr,ascr:ascr,Assign:Assign,ast:ast,asymp:asymp,asympeq:asympeq,Atilde:Atilde,atilde:atilde,Auml:Auml,auml:auml,awconint:awconint,awint:awint,backcong:backcong,backepsilon:backepsilon,backprime:backprime,backsim:backsim,backsimeq:backsimeq,Backslash:Backslash,Barv:Barv,barvee:barvee,barwed:barwed,Barwed:Barwed,barwedge:barwedge,bbrk:bbrk,bbrktbrk:bbrktbrk,bcong:bcong,Bcy:Bcy,bcy:bcy,bdquo:bdquo,becaus:becaus,because:because,Because:Because,bemptyv:bemptyv,bepsi:bepsi,bernou:bernou,Bernoullis:Bernoullis,Beta:Beta,beta:beta,beth:beth,between:between,Bfr:Bfr,bfr:bfr,bigcap:bigcap,bigcirc:bigcirc,bigcup:bigcup,bigodot:bigodot,bigoplus:bigoplus,bigotimes:bigotimes,bigsqcup:bigsqcup,bigstar:bigstar,bigtriangledown:bigtriangledown,bigtriangleup:bigtriangleup,biguplus:biguplus,bigvee:bigvee,bigwedge:bigwedge,bkarow:bkarow,blacklozenge:blacklozenge,blacksquare:blacksquare,blacktriangle:blacktriangle,blacktriangledown:blacktriangledown,blacktriangleleft:blacktriangleleft,blacktriangleright:blacktriangleright,blank:blank,blk12:blk12,blk14:blk14,blk34:blk34,block:block,bne:bne,bnequiv:bnequiv,bNot:bNot,bnot:bnot,Bopf:Bopf,bopf:bopf,bot:bot,bottom:bottom,bowtie:bowtie,boxbox:boxbox,boxdl:boxdl,boxdL:boxdL,boxDl:boxDl,boxDL:boxDL,boxdr:boxdr,boxdR:boxdR,boxDr:boxDr,boxDR:boxDR,boxh:boxh,boxH:boxH,boxhd:boxhd,boxHd:boxHd,boxhD:boxhD,boxHD:boxHD,boxhu:boxhu,boxHu:boxHu,boxhU:boxhU,boxHU:boxHU,boxminus:boxminus,boxplus:boxplus,boxtimes:boxtimes,boxul:boxul,boxuL:boxuL,boxUl:boxUl,boxUL:boxUL,boxur:boxur,boxuR:boxuR,boxUr:boxUr,boxUR:boxUR,boxv:boxv,boxV:boxV,boxvh:boxvh,boxvH:boxvH,boxVh:boxVh,boxVH:boxVH,boxvl:boxvl,boxvL:boxvL,boxVl:boxVl,boxVL:boxVL,boxvr:boxvr,boxvR:boxvR,boxVr:boxVr,boxVR:boxVR,bprime:bprime,breve:breve,Breve:Breve,brvbar:brvbar,bscr:bscr,Bscr:Bscr,bsemi:bsemi,bsim:bsim,bsime:bsime,bsolb:bsolb,bsol:bsol,bsolhsub:bsolhsub,bull:bull,bullet:bullet,bump:bump,bumpE:bumpE,bumpe:bumpe,Bumpeq:Bumpeq,bumpeq:bumpeq,Cacute:Cacute,cacute:cacute,capand:capand,capbrcup:capbrcup,capcap:capcap,cap:cap,Cap:Cap,capcup:capcup,capdot:capdot,CapitalDifferentialD:CapitalDifferentialD,caps:caps,caret:caret,caron:caron,Cayleys:Cayleys,ccaps:ccaps,Ccaron:Ccaron,ccaron:ccaron,Ccedil:Ccedil,ccedil:ccedil,Ccirc:Ccirc,ccirc:ccirc,Cconint:Cconint,ccups:ccups,ccupssm:ccupssm,Cdot:Cdot,cdot:cdot,cedil:cedil,Cedilla:Cedilla,cemptyv:cemptyv,cent:cent,centerdot:centerdot,CenterDot:CenterDot,cfr:cfr,Cfr:Cfr,CHcy:CHcy,chcy:chcy,check:check,checkmark:checkmark,Chi:Chi,chi:chi,circ:circ,circeq:circeq,circlearrowleft:circlearrowleft,circlearrowright:circlearrowright,circledast:circledast,circledcirc:circledcirc,circleddash:circleddash,CircleDot:CircleDot,circledR:circledR,circledS:circledS,CircleMinus:CircleMinus,CirclePlus:CirclePlus,CircleTimes:CircleTimes,cir:cir,cirE:cirE,cire:cire,cirfnint:cirfnint,cirmid:cirmid,cirscir:cirscir,ClockwiseContourIntegral:ClockwiseContourIntegral,CloseCurlyDoubleQuote:CloseCurlyDoubleQuote,CloseCurlyQuote:CloseCurlyQuote,clubs:clubs,clubsuit:clubsuit,colon:colon,Colon:Colon,Colone:Colone,colone:colone,coloneq:coloneq,comma:comma,commat:commat,comp:comp,compfn:compfn,complement:complement,complexes:complexes,cong:cong,congdot:congdot,Congruent:Congruent,conint:conint,Conint:Conint,ContourIntegral:ContourIntegral,copf:copf,Copf:Copf,coprod:coprod,Coproduct:Coproduct,copy:copy,COPY:COPY,copysr:copysr,CounterClockwiseContourIntegral:CounterClockwiseContourIntegral,crarr:crarr,cross:cross,Cross:Cross,Cscr:Cscr,cscr:cscr,csub:csub,csube:csube,csup:csup,csupe:csupe,ctdot:ctdot,cudarrl:cudarrl,cudarrr:cudarrr,cuepr:cuepr,cuesc:cuesc,cularr:cularr,cularrp:cularrp,cupbrcap:cupbrcap,cupcap:cupcap,CupCap:CupCap,cup:cup,Cup:Cup,cupcup:cupcup,cupdot:cupdot,cupor:cupor,cups:cups,curarr:curarr,curarrm:curarrm,curlyeqprec:curlyeqprec,curlyeqsucc:curlyeqsucc,curlyvee:curlyvee,curlywedge:curlywedge,curren:curren,curvearrowleft:curvearrowleft,curvearrowright:curvearrowright,cuvee:cuvee,cuwed:cuwed,cwconint:cwconint,cwint:cwint,cylcty:cylcty,dagger:dagger,Dagger:Dagger,daleth:daleth,darr:darr,Darr:Darr,dArr:dArr,dash:dash,Dashv:Dashv,dashv:dashv,dbkarow:dbkarow,dblac:dblac,Dcaron:Dcaron,dcaron:dcaron,Dcy:Dcy,dcy:dcy,ddagger:ddagger,ddarr:ddarr,DD:DD,dd:dd,DDotrahd:DDotrahd,ddotseq:ddotseq,deg:deg,Del:Del,Delta:Delta,delta:delta,demptyv:demptyv,dfisht:dfisht,Dfr:Dfr,dfr:dfr,dHar:dHar,dharl:dharl,dharr:dharr,DiacriticalAcute:DiacriticalAcute,DiacriticalDot:DiacriticalDot,DiacriticalDoubleAcute:DiacriticalDoubleAcute,DiacriticalGrave:DiacriticalGrave,DiacriticalTilde:DiacriticalTilde,diam:diam,diamond:diamond,Diamond:Diamond,diamondsuit:diamondsuit,diams:diams,die:die,DifferentialD:DifferentialD,digamma:digamma,disin:disin,div:div,divide:divide,divideontimes:divideontimes,divonx:divonx,DJcy:DJcy,djcy:djcy,dlcorn:dlcorn,dlcrop:dlcrop,dollar:dollar,Dopf:Dopf,dopf:dopf,Dot:Dot,dot:dot,DotDot:DotDot,doteq:doteq,doteqdot:doteqdot,DotEqual:DotEqual,dotminus:dotminus,dotplus:dotplus,dotsquare:dotsquare,doublebarwedge:doublebarwedge,DoubleContourIntegral:DoubleContourIntegral,DoubleDot:DoubleDot,DoubleDownArrow:DoubleDownArrow,DoubleLeftArrow:DoubleLeftArrow,DoubleLeftRightArrow:DoubleLeftRightArrow,DoubleLeftTee:DoubleLeftTee,DoubleLongLeftArrow:DoubleLongLeftArrow,DoubleLongLeftRightArrow:DoubleLongLeftRightArrow,DoubleLongRightArrow:DoubleLongRightArrow,DoubleRightArrow:DoubleRightArrow,DoubleRightTee:DoubleRightTee,DoubleUpArrow:DoubleUpArrow,DoubleUpDownArrow:DoubleUpDownArrow,DoubleVerticalBar:DoubleVerticalBar,DownArrowBar:DownArrowBar,downarrow:downarrow,DownArrow:DownArrow,Downarrow:Downarrow,DownArrowUpArrow:DownArrowUpArrow,DownBreve:DownBreve,downdownarrows:downdownarrows,downharpoonleft:downharpoonleft,downharpoonright:downharpoonright,DownLeftRightVector:DownLeftRightVector,DownLeftTeeVector:DownLeftTeeVector,DownLeftVectorBar:DownLeftVectorBar,DownLeftVector:DownLeftVector,DownRightTeeVector:DownRightTeeVector,DownRightVectorBar:DownRightVectorBar,DownRightVector:DownRightVector,DownTeeArrow:DownTeeArrow,DownTee:DownTee,drbkarow:drbkarow,drcorn:drcorn,drcrop:drcrop,Dscr:Dscr,dscr:dscr,DScy:DScy,dscy:dscy,dsol:dsol,Dstrok:Dstrok,dstrok:dstrok,dtdot:dtdot,dtri:dtri,dtrif:dtrif,duarr:duarr,duhar:duhar,dwangle:dwangle,DZcy:DZcy,dzcy:dzcy,dzigrarr:dzigrarr,Eacute:Eacute,eacute:eacute,easter:easter,Ecaron:Ecaron,ecaron:ecaron,Ecirc:Ecirc,ecirc:ecirc,ecir:ecir,ecolon:ecolon,Ecy:Ecy,ecy:ecy,eDDot:eDDot,Edot:Edot,edot:edot,eDot:eDot,ee:ee,efDot:efDot,Efr:Efr,efr:efr,eg:eg,Egrave:Egrave,egrave:egrave,egs:egs,egsdot:egsdot,el:el,Element:Element,elinters:elinters,ell:ell,els:els,elsdot:elsdot,Emacr:Emacr,emacr:emacr,empty:empty,emptyset:emptyset,EmptySmallSquare:EmptySmallSquare,emptyv:emptyv,EmptyVerySmallSquare:EmptyVerySmallSquare,emsp13:emsp13,emsp14:emsp14,emsp:emsp,ENG:ENG,eng:eng,ensp:ensp,Eogon:Eogon,eogon:eogon,Eopf:Eopf,eopf:eopf,epar:epar,eparsl:eparsl,eplus:eplus,epsi:epsi,Epsilon:Epsilon,epsilon:epsilon,epsiv:epsiv,eqcirc:eqcirc,eqcolon:eqcolon,eqsim:eqsim,eqslantgtr:eqslantgtr,eqslantless:eqslantless,Equal:Equal,equals:equals,EqualTilde:EqualTilde,equest:equest,Equilibrium:Equilibrium,equiv:equiv,equivDD:equivDD,eqvparsl:eqvparsl,erarr:erarr,erDot:erDot,escr:escr,Escr:Escr,esdot:esdot,Esim:Esim,esim:esim,Eta:Eta,eta:eta,ETH:ETH,eth:eth,Euml:Euml,euml:euml,euro:euro,excl:excl,exist:exist,Exists:Exists,expectation:expectation,exponentiale:exponentiale,ExponentialE:ExponentialE,fallingdotseq:fallingdotseq,Fcy:Fcy,fcy:fcy,female:female,ffilig:ffilig,fflig:fflig,ffllig:ffllig,Ffr:Ffr,ffr:ffr,filig:filig,FilledSmallSquare:FilledSmallSquare,FilledVerySmallSquare:FilledVerySmallSquare,fjlig:fjlig,flat:flat,fllig:fllig,fltns:fltns,fnof:fnof,Fopf:Fopf,fopf:fopf,forall:forall,ForAll:ForAll,fork:fork,forkv:forkv,Fouriertrf:Fouriertrf,fpartint:fpartint,frac12:frac12,frac13:frac13,frac14:frac14,frac15:frac15,frac16:frac16,frac18:frac18,frac23:frac23,frac25:frac25,frac34:frac34,frac35:frac35,frac38:frac38,frac45:frac45,frac56:frac56,frac58:frac58,frac78:frac78,frasl:frasl,frown:frown,fscr:fscr,Fscr:Fscr,gacute:gacute,Gamma:Gamma,gamma:gamma,Gammad:Gammad,gammad:gammad,gap:gap,Gbreve:Gbreve,gbreve:gbreve,Gcedil:Gcedil,Gcirc:Gcirc,gcirc:gcirc,Gcy:Gcy,gcy:gcy,Gdot:Gdot,gdot:gdot,ge:ge,gE:gE,gEl:gEl,gel:gel,geq:geq,geqq:geqq,geqslant:geqslant,gescc:gescc,ges:ges,gesdot:gesdot,gesdoto:gesdoto,gesdotol:gesdotol,gesl:gesl,gesles:gesles,Gfr:Gfr,gfr:gfr,gg:gg,Gg:Gg,ggg:ggg,gimel:gimel,GJcy:GJcy,gjcy:gjcy,gla:gla,gl:gl,glE:glE,glj:glj,gnap:gnap,gnapprox:gnapprox,gne:gne,gnE:gnE,gneq:gneq,gneqq:gneqq,gnsim:gnsim,Gopf:Gopf,gopf:gopf,grave:grave,GreaterEqual:GreaterEqual,GreaterEqualLess:GreaterEqualLess,GreaterFullEqual:GreaterFullEqual,GreaterGreater:GreaterGreater,GreaterLess:GreaterLess,GreaterSlantEqual:GreaterSlantEqual,GreaterTilde:GreaterTilde,Gscr:Gscr,gscr:gscr,gsim:gsim,gsime:gsime,gsiml:gsiml,gtcc:gtcc,gtcir:gtcir,gt:gt,GT:GT,Gt:Gt,gtdot:gtdot,gtlPar:gtlPar,gtquest:gtquest,gtrapprox:gtrapprox,gtrarr:gtrarr,gtrdot:gtrdot,gtreqless:gtreqless,gtreqqless:gtreqqless,gtrless:gtrless,gtrsim:gtrsim,gvertneqq:gvertneqq,gvnE:gvnE,Hacek:Hacek,hairsp:hairsp,half:half,hamilt:hamilt,HARDcy:HARDcy,hardcy:hardcy,harrcir:harrcir,harr:harr,hArr:hArr,harrw:harrw,Hat:Hat,hbar:hbar,Hcirc:Hcirc,hcirc:hcirc,hearts:hearts,heartsuit:heartsuit,hellip:hellip,hercon:hercon,hfr:hfr,Hfr:Hfr,HilbertSpace:HilbertSpace,hksearow:hksearow,hkswarow:hkswarow,hoarr:hoarr,homtht:homtht,hookleftarrow:hookleftarrow,hookrightarrow:hookrightarrow,hopf:hopf,Hopf:Hopf,horbar:horbar,HorizontalLine:HorizontalLine,hscr:hscr,Hscr:Hscr,hslash:hslash,Hstrok:Hstrok,hstrok:hstrok,HumpDownHump:HumpDownHump,HumpEqual:HumpEqual,hybull:hybull,hyphen:hyphen,Iacute:Iacute,iacute:iacute,ic:ic,Icirc:Icirc,icirc:icirc,Icy:Icy,icy:icy,Idot:Idot,IEcy:IEcy,iecy:iecy,iexcl:iexcl,iff:iff,ifr:ifr,Ifr:Ifr,Igrave:Igrave,igrave:igrave,ii:ii,iiiint:iiiint,iiint:iiint,iinfin:iinfin,iiota:iiota,IJlig:IJlig,ijlig:ijlig,Imacr:Imacr,imacr:imacr,image:image$1,ImaginaryI:ImaginaryI,imagline:imagline,imagpart:imagpart,imath:imath,Im:Im,imof:imof,imped:imped,Implies:Implies,incare:incare,in:"∈",infin:infin,infintie:infintie,inodot:inodot,intcal:intcal,int:int,Int:Int,integers:integers,Integral:Integral,intercal:intercal,Intersection:Intersection,intlarhk:intlarhk,intprod:intprod,InvisibleComma:InvisibleComma,InvisibleTimes:InvisibleTimes,IOcy:IOcy,iocy:iocy,Iogon:Iogon,iogon:iogon,Iopf:Iopf,iopf:iopf,Iota:Iota,iota:iota,iprod:iprod,iquest:iquest,iscr:iscr,Iscr:Iscr,isin:isin,isindot:isindot,isinE:isinE,isins:isins,isinsv:isinsv,isinv:isinv,it:it,Itilde:Itilde,itilde:itilde,Iukcy:Iukcy,iukcy:iukcy,Iuml:Iuml,iuml:iuml,Jcirc:Jcirc,jcirc:jcirc,Jcy:Jcy,jcy:jcy,Jfr:Jfr,jfr:jfr,jmath:jmath,Jopf:Jopf,jopf:jopf,Jscr:Jscr,jscr:jscr,Jsercy:Jsercy,jsercy:jsercy,Jukcy:Jukcy,jukcy:jukcy,Kappa:Kappa,kappa:kappa,kappav:kappav,Kcedil:Kcedil,kcedil:kcedil,Kcy:Kcy,kcy:kcy,Kfr:Kfr,kfr:kfr,kgreen:kgreen,KHcy:KHcy,khcy:khcy,KJcy:KJcy,kjcy:kjcy,Kopf:Kopf,kopf:kopf,Kscr:Kscr,kscr:kscr,lAarr:lAarr,Lacute:Lacute,lacute:lacute,laemptyv:laemptyv,lagran:lagran,Lambda:Lambda,lambda:lambda,lang:lang,Lang:Lang,langd:langd,langle:langle,lap:lap,Laplacetrf:Laplacetrf,laquo:laquo,larrb:larrb,larrbfs:larrbfs,larr:larr,Larr:Larr,lArr:lArr,larrfs:larrfs,larrhk:larrhk,larrlp:larrlp,larrpl:larrpl,larrsim:larrsim,larrtl:larrtl,latail:latail,lAtail:lAtail,lat:lat,late:late,lates:lates,lbarr:lbarr,lBarr:lBarr,lbbrk:lbbrk,lbrace:lbrace,lbrack:lbrack,lbrke:lbrke,lbrksld:lbrksld,lbrkslu:lbrkslu,Lcaron:Lcaron,lcaron:lcaron,Lcedil:Lcedil,lcedil:lcedil,lceil:lceil,lcub:lcub,Lcy:Lcy,lcy:lcy,ldca:ldca,ldquo:ldquo,ldquor:ldquor,ldrdhar:ldrdhar,ldrushar:ldrushar,ldsh:ldsh,le:le,lE:lE,LeftAngleBracket:LeftAngleBracket,LeftArrowBar:LeftArrowBar,leftarrow:leftarrow,LeftArrow:LeftArrow,Leftarrow:Leftarrow,LeftArrowRightArrow:LeftArrowRightArrow,leftarrowtail:leftarrowtail,LeftCeiling:LeftCeiling,LeftDoubleBracket:LeftDoubleBracket,LeftDownTeeVector:LeftDownTeeVector,LeftDownVectorBar:LeftDownVectorBar,LeftDownVector:LeftDownVector,LeftFloor:LeftFloor,leftharpoondown:leftharpoondown,leftharpoonup:leftharpoonup,leftleftarrows:leftleftarrows,leftrightarrow:leftrightarrow,LeftRightArrow:LeftRightArrow,Leftrightarrow:Leftrightarrow,leftrightarrows:leftrightarrows,leftrightharpoons:leftrightharpoons,leftrightsquigarrow:leftrightsquigarrow,LeftRightVector:LeftRightVector,LeftTeeArrow:LeftTeeArrow,LeftTee:LeftTee,LeftTeeVector:LeftTeeVector,leftthreetimes:leftthreetimes,LeftTriangleBar:LeftTriangleBar,LeftTriangle:LeftTriangle,LeftTriangleEqual:LeftTriangleEqual,LeftUpDownVector:LeftUpDownVector,LeftUpTeeVector:LeftUpTeeVector,LeftUpVectorBar:LeftUpVectorBar,LeftUpVector:LeftUpVector,LeftVectorBar:LeftVectorBar,LeftVector:LeftVector,lEg:lEg,leg:leg,leq:leq,leqq:leqq,leqslant:leqslant,lescc:lescc,les:les,lesdot:lesdot,lesdoto:lesdoto,lesdotor:lesdotor,lesg:lesg,lesges:lesges,lessapprox:lessapprox,lessdot:lessdot,lesseqgtr:lesseqgtr,lesseqqgtr:lesseqqgtr,LessEqualGreater:LessEqualGreater,LessFullEqual:LessFullEqual,LessGreater:LessGreater,lessgtr:lessgtr,LessLess:LessLess,lesssim:lesssim,LessSlantEqual:LessSlantEqual,LessTilde:LessTilde,lfisht:lfisht,lfloor:lfloor,Lfr:Lfr,lfr:lfr,lg:lg,lgE:lgE,lHar:lHar,lhard:lhard,lharu:lharu,lharul:lharul,lhblk:lhblk,LJcy:LJcy,ljcy:ljcy,llarr:llarr,ll:ll,Ll:Ll,llcorner:llcorner,Lleftarrow:Lleftarrow,llhard:llhard,lltri:lltri,Lmidot:Lmidot,lmidot:lmidot,lmoustache:lmoustache,lmoust:lmoust,lnap:lnap,lnapprox:lnapprox,lne:lne,lnE:lnE,lneq:lneq,lneqq:lneqq,lnsim:lnsim,loang:loang,loarr:loarr,lobrk:lobrk,longleftarrow:longleftarrow,LongLeftArrow:LongLeftArrow,Longleftarrow:Longleftarrow,longleftrightarrow:longleftrightarrow,LongLeftRightArrow:LongLeftRightArrow,Longleftrightarrow:Longleftrightarrow,longmapsto:longmapsto,longrightarrow:longrightarrow,LongRightArrow:LongRightArrow,Longrightarrow:Longrightarrow,looparrowleft:looparrowleft,looparrowright:looparrowright,lopar:lopar,Lopf:Lopf,lopf:lopf,loplus:loplus,lotimes:lotimes,lowast:lowast,lowbar:lowbar,LowerLeftArrow:LowerLeftArrow,LowerRightArrow:LowerRightArrow,loz:loz,lozenge:lozenge,lozf:lozf,lpar:lpar,lparlt:lparlt,lrarr:lrarr,lrcorner:lrcorner,lrhar:lrhar,lrhard:lrhard,lrm:lrm,lrtri:lrtri,lsaquo:lsaquo,lscr:lscr,Lscr:Lscr,lsh:lsh,Lsh:Lsh,lsim:lsim,lsime:lsime,lsimg:lsimg,lsqb:lsqb,lsquo:lsquo,lsquor:lsquor,Lstrok:Lstrok,lstrok:lstrok,ltcc:ltcc,ltcir:ltcir,lt:lt,LT:LT,Lt:Lt,ltdot:ltdot,lthree:lthree,ltimes:ltimes,ltlarr:ltlarr,ltquest:ltquest,ltri:ltri,ltrie:ltrie,ltrif:ltrif,ltrPar:ltrPar,lurdshar:lurdshar,luruhar:luruhar,lvertneqq:lvertneqq,lvnE:lvnE,macr:macr,male:male,malt:malt,maltese:maltese,Map:"⤅",map:map,mapsto:mapsto,mapstodown:mapstodown,mapstoleft:mapstoleft,mapstoup:mapstoup,marker:marker,mcomma:mcomma,Mcy:Mcy,mcy:mcy,mdash:mdash,mDDot:mDDot,measuredangle:measuredangle,MediumSpace:MediumSpace,Mellintrf:Mellintrf,Mfr:Mfr,mfr:mfr,mho:mho,micro:micro,midast:midast,midcir:midcir,mid:mid,middot:middot,minusb:minusb,minus:minus,minusd:minusd,minusdu:minusdu,MinusPlus:MinusPlus,mlcp:mlcp,mldr:mldr,mnplus:mnplus,models:models,Mopf:Mopf,mopf:mopf,mp:mp,mscr:mscr,Mscr:Mscr,mstpos:mstpos,Mu:Mu,mu:mu,multimap:multimap,mumap:mumap,nabla:nabla,Nacute:Nacute,nacute:nacute,nang:nang,nap:nap,napE:napE,napid:napid,napos:napos,napprox:napprox,natural:natural,naturals:naturals,natur:natur,nbsp:nbsp,nbump:nbump,nbumpe:nbumpe,ncap:ncap,Ncaron:Ncaron,ncaron:ncaron,Ncedil:Ncedil,ncedil:ncedil,ncong:ncong,ncongdot:ncongdot,ncup:ncup,Ncy:Ncy,ncy:ncy,ndash:ndash,nearhk:nearhk,nearr:nearr,neArr:neArr,nearrow:nearrow,ne:ne,nedot:nedot,NegativeMediumSpace:NegativeMediumSpace,NegativeThickSpace:NegativeThickSpace,NegativeThinSpace:NegativeThinSpace,NegativeVeryThinSpace:NegativeVeryThinSpace,nequiv:nequiv,nesear:nesear,nesim:nesim,NestedGreaterGreater:NestedGreaterGreater,NestedLessLess:NestedLessLess,NewLine:NewLine,nexist:nexist,nexists:nexists,Nfr:Nfr,nfr:nfr,ngE:ngE,nge:nge,ngeq:ngeq,ngeqq:ngeqq,ngeqslant:ngeqslant,nges:nges,nGg:nGg,ngsim:ngsim,nGt:nGt,ngt:ngt,ngtr:ngtr,nGtv:nGtv,nharr:nharr,nhArr:nhArr,nhpar:nhpar,ni:ni,nis:nis,nisd:nisd,niv:niv,NJcy:NJcy,njcy:njcy,nlarr:nlarr,nlArr:nlArr,nldr:nldr,nlE:nlE,nle:nle,nleftarrow:nleftarrow,nLeftarrow:nLeftarrow,nleftrightarrow:nleftrightarrow,nLeftrightarrow:nLeftrightarrow,nleq:nleq,nleqq:nleqq,nleqslant:nleqslant,nles:nles,nless:nless,nLl:nLl,nlsim:nlsim,nLt:nLt,nlt:nlt,nltri:nltri,nltrie:nltrie,nLtv:nLtv,nmid:nmid,NoBreak:NoBreak,NonBreakingSpace:NonBreakingSpace,nopf:nopf,Nopf:Nopf,Not:Not,not:not,NotCongruent:NotCongruent,NotCupCap:NotCupCap,NotDoubleVerticalBar:NotDoubleVerticalBar,NotElement:NotElement,NotEqual:NotEqual,NotEqualTilde:NotEqualTilde,NotExists:NotExists,NotGreater:NotGreater,NotGreaterEqual:NotGreaterEqual,NotGreaterFullEqual:NotGreaterFullEqual,NotGreaterGreater:NotGreaterGreater,NotGreaterLess:NotGreaterLess,NotGreaterSlantEqual:NotGreaterSlantEqual,NotGreaterTilde:NotGreaterTilde,NotHumpDownHump:NotHumpDownHump,NotHumpEqual:NotHumpEqual,notin:notin,notindot:notindot,notinE:notinE,notinva:notinva,notinvb:notinvb,notinvc:notinvc,NotLeftTriangleBar:NotLeftTriangleBar,NotLeftTriangle:NotLeftTriangle,NotLeftTriangleEqual:NotLeftTriangleEqual,NotLess:NotLess,NotLessEqual:NotLessEqual,NotLessGreater:NotLessGreater,NotLessLess:NotLessLess,NotLessSlantEqual:NotLessSlantEqual,NotLessTilde:NotLessTilde,NotNestedGreaterGreater:NotNestedGreaterGreater,NotNestedLessLess:NotNestedLessLess,notni:notni,notniva:notniva,notnivb:notnivb,notnivc:notnivc,NotPrecedes:NotPrecedes,NotPrecedesEqual:NotPrecedesEqual,NotPrecedesSlantEqual:NotPrecedesSlantEqual,NotReverseElement:NotReverseElement,NotRightTriangleBar:NotRightTriangleBar,NotRightTriangle:NotRightTriangle,NotRightTriangleEqual:NotRightTriangleEqual,NotSquareSubset:NotSquareSubset,NotSquareSubsetEqual:NotSquareSubsetEqual,NotSquareSuperset:NotSquareSuperset,NotSquareSupersetEqual:NotSquareSupersetEqual,NotSubset:NotSubset,NotSubsetEqual:NotSubsetEqual,NotSucceeds:NotSucceeds,NotSucceedsEqual:NotSucceedsEqual,NotSucceedsSlantEqual:NotSucceedsSlantEqual,NotSucceedsTilde:NotSucceedsTilde,NotSuperset:NotSuperset,NotSupersetEqual:NotSupersetEqual,NotTilde:NotTilde,NotTildeEqual:NotTildeEqual,NotTildeFullEqual:NotTildeFullEqual,NotTildeTilde:NotTildeTilde,NotVerticalBar:NotVerticalBar,nparallel:nparallel,npar:npar,nparsl:nparsl,npart:npart,npolint:npolint,npr:npr,nprcue:nprcue,nprec:nprec,npreceq:npreceq,npre:npre,nrarrc:nrarrc,nrarr:nrarr,nrArr:nrArr,nrarrw:nrarrw,nrightarrow:nrightarrow,nRightarrow:nRightarrow,nrtri:nrtri,nrtrie:nrtrie,nsc:nsc,nsccue:nsccue,nsce:nsce,Nscr:Nscr,nscr:nscr,nshortmid:nshortmid,nshortparallel:nshortparallel,nsim:nsim,nsime:nsime,nsimeq:nsimeq,nsmid:nsmid,nspar:nspar,nsqsube:nsqsube,nsqsupe:nsqsupe,nsub:nsub,nsubE:nsubE,nsube:nsube,nsubset:nsubset,nsubseteq:nsubseteq,nsubseteqq:nsubseteqq,nsucc:nsucc,nsucceq:nsucceq,nsup:nsup,nsupE:nsupE,nsupe:nsupe,nsupset:nsupset,nsupseteq:nsupseteq,nsupseteqq:nsupseteqq,ntgl:ntgl,Ntilde:Ntilde,ntilde:ntilde,ntlg:ntlg,ntriangleleft:ntriangleleft,ntrianglelefteq:ntrianglelefteq,ntriangleright:ntriangleright,ntrianglerighteq:ntrianglerighteq,Nu:Nu,nu:nu,num:num,numero:numero,numsp:numsp,nvap:nvap,nvdash:nvdash,nvDash:nvDash,nVdash:nVdash,nVDash:nVDash,nvge:nvge,nvgt:nvgt,nvHarr:nvHarr,nvinfin:nvinfin,nvlArr:nvlArr,nvle:nvle,nvlt:nvlt,nvltrie:nvltrie,nvrArr:nvrArr,nvrtrie:nvrtrie,nvsim:nvsim,nwarhk:nwarhk,nwarr:nwarr,nwArr:nwArr,nwarrow:nwarrow,nwnear:nwnear,Oacute:Oacute,oacute:oacute,oast:oast,Ocirc:Ocirc,ocirc:ocirc,ocir:ocir,Ocy:Ocy,ocy:ocy,odash:odash,Odblac:Odblac,odblac:odblac,odiv:odiv,odot:odot,odsold:odsold,OElig:OElig,oelig:oelig,ofcir:ofcir,Ofr:Ofr,ofr:ofr,ogon:ogon,Ograve:Ograve,ograve:ograve,ogt:ogt,ohbar:ohbar,ohm:ohm,oint:oint,olarr:olarr,olcir:olcir,olcross:olcross,oline:oline,olt:olt,Omacr:Omacr,omacr:omacr,Omega:Omega,omega:omega,Omicron:Omicron,omicron:omicron,omid:omid,ominus:ominus,Oopf:Oopf,oopf:oopf,opar:opar,OpenCurlyDoubleQuote:OpenCurlyDoubleQuote,OpenCurlyQuote:OpenCurlyQuote,operp:operp,oplus:oplus,orarr:orarr,Or:Or,or:or,ord:ord,order:order,orderof:orderof,ordf:ordf,ordm:ordm,origof:origof,oror:oror,orslope:orslope,orv:orv,oS:oS,Oscr:Oscr,oscr:oscr,Oslash:Oslash,oslash:oslash,osol:osol,Otilde:Otilde,otilde:otilde,otimesas:otimesas,Otimes:Otimes,otimes:otimes,Ouml:Ouml,ouml:ouml,ovbar:ovbar,OverBar:OverBar,OverBrace:OverBrace,OverBracket:OverBracket,OverParenthesis:OverParenthesis,para:para,parallel:parallel,par:par,parsim:parsim,parsl:parsl,part:part,PartialD:PartialD,Pcy:Pcy,pcy:pcy,percnt:percnt,period:period,permil:permil,perp:perp,pertenk:pertenk,Pfr:Pfr,pfr:pfr,Phi:Phi,phi:phi,phiv:phiv,phmmat:phmmat,phone:phone,Pi:Pi,pi:pi,pitchfork:pitchfork,piv:piv,planck:planck,planckh:planckh,plankv:plankv,plusacir:plusacir,plusb:plusb,pluscir:pluscir,plus:plus,plusdo:plusdo,plusdu:plusdu,pluse:pluse,PlusMinus:PlusMinus,plusmn:plusmn,plussim:plussim,plustwo:plustwo,pm:pm,Poincareplane:Poincareplane,pointint:pointint,popf:popf,Popf:Popf,pound:pound,prap:prap,Pr:Pr,pr:pr,prcue:prcue,precapprox:precapprox,prec:prec,preccurlyeq:preccurlyeq,Precedes:Precedes,PrecedesEqual:PrecedesEqual,PrecedesSlantEqual:PrecedesSlantEqual,PrecedesTilde:PrecedesTilde,preceq:preceq,precnapprox:precnapprox,precneqq:precneqq,precnsim:precnsim,pre:pre,prE:prE,precsim:precsim,prime:prime,Prime:Prime,primes:primes,prnap:prnap,prnE:prnE,prnsim:prnsim,prod:prod,Product:Product,profalar:profalar,profline:profline,profsurf:profsurf,prop:prop,Proportional:Proportional,Proportion:Proportion,propto:propto,prsim:prsim,prurel:prurel,Pscr:Pscr,pscr:pscr,Psi:Psi,psi:psi,puncsp:puncsp,Qfr:Qfr,qfr:qfr,qint:qint,qopf:qopf,Qopf:Qopf,qprime:qprime,Qscr:Qscr,qscr:qscr,quaternions:quaternions,quatint:quatint,quest:quest,questeq:questeq,quot:quot,QUOT:QUOT,rAarr:rAarr,race:race,Racute:Racute,racute:racute,radic:radic,raemptyv:raemptyv,rang:rang,Rang:Rang,rangd:rangd,range:range,rangle:rangle,raquo:raquo,rarrap:rarrap,rarrb:rarrb,rarrbfs:rarrbfs,rarrc:rarrc,rarr:rarr,Rarr:Rarr,rArr:rArr,rarrfs:rarrfs,rarrhk:rarrhk,rarrlp:rarrlp,rarrpl:rarrpl,rarrsim:rarrsim,Rarrtl:Rarrtl,rarrtl:rarrtl,rarrw:rarrw,ratail:ratail,rAtail:rAtail,ratio:ratio,rationals:rationals,rbarr:rbarr,rBarr:rBarr,RBarr:RBarr,rbbrk:rbbrk,rbrace:rbrace,rbrack:rbrack,rbrke:rbrke,rbrksld:rbrksld,rbrkslu:rbrkslu,Rcaron:Rcaron,rcaron:rcaron,Rcedil:Rcedil,rcedil:rcedil,rceil:rceil,rcub:rcub,Rcy:Rcy,rcy:rcy,rdca:rdca,rdldhar:rdldhar,rdquo:rdquo,rdquor:rdquor,rdsh:rdsh,real:real,realine:realine,realpart:realpart,reals:reals,Re:Re,rect:rect,reg:reg,REG:REG,ReverseElement:ReverseElement,ReverseEquilibrium:ReverseEquilibrium,ReverseUpEquilibrium:ReverseUpEquilibrium,rfisht:rfisht,rfloor:rfloor,rfr:rfr,Rfr:Rfr,rHar:rHar,rhard:rhard,rharu:rharu,rharul:rharul,Rho:Rho,rho:rho,rhov:rhov,RightAngleBracket:RightAngleBracket,RightArrowBar:RightArrowBar,rightarrow:rightarrow,RightArrow:RightArrow,Rightarrow:Rightarrow,RightArrowLeftArrow:RightArrowLeftArrow,rightarrowtail:rightarrowtail,RightCeiling:RightCeiling,RightDoubleBracket:RightDoubleBracket,RightDownTeeVector:RightDownTeeVector,RightDownVectorBar:RightDownVectorBar,RightDownVector:RightDownVector,RightFloor:RightFloor,rightharpoondown:rightharpoondown,rightharpoonup:rightharpoonup,rightleftarrows:rightleftarrows,rightleftharpoons:rightleftharpoons,rightrightarrows:rightrightarrows,rightsquigarrow:rightsquigarrow,RightTeeArrow:RightTeeArrow,RightTee:RightTee,RightTeeVector:RightTeeVector,rightthreetimes:rightthreetimes,RightTriangleBar:RightTriangleBar,RightTriangle:RightTriangle,RightTriangleEqual:RightTriangleEqual,RightUpDownVector:RightUpDownVector,RightUpTeeVector:RightUpTeeVector,RightUpVectorBar:RightUpVectorBar,RightUpVector:RightUpVector,RightVectorBar:RightVectorBar,RightVector:RightVector,ring:ring,risingdotseq:risingdotseq,rlarr:rlarr,rlhar:rlhar,rlm:rlm,rmoustache:rmoustache,rmoust:rmoust,rnmid:rnmid,roang:roang,roarr:roarr,robrk:robrk,ropar:ropar,ropf:ropf,Ropf:Ropf,roplus:roplus,rotimes:rotimes,RoundImplies:RoundImplies,rpar:rpar,rpargt:rpargt,rppolint:rppolint,rrarr:rrarr,Rrightarrow:Rrightarrow,rsaquo:rsaquo,rscr:rscr,Rscr:Rscr,rsh:rsh,Rsh:Rsh,rsqb:rsqb,rsquo:rsquo,rsquor:rsquor,rthree:rthree,rtimes:rtimes,rtri:rtri,rtrie:rtrie,rtrif:rtrif,rtriltri:rtriltri,RuleDelayed:RuleDelayed,ruluhar:ruluhar,rx:rx,Sacute:Sacute,sacute:sacute,sbquo:sbquo,scap:scap,Scaron:Scaron,scaron:scaron,Sc:Sc,sc:sc,sccue:sccue,sce:sce,scE:scE,Scedil:Scedil,scedil:scedil,Scirc:Scirc,scirc:scirc,scnap:scnap,scnE:scnE,scnsim:scnsim,scpolint:scpolint,scsim:scsim,Scy:Scy,scy:scy,sdotb:sdotb,sdot:sdot,sdote:sdote,searhk:searhk,searr:searr,seArr:seArr,searrow:searrow,sect:sect,semi:semi,seswar:seswar,setminus:setminus,setmn:setmn,sext:sext,Sfr:Sfr,sfr:sfr,sfrown:sfrown,sharp:sharp,SHCHcy:SHCHcy,shchcy:shchcy,SHcy:SHcy,shcy:shcy,ShortDownArrow:ShortDownArrow,ShortLeftArrow:ShortLeftArrow,shortmid:shortmid,shortparallel:shortparallel,ShortRightArrow:ShortRightArrow,ShortUpArrow:ShortUpArrow,shy:shy,Sigma:Sigma,sigma:sigma,sigmaf:sigmaf,sigmav:sigmav,sim:sim,simdot:simdot,sime:sime,simeq:simeq,simg:simg,simgE:simgE,siml:siml,simlE:simlE,simne:simne,simplus:simplus,simrarr:simrarr,slarr:slarr,SmallCircle:SmallCircle,smallsetminus:smallsetminus,smashp:smashp,smeparsl:smeparsl,smid:smid,smile:smile,smt:smt,smte:smte,smtes:smtes,SOFTcy:SOFTcy,softcy:softcy,solbar:solbar,solb:solb,sol:sol,Sopf:Sopf,sopf:sopf,spades:spades,spadesuit:spadesuit,spar:spar,sqcap:sqcap,sqcaps:sqcaps,sqcup:sqcup,sqcups:sqcups,Sqrt:Sqrt,sqsub:sqsub,sqsube:sqsube,sqsubset:sqsubset,sqsubseteq:sqsubseteq,sqsup:sqsup,sqsupe:sqsupe,sqsupset:sqsupset,sqsupseteq:sqsupseteq,square:square,Square:Square,SquareIntersection:SquareIntersection,SquareSubset:SquareSubset,SquareSubsetEqual:SquareSubsetEqual,SquareSuperset:SquareSuperset,SquareSupersetEqual:SquareSupersetEqual,SquareUnion:SquareUnion,squarf:squarf,squ:squ,squf:squf,srarr:srarr,Sscr:Sscr,sscr:sscr,ssetmn:ssetmn,ssmile:ssmile,sstarf:sstarf,Star:Star,star:star,starf:starf,straightepsilon:straightepsilon,straightphi:straightphi,strns:strns,sub:sub,Sub:Sub,subdot:subdot,subE:subE,sube:sube,subedot:subedot,submult:submult,subnE:subnE,subne:subne,subplus:subplus,subrarr:subrarr,subset:subset,Subset:Subset,subseteq:subseteq,subseteqq:subseteqq,SubsetEqual:SubsetEqual,subsetneq:subsetneq,subsetneqq:subsetneqq,subsim:subsim,subsub:subsub,subsup:subsup,succapprox:succapprox,succ:succ,succcurlyeq:succcurlyeq,Succeeds:Succeeds,SucceedsEqual:SucceedsEqual,SucceedsSlantEqual:SucceedsSlantEqual,SucceedsTilde:SucceedsTilde,succeq:succeq,succnapprox:succnapprox,succneqq:succneqq,succnsim:succnsim,succsim:succsim,SuchThat:SuchThat,sum:sum,Sum:Sum,sung:sung,sup1:sup1,sup2:sup2,sup3:sup3,sup:sup,Sup:Sup,supdot:supdot,supdsub:supdsub,supE:supE,supe:supe,supedot:supedot,Superset:Superset,SupersetEqual:SupersetEqual,suphsol:suphsol,suphsub:suphsub,suplarr:suplarr,supmult:supmult,supnE:supnE,supne:supne,supplus:supplus,supset:supset,Supset:Supset,supseteq:supseteq,supseteqq:supseteqq,supsetneq:supsetneq,supsetneqq:supsetneqq,supsim:supsim,supsub:supsub,supsup:supsup,swarhk:swarhk,swarr:swarr,swArr:swArr,swarrow:swarrow,swnwar:swnwar,szlig:szlig,Tab:Tab,target:target,Tau:Tau,tau:tau,tbrk:tbrk,Tcaron:Tcaron,tcaron:tcaron,Tcedil:Tcedil,tcedil:tcedil,Tcy:Tcy,tcy:tcy,tdot:tdot,telrec:telrec,Tfr:Tfr,tfr:tfr,there4:there4,therefore:therefore,Therefore:Therefore,Theta:Theta,theta:theta,thetasym:thetasym,thetav:thetav,thickapprox:thickapprox,thicksim:thicksim,ThickSpace:ThickSpace,ThinSpace:ThinSpace,thinsp:thinsp,thkap:thkap,thksim:thksim,THORN:THORN,thorn:thorn,tilde:tilde,Tilde:Tilde,TildeEqual:TildeEqual,TildeFullEqual:TildeFullEqual,TildeTilde:TildeTilde,timesbar:timesbar,timesb:timesb,times:times,timesd:timesd,tint:tint,toea:toea,topbot:topbot,topcir:topcir,top:top,Topf:Topf,topf:topf,topfork:topfork,tosa:tosa,tprime:tprime,trade:trade,TRADE:TRADE,triangle:triangle,triangledown:triangledown,triangleleft:triangleleft,trianglelefteq:trianglelefteq,triangleq:triangleq,triangleright:triangleright,trianglerighteq:trianglerighteq,tridot:tridot,trie:trie,triminus:triminus,TripleDot:TripleDot,triplus:triplus,trisb:trisb,tritime:tritime,trpezium:trpezium,Tscr:Tscr,tscr:tscr,TScy:TScy,tscy:tscy,TSHcy:TSHcy,tshcy:tshcy,Tstrok:Tstrok,tstrok:tstrok,twixt:twixt,twoheadleftarrow:twoheadleftarrow,twoheadrightarrow:twoheadrightarrow,Uacute:Uacute,uacute:uacute,uarr:uarr,Uarr:Uarr,uArr:uArr,Uarrocir:Uarrocir,Ubrcy:Ubrcy,ubrcy:ubrcy,Ubreve:Ubreve,ubreve:ubreve,Ucirc:Ucirc,ucirc:ucirc,Ucy:Ucy,ucy:ucy,udarr:udarr,Udblac:Udblac,udblac:udblac,udhar:udhar,ufisht:ufisht,Ufr:Ufr,ufr:ufr,Ugrave:Ugrave,ugrave:ugrave,uHar:uHar,uharl:uharl,uharr:uharr,uhblk:uhblk,ulcorn:ulcorn,ulcorner:ulcorner,ulcrop:ulcrop,ultri:ultri,Umacr:Umacr,umacr:umacr,uml:uml,UnderBar:UnderBar,UnderBrace:UnderBrace,UnderBracket:UnderBracket,UnderParenthesis:UnderParenthesis,Union:Union,UnionPlus:UnionPlus,Uogon:Uogon,uogon:uogon,Uopf:Uopf,uopf:uopf,UpArrowBar:UpArrowBar,uparrow:uparrow,UpArrow:UpArrow,Uparrow:Uparrow,UpArrowDownArrow:UpArrowDownArrow,updownarrow:updownarrow,UpDownArrow:UpDownArrow,Updownarrow:Updownarrow,UpEquilibrium:UpEquilibrium,upharpoonleft:upharpoonleft,upharpoonright:upharpoonright,uplus:uplus,UpperLeftArrow:UpperLeftArrow,UpperRightArrow:UpperRightArrow,upsi:upsi,Upsi:Upsi,upsih:upsih,Upsilon:Upsilon,upsilon:upsilon,UpTeeArrow:UpTeeArrow,UpTee:UpTee,upuparrows:upuparrows,urcorn:urcorn,urcorner:urcorner,urcrop:urcrop,Uring:Uring,uring:uring,urtri:urtri,Uscr:Uscr,uscr:uscr,utdot:utdot,Utilde:Utilde,utilde:utilde,utri:utri,utrif:utrif,uuarr:uuarr,Uuml:Uuml,uuml:uuml,uwangle:uwangle,vangrt:vangrt,varepsilon:varepsilon,varkappa:varkappa,varnothing:varnothing,varphi:varphi,varpi:varpi,varpropto:varpropto,varr:varr,vArr:vArr,varrho:varrho,varsigma:varsigma,varsubsetneq:varsubsetneq,varsubsetneqq:varsubsetneqq,varsupsetneq:varsupsetneq,varsupsetneqq:varsupsetneqq,vartheta:vartheta,vartriangleleft:vartriangleleft,vartriangleright:vartriangleright,vBar:vBar,Vbar:Vbar,vBarv:vBarv,Vcy:Vcy,vcy:vcy,vdash:vdash,vDash:vDash,Vdash:Vdash,VDash:VDash,Vdashl:Vdashl,veebar:veebar,vee:vee,Vee:Vee,veeeq:veeeq,vellip:vellip,verbar:verbar,Verbar:Verbar,vert:vert,Vert:Vert,VerticalBar:VerticalBar,VerticalLine:VerticalLine,VerticalSeparator:VerticalSeparator,VerticalTilde:VerticalTilde,VeryThinSpace:VeryThinSpace,Vfr:Vfr,vfr:vfr,vltri:vltri,vnsub:vnsub,vnsup:vnsup,Vopf:Vopf,vopf:vopf,vprop:vprop,vrtri:vrtri,Vscr:Vscr,vscr:vscr,vsubnE:vsubnE,vsubne:vsubne,vsupnE:vsupnE,vsupne:vsupne,Vvdash:Vvdash,vzigzag:vzigzag,Wcirc:Wcirc,wcirc:wcirc,wedbar:wedbar,wedge:wedge,Wedge:Wedge,wedgeq:wedgeq,weierp:weierp,Wfr:Wfr,wfr:wfr,Wopf:Wopf,wopf:wopf,wp:wp,wr:wr,wreath:wreath,Wscr:Wscr,wscr:wscr,xcap:xcap,xcirc:xcirc,xcup:xcup,xdtri:xdtri,Xfr:Xfr,xfr:xfr,xharr:xharr,xhArr:xhArr,Xi:Xi,xi:xi,xlarr:xlarr,xlArr:xlArr,xmap:xmap,xnis:xnis,xodot:xodot,Xopf:Xopf,xopf:xopf,xoplus:xoplus,xotime:xotime,xrarr:xrarr,xrArr:xrArr,Xscr:Xscr,xscr:xscr,xsqcup:xsqcup,xuplus:xuplus,xutri:xutri,xvee:xvee,xwedge:xwedge,Yacute:Yacute,yacute:yacute,YAcy:YAcy,yacy:yacy,Ycirc:Ycirc,ycirc:ycirc,Ycy:Ycy,ycy:ycy,yen:yen,Yfr:Yfr,yfr:yfr,YIcy:YIcy,yicy:yicy,Yopf:Yopf,yopf:yopf,Yscr:Yscr,yscr:yscr,YUcy:YUcy,yucy:yucy,yuml:yuml,Yuml:Yuml,Zacute:Zacute,zacute:zacute,Zcaron:Zcaron,zcaron:zcaron,Zcy:Zcy,zcy:zcy,Zdot:Zdot,zdot:zdot,zeetrf:zeetrf,ZeroWidthSpace:ZeroWidthSpace,Zeta:Zeta,zeta:zeta,zfr:zfr,Zfr:Zfr,ZHcy:ZHcy,zhcy:zhcy,zigrarr:zigrarr,zopf:zopf,Zopf:Zopf,Zscr:Zscr,zscr:zscr,zwj:zwj,zwnj:zwnj},entities$1=Object.freeze({__proto__:null,Aacute:Aacute,aacute:aacute,Abreve:Abreve,abreve:abreve,ac:ac,acd:acd,acE:acE,Acirc:Acirc,acirc:acirc,acute:acute,Acy:Acy,acy:acy,AElig:AElig,aelig:aelig,af:af,Afr:Afr,afr:afr,Agrave:Agrave,agrave:agrave,alefsym:alefsym,aleph:aleph,Alpha:Alpha,alpha:alpha,Amacr:Amacr,amacr:amacr,amalg:amalg,amp:amp,AMP:AMP,andand:andand,And:And,and:and,andd:andd,andslope:andslope,andv:andv,ang:ang,ange:ange,angle:angle,angmsdaa:angmsdaa,angmsdab:angmsdab,angmsdac:angmsdac,angmsdad:angmsdad,angmsdae:angmsdae,angmsdaf:angmsdaf,angmsdag:angmsdag,angmsdah:angmsdah,angmsd:angmsd,angrt:angrt,angrtvb:angrtvb,angrtvbd:angrtvbd,angsph:angsph,angst:angst,angzarr:angzarr,Aogon:Aogon,aogon:aogon,Aopf:Aopf,aopf:aopf,apacir:apacir,ap:ap,apE:apE,ape:ape,apid:apid,apos:apos,ApplyFunction:ApplyFunction,approx:approx,approxeq:approxeq,Aring:Aring,aring:aring,Ascr:Ascr,ascr:ascr,Assign:Assign,ast:ast,asymp:asymp,asympeq:asympeq,Atilde:Atilde,atilde:atilde,Auml:Auml,auml:auml,awconint:awconint,awint:awint,backcong:backcong,backepsilon:backepsilon,backprime:backprime,backsim:backsim,backsimeq:backsimeq,Backslash:Backslash,Barv:Barv,barvee:barvee,barwed:barwed,Barwed:Barwed,barwedge:barwedge,bbrk:bbrk,bbrktbrk:bbrktbrk,bcong:bcong,Bcy:Bcy,bcy:bcy,bdquo:bdquo,becaus:becaus,because:because,Because:Because,bemptyv:bemptyv,bepsi:bepsi,bernou:bernou,Bernoullis:Bernoullis,Beta:Beta,beta:beta,beth:beth,between:between,Bfr:Bfr,bfr:bfr,bigcap:bigcap,bigcirc:bigcirc,bigcup:bigcup,bigodot:bigodot,bigoplus:bigoplus,bigotimes:bigotimes,bigsqcup:bigsqcup,bigstar:bigstar,bigtriangledown:bigtriangledown,bigtriangleup:bigtriangleup,biguplus:biguplus,bigvee:bigvee,bigwedge:bigwedge,bkarow:bkarow,blacklozenge:blacklozenge,blacksquare:blacksquare,blacktriangle:blacktriangle,blacktriangledown:blacktriangledown,blacktriangleleft:blacktriangleleft,blacktriangleright:blacktriangleright,blank:blank,blk12:blk12,blk14:blk14,blk34:blk34,block:block,bne:bne,bnequiv:bnequiv,bNot:bNot,bnot:bnot,Bopf:Bopf,bopf:bopf,bot:bot,bottom:bottom,bowtie:bowtie,boxbox:boxbox,boxdl:boxdl,boxdL:boxdL,boxDl:boxDl,boxDL:boxDL,boxdr:boxdr,boxdR:boxdR,boxDr:boxDr,boxDR:boxDR,boxh:boxh,boxH:boxH,boxhd:boxhd,boxHd:boxHd,boxhD:boxhD,boxHD:boxHD,boxhu:boxhu,boxHu:boxHu,boxhU:boxhU,boxHU:boxHU,boxminus:boxminus,boxplus:boxplus,boxtimes:boxtimes,boxul:boxul,boxuL:boxuL,boxUl:boxUl,boxUL:boxUL,boxur:boxur,boxuR:boxuR,boxUr:boxUr,boxUR:boxUR,boxv:boxv,boxV:boxV,boxvh:boxvh,boxvH:boxvH,boxVh:boxVh,boxVH:boxVH,boxvl:boxvl,boxvL:boxvL,boxVl:boxVl,boxVL:boxVL,boxvr:boxvr,boxvR:boxvR,boxVr:boxVr,boxVR:boxVR,bprime:bprime,breve:breve,Breve:Breve,brvbar:brvbar,bscr:bscr,Bscr:Bscr,bsemi:bsemi,bsim:bsim,bsime:bsime,bsolb:bsolb,bsol:bsol,bsolhsub:bsolhsub,bull:bull,bullet:bullet,bump:bump,bumpE:bumpE,bumpe:bumpe,Bumpeq:Bumpeq,bumpeq:bumpeq,Cacute:Cacute,cacute:cacute,capand:capand,capbrcup:capbrcup,capcap:capcap,cap:cap,Cap:Cap,capcup:capcup,capdot:capdot,CapitalDifferentialD:CapitalDifferentialD,caps:caps,caret:caret,caron:caron,Cayleys:Cayleys,ccaps:ccaps,Ccaron:Ccaron,ccaron:ccaron,Ccedil:Ccedil,ccedil:ccedil,Ccirc:Ccirc,ccirc:ccirc,Cconint:Cconint,ccups:ccups,ccupssm:ccupssm,Cdot:Cdot,cdot:cdot,cedil:cedil,Cedilla:Cedilla,cemptyv:cemptyv,cent:cent,centerdot:centerdot,CenterDot:CenterDot,cfr:cfr,Cfr:Cfr,CHcy:CHcy,chcy:chcy,check:check,checkmark:checkmark,Chi:Chi,chi:chi,circ:circ,circeq:circeq,circlearrowleft:circlearrowleft,circlearrowright:circlearrowright,circledast:circledast,circledcirc:circledcirc,circleddash:circleddash,CircleDot:CircleDot,circledR:circledR,circledS:circledS,CircleMinus:CircleMinus,CirclePlus:CirclePlus,CircleTimes:CircleTimes,cir:cir,cirE:cirE,cire:cire,cirfnint:cirfnint,cirmid:cirmid,cirscir:cirscir,ClockwiseContourIntegral:ClockwiseContourIntegral,CloseCurlyDoubleQuote:CloseCurlyDoubleQuote,CloseCurlyQuote:CloseCurlyQuote,clubs:clubs,clubsuit:clubsuit,colon:colon,Colon:Colon,Colone:Colone,colone:colone,coloneq:coloneq,comma:comma,commat:commat,comp:comp,compfn:compfn,complement:complement,complexes:complexes,cong:cong,congdot:congdot,Congruent:Congruent,conint:conint,Conint:Conint,ContourIntegral:ContourIntegral,copf:copf,Copf:Copf,coprod:coprod,Coproduct:Coproduct,copy:copy,COPY:COPY,copysr:copysr,CounterClockwiseContourIntegral:CounterClockwiseContourIntegral,crarr:crarr,cross:cross,Cross:Cross,Cscr:Cscr,cscr:cscr,csub:csub,csube:csube,csup:csup,csupe:csupe,ctdot:ctdot,cudarrl:cudarrl,cudarrr:cudarrr,cuepr:cuepr,cuesc:cuesc,cularr:cularr,cularrp:cularrp,cupbrcap:cupbrcap,cupcap:cupcap,CupCap:CupCap,cup:cup,Cup:Cup,cupcup:cupcup,cupdot:cupdot,cupor:cupor,cups:cups,curarr:curarr,curarrm:curarrm,curlyeqprec:curlyeqprec,curlyeqsucc:curlyeqsucc,curlyvee:curlyvee,curlywedge:curlywedge,curren:curren,curvearrowleft:curvearrowleft,curvearrowright:curvearrowright,cuvee:cuvee,cuwed:cuwed,cwconint:cwconint,cwint:cwint,cylcty:cylcty,dagger:dagger,Dagger:Dagger,daleth:daleth,darr:darr,Darr:Darr,dArr:dArr,dash:dash,Dashv:Dashv,dashv:dashv,dbkarow:dbkarow,dblac:dblac,Dcaron:Dcaron,dcaron:dcaron,Dcy:Dcy,dcy:dcy,ddagger:ddagger,ddarr:ddarr,DD:DD,dd:dd,DDotrahd:DDotrahd,ddotseq:ddotseq,deg:deg,Del:Del,Delta:Delta,delta:delta,demptyv:demptyv,dfisht:dfisht,Dfr:Dfr,dfr:dfr,dHar:dHar,dharl:dharl,dharr:dharr,DiacriticalAcute:DiacriticalAcute,DiacriticalDot:DiacriticalDot,DiacriticalDoubleAcute:DiacriticalDoubleAcute,DiacriticalGrave:DiacriticalGrave,DiacriticalTilde:DiacriticalTilde,diam:diam,diamond:diamond,Diamond:Diamond,diamondsuit:diamondsuit,diams:diams,die:die,DifferentialD:DifferentialD,digamma:digamma,disin:disin,div:div,divide:divide,divideontimes:divideontimes,divonx:divonx,DJcy:DJcy,djcy:djcy,dlcorn:dlcorn,dlcrop:dlcrop,dollar:dollar,Dopf:Dopf,dopf:dopf,Dot:Dot,dot:dot,DotDot:DotDot,doteq:doteq,doteqdot:doteqdot,DotEqual:DotEqual,dotminus:dotminus,dotplus:dotplus,dotsquare:dotsquare,doublebarwedge:doublebarwedge,DoubleContourIntegral:DoubleContourIntegral,DoubleDot:DoubleDot,DoubleDownArrow:DoubleDownArrow,DoubleLeftArrow:DoubleLeftArrow,DoubleLeftRightArrow:DoubleLeftRightArrow,DoubleLeftTee:DoubleLeftTee,DoubleLongLeftArrow:DoubleLongLeftArrow,DoubleLongLeftRightArrow:DoubleLongLeftRightArrow,DoubleLongRightArrow:DoubleLongRightArrow,DoubleRightArrow:DoubleRightArrow,DoubleRightTee:DoubleRightTee,DoubleUpArrow:DoubleUpArrow,DoubleUpDownArrow:DoubleUpDownArrow,DoubleVerticalBar:DoubleVerticalBar,DownArrowBar:DownArrowBar,downarrow:downarrow,DownArrow:DownArrow,Downarrow:Downarrow,DownArrowUpArrow:DownArrowUpArrow,DownBreve:DownBreve,downdownarrows:downdownarrows,downharpoonleft:downharpoonleft,downharpoonright:downharpoonright,DownLeftRightVector:DownLeftRightVector,DownLeftTeeVector:DownLeftTeeVector,DownLeftVectorBar:DownLeftVectorBar,DownLeftVector:DownLeftVector,DownRightTeeVector:DownRightTeeVector,DownRightVectorBar:DownRightVectorBar,DownRightVector:DownRightVector,DownTeeArrow:DownTeeArrow,DownTee:DownTee,drbkarow:drbkarow,drcorn:drcorn,drcrop:drcrop,Dscr:Dscr,dscr:dscr,DScy:DScy,dscy:dscy,dsol:dsol,Dstrok:Dstrok,dstrok:dstrok,dtdot:dtdot,dtri:dtri,dtrif:dtrif,duarr:duarr,duhar:duhar,dwangle:dwangle,DZcy:DZcy,dzcy:dzcy,dzigrarr:dzigrarr,Eacute:Eacute,eacute:eacute,easter:easter,Ecaron:Ecaron,ecaron:ecaron,Ecirc:Ecirc,ecirc:ecirc,ecir:ecir,ecolon:ecolon,Ecy:Ecy,ecy:ecy,eDDot:eDDot,Edot:Edot,edot:edot,eDot:eDot,ee:ee,efDot:efDot,Efr:Efr,efr:efr,eg:eg,Egrave:Egrave,egrave:egrave,egs:egs,egsdot:egsdot,el:el,Element:Element,elinters:elinters,ell:ell,els:els,elsdot:elsdot,Emacr:Emacr,emacr:emacr,empty:empty,emptyset:emptyset,EmptySmallSquare:EmptySmallSquare,emptyv:emptyv,EmptyVerySmallSquare:EmptyVerySmallSquare,emsp13:emsp13,emsp14:emsp14,emsp:emsp,ENG:ENG,eng:eng,ensp:ensp,Eogon:Eogon,eogon:eogon,Eopf:Eopf,eopf:eopf,epar:epar,eparsl:eparsl,eplus:eplus,epsi:epsi,Epsilon:Epsilon,epsilon:epsilon,epsiv:epsiv,eqcirc:eqcirc,eqcolon:eqcolon,eqsim:eqsim,eqslantgtr:eqslantgtr,eqslantless:eqslantless,Equal:Equal,equals:equals,EqualTilde:EqualTilde,equest:equest,Equilibrium:Equilibrium,equiv:equiv,equivDD:equivDD,eqvparsl:eqvparsl,erarr:erarr,erDot:erDot,escr:escr,Escr:Escr,esdot:esdot,Esim:Esim,esim:esim,Eta:Eta,eta:eta,ETH:ETH,eth:eth,Euml:Euml,euml:euml,euro:euro,excl:excl,exist:exist,Exists:Exists,expectation:expectation,exponentiale:exponentiale,ExponentialE:ExponentialE,fallingdotseq:fallingdotseq,Fcy:Fcy,fcy:fcy,female:female,ffilig:ffilig,fflig:fflig,ffllig:ffllig,Ffr:Ffr,ffr:ffr,filig:filig,FilledSmallSquare:FilledSmallSquare,FilledVerySmallSquare:FilledVerySmallSquare,fjlig:fjlig,flat:flat,fllig:fllig,fltns:fltns,fnof:fnof,Fopf:Fopf,fopf:fopf,forall:forall,ForAll:ForAll,fork:fork,forkv:forkv,Fouriertrf:Fouriertrf,fpartint:fpartint,frac12:frac12,frac13:frac13,frac14:frac14,frac15:frac15,frac16:frac16,frac18:frac18,frac23:frac23,frac25:frac25,frac34:frac34,frac35:frac35,frac38:frac38,frac45:frac45,frac56:frac56,frac58:frac58,frac78:frac78,frasl:frasl,frown:frown,fscr:fscr,Fscr:Fscr,gacute:gacute,Gamma:Gamma,gamma:gamma,Gammad:Gammad,gammad:gammad,gap:gap,Gbreve:Gbreve,gbreve:gbreve,Gcedil:Gcedil,Gcirc:Gcirc,gcirc:gcirc,Gcy:Gcy,gcy:gcy,Gdot:Gdot,gdot:gdot,ge:ge,gE:gE,gEl:gEl,gel:gel,geq:geq,geqq:geqq,geqslant:geqslant,gescc:gescc,ges:ges,gesdot:gesdot,gesdoto:gesdoto,gesdotol:gesdotol,gesl:gesl,gesles:gesles,Gfr:Gfr,gfr:gfr,gg:gg,Gg:Gg,ggg:ggg,gimel:gimel,GJcy:GJcy,gjcy:gjcy,gla:gla,gl:gl,glE:glE,glj:glj,gnap:gnap,gnapprox:gnapprox,gne:gne,gnE:gnE,gneq:gneq,gneqq:gneqq,gnsim:gnsim,Gopf:Gopf,gopf:gopf,grave:grave,GreaterEqual:GreaterEqual,GreaterEqualLess:GreaterEqualLess,GreaterFullEqual:GreaterFullEqual,GreaterGreater:GreaterGreater,GreaterLess:GreaterLess,GreaterSlantEqual:GreaterSlantEqual,GreaterTilde:GreaterTilde,Gscr:Gscr,gscr:gscr,gsim:gsim,gsime:gsime,gsiml:gsiml,gtcc:gtcc,gtcir:gtcir,gt:gt,GT:GT,Gt:Gt,gtdot:gtdot,gtlPar:gtlPar,gtquest:gtquest,gtrapprox:gtrapprox,gtrarr:gtrarr,gtrdot:gtrdot,gtreqless:gtreqless,gtreqqless:gtreqqless,gtrless:gtrless,gtrsim:gtrsim,gvertneqq:gvertneqq,gvnE:gvnE,Hacek:Hacek,hairsp:hairsp,half:half,hamilt:hamilt,HARDcy:HARDcy,hardcy:hardcy,harrcir:harrcir,harr:harr,hArr:hArr,harrw:harrw,Hat:Hat,hbar:hbar,Hcirc:Hcirc,hcirc:hcirc,hearts:hearts,heartsuit:heartsuit,hellip:hellip,hercon:hercon,hfr:hfr,Hfr:Hfr,HilbertSpace:HilbertSpace,hksearow:hksearow,hkswarow:hkswarow,hoarr:hoarr,homtht:homtht,hookleftarrow:hookleftarrow,hookrightarrow:hookrightarrow,hopf:hopf,Hopf:Hopf,horbar:horbar,HorizontalLine:HorizontalLine,hscr:hscr,Hscr:Hscr,hslash:hslash,Hstrok:Hstrok,hstrok:hstrok,HumpDownHump:HumpDownHump,HumpEqual:HumpEqual,hybull:hybull,hyphen:hyphen,Iacute:Iacute,iacute:iacute,ic:ic,Icirc:Icirc,icirc:icirc,Icy:Icy,icy:icy,Idot:Idot,IEcy:IEcy,iecy:iecy,iexcl:iexcl,iff:iff,ifr:ifr,Ifr:Ifr,Igrave:Igrave,igrave:igrave,ii:ii,iiiint:iiiint,iiint:iiint,iinfin:iinfin,iiota:iiota,IJlig:IJlig,ijlig:ijlig,Imacr:Imacr,imacr:imacr,image:image$1,ImaginaryI:ImaginaryI,imagline:imagline,imagpart:imagpart,imath:imath,Im:Im,imof:imof,imped:imped,Implies:Implies,incare:incare,infin:infin,infintie:infintie,inodot:inodot,intcal:intcal,int:int,Int:Int,integers:integers,Integral:Integral,intercal:intercal,Intersection:Intersection,intlarhk:intlarhk,intprod:intprod,InvisibleComma:InvisibleComma,InvisibleTimes:InvisibleTimes,IOcy:IOcy,iocy:iocy,Iogon:Iogon,iogon:iogon,Iopf:Iopf,iopf:iopf,Iota:Iota,iota:iota,iprod:iprod,iquest:iquest,iscr:iscr,Iscr:Iscr,isin:isin,isindot:isindot,isinE:isinE,isins:isins,isinsv:isinsv,isinv:isinv,it:it,Itilde:Itilde,itilde:itilde,Iukcy:Iukcy,iukcy:iukcy,Iuml:Iuml,iuml:iuml,Jcirc:Jcirc,jcirc:jcirc,Jcy:Jcy,jcy:jcy,Jfr:Jfr,jfr:jfr,jmath:jmath,Jopf:Jopf,jopf:jopf,Jscr:Jscr,jscr:jscr,Jsercy:Jsercy,jsercy:jsercy,Jukcy:Jukcy,jukcy:jukcy,Kappa:Kappa,kappa:kappa,kappav:kappav,Kcedil:Kcedil,kcedil:kcedil,Kcy:Kcy,kcy:kcy,Kfr:Kfr,kfr:kfr,kgreen:kgreen,KHcy:KHcy,khcy:khcy,KJcy:KJcy,kjcy:kjcy,Kopf:Kopf,kopf:kopf,Kscr:Kscr,kscr:kscr,lAarr:lAarr,Lacute:Lacute,lacute:lacute,laemptyv:laemptyv,lagran:lagran,Lambda:Lambda,lambda:lambda,lang:lang,Lang:Lang,langd:langd,langle:langle,lap:lap,Laplacetrf:Laplacetrf,laquo:laquo,larrb:larrb,larrbfs:larrbfs,larr:larr,Larr:Larr,lArr:lArr,larrfs:larrfs,larrhk:larrhk,larrlp:larrlp,larrpl:larrpl,larrsim:larrsim,larrtl:larrtl,latail:latail,lAtail:lAtail,lat:lat,late:late,lates:lates,lbarr:lbarr,lBarr:lBarr,lbbrk:lbbrk,lbrace:lbrace,lbrack:lbrack,lbrke:lbrke,lbrksld:lbrksld,lbrkslu:lbrkslu,Lcaron:Lcaron,lcaron:lcaron,Lcedil:Lcedil,lcedil:lcedil,lceil:lceil,lcub:lcub,Lcy:Lcy,lcy:lcy,ldca:ldca,ldquo:ldquo,ldquor:ldquor,ldrdhar:ldrdhar,ldrushar:ldrushar,ldsh:ldsh,le:le,lE:lE,LeftAngleBracket:LeftAngleBracket,LeftArrowBar:LeftArrowBar,leftarrow:leftarrow,LeftArrow:LeftArrow,Leftarrow:Leftarrow,LeftArrowRightArrow:LeftArrowRightArrow,leftarrowtail:leftarrowtail,LeftCeiling:LeftCeiling,LeftDoubleBracket:LeftDoubleBracket,LeftDownTeeVector:LeftDownTeeVector,LeftDownVectorBar:LeftDownVectorBar,LeftDownVector:LeftDownVector,LeftFloor:LeftFloor,leftharpoondown:leftharpoondown,leftharpoonup:leftharpoonup,leftleftarrows:leftleftarrows,leftrightarrow:leftrightarrow,LeftRightArrow:LeftRightArrow,Leftrightarrow:Leftrightarrow,leftrightarrows:leftrightarrows,leftrightharpoons:leftrightharpoons,leftrightsquigarrow:leftrightsquigarrow,LeftRightVector:LeftRightVector,LeftTeeArrow:LeftTeeArrow,LeftTee:LeftTee,LeftTeeVector:LeftTeeVector,leftthreetimes:leftthreetimes,LeftTriangleBar:LeftTriangleBar,LeftTriangle:LeftTriangle,LeftTriangleEqual:LeftTriangleEqual,LeftUpDownVector:LeftUpDownVector,LeftUpTeeVector:LeftUpTeeVector,LeftUpVectorBar:LeftUpVectorBar,LeftUpVector:LeftUpVector,LeftVectorBar:LeftVectorBar,LeftVector:LeftVector,lEg:lEg,leg:leg,leq:leq,leqq:leqq,leqslant:leqslant,lescc:lescc,les:les,lesdot:lesdot,lesdoto:lesdoto,lesdotor:lesdotor,lesg:lesg,lesges:lesges,lessapprox:lessapprox,lessdot:lessdot,lesseqgtr:lesseqgtr,lesseqqgtr:lesseqqgtr,LessEqualGreater:LessEqualGreater,LessFullEqual:LessFullEqual,LessGreater:LessGreater,lessgtr:lessgtr,LessLess:LessLess,lesssim:lesssim,LessSlantEqual:LessSlantEqual,LessTilde:LessTilde,lfisht:lfisht,lfloor:lfloor,Lfr:Lfr,lfr:lfr,lg:lg,lgE:lgE,lHar:lHar,lhard:lhard,lharu:lharu,lharul:lharul,lhblk:lhblk,LJcy:LJcy,ljcy:ljcy,llarr:llarr,ll:ll,Ll:Ll,llcorner:llcorner,Lleftarrow:Lleftarrow,llhard:llhard,lltri:lltri,Lmidot:Lmidot,lmidot:lmidot,lmoustache:lmoustache,lmoust:lmoust,lnap:lnap,lnapprox:lnapprox,lne:lne,lnE:lnE,lneq:lneq,lneqq:lneqq,lnsim:lnsim,loang:loang,loarr:loarr,lobrk:lobrk,longleftarrow:longleftarrow,LongLeftArrow:LongLeftArrow,Longleftarrow:Longleftarrow,longleftrightarrow:longleftrightarrow,LongLeftRightArrow:LongLeftRightArrow,Longleftrightarrow:Longleftrightarrow,longmapsto:longmapsto,longrightarrow:longrightarrow,LongRightArrow:LongRightArrow,Longrightarrow:Longrightarrow,looparrowleft:looparrowleft,looparrowright:looparrowright,lopar:lopar,Lopf:Lopf,lopf:lopf,loplus:loplus,lotimes:lotimes,lowast:lowast,lowbar:lowbar,LowerLeftArrow:LowerLeftArrow,LowerRightArrow:LowerRightArrow,loz:loz,lozenge:lozenge,lozf:lozf,lpar:lpar,lparlt:lparlt,lrarr:lrarr,lrcorner:lrcorner,lrhar:lrhar,lrhard:lrhard,lrm:lrm,lrtri:lrtri,lsaquo:lsaquo,lscr:lscr,Lscr:Lscr,lsh:lsh,Lsh:Lsh,lsim:lsim,lsime:lsime,lsimg:lsimg,lsqb:lsqb,lsquo:lsquo,lsquor:lsquor,Lstrok:Lstrok,lstrok:lstrok,ltcc:ltcc,ltcir:ltcir,lt:lt,LT:LT,Lt:Lt,ltdot:ltdot,lthree:lthree,ltimes:ltimes,ltlarr:ltlarr,ltquest:ltquest,ltri:ltri,ltrie:ltrie,ltrif:ltrif,ltrPar:ltrPar,lurdshar:lurdshar,luruhar:luruhar,lvertneqq:lvertneqq,lvnE:lvnE,macr:macr,male:male,malt:malt,maltese:maltese,map:map,mapsto:mapsto,mapstodown:mapstodown,mapstoleft:mapstoleft,mapstoup:mapstoup,marker:marker,mcomma:mcomma,Mcy:Mcy,mcy:mcy,mdash:mdash,mDDot:mDDot,measuredangle:measuredangle,MediumSpace:MediumSpace,Mellintrf:Mellintrf,Mfr:Mfr,mfr:mfr,mho:mho,micro:micro,midast:midast,midcir:midcir,mid:mid,middot:middot,minusb:minusb,minus:minus,minusd:minusd,minusdu:minusdu,MinusPlus:MinusPlus,mlcp:mlcp,mldr:mldr,mnplus:mnplus,models:models,Mopf:Mopf,mopf:mopf,mp:mp,mscr:mscr,Mscr:Mscr,mstpos:mstpos,Mu:Mu,mu:mu,multimap:multimap,mumap:mumap,nabla:nabla,Nacute:Nacute,nacute:nacute,nang:nang,nap:nap,napE:napE,napid:napid,napos:napos,napprox:napprox,natural:natural,naturals:naturals,natur:natur,nbsp:nbsp,nbump:nbump,nbumpe:nbumpe,ncap:ncap,Ncaron:Ncaron,ncaron:ncaron,Ncedil:Ncedil,ncedil:ncedil,ncong:ncong,ncongdot:ncongdot,ncup:ncup,Ncy:Ncy,ncy:ncy,ndash:ndash,nearhk:nearhk,nearr:nearr,neArr:neArr,nearrow:nearrow,ne:ne,nedot:nedot,NegativeMediumSpace:NegativeMediumSpace,NegativeThickSpace:NegativeThickSpace,NegativeThinSpace:NegativeThinSpace,NegativeVeryThinSpace:NegativeVeryThinSpace,nequiv:nequiv,nesear:nesear,nesim:nesim,NestedGreaterGreater:NestedGreaterGreater,NestedLessLess:NestedLessLess,NewLine:NewLine,nexist:nexist,nexists:nexists,Nfr:Nfr,nfr:nfr,ngE:ngE,nge:nge,ngeq:ngeq,ngeqq:ngeqq,ngeqslant:ngeqslant,nges:nges,nGg:nGg,ngsim:ngsim,nGt:nGt,ngt:ngt,ngtr:ngtr,nGtv:nGtv,nharr:nharr,nhArr:nhArr,nhpar:nhpar,ni:ni,nis:nis,nisd:nisd,niv:niv,NJcy:NJcy,njcy:njcy,nlarr:nlarr,nlArr:nlArr,nldr:nldr,nlE:nlE,nle:nle,nleftarrow:nleftarrow,nLeftarrow:nLeftarrow,nleftrightarrow:nleftrightarrow,nLeftrightarrow:nLeftrightarrow,nleq:nleq,nleqq:nleqq,nleqslant:nleqslant,nles:nles,nless:nless,nLl:nLl,nlsim:nlsim,nLt:nLt,nlt:nlt,nltri:nltri,nltrie:nltrie,nLtv:nLtv,nmid:nmid,NoBreak:NoBreak,NonBreakingSpace:NonBreakingSpace,nopf:nopf,Nopf:Nopf,Not:Not,not:not,NotCongruent:NotCongruent,NotCupCap:NotCupCap,NotDoubleVerticalBar:NotDoubleVerticalBar,NotElement:NotElement,NotEqual:NotEqual,NotEqualTilde:NotEqualTilde,NotExists:NotExists,NotGreater:NotGreater,NotGreaterEqual:NotGreaterEqual,NotGreaterFullEqual:NotGreaterFullEqual,NotGreaterGreater:NotGreaterGreater,NotGreaterLess:NotGreaterLess,NotGreaterSlantEqual:NotGreaterSlantEqual,NotGreaterTilde:NotGreaterTilde,NotHumpDownHump:NotHumpDownHump,NotHumpEqual:NotHumpEqual,notin:notin,notindot:notindot,notinE:notinE,notinva:notinva,notinvb:notinvb,notinvc:notinvc,NotLeftTriangleBar:NotLeftTriangleBar,NotLeftTriangle:NotLeftTriangle,NotLeftTriangleEqual:NotLeftTriangleEqual,NotLess:NotLess,NotLessEqual:NotLessEqual,NotLessGreater:NotLessGreater,NotLessLess:NotLessLess,NotLessSlantEqual:NotLessSlantEqual,NotLessTilde:NotLessTilde,NotNestedGreaterGreater:NotNestedGreaterGreater,NotNestedLessLess:NotNestedLessLess,notni:notni,notniva:notniva,notnivb:notnivb,notnivc:notnivc,NotPrecedes:NotPrecedes,NotPrecedesEqual:NotPrecedesEqual,NotPrecedesSlantEqual:NotPrecedesSlantEqual,NotReverseElement:NotReverseElement,NotRightTriangleBar:NotRightTriangleBar,NotRightTriangle:NotRightTriangle,NotRightTriangleEqual:NotRightTriangleEqual,NotSquareSubset:NotSquareSubset,NotSquareSubsetEqual:NotSquareSubsetEqual,NotSquareSuperset:NotSquareSuperset,NotSquareSupersetEqual:NotSquareSupersetEqual,NotSubset:NotSubset,NotSubsetEqual:NotSubsetEqual,NotSucceeds:NotSucceeds,NotSucceedsEqual:NotSucceedsEqual,NotSucceedsSlantEqual:NotSucceedsSlantEqual,NotSucceedsTilde:NotSucceedsTilde,NotSuperset:NotSuperset,NotSupersetEqual:NotSupersetEqual,NotTilde:NotTilde,NotTildeEqual:NotTildeEqual,NotTildeFullEqual:NotTildeFullEqual,NotTildeTilde:NotTildeTilde,NotVerticalBar:NotVerticalBar,nparallel:nparallel,npar:npar,nparsl:nparsl,npart:npart,npolint:npolint,npr:npr,nprcue:nprcue,nprec:nprec,npreceq:npreceq,npre:npre,nrarrc:nrarrc,nrarr:nrarr,nrArr:nrArr,nrarrw:nrarrw,nrightarrow:nrightarrow,nRightarrow:nRightarrow,nrtri:nrtri,nrtrie:nrtrie,nsc:nsc,nsccue:nsccue,nsce:nsce,Nscr:Nscr,nscr:nscr,nshortmid:nshortmid,nshortparallel:nshortparallel,nsim:nsim,nsime:nsime,nsimeq:nsimeq,nsmid:nsmid,nspar:nspar,nsqsube:nsqsube,nsqsupe:nsqsupe,nsub:nsub,nsubE:nsubE,nsube:nsube,nsubset:nsubset,nsubseteq:nsubseteq,nsubseteqq:nsubseteqq,nsucc:nsucc,nsucceq:nsucceq,nsup:nsup,nsupE:nsupE,nsupe:nsupe,nsupset:nsupset,nsupseteq:nsupseteq,nsupseteqq:nsupseteqq,ntgl:ntgl,Ntilde:Ntilde,ntilde:ntilde,ntlg:ntlg,ntriangleleft:ntriangleleft,ntrianglelefteq:ntrianglelefteq,ntriangleright:ntriangleright,ntrianglerighteq:ntrianglerighteq,Nu:Nu,nu:nu,num:num,numero:numero,numsp:numsp,nvap:nvap,nvdash:nvdash,nvDash:nvDash,nVdash:nVdash,nVDash:nVDash,nvge:nvge,nvgt:nvgt,nvHarr:nvHarr,nvinfin:nvinfin,nvlArr:nvlArr,nvle:nvle,nvlt:nvlt,nvltrie:nvltrie,nvrArr:nvrArr,nvrtrie:nvrtrie,nvsim:nvsim,nwarhk:nwarhk,nwarr:nwarr,nwArr:nwArr,nwarrow:nwarrow,nwnear:nwnear,Oacute:Oacute,oacute:oacute,oast:oast,Ocirc:Ocirc,ocirc:ocirc,ocir:ocir,Ocy:Ocy,ocy:ocy,odash:odash,Odblac:Odblac,odblac:odblac,odiv:odiv,odot:odot,odsold:odsold,OElig:OElig,oelig:oelig,ofcir:ofcir,Ofr:Ofr,ofr:ofr,ogon:ogon,Ograve:Ograve,ograve:ograve,ogt:ogt,ohbar:ohbar,ohm:ohm,oint:oint,olarr:olarr,olcir:olcir,olcross:olcross,oline:oline,olt:olt,Omacr:Omacr,omacr:omacr,Omega:Omega,omega:omega,Omicron:Omicron,omicron:omicron,omid:omid,ominus:ominus,Oopf:Oopf,oopf:oopf,opar:opar,OpenCurlyDoubleQuote:OpenCurlyDoubleQuote,OpenCurlyQuote:OpenCurlyQuote,operp:operp,oplus:oplus,orarr:orarr,Or:Or,or:or,ord:ord,order:order,orderof:orderof,ordf:ordf,ordm:ordm,origof:origof,oror:oror,orslope:orslope,orv:orv,oS:oS,Oscr:Oscr,oscr:oscr,Oslash:Oslash,oslash:oslash,osol:osol,Otilde:Otilde,otilde:otilde,otimesas:otimesas,Otimes:Otimes,otimes:otimes,Ouml:Ouml,ouml:ouml,ovbar:ovbar,OverBar:OverBar,OverBrace:OverBrace,OverBracket:OverBracket,OverParenthesis:OverParenthesis,para:para,parallel:parallel,par:par,parsim:parsim,parsl:parsl,part:part,PartialD:PartialD,Pcy:Pcy,pcy:pcy,percnt:percnt,period:period,permil:permil,perp:perp,pertenk:pertenk,Pfr:Pfr,pfr:pfr,Phi:Phi,phi:phi,phiv:phiv,phmmat:phmmat,phone:phone,Pi:Pi,pi:pi,pitchfork:pitchfork,piv:piv,planck:planck,planckh:planckh,plankv:plankv,plusacir:plusacir,plusb:plusb,pluscir:pluscir,plus:plus,plusdo:plusdo,plusdu:plusdu,pluse:pluse,PlusMinus:PlusMinus,plusmn:plusmn,plussim:plussim,plustwo:plustwo,pm:pm,Poincareplane:Poincareplane,pointint:pointint,popf:popf,Popf:Popf,pound:pound,prap:prap,Pr:Pr,pr:pr,prcue:prcue,precapprox:precapprox,prec:prec,preccurlyeq:preccurlyeq,Precedes:Precedes,PrecedesEqual:PrecedesEqual,PrecedesSlantEqual:PrecedesSlantEqual,PrecedesTilde:PrecedesTilde,preceq:preceq,precnapprox:precnapprox,precneqq:precneqq,precnsim:precnsim,pre:pre,prE:prE,precsim:precsim,prime:prime,Prime:Prime,primes:primes,prnap:prnap,prnE:prnE,prnsim:prnsim,prod:prod,Product:Product,profalar:profalar,profline:profline,profsurf:profsurf,prop:prop,Proportional:Proportional,Proportion:Proportion,propto:propto,prsim:prsim,prurel:prurel,Pscr:Pscr,pscr:pscr,Psi:Psi,psi:psi,puncsp:puncsp,Qfr:Qfr,qfr:qfr,qint:qint,qopf:qopf,Qopf:Qopf,qprime:qprime,Qscr:Qscr,qscr:qscr,quaternions:quaternions,quatint:quatint,quest:quest,questeq:questeq,quot:quot,QUOT:QUOT,rAarr:rAarr,race:race,Racute:Racute,racute:racute,radic:radic,raemptyv:raemptyv,rang:rang,Rang:Rang,rangd:rangd,range:range,rangle:rangle,raquo:raquo,rarrap:rarrap,rarrb:rarrb,rarrbfs:rarrbfs,rarrc:rarrc,rarr:rarr,Rarr:Rarr,rArr:rArr,rarrfs:rarrfs,rarrhk:rarrhk,rarrlp:rarrlp,rarrpl:rarrpl,rarrsim:rarrsim,Rarrtl:Rarrtl,rarrtl:rarrtl,rarrw:rarrw,ratail:ratail,rAtail:rAtail,ratio:ratio,rationals:rationals,rbarr:rbarr,rBarr:rBarr,RBarr:RBarr,rbbrk:rbbrk,rbrace:rbrace,rbrack:rbrack,rbrke:rbrke,rbrksld:rbrksld,rbrkslu:rbrkslu,Rcaron:Rcaron,rcaron:rcaron,Rcedil:Rcedil,rcedil:rcedil,rceil:rceil,rcub:rcub,Rcy:Rcy,rcy:rcy,rdca:rdca,rdldhar:rdldhar,rdquo:rdquo,rdquor:rdquor,rdsh:rdsh,real:real,realine:realine,realpart:realpart,reals:reals,Re:Re,rect:rect,reg:reg,REG:REG,ReverseElement:ReverseElement,ReverseEquilibrium:ReverseEquilibrium,ReverseUpEquilibrium:ReverseUpEquilibrium,rfisht:rfisht,rfloor:rfloor,rfr:rfr,Rfr:Rfr,rHar:rHar,rhard:rhard,rharu:rharu,rharul:rharul,Rho:Rho,rho:rho,rhov:rhov,RightAngleBracket:RightAngleBracket,RightArrowBar:RightArrowBar,rightarrow:rightarrow,RightArrow:RightArrow,Rightarrow:Rightarrow,RightArrowLeftArrow:RightArrowLeftArrow,rightarrowtail:rightarrowtail,RightCeiling:RightCeiling,RightDoubleBracket:RightDoubleBracket,RightDownTeeVector:RightDownTeeVector,RightDownVectorBar:RightDownVectorBar,RightDownVector:RightDownVector,RightFloor:RightFloor,rightharpoondown:rightharpoondown,rightharpoonup:rightharpoonup,rightleftarrows:rightleftarrows,rightleftharpoons:rightleftharpoons,rightrightarrows:rightrightarrows,rightsquigarrow:rightsquigarrow,RightTeeArrow:RightTeeArrow,RightTee:RightTee,RightTeeVector:RightTeeVector,rightthreetimes:rightthreetimes,RightTriangleBar:RightTriangleBar,RightTriangle:RightTriangle,RightTriangleEqual:RightTriangleEqual,RightUpDownVector:RightUpDownVector,RightUpTeeVector:RightUpTeeVector,RightUpVectorBar:RightUpVectorBar,RightUpVector:RightUpVector,RightVectorBar:RightVectorBar,RightVector:RightVector,ring:ring,risingdotseq:risingdotseq,rlarr:rlarr,rlhar:rlhar,rlm:rlm,rmoustache:rmoustache,rmoust:rmoust,rnmid:rnmid,roang:roang,roarr:roarr,robrk:robrk,ropar:ropar,ropf:ropf,Ropf:Ropf,roplus:roplus,rotimes:rotimes,RoundImplies:RoundImplies,rpar:rpar,rpargt:rpargt,rppolint:rppolint,rrarr:rrarr,Rrightarrow:Rrightarrow,rsaquo:rsaquo,rscr:rscr,Rscr:Rscr,rsh:rsh,Rsh:Rsh,rsqb:rsqb,rsquo:rsquo,rsquor:rsquor,rthree:rthree,rtimes:rtimes,rtri:rtri,rtrie:rtrie,rtrif:rtrif,rtriltri:rtriltri,RuleDelayed:RuleDelayed,ruluhar:ruluhar,rx:rx,Sacute:Sacute,sacute:sacute,sbquo:sbquo,scap:scap,Scaron:Scaron,scaron:scaron,Sc:Sc,sc:sc,sccue:sccue,sce:sce,scE:scE,Scedil:Scedil,scedil:scedil,Scirc:Scirc,scirc:scirc,scnap:scnap,scnE:scnE,scnsim:scnsim,scpolint:scpolint,scsim:scsim,Scy:Scy,scy:scy,sdotb:sdotb,sdot:sdot,sdote:sdote,searhk:searhk,searr:searr,seArr:seArr,searrow:searrow,sect:sect,semi:semi,seswar:seswar,setminus:setminus,setmn:setmn,sext:sext,Sfr:Sfr,sfr:sfr,sfrown:sfrown,sharp:sharp,SHCHcy:SHCHcy,shchcy:shchcy,SHcy:SHcy,shcy:shcy,ShortDownArrow:ShortDownArrow,ShortLeftArrow:ShortLeftArrow,shortmid:shortmid,shortparallel:shortparallel,ShortRightArrow:ShortRightArrow,ShortUpArrow:ShortUpArrow,shy:shy,Sigma:Sigma,sigma:sigma,sigmaf:sigmaf,sigmav:sigmav,sim:sim,simdot:simdot,sime:sime,simeq:simeq,simg:simg,simgE:simgE,siml:siml,simlE:simlE,simne:simne,simplus:simplus,simrarr:simrarr,slarr:slarr,SmallCircle:SmallCircle,smallsetminus:smallsetminus,smashp:smashp,smeparsl:smeparsl,smid:smid,smile:smile,smt:smt,smte:smte,smtes:smtes,SOFTcy:SOFTcy,softcy:softcy,solbar:solbar,solb:solb,sol:sol,Sopf:Sopf,sopf:sopf,spades:spades,spadesuit:spadesuit,spar:spar,sqcap:sqcap,sqcaps:sqcaps,sqcup:sqcup,sqcups:sqcups,Sqrt:Sqrt,sqsub:sqsub,sqsube:sqsube,sqsubset:sqsubset,sqsubseteq:sqsubseteq,sqsup:sqsup,sqsupe:sqsupe,sqsupset:sqsupset,sqsupseteq:sqsupseteq,square:square,Square:Square,SquareIntersection:SquareIntersection,SquareSubset:SquareSubset,SquareSubsetEqual:SquareSubsetEqual,SquareSuperset:SquareSuperset,SquareSupersetEqual:SquareSupersetEqual,SquareUnion:SquareUnion,squarf:squarf,squ:squ,squf:squf,srarr:srarr,Sscr:Sscr,sscr:sscr,ssetmn:ssetmn,ssmile:ssmile,sstarf:sstarf,Star:Star,star:star,starf:starf,straightepsilon:straightepsilon,straightphi:straightphi,strns:strns,sub:sub,Sub:Sub,subdot:subdot,subE:subE,sube:sube,subedot:subedot,submult:submult,subnE:subnE,subne:subne,subplus:subplus,subrarr:subrarr,subset:subset,Subset:Subset,subseteq:subseteq,subseteqq:subseteqq,SubsetEqual:SubsetEqual,subsetneq:subsetneq,subsetneqq:subsetneqq,subsim:subsim,subsub:subsub,subsup:subsup,succapprox:succapprox,succ:succ,succcurlyeq:succcurlyeq,Succeeds:Succeeds,SucceedsEqual:SucceedsEqual,SucceedsSlantEqual:SucceedsSlantEqual,SucceedsTilde:SucceedsTilde,succeq:succeq,succnapprox:succnapprox,succneqq:succneqq,succnsim:succnsim,succsim:succsim,SuchThat:SuchThat,sum:sum,Sum:Sum,sung:sung,sup1:sup1,sup2:sup2,sup3:sup3,sup:sup,Sup:Sup,supdot:supdot,supdsub:supdsub,supE:supE,supe:supe,supedot:supedot,Superset:Superset,SupersetEqual:SupersetEqual,suphsol:suphsol,suphsub:suphsub,suplarr:suplarr,supmult:supmult,supnE:supnE,supne:supne,supplus:supplus,supset:supset,Supset:Supset,supseteq:supseteq,supseteqq:supseteqq,supsetneq:supsetneq,supsetneqq:supsetneqq,supsim:supsim,supsub:supsub,supsup:supsup,swarhk:swarhk,swarr:swarr,swArr:swArr,swarrow:swarrow,swnwar:swnwar,szlig:szlig,Tab:Tab,target:target,Tau:Tau,tau:tau,tbrk:tbrk,Tcaron:Tcaron,tcaron:tcaron,Tcedil:Tcedil,tcedil:tcedil,Tcy:Tcy,tcy:tcy,tdot:tdot,telrec:telrec,Tfr:Tfr,tfr:tfr,there4:there4,therefore:therefore,Therefore:Therefore,Theta:Theta,theta:theta,thetasym:thetasym,thetav:thetav,thickapprox:thickapprox,thicksim:thicksim,ThickSpace:ThickSpace,ThinSpace:ThinSpace,thinsp:thinsp,thkap:thkap,thksim:thksim,THORN:THORN,thorn:thorn,tilde:tilde,Tilde:Tilde,TildeEqual:TildeEqual,TildeFullEqual:TildeFullEqual,TildeTilde:TildeTilde,timesbar:timesbar,timesb:timesb,times:times,timesd:timesd,tint:tint,toea:toea,topbot:topbot,topcir:topcir,top:top,Topf:Topf,topf:topf,topfork:topfork,tosa:tosa,tprime:tprime,trade:trade,TRADE:TRADE,triangle:triangle,triangledown:triangledown,triangleleft:triangleleft,trianglelefteq:trianglelefteq,triangleq:triangleq,triangleright:triangleright,trianglerighteq:trianglerighteq,tridot:tridot,trie:trie,triminus:triminus,TripleDot:TripleDot,triplus:triplus,trisb:trisb,tritime:tritime,trpezium:trpezium,Tscr:Tscr,tscr:tscr,TScy:TScy,tscy:tscy,TSHcy:TSHcy,tshcy:tshcy,Tstrok:Tstrok,tstrok:tstrok,twixt:twixt,twoheadleftarrow:twoheadleftarrow,twoheadrightarrow:twoheadrightarrow,Uacute:Uacute,uacute:uacute,uarr:uarr,Uarr:Uarr,uArr:uArr,Uarrocir:Uarrocir,Ubrcy:Ubrcy,ubrcy:ubrcy,Ubreve:Ubreve,ubreve:ubreve,Ucirc:Ucirc,ucirc:ucirc,Ucy:Ucy,ucy:ucy,udarr:udarr,Udblac:Udblac,udblac:udblac,udhar:udhar,ufisht:ufisht,Ufr:Ufr,ufr:ufr,Ugrave:Ugrave,ugrave:ugrave,uHar:uHar,uharl:uharl,uharr:uharr,uhblk:uhblk,ulcorn:ulcorn,ulcorner:ulcorner,ulcrop:ulcrop,ultri:ultri,Umacr:Umacr,umacr:umacr,uml:uml,UnderBar:UnderBar,UnderBrace:UnderBrace,UnderBracket:UnderBracket,UnderParenthesis:UnderParenthesis,Union:Union,UnionPlus:UnionPlus,Uogon:Uogon,uogon:uogon,Uopf:Uopf,uopf:uopf,UpArrowBar:UpArrowBar,uparrow:uparrow,UpArrow:UpArrow,Uparrow:Uparrow,UpArrowDownArrow:UpArrowDownArrow,updownarrow:updownarrow,UpDownArrow:UpDownArrow,Updownarrow:Updownarrow,UpEquilibrium:UpEquilibrium,upharpoonleft:upharpoonleft,upharpoonright:upharpoonright,uplus:uplus,UpperLeftArrow:UpperLeftArrow,UpperRightArrow:UpperRightArrow,upsi:upsi,Upsi:Upsi,upsih:upsih,Upsilon:Upsilon,upsilon:upsilon,UpTeeArrow:UpTeeArrow,UpTee:UpTee,upuparrows:upuparrows,urcorn:urcorn,urcorner:urcorner,urcrop:urcrop,Uring:Uring,uring:uring,urtri:urtri,Uscr:Uscr,uscr:uscr,utdot:utdot,Utilde:Utilde,utilde:utilde,utri:utri,utrif:utrif,uuarr:uuarr,Uuml:Uuml,uuml:uuml,uwangle:uwangle,vangrt:vangrt,varepsilon:varepsilon,varkappa:varkappa,varnothing:varnothing,varphi:varphi,varpi:varpi,varpropto:varpropto,varr:varr,vArr:vArr,varrho:varrho,varsigma:varsigma,varsubsetneq:varsubsetneq,varsubsetneqq:varsubsetneqq,varsupsetneq:varsupsetneq,varsupsetneqq:varsupsetneqq,vartheta:vartheta,vartriangleleft:vartriangleleft,vartriangleright:vartriangleright,vBar:vBar,Vbar:Vbar,vBarv:vBarv,Vcy:Vcy,vcy:vcy,vdash:vdash,vDash:vDash,Vdash:Vdash,VDash:VDash,Vdashl:Vdashl,veebar:veebar,vee:vee,Vee:Vee,veeeq:veeeq,vellip:vellip,verbar:verbar,Verbar:Verbar,vert:vert,Vert:Vert,VerticalBar:VerticalBar,VerticalLine:VerticalLine,VerticalSeparator:VerticalSeparator,VerticalTilde:VerticalTilde,VeryThinSpace:VeryThinSpace,Vfr:Vfr,vfr:vfr,vltri:vltri,vnsub:vnsub,vnsup:vnsup,Vopf:Vopf,vopf:vopf,vprop:vprop,vrtri:vrtri,Vscr:Vscr,vscr:vscr,vsubnE:vsubnE,vsubne:vsubne,vsupnE:vsupnE,vsupne:vsupne,Vvdash:Vvdash,vzigzag:vzigzag,Wcirc:Wcirc,wcirc:wcirc,wedbar:wedbar,wedge:wedge,Wedge:Wedge,wedgeq:wedgeq,weierp:weierp,Wfr:Wfr,wfr:wfr,Wopf:Wopf,wopf:wopf,wp:wp,wr:wr,wreath:wreath,Wscr:Wscr,wscr:wscr,xcap:xcap,xcirc:xcirc,xcup:xcup,xdtri:xdtri,Xfr:Xfr,xfr:xfr,xharr:xharr,xhArr:xhArr,Xi:Xi,xi:xi,xlarr:xlarr,xlArr:xlArr,xmap:xmap,xnis:xnis,xodot:xodot,Xopf:Xopf,xopf:xopf,xoplus:xoplus,xotime:xotime,xrarr:xrarr,xrArr:xrArr,Xscr:Xscr,xscr:xscr,xsqcup:xsqcup,xuplus:xuplus,xutri:xutri,xvee:xvee,xwedge:xwedge,Yacute:Yacute,yacute:yacute,YAcy:YAcy,yacy:yacy,Ycirc:Ycirc,ycirc:ycirc,Ycy:Ycy,ycy:ycy,yen:yen,Yfr:Yfr,yfr:yfr,YIcy:YIcy,yicy:yicy,Yopf:Yopf,yopf:yopf,Yscr:Yscr,yscr:yscr,YUcy:YUcy,yucy:yucy,yuml:yuml,Yuml:Yuml,Zacute:Zacute,zacute:zacute,Zcaron:Zcaron,zcaron:zcaron,Zcy:Zcy,zcy:zcy,Zdot:Zdot,zdot:zdot,zeetrf:zeetrf,ZeroWidthSpace:ZeroWidthSpace,Zeta:Zeta,zeta:zeta,zfr:zfr,Zfr:Zfr,ZHcy:ZHcy,zhcy:zhcy,zigrarr:zigrarr,zopf:zopf,Zopf:Zopf,Zscr:Zscr,zscr:zscr,zwj:zwj,zwnj:zwnj,default:entities}),require$$1=getCjsExportFromNamespace(entities$1),encodeTrie=createCommonjsModule(function(e,l){var r=commonjsGlobal&&commonjsGlobal.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},r=(Object.defineProperty(l,"__esModule",{value:!0}),l.getTrie=l.encodeHTMLTrieRe=l.getCodePoint=void 0,r(require$$1));function c(e){return 55296==(64512&e)}l.getCodePoint=null!=String.prototype.codePointAt?function(e,r){return e.codePointAt(r)}:function(e,r){return c(e.charCodeAt(r))?1024*(e.charCodeAt(r)-55296)+e.charCodeAt(r+1)-56320+65536:e.charCodeAt(r)};var u=t(r.default);function t(e){for(var r=new Map,t=0,o=Object.keys(e);t`\\x00-\\x20]+",SINGLEQUOTEDVALUE="'[^']*'",DOUBLEQUOTEDVALUE='"[^"]*"',ATTRIBUTEVALUE="(?:"+UNQUOTEDVALUE+"|"+SINGLEQUOTEDVALUE+"|"+DOUBLEQUOTEDVALUE+")",ATTRIBUTEVALUESPEC="(?:\\s*=\\s*"+ATTRIBUTEVALUE+")",ATTRIBUTE="(?:\\s+"+ATTRIBUTENAME+ATTRIBUTEVALUESPEC+"?)",OPENTAG="<"+TAGNAME+ATTRIBUTE+"*\\s*/?>",CLOSETAG="]",HTMLCOMMENT="\x3c!--\x3e|\x3c!---\x3e|\x3c!--(?:[^-]|-[^-]|--[^>])*--\x3e",PROCESSINGINSTRUCTION="[<][?][\\s\\S]*?[?][>]",DECLARATION="]*>",CDATA="",HTMLTAG="(?:"+OPENTAG+"|"+CLOSETAG+"|"+HTMLCOMMENT+"|"+PROCESSINGINSTRUCTION+"|"+DECLARATION+"|"+CDATA+")",reHtmlTag$1=new RegExp("^"+HTMLTAG),reBackslashOrAmp=/[\\&]/,ESCAPABLE$1="[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]",reEntityOrEscapedChar=new RegExp("\\\\"+ESCAPABLE$1+"|"+ENTITY$1,"gi"),XMLSPECIAL='[&<>"]',reXmlSpecial=new RegExp(XMLSPECIAL,"g"),unescapeChar=function(e){return e.charCodeAt(0)===C_BACKSLASH$1?e.charAt(1):lib_7(e)},unescapeString$1=function(e){return reBackslashOrAmp.test(e)?e.replace(reEntityOrEscapedChar,unescapeChar):e},normalizeURI$1=function(r){try{return encode_1$1(r)}catch(e){return r}},replaceUnsafeChar=function(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case'"':return""";default:return e}},escapeXml=function(e){return reXmlSpecial.test(e)?e.replace(reXmlSpecial,replaceUnsafeChar):e},_fromCodePoint,stringFromCharCode,floor$2,_fromCodePoint;function fromCodePoint(e){return _fromCodePoint(e)}_fromCodePoint=String.fromCodePoint?function(e){try{return String.fromCodePoint(e)}catch(e){if(e instanceof RangeError)return String.fromCharCode(65533);throw e}}:(stringFromCharCode=String.fromCharCode,floor$2=Math.floor,function(){var e=[],r=-1,t=arguments.length;if(!t)return"";for(var o="";++r>10),a%1024+56320),(r+1===t||16384=t.length?(l=!!(p=$gOPD$1(n,c)))&&"get"in p&&!("originalValue"in p.get)?p.get:n[c]:(l=hasown(n,c),n[c]),l&&!i&&(INTRINSICS[u]=n)}}return n},$defineProperty$1=getIntrinsic("%Object.defineProperty%",!0),hasPropertyDescriptors$1=function(){if($defineProperty$1)try{return $defineProperty$1({},"a",{value:1}),!0}catch(e){}return!1},hasPropertyDescriptors_1=(hasPropertyDescriptors$1.hasArrayLengthDefineBug=function(){if(!hasPropertyDescriptors$1())return null;try{return 1!==$defineProperty$1([],"length",{value:1}).length}catch(e){return!0}},hasPropertyDescriptors$1),$gOPD=getIntrinsic("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch(e){$gOPD=null}var gopd=$gOPD,require$$0$1=hasPropertyDescriptors_1,gOPD$1=gopd,hasPropertyDescriptors=require$$0$1(),$defineProperty=hasPropertyDescriptors&&getIntrinsic("%Object.defineProperty%",!0);if($defineProperty)try{$defineProperty({},"a",{value:1})}catch(e){$defineProperty=!1}var $SyntaxError=getIntrinsic("%SyntaxError%"),$TypeError$6=getIntrinsic("%TypeError%"),defineDataProperty$1=function(e,r,t){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new $TypeError$6("`obj` must be an object or a function`");if("string"!=typeof r&&"symbol"!=typeof r)throw new $TypeError$6("`property` must be a string or a symbol`");if(3>=1;return a},polyfill=function(){return String.prototype.repeat||implementation},shim=function(){var e=polyfill();return String.prototype.repeat!==e&&defineProperties_1(String.prototype,{repeat:e}),e},callBind=callBind$1,boundRepeat=callBind(polyfill()),normalizeURI=(defineProperties_1(boundRepeat,{getPolyfill:polyfill,implementation:implementation,shim:shim}),normalizeURI$1),unescapeString=unescapeString$1,C_NEWLINE$1=10,C_ASTERISK=42,C_UNDERSCORE=95,C_BACKTICK=96,C_OPEN_BRACKET$1=91,C_CLOSE_BRACKET=93,C_LESSTHAN$1=60,C_BANG=33,C_BACKSLASH=92,C_AMPERSAND=38,C_OPEN_PAREN=40,C_CLOSE_PAREN=41,C_COLON=58,C_SINGLEQUOTE=39,C_DOUBLEQUOTE=34,ESCAPABLE=ESCAPABLE$1,ESCAPED_CHAR="\\\\"+ESCAPABLE,ENTITY=ENTITY$1,reHtmlTag=reHtmlTag$1,rePunctuation=new RegExp(/^[!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/),reLinkTitle=new RegExp('^(?:"('+ESCAPED_CHAR+'|\\\\[^\\\\]|[^\\\\"\\x00])*"|\'('+ESCAPED_CHAR+"|\\\\[^\\\\]|[^\\\\'\\x00])*'|\\(("+ESCAPED_CHAR+"|\\\\[^\\\\]|[^\\\\()\\x00])*\\))"),reLinkDestinationBraces=/^(?:<(?:[^<>\n\\\x00]|\\.)*>)/,reEscapable=new RegExp("^"+ESCAPABLE),reEntityHere=new RegExp("^"+ENTITY,"i"),reTicks=/`+/,reTicksHere=/^`+/,reEllipses=/\.\.\./g,reDash=/--+/g,reEmailAutolink=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,reAutolink=/^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>/i,reSpnl=/^ *(?:\n *)?/,reWhitespaceChar=/^[ \t\n\x0b\x0c\x0d]/,reUnicodeWhitespaceChar=/^\s/,reFinalSpace=/ *$/,reInitialSpace=/^ */,reSpaceAtEndOfLine=/^ *(?:\n|$)/,reLinkLabel=/^\[(?:[^\\\[\]]|\\.){0,1000}\]/s,reMain=/^[^\n`\[\]\\!<&*_'"]+/m,text$1=function(e){var r=new Node("text");return r._literal=e,r},normalizeReference=function(e){return e.slice(1,e.length-1).trim().replace(/[ \t\r\n]+/g," ").toLowerCase().toUpperCase()},match=function(e){e=e.exec(this.subject.slice(this.pos));return null===e?null:(this.pos+=e.index+e[0].length,e[0])},peek$1=function(){return this.pos|$)/i,/^/,/\?>/,/>/,/\]\]>/],reThematicBreak=/^(?:\*[ \t]*){3,}$|^(?:_[ \t]*){3,}$|^(?:-[ \t]*){3,}$/,reMaybeSpecial=/^[#`~*+_=<>0-9-]/,reNonSpace=/[^ \t\f\v\r\n]/,reBulletListMarker=/^[*+-]/,reOrderedListMarker=/^(\d{1,9})([.)])/,reATXHeadingMarker=/^#{1,6}(?:[ \t]+|$)/,reCodeFence=/^`{3,}(?!.*`)|^~{3,}/,reClosingCodeFence=/^(?:`{3,}|~{3,})(?=[ \t]*$)/,reSetextHeadingLine=/^(?:=+|-+)[ \t]*$/,reLineEnding=/\r\n|\n|\r/,isBlank=function(e){return!reNonSpace.test(e)},isSpaceOrTab=function(e){return e===C_SPACE||e===C_TAB},peek=function(e,r){return r=r._listData.markerOffset+r._listData.padding))return 1;e.advanceOffset(r._listData.markerOffset+r._listData.padding,!0)}return 0},finalize:function(e,r){r._lastChild?r.sourcepos[1]=r._lastChild.sourcepos[1]:(r.sourcepos[1][0]=r.sourcepos[0][0],r.sourcepos[1][1]=r._listData.markerOffset+r._listData.padding)},canContain:function(e){return"item"!==e},acceptsLines:!1},heading:{continue:function(){return 1},finalize:function(){},canContain:function(){return!1},acceptsLines:!1},thematic_break:{continue:function(){return 1},finalize:function(){},canContain:function(){return!1},acceptsLines:!1},code_block:{continue:function(e,r){var t=e.currentLine,o=e.indent;if(r._isFenced){var a=o<=3&&t.charAt(e.nextNonspace)===r._fenceChar&&t.slice(e.nextNonspace).match(reClosingCodeFence);if(a&&a[0].length>=r._fenceLength)return e.lastLineLength=e.offset+o+a[0].length,e.finalize(r,e.lineNumber),2;for(var n=r._fenceOffset;0=CODE_INDENT},incorporateLine=function(e){var r,t,o=!0,a=this.doc;for(this.oldtip=this.tip,this.offset=0,this.column=0,this.blank=!1,this.partiallyConsumedTab=!1,this.lineNumber+=1,-1!==e.indexOf("\0")&&(e=e.replace(/\0/g,"�")),this.currentLine=e;(t=a._lastChild)&&t._open;){switch(a=t,this.findNextNonspace(),this.blocks[a.type].continue(this,a)){case 0:break;case 1:o=!1;break;case 2:return;default:throw"continue returned illegal value, must be 0, 1, or 2"}if(!o){a=a._parent;break}}this.allClosed=a===this.oldtip;for(var n="paragraph"!==(this.lastMatchedContainer=a).type&&blocks[a.type].acceptsLines,i=this.blockStarts,s=i.length;!n;){if(this.findNextNonspace(),!this.indented&&!reMaybeSpecial.test(e.slice(this.nextNonspace))){this.advanceNextNonspace();break}for(var l=0;l')))}function emph(e,r){this.tag(r?"em":"/em")}function strong(e,r){this.tag(r?"strong":"/strong")}function paragraph(e,r){var t=e.parent.parent,e=this.attrs(e);null!==t&&"list"===t.type&&t.listTight||(r?(this.cr(),this.tag("p",e)):(this.tag("/p"),this.cr()))}function heading(e,r){var t="h"+e.level,e=this.attrs(e);r?(this.cr(),this.tag(t,e)):(this.tag("/"+t),this.cr())}function code(e){this.tag("code"),this.out(e.literal),this.tag("/code")}function code_block(e){var r=e.info?e.info.split(/\s+/):[],t=this.attrs(e);0]*\>/;function toTagName(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase()}function XmlRenderer(e){e=e||{},this.disableTags=0,this.lastOut="\n",this.indentLevel=0,this.indent=" ",this.esc=e.esc||escapeXml,this.options=e}function render(e){this.buffer="";var r,t,o,a,n,i,s,l=e.walker(),c=this.options;for(c.time&&console.time("rendering"),this.buffer+='\n',this.buffer+='\n';s=l.next();)if(i=s.entering,s=(o=s.node).type,a=o.isContainer,n="thematic_break"===s||"linebreak"===s||"softbreak"===s,t=toTagName(s),i){switch(r=[],s){case"document":r.push(["xmlns","http://commonmark.org/xml/1.0"]);break;case"list":null!==o.listType&&r.push(["type",o.listType.toLowerCase()]),null!==o.listStart&&r.push(["start",String(o.listStart)]),null!==o.listTight&&r.push(["tight",o.listTight?"true":"false"]);var u=o.listDelimiter;null!==u&&r.push(["delimiter","."===u?"period":"paren"]);break;case"code_block":o.info&&r.push(["info",o.info]);break;case"heading":r.push(["level",String(o.level)]);break;case"link":case"image":r.push(["destination",o.destination]),r.push(["title",o.title]);break;case"custom_inline":case"custom_block":r.push(["on_enter",o.onEnter]),r.push(["on_exit",o.onExit])}c.sourcepos&&(i=o.sourcepos)&&r.push(["sourcepos",String(i[0][0])+":"+String(i[0][1])+"-"+String(i[1][0])+":"+String(i[1][1])]),this.cr(),this.out(this.tag(t,r,n)),a?this.indentLevel+=1:n||((s=o.literal)&&this.out(this.esc(s)),this.out(this.tag("/"+t)))}else--this.indentLevel,this.cr(),this.out(this.tag("/"+t));return c.time&&console.timeEnd("rendering"),this.buffer+="\n",this.buffer}function out(e){0 +
${error.message}\n${error.stack}
`, content_type: 'text/html'}); +}); \ No newline at end of file diff --git a/apps/blog/lit-all.min.js b/apps/blog/lit-all.min.js new file mode 100644 index 00000000..a5367275 --- /dev/null +++ b/apps/blog/lit-all.min.js @@ -0,0 +1,126 @@ +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const t=window,i=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s=Symbol(),e=new WeakMap;class n{constructor(t,i,e){if(this._$cssResult$=!0,e!==s)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=i}get styleSheet(){let t=this.i;const s=this.t;if(i&&void 0===t){const i=void 0!==s&&1===s.length;i&&(t=e.get(s)),void 0===t&&((this.i=t=new CSSStyleSheet).replaceSync(this.cssText),i&&e.set(s,t))}return t}toString(){return this.cssText}}const o=t=>new n("string"==typeof t?t:t+"",void 0,s),r=(t,...i)=>{const e=1===t.length?t[0]:i.reduce(((i,s,e)=>i+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[e+1]),t[0]);return new n(e,t,s)},l=(s,e)=>{i?s.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((i=>{const e=document.createElement("style"),n=t.litNonce;void 0!==n&&e.setAttribute("nonce",n),e.textContent=i.cssText,s.appendChild(e)}))},h=i?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let i="";for(const s of t.cssRules)i+=s.cssText;return o(i)})(t):t +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;var u;const c=window,a=c.trustedTypes,d=a?a.emptyScript:"",v=c.reactiveElementPolyfillSupport,f={toAttribute(t,i){switch(i){case Boolean:t=t?d:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},p=(t,i)=>i!==t&&(i==i||t==t),y={attribute:!0,type:String,converter:f,reflect:!1,hasChanged:p},b="finalized";class m extends HTMLElement{constructor(){super(),this.o=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this.l=null,this.u()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.v)&&void 0!==i?i:this.v=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this.p(s,i);void 0!==e&&(this.m.set(e,s),t.push(e))})),t}static createProperty(t,i=y){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s="symbol"==typeof t?Symbol():"__"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const n=this[t];this[i]=e,this.requestUpdate(t,n,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||y}static finalize(){if(this.hasOwnProperty(b))return!1;this[b]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.v&&(this.v=[...t.v]),this.elementProperties=new Map(t.elementProperties),this.m=new Map,this.hasOwnProperty("properties")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const i=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const t of s)i.unshift(h(t))}else void 0!==t&&i.push(h(t));return i}static p(t,i){const s=i.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof t?t.toLowerCase():void 0}u(){var t;this._=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this.g(),this.requestUpdate(),null===(t=this.constructor.v)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this.S)&&void 0!==i?i:this.S=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this.S)||void 0===i||i.splice(this.S.indexOf(t)>>>0,1)}g(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this.o.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const i=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return l(i,this.constructor.elementStyles),i}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this.S)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this.S)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}$(t,i,s=y){var e;const n=this.constructor.p(t,s);if(void 0!==n&&!0===s.reflect){const o=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:f).toAttribute(i,s.type);this.l=t,null==o?this.removeAttribute(n):this.setAttribute(n,o),this.l=null}}_$AK(t,i){var s;const e=this.constructor,n=e.m.get(t);if(void 0!==n&&this.l!==n){const t=e.getPropertyOptions(n),o="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:f;this.l=n,this[n]=o.fromAttribute(i,t.type),this.l=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||p)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this.l!==t&&(void 0===this.C&&(this.C=new Map),this.C.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._=this.T())}async T(){this.isUpdatePending=!0;try{await this._}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this.o&&(this.o.forEach(((t,i)=>this[i]=t)),this.o=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this.S)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this.P()}catch(t){throw i=!1,this.P(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this.S)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}P(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._}shouldUpdate(t){return!0}update(t){void 0!==this.C&&(this.C.forEach(((t,i)=>this.$(i,this[i],t))),this.C=void 0),this.P()}updated(t){}firstUpdated(t){}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +var g;m[b]=!0,m.elementProperties=new Map,m.elementStyles=[],m.shadowRootOptions={mode:"open"},null==v||v({ReactiveElement:m}),(null!==(u=c.reactiveElementVersions)&&void 0!==u?u:c.reactiveElementVersions=[]).push("1.6.2");const w=window,_=w.trustedTypes,$=_?_.createPolicy("lit-html",{createHTML:t=>t}):void 0,S="$lit$",T=`lit$${(Math.random()+"").slice(9)}$`,x="?"+T,E=`<${x}>`,C=document,A=()=>C.createComment(""),k=t=>null===t||"object"!=typeof t&&"function"!=typeof t,M=Array.isArray,P=t=>M(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]),U="[ \t\n\f\r]",V=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,R=/-->/g,N=/>/g,O=RegExp(`>|${U}(?:([^\\s"'>=/]+)(${U}*=${U}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),L=/'/g,j=/"/g,z=/^(?:script|style|textarea|title)$/i,H=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),I=H(1),B=H(2),D=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),Z=new WeakMap,q=C.createTreeWalker(C,129,null,!1),F=(t,i)=>{const s=t.length-1,e=[];let n,o=2===i?"":"",r=V;for(let i=0;i"===h[0]?(r=null!=n?n:V,u=-1):void 0===h[1]?u=-2:(u=r.lastIndex-h[2].length,l=h[1],r=void 0===h[3]?O:'"'===h[3]?j:L):r===j||r===L?r=O:r===R||r===N?r=V:(r=O,n=void 0);const a=r===O&&t[i+1].startsWith("/>")?" ":"";o+=r===V?s+E:u>=0?(e.push(l),s.slice(0,u)+S+s.slice(u)+T+a):s+T+(-2===u?(e.push(void 0),i):a)}const l=o+(t[s]||"")+(2===i?"":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==$?$.createHTML(l):l,e]};class G{constructor({strings:t,_$litType$:i},s){let e;this.parts=[];let n=0,o=0;const r=t.length-1,l=this.parts,[h,u]=F(t,i);if(this.el=G.createElement(h,s),q.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(e=q.nextNode())&&l.length0){e.textContent=_?_.emptyScript:"";for(let s=0;s2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=W}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const n=this.strings;let o=!1;if(void 0===n)t=J(this,t,i,0),o=!k(t)||t!==this._$AH&&t!==D,o&&(this._$AH=t);else{const e=t;let r,l;for(t=n[0],r=0;r{var e,n;const o=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let r=o._$litPart$;if(void 0===r){const t=null!==(n=null==s?void 0:s.renderBefore)&&void 0!==n?n:null;o._$litPart$=r=new Y(i.insertBefore(A(),t),t,void 0,null!=s?s:{})}return r._$AI(t),r}; +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */var lt,ht;const ut=m;class ct extends m{constructor(){super(...arguments),this.renderOptions={host:this},this.st=void 0}createRenderRoot(){var t,i;const s=super.createRenderRoot();return null!==(t=(i=this.renderOptions).renderBefore)&&void 0!==t||(i.renderBefore=s.firstChild),s}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this.st=rt(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this.st)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this.st)||void 0===t||t.setConnected(!1)}render(){return D}}ct.finalized=!0,ct._$litElement$=!0,null===(lt=globalThis.litElementHydrateSupport)||void 0===lt||lt.call(globalThis,{LitElement:ct});const at=globalThis.litElementPolyfillSupport;null==at||at({LitElement:ct});const dt={_$AK:(t,i,s)=>{t._$AK(i,s)},_$AL:t=>t._$AL};(null!==(ht=globalThis.litElementVersions)&&void 0!==ht?ht:globalThis.litElementVersions=[]).push("3.3.2"); +/** + * @license + * Copyright 2022 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const vt=!1,{G:ft}=nt,pt=t=>null===t||"object"!=typeof t&&"function"!=typeof t,yt={HTML:1,SVG:2},bt=(t,i)=>void 0===i?void 0!==(null==t?void 0:t._$litType$):(null==t?void 0:t._$litType$)===i,mt=t=>void 0!==(null==t?void 0:t._$litDirective$),gt=t=>null==t?void 0:t._$litDirective$,wt=t=>void 0===t.strings,_t=()=>document.createComment(""),$t=(t,i,s)=>{var e;const n=t._$AA.parentNode,o=void 0===i?t._$AB:i._$AA;if(void 0===s){const i=n.insertBefore(_t(),o),e=n.insertBefore(_t(),o);s=new ft(i,e,t,t.options)}else{const i=s._$AB.nextSibling,r=s._$AM,l=r!==t;if(l){let i;null===(e=s._$AQ)||void 0===e||e.call(s,t),s._$AM=t,void 0!==s._$AP&&(i=t._$AU)!==r._$AU&&s._$AP(i)}if(i!==o||l){let t=s._$AA;for(;t!==i;){const i=t.nextSibling;n.insertBefore(t,o),t=i}}}return s},St=(t,i,s=t)=>(t._$AI(i,s),t),Tt={},xt=(t,i=Tt)=>t._$AH=i,Et=t=>t._$AH,Ct=t=>{var i;null===(i=t._$AP)||void 0===i||i.call(t,!1,!0);let s=t._$AA;const e=t._$AB.nextSibling;for(;s!==e;){const t=s.nextSibling;s.remove(),s=t}},At=t=>{t._$AR()},kt={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Mt=t=>(...i)=>({_$litDirective$:t,values:i});class Pt{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,i,s){this.et=t,this._$AM=i,this.nt=s}_$AS(t,i){return this.update(t,i)}update(t,i){return this.render(...i)}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Ut=(t,i)=>{var s,e;const n=t._$AN;if(void 0===n)return!1;for(const t of n)null===(e=(s=t)._$AO)||void 0===e||e.call(s,i,!1),Ut(t,i);return!0},Vt=t=>{let i,s;do{if(void 0===(i=t._$AM))break;s=i._$AN,s.delete(t),t=i}while(0===(null==s?void 0:s.size))},Rt=t=>{for(let i;i=t._$AM;t=i){let s=i._$AN;if(void 0===s)i._$AN=s=new Set;else if(s.has(t))break;s.add(t),Lt(i)}};function Nt(t){void 0!==this._$AN?(Vt(this),this._$AM=t,Rt(this)):this._$AM=t}function Ot(t,i=!1,s=0){const e=this._$AH,n=this._$AN;if(void 0!==n&&0!==n.size)if(i)if(Array.isArray(e))for(let t=s;t{var i,s,e,n;2==t.type&&(null!==(i=(e=t)._$AP)&&void 0!==i||(e._$AP=Ot),null!==(s=(n=t)._$AQ)&&void 0!==s||(n._$AQ=Nt))};class jt extends Pt{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,i,s){super._$AT(t,i,s),Rt(this),this.isConnected=t._$AU}_$AO(t,i=!0){var s,e;t!==this.isConnected&&(this.isConnected=t,t?null===(s=this.reconnected)||void 0===s||s.call(this):null===(e=this.disconnected)||void 0===e||e.call(this)),i&&(Ut(this,t),Vt(this))}setValue(t){if(wt(this.et))this.et._$AI(t,this);else{const i=[...this.et._$AH];i[this.nt]=t,this.et._$AI(i,this,0)}}disconnected(){}reconnected(){}} +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */class zt{constructor(t){this.ot=t}disconnect(){this.ot=void 0}reconnect(t){this.ot=t}deref(){return this.ot}}class Ht{constructor(){this.rt=void 0,this.lt=void 0}get(){return this.rt}pause(){var t;null!==(t=this.rt)&&void 0!==t||(this.rt=new Promise((t=>this.lt=t)))}resume(){var t;null===(t=this.lt)||void 0===t||t.call(this),this.rt=this.lt=void 0}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */class It extends jt{constructor(){super(...arguments),this.ht=new zt(this),this.ut=new Ht}render(t,i){return D}update(t,[i,s]){if(this.isConnected||this.disconnected(),i===this.ct)return;this.ct=i;let e=0;const{ht:n,ut:o}=this;return(async(t,i)=>{for await(const s of t)if(!1===await i(s))return})(i,(async t=>{for(;o.get();)await o.get();const r=n.deref();if(void 0!==r){if(r.ct!==i)return!1;void 0!==s&&(t=s(t,e)),r.commitValue(t,e),e++}return!0})),D}commitValue(t,i){this.setValue(t)}disconnected(){this.ht.disconnect(),this.ut.pause()}reconnected(){this.ht.reconnect(this),this.ut.resume()}}const Bt=Mt(It),Dt=Mt( +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +class extends It{constructor(t){if(super(t),2!==t.type)throw Error("asyncAppend can only be used in child expressions")}update(t,i){return this.st=t,super.update(t,i)}commitValue(t,i){0===i&&At(this.st);const s=$t(this.st);St(s,t)}}),Wt=Mt( +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +class extends Pt{constructor(t){super(t),this.dt=new WeakMap}render(t){return[t]}update(t,[i]){if(bt(this.vt)&&(!bt(i)||this.vt.strings!==i.strings)){const i=Et(t).pop();let s=this.dt.get(this.vt.strings);if(void 0===s){const t=document.createDocumentFragment();s=rt(W,t),s.setConnected(!1),this.dt.set(this.vt.strings,s)}xt(s,[i]),$t(s,void 0,i)}if(bt(i)){if(!bt(this.vt)||this.vt.strings!==i.strings){const s=this.dt.get(i.strings);if(void 0!==s){const i=Et(s).pop();At(t),$t(t,void 0,i),xt(t,[i])}}this.vt=i}else this.vt=void 0;return this.render(i)}}),Zt=(t,i,s)=>{for(const s of i)if(s[0]===t)return(0,s[1])();return null==s?void 0:s()},qt=Mt( +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +class extends Pt{constructor(t){var i;if(super(t),1!==t.type||"class"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter((i=>t[i])).join(" ")+" "}update(t,[i]){var s,e;if(void 0===this.ft){this.ft=new Set,void 0!==t.strings&&(this.yt=new Set(t.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in i)i[t]&&!(null===(s=this.yt)||void 0===s?void 0:s.has(t))&&this.ft.add(t);return this.render(i)}const n=t.element.classList;this.ft.forEach((t=>{t in i||(n.remove(t),this.ft.delete(t))}));for(const t in i){const s=!!i[t];s===this.ft.has(t)||(null===(e=this.yt)||void 0===e?void 0:e.has(t))||(s?(n.add(t),this.ft.add(t)):(n.remove(t),this.ft.delete(t)))}return D}}),Ft={},Gt=Mt(class extends Pt{constructor(){super(...arguments),this.bt=Ft}render(t,i){return i()}update(t,[i,s]){if(Array.isArray(i)){if(Array.isArray(this.bt)&&this.bt.length===i.length&&i.every(((t,i)=>t===this.bt[i])))return D}else if(this.bt===i)return D;return this.bt=Array.isArray(i)?Array.from(i):i,this.render(i,s)}}),Jt=t=>null!=t?t:W +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;function*Kt(t,i){const s="function"==typeof i;if(void 0!==t){let e=-1;for(const n of t)e>-1&&(yield s?i(e):i),e++,yield n}} +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Yt=Mt(class extends Pt{constructor(){super(...arguments),this.key=W}render(t,i){return this.key=t,i}update(t,[i,s]){return i!==this.key&&(xt(t),this.key=i),s}}),Qt=Mt( +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +class extends Pt{constructor(t){if(super(t),3!==t.type&&1!==t.type&&4!==t.type)throw Error("The `live` directive is not allowed on child or event bindings");if(!wt(t))throw Error("`live` bindings can only contain a single expression")}render(t){return t}update(t,[i]){if(i===D||i===W)return i;const s=t.element,e=t.name;if(3===t.type){if(i===s[e])return D}else if(4===t.type){if(!!i===s.hasAttribute(e))return D}else if(1===t.type&&s.getAttribute(e)===i+"")return D;return xt(t),i}}); +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +function*Xt(t,i){if(void 0!==t){let s=0;for(const e of t)yield i(e,s++)}} +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function*ti(t,i,s=1){const e=void 0===i?0:t;null!=i||(i=t);for(let t=e;s>0?tnew si;class si{}const ei=new WeakMap,ni=Mt(class extends jt{render(t){return W}update(t,[i]){var s;const e=i!==this.ot;return e&&void 0!==this.ot&&this.gt(void 0),(e||this.wt!==this._t)&&(this.ot=i,this.$t=null===(s=t.options)||void 0===s?void 0:s.host,this.gt(this._t=t.element)),W}gt(t){var i;if("function"==typeof this.ot){const s=null!==(i=this.$t)&&void 0!==i?i:globalThis;let e=ei.get(s);void 0===e&&(e=new WeakMap,ei.set(s,e)),void 0!==e.get(this.ot)&&this.ot.call(this.$t,void 0),e.set(this.ot,t),void 0!==t&&this.ot.call(this.$t,t)}else this.ot.value=t}get wt(){var t,i,s;return"function"==typeof this.ot?null===(i=ei.get(null!==(t=this.$t)&&void 0!==t?t:globalThis))||void 0===i?void 0:i.get(this.ot):null===(s=this.ot)||void 0===s?void 0:s.value}disconnected(){this.wt===this._t&&this.gt(void 0)}reconnected(){this.gt(this._t)}}),oi=(t,i,s)=>{const e=new Map;for(let n=i;n<=s;n++)e.set(t[n],n);return e},ri=Mt(class extends Pt{constructor(t){if(super(t),2!==t.type)throw Error("repeat() can only be used in text expressions")}St(t,i,s){let e;void 0===s?s=i:void 0!==i&&(e=i);const n=[],o=[];let r=0;for(const i of t)n[r]=e?e(i,r):r,o[r]=s(i,r),r++;return{values:o,keys:n}}render(t,i,s){return this.St(t,i,s).values}update(t,[i,s,e]){var n;const o=Et(t),{values:r,keys:l}=this.St(i,s,e);if(!Array.isArray(o))return this.Tt=l,r;const h=null!==(n=this.Tt)&&void 0!==n?n:this.Tt=[],u=[];let c,a,d=0,v=o.length-1,f=0,p=r.length-1;for(;d<=v&&f<=p;)if(null===o[d])d++;else if(null===o[v])v--;else if(h[d]===l[f])u[f]=St(o[d],r[f]),d++,f++;else if(h[v]===l[p])u[p]=St(o[v],r[p]),v--,p--;else if(h[d]===l[p])u[p]=St(o[d],r[p]),$t(t,u[p+1],o[d]),d++,p--;else if(h[v]===l[f])u[f]=St(o[v],r[f]),$t(t,o[d],o[v]),v--,f++;else if(void 0===c&&(c=oi(l,f,p),a=oi(h,d,v)),c.has(h[d]))if(c.has(h[v])){const i=a.get(l[f]),s=void 0!==i?o[i]:null;if(null===s){const i=$t(t,o[d]);St(i,r[f]),u[f]=i}else u[f]=St(s,r[f]),$t(t,o[d],s),o[i]=null;f++}else Ct(o[v]),v--;else Ct(o[d]),d++;for(;f<=p;){const i=$t(t,u[p+1]);St(i,r[f]),u[f++]=i}for(;d<=v;){const t=o[d++];null!==t&&Ct(t)}return this.Tt=l,xt(t,u),D}}),li="important",hi=" !"+li,ui=Mt(class extends Pt{constructor(t){var i;if(super(t),1!==t.type||"style"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(t){return Object.keys(t).reduce(((i,s)=>{const e=t[s];return null==e?i:i+`${s=s.includes("-")?s:s.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${e};`}),"")}update(t,[i]){const{style:s}=t.element;if(void 0===this.xt){this.xt=new Set;for(const t in i)this.xt.add(t);return this.render(i)}this.xt.forEach((t=>{null==i[t]&&(this.xt.delete(t),t.includes("-")?s.removeProperty(t):s[t]="")}));for(const t in i){const e=i[t];if(null!=e){this.xt.add(t);const i="string"==typeof e&&e.endsWith(hi);t.includes("-")||i?s.setProperty(t,i?e.slice(0,-11):e,i?li:""):s[t]=e}}return D}}),ci=Mt( +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +class extends Pt{constructor(t){if(super(t),2!==t.type)throw Error("templateContent can only be used in child bindings")}render(t){return this.Et===t?D:(this.Et=t,document.importNode(t.content,!0))}});class ai extends Pt{constructor(t){if(super(t),this.vt=W,2!==t.type)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===W||null==t)return this.Ct=void 0,this.vt=t;if(t===D)return t;if("string"!=typeof t)throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.vt)return this.Ct;this.vt=t;const i=[t];return i.raw=i,this.Ct={_$litType$:this.constructor.resultType,strings:i,values:[]}}}ai.directiveName="unsafeHTML",ai.resultType=1;const di=Mt(ai); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */class vi extends ai{}vi.directiveName="unsafeSVG",vi.resultType=2;const fi=Mt(vi),pi=t=>!pt(t)&&"function"==typeof t.then,yi=1073741823; +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */class bi extends jt{constructor(){super(...arguments),this.At=yi,this.kt=[],this.ht=new zt(this),this.ut=new Ht}render(...t){var i;return null!==(i=t.find((t=>!pi(t))))&&void 0!==i?i:D}update(t,i){const s=this.kt;let e=s.length;this.kt=i;const n=this.ht,o=this.ut;this.isConnected||this.disconnected();for(let t=0;tthis.At);t++){const r=i[t];if(!pi(r))return this.At=t,r;t{for(;o.get();)await o.get();const i=n.deref();if(void 0!==i){const s=i.kt.indexOf(r);s>-1&&s{if((null==t?void 0:t.r)===wi)return null==t?void 0:t._$litStatic$},$i=t=>({_$litStatic$:t,r:wi}),Si=(t,...i)=>({_$litStatic$:i.reduce(((i,s,e)=>i+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(s)+t[e+1]),t[0]),r:wi}),Ti=new Map,xi=t=>(i,...s)=>{const e=s.length;let n,o;const r=[],l=[];let h,u=0,c=!1;for(;u;\n\n/**\n * A single CSSResult, CSSStyleSheet, or an array or nested arrays of those.\n */\nexport type CSSResultGroup = CSSResultOrNative | CSSResultArray;\n\nconst constructionToken = Symbol();\n\nconst cssTagCache = new WeakMap();\n\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n // This property needs to remain unminified.\n ['_$cssResult$'] = true;\n readonly cssText: string;\n private _styleSheet?: CSSStyleSheet;\n private _strings: TemplateStringsArray | undefined;\n\n private constructor(\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ) {\n if (safeToken !== constructionToken) {\n throw new Error(\n 'CSSResult is not constructable. Use `unsafeCSS` or `css` instead.'\n );\n }\n this.cssText = cssText;\n this._strings = strings;\n }\n\n // This is a getter so that it's lazy. In practice, this means stylesheets\n // are not created until the first element instance is made.\n get styleSheet(): CSSStyleSheet | undefined {\n // If `supportsAdoptingStyleSheets` is true then we assume CSSStyleSheet is\n // constructable.\n let styleSheet = this._styleSheet;\n const strings = this._strings;\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n const cacheable = strings !== undefined && strings.length === 1;\n if (cacheable) {\n styleSheet = cssTagCache.get(strings);\n }\n if (styleSheet === undefined) {\n (this._styleSheet = styleSheet = new CSSStyleSheet()).replaceSync(\n this.cssText\n );\n if (cacheable) {\n cssTagCache.set(strings, styleSheet);\n }\n }\n }\n return styleSheet;\n }\n\n toString(): string {\n return this.cssText;\n }\n}\n\ntype ConstructableCSSResult = CSSResult & {\n new (\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ): CSSResult;\n};\n\nconst textFromCSSResult = (value: CSSResultGroup | number) => {\n // This property needs to remain unminified.\n if ((value as CSSResult)['_$cssResult$'] === true) {\n return (value as CSSResult).cssText;\n } else if (typeof value === 'number') {\n return value;\n } else {\n throw new Error(\n `Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`\n );\n }\n};\n\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value: unknown) =>\n new (CSSResult as ConstructableCSSResult)(\n typeof value === 'string' ? value : String(value),\n undefined,\n constructionToken\n );\n\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (\n strings: TemplateStringsArray,\n ...values: (CSSResultGroup | number)[]\n): CSSResult => {\n const cssText =\n strings.length === 1\n ? strings[0]\n : values.reduce(\n (acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1],\n strings[0]\n );\n return new (CSSResult as ConstructableCSSResult)(\n cssText,\n strings,\n constructionToken\n );\n};\n\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic spec behavior](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (\n renderRoot: ShadowRoot,\n styles: Array\n) => {\n if (supportsAdoptingStyleSheets) {\n (renderRoot as ShadowRoot).adoptedStyleSheets = styles.map((s) =>\n s instanceof CSSStyleSheet ? s : s.styleSheet!\n );\n } else {\n styles.forEach((s) => {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = (global as any)['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = (s as CSSResult).cssText;\n renderRoot.appendChild(style);\n });\n }\n};\n\nconst cssResultFromStyleSheet = (sheet: CSSStyleSheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\n\nexport const getCompatibleStyle =\n supportsAdoptingStyleSheets ||\n (NODE_MODE && global.CSSStyleSheet === undefined)\n ? (s: CSSResultOrNative) => s\n : (s: CSSResultOrNative) =>\n s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\n\nimport {\n getCompatibleStyle,\n adoptStyles,\n CSSResultGroup,\n CSSResultOrNative,\n} from './css-tag.js';\nimport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n// In the Node build, this import will be injected by Rollup:\n// import {HTMLElement, customElements} from '@lit-labs/ssr-dom-shim';\n\nexport * from './css-tag.js';\nexport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\n\nif (NODE_MODE) {\n global.customElements ??= customElements;\n}\n\nconst DEV_MODE = true;\n\nlet requestUpdateThenable: (name: string) => {\n then: (\n onfulfilled?: (value: boolean) => void,\n _onrejected?: () => void\n ) => void;\n};\n\nlet issueWarning: (code: string, warning: string) => void;\n\nconst trustedTypes = (global as unknown as {trustedTypes?: {emptyScript: ''}})\n .trustedTypes;\n\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? (trustedTypes.emptyScript as unknown as '')\n : '';\n\nconst polyfillSupport = DEV_MODE\n ? global.reactiveElementPolyfillSupportDevMode\n : global.reactiveElementPolyfillSupport;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n const issuedWarnings: Set = (global.litIssuedWarnings ??=\n new Set());\n\n // Issue a warning, if we haven't already.\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (!issuedWarnings.has(warning)) {\n console.warn(warning);\n issuedWarnings.add(warning);\n }\n };\n\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n\n // Issue polyfill support warning.\n if (global.ShadyDOM?.inUse && polyfillSupport === undefined) {\n issueWarning(\n 'polyfill-support-missing',\n `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`\n );\n }\n\n requestUpdateThenable = (name) => ({\n then: (\n onfulfilled?: (value: boolean) => void,\n _onrejected?: () => void\n ) => {\n issueWarning(\n 'request-update-promise',\n `The \\`requestUpdate\\` method should no longer return a Promise but ` +\n `does so on \\`${name}\\`. Use \\`updateComplete\\` instead.`\n );\n if (onfulfilled !== undefined) {\n onfulfilled(false);\n }\n },\n });\n}\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ReactiveUnstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry = Update;\n export interface Update {\n kind: 'update';\n }\n }\n}\n\ninterface DebugLoggingWindow {\n // Even in dev mode, we generally don't want to emit these events, as that's\n // another level of cost, so only emit them when DEV_MODE is true _and_ when\n // window.emitLitDebugEvents is true.\n emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event: ReactiveUnstable.DebugLog.Entry) => {\n const shouldEmit = (global as unknown as DebugLoggingWindow)\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(\n new CustomEvent('lit-debug', {\n detail: event,\n })\n );\n }\n : undefined;\n\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty =

(\n prop: P,\n _obj: unknown\n): P => prop;\n\n/**\n * Converts property values to and from attribute values.\n */\nexport interface ComplexAttributeConverter {\n /**\n * Called to convert an attribute value to a property\n * value.\n */\n fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n /**\n * Called to convert a property value to an attribute\n * value.\n *\n * It returns unknown instead of string, to be compatible with\n * https://github.com/WICG/trusted-types (and similar efforts).\n */\n toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\ntype AttributeConverter =\n | ComplexAttributeConverter\n | ((value: string | null, type?: TypeHint) => Type);\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration {\n /**\n * When set to `true`, indicates the property is internal private state. The\n * property should not be set by users. When using TypeScript, this property\n * should be marked as `private` or `protected`, and it is also a common\n * practice to use a leading `_` in the name. The property is not added to\n * `observedAttributes`.\n */\n readonly state?: boolean;\n\n /**\n * Indicates how and whether the property becomes an observed attribute.\n * If the value is `false`, the property is not added to `observedAttributes`.\n * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n * becomes `foobar`). If a string, the string value is observed (e.g\n * `attribute: 'foo-bar'`).\n */\n readonly attribute?: boolean | string;\n\n /**\n * Indicates the type of the property. This is used only as a hint for the\n * `converter` to determine how to convert the attribute\n * to/from a property.\n */\n readonly type?: TypeHint;\n\n /**\n * Indicates how to convert the attribute to/from a property. If this value\n * is a function, it is used to convert the attribute value a the property\n * value. If it's an object, it can have keys for `fromAttribute` and\n * `toAttribute`. If no `toAttribute` function is provided and\n * `reflect` is set to `true`, the property value is set directly to the\n * attribute. A default `converter` is used if none is provided; it supports\n * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n * when a property changes and the converter is used to update the attribute,\n * the property is never updated again as a result of the attribute changing,\n * and vice versa.\n */\n readonly converter?: AttributeConverter;\n\n /**\n * Indicates if the property should reflect to an attribute.\n * If `true`, when the property is set, the attribute is set using the\n * attribute name determined according to the rules for the `attribute`\n * property option and the value of the property converted using the rules\n * from the `converter` property option.\n */\n readonly reflect?: boolean;\n\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n\n /**\n * Indicates whether an accessor will be created for this property. By\n * default, an accessor will be generated for this property that requests an\n * update when set. If this flag is `true`, no accessor will be created, and\n * it will be the user's responsibility to call\n * `this.requestUpdate(propertyName, oldValue)` to request an update when\n * the property changes.\n */\n readonly noAccessor?: boolean;\n}\n\n/**\n * Map of properties to PropertyDeclaration options. For each property an\n * accessor is made, and the property is processed according to the\n * PropertyDeclaration options.\n */\nexport interface PropertyDeclarations {\n readonly [key: string]: PropertyDeclaration;\n}\n\ntype PropertyDeclarationMap = Map;\n\ntype AttributeMap = Map;\n\n/**\n * A Map of property keys to values.\n *\n * Takes an optional type parameter T, which when specified as a non-any,\n * non-unknown type, will make the Map more strongly-typed, associating the map\n * keys with their corresponding value type on T.\n *\n * Use `PropertyValues` when overriding ReactiveElement.update() and\n * other lifecycle methods in order to get stronger type-checking on keys\n * and values.\n */\n// This type is conditional so that if the parameter T is not specified, or\n// is `any`, the type will include `Map`. Since T is not\n// given in the uses of PropertyValues in this file, all uses here fallback to\n// meaning `Map`, but if a developer uses\n// `PropertyValues` (or any other value for T) they will get a\n// strongly-typed Map type.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PropertyValues = T extends object\n ? PropertyValueMap\n : Map;\n\n/**\n * Do not use, instead prefer {@linkcode PropertyValues}.\n */\n// This type must be exported such that JavaScript generated by the Google\n// Closure Compiler can import a type reference.\nexport interface PropertyValueMap extends Map {\n get(k: K): T[K];\n set(key: K, value: T[K]): this;\n has(k: K): boolean;\n delete(k: K): boolean;\n}\n\nexport const defaultConverter: ComplexAttributeConverter = {\n toAttribute(value: unknown, type?: unknown): unknown {\n switch (type) {\n case Boolean:\n value = value ? emptyStringForBooleanAttribute : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n\n fromAttribute(value: string | null, type?: unknown) {\n let fromValue: unknown = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value!) as unknown;\n } catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n\nexport interface HasChanged {\n (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual: HasChanged = (value: unknown, old: unknown): boolean => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n hasChanged: notEqual,\n};\n\n/**\n * The Closure JS Compiler doesn't currently have good support for static\n * property semantics where \"this\" is dynamic (e.g.\n * https://github.com/google/closure-compiler/issues/3177 and others) so we use\n * this hack to bypass any rewriting by the compiler.\n */\nconst finalized = 'finalized';\n\n/**\n * A string representing one of the supported dev mode warning categories.\n */\nexport type WarningKind = 'change-in-update' | 'migration';\n\nexport type Initializer = (element: ReactiveElement) => void;\n\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclassers to render updates as desired.\n * @noInheritDoc\n */\nexport abstract class ReactiveElement\n // In the Node build, this `extends` clause will be substituted with\n // `(globalThis.HTMLElement ?? HTMLElement)`.\n //\n // This way, we will first prefer any global `HTMLElement` polyfill that the\n // user has assigned, and then fall back to the `HTMLElement` shim which has\n // been imported (see note at the top of this file about how this import is\n // generated by Rollup). Note that the `HTMLElement` variable has been\n // shadowed by this import, so it no longer refers to the global.\n extends HTMLElement\n implements ReactiveControllerHost\n{\n // Note: these are patched in only in DEV_MODE.\n /**\n * Read or set all the enabled warning categories for this class.\n *\n * This property is only used in development builds.\n *\n * @nocollapse\n * @category dev-mode\n */\n static enabledWarnings?: WarningKind[];\n\n /**\n * Enable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Enable for all ReactiveElement subclasses\n * ReactiveElement.enableWarning?.('migration');\n *\n * // Enable for only MyElement and subclasses\n * MyElement.enableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static enableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Disable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Disable for all ReactiveElement subclasses\n * ReactiveElement.disableWarning?.('migration');\n *\n * // Disable for only MyElement and subclasses\n * MyElement.disableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static disableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer: Initializer) {\n this.finalize();\n (this._initializers ??= []).push(initializer);\n }\n\n static _initializers?: Initializer[];\n\n /*\n * Due to closure compiler ES6 compilation bugs, @nocollapse is required on\n * all static methods and properties with initializers. Reference:\n * - https://github.com/google/closure-compiler/issues/1776\n */\n\n /**\n * Maps attribute names to properties; for example `foobar` attribute to\n * `fooBar` property. Created lazily on user subclasses when finalizing the\n * class.\n * @nocollapse\n */\n private static __attributeToPropertyMap: AttributeMap;\n\n /**\n * Marks class as having finished creating properties.\n */\n protected static [finalized] = true;\n\n /**\n * Memoized list of all element properties, including any superclass properties.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category properties\n */\n static elementProperties: PropertyDeclarationMap = new Map();\n\n /**\n * User-supplied object that maps property names to `PropertyDeclaration`\n * objects containing options for configuring reactive properties. When\n * a reactive property is set the element will update and render.\n *\n * By default properties are public fields, and as such, they should be\n * considered as primarily settable by element users, either via attribute or\n * the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the `state: true` option. Properties\n * marked as `state` do not reflect from the corresponding attribute\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating\n * public properties should typically not be done for non-primitive (object or\n * array) properties. In other cases when an element needs to manage state, a\n * private property set with the `state: true` option should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n * @nocollapse\n * @category properties\n */\n static properties: PropertyDeclarations;\n\n /**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\n static elementStyles: Array = [];\n\n /**\n * Array of styles to apply to the element. The styles should be defined\n * using the {@linkcode css} tag function, via constructible stylesheets, or\n * imported from native CSS module scripts.\n *\n * Note on Content Security Policy:\n *\n * Element styles are implemented with `