From 635d824b317e69c13d5aff8bf1f5a165871c333d Mon Sep 17 00:00:00 2001 From: jaywcjlove Date: Sat, 10 Jun 2023 07:18:50 +0000 Subject: [PATCH] v4.21.2 chore: update lerna config. 043a23c93eecf462fe0b770157800ac2891c239e --- asset-manifest.json | 6 ++-- coverage/lcov-report/index.html | 2 +- .../src/getDefaultExtensions.ts.html | 2 +- coverage/lcov-report/src/index.html | 2 +- coverage/lcov-report/src/index.tsx.html | 2 +- coverage/lcov-report/src/theme/index.html | 2 +- coverage/lcov-report/src/theme/light.ts.html | 2 +- .../lcov-report/src/useCodeMirror.ts.html | 2 +- coverage/lcov-report/src/utils.ts.html | 2 +- index.html | 2 +- static/js/main.037f2218.js | 3 ++ ...CENSE.txt => main.037f2218.js.LICENSE.txt} | 28 ++----------------- ...n.5f898922.js.map => main.037f2218.js.map} | 2 +- static/js/main.5f898922.js | 3 -- 14 files changed, 18 insertions(+), 42 deletions(-) create mode 100644 static/js/main.037f2218.js rename static/js/{main.5f898922.js.LICENSE.txt => main.037f2218.js.LICENSE.txt} (74%) rename static/js/{main.5f898922.js.map => main.037f2218.js.map} (51%) delete mode 100644 static/js/main.5f898922.js diff --git a/asset-manifest.json b/asset-manifest.json index cfb81aad1..94cc6ec2f 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { "main.css": "/react-codemirror/static/css/main.930d34f0.css", - "main.js": "/react-codemirror/static/js/main.5f898922.js", + "main.js": "/react-codemirror/static/js/main.037f2218.js", "static/js/7324.4012c92a.chunk.js": "/react-codemirror/static/js/7324.4012c92a.chunk.js", "static/js/2942.c3ac0d3e.chunk.js": "/react-codemirror/static/js/2942.c3ac0d3e.chunk.js", "static/js/2211.74218c01.chunk.js": "/react-codemirror/static/js/2211.74218c01.chunk.js", @@ -121,7 +121,7 @@ "index.html": "/react-codemirror/index.html", "static/media/index.cjs": "/react-codemirror/static/media/index.6edd0ce3dddc95851dab.cjs", "main.930d34f0.css.map": "/react-codemirror/static/css/main.930d34f0.css.map", - "main.5f898922.js.map": "/react-codemirror/static/js/main.5f898922.js.map", + "main.037f2218.js.map": "/react-codemirror/static/js/main.037f2218.js.map", "7324.4012c92a.chunk.js.map": "/react-codemirror/static/js/7324.4012c92a.chunk.js.map", "2942.c3ac0d3e.chunk.js.map": "/react-codemirror/static/js/2942.c3ac0d3e.chunk.js.map", "2211.74218c01.chunk.js.map": "/react-codemirror/static/js/2211.74218c01.chunk.js.map", @@ -244,6 +244,6 @@ "static/js/refractor-vendor.71d6cea4.js", "static/js/react-vendor.7e2fd3e0.js", "static/css/main.930d34f0.css", - "static/js/main.5f898922.js" + "static/js/main.037f2218.js" ] } \ No newline at end of file diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html index 4971156ba..717110da4 100644 --- a/coverage/lcov-report/index.html +++ b/coverage/lcov-report/index.html @@ -116,7 +116,7 @@

All files

\ No newline at end of file +React CodeMirror - CodeMirror component for React.
\ No newline at end of file diff --git a/static/js/main.037f2218.js b/static/js/main.037f2218.js new file mode 100644 index 000000000..0b66426a2 --- /dev/null +++ b/static/js/main.037f2218.js @@ -0,0 +1,3 @@ +/*! For license information please see main.037f2218.js.LICENSE.txt */ +!function(){var e={80363:function(e){function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=function(){return[]},t.resolve=t,t.id=80363,e.exports=t},90584:function(e,t,r){"use strict";var n={};r.r(n),r.d(n,{attentionMarkers:function(){return xc},contentInitial:function(){return hc},disable:function(){return Rc},document:function(){return fc},flow:function(){return mc},flowInitial:function(){return gc},insideSpan:function(){return bc},string:function(){return yc},text:function(){return vc}});var a={};function i(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}r.r(a),r.d(a,{abcdef:function(){return ri},abcdefInit:function(){return ti},androidstudio:function(){return ii},androidstudioInit:function(){return ai},atomone:function(){return di},atomoneInit:function(){return oi},aura:function(){return li},auraInit:function(){return ci},bbedit:function(){return fi},bbeditInit:function(){return Oi},bespin:function(){return wi},bespinInit:function(){return $i},darcula:function(){return bi},darculaInit:function(){return vi},defaultSettingsAbcdef:function(){return ei},defaultSettingsAndroidstudio:function(){return ni},defaultSettingsAtomone:function(){return si},defaultSettingsAura:function(){return ui},defaultSettingsBbedit:function(){return pi},defaultSettingsBespin:function(){return Qi},defaultSettingsDarcula:function(){return yi},defaultSettingsDracula:function(){return hi},defaultSettingsDuotoneDark:function(){return Vi},defaultSettingsDuotoneLight:function(){return Ni},defaultSettingsEclipse:function(){return xi},defaultSettingsGithubDark:function(){return Ji},defaultSettingsGithubLight:function(){return zi},defaultSettingsGruvboxDark:function(){return es},defaultSettingsGruvboxLight:function(){return ns},defaultSettingsMaterial:function(){return Pi},defaultSettingsMaterialDark:function(){return Ti},defaultSettingsMaterialLight:function(){return Di},defaultSettingsNoctisLilac:function(){return _i},defaultSettingsNord:function(){return ss},defaultSettingsOkaidia:function(){return us},defaultSettingsSolarizedDark:function(){return hs},defaultSettingsSolarizedLight:function(){return ps},defaultSettingsSublime:function(){return ys},defaultSettingsTokyoNight:function(){return xs},defaultSettingsTokyoNightDay:function(){return Ps},defaultSettingsTokyoNightStorm:function(){return Qs},defaultSettingsVscodeDark:function(){return Ii},defaultSettingsXcodeDark:function(){return Fs},defaultSettingsXcodeLight:function(){return ks},dracula:function(){return mi},draculaInit:function(){return gi},duotoneDark:function(){return Bi},duotoneDarkInit:function(){return Gi},duotoneLight:function(){return Yi},duotoneLightInit:function(){return Zi},eclipse:function(){return Si},eclipseInit:function(){return Ri},githubDark:function(){return Ki},githubDarkInit:function(){return Hi},githubLight:function(){return Mi},githubLightInit:function(){return Li},gruvboxDark:function(){return rs},gruvboxDarkInit:function(){return ts},gruvboxLight:function(){return is},gruvboxLightInit:function(){return as},material:function(){return ji},materialDark:function(){return Xi},materialDarkInit:function(){return ki},materialInit:function(){return Ei},materialLight:function(){return Ai},materialLightInit:function(){return Ci},noctisLilac:function(){return qi},noctisLilacInit:function(){return Fi},nord:function(){return ds},nordInit:function(){return os},okaidia:function(){return ls},okaidiaInit:function(){return cs},solarizedDark:function(){return ms},solarizedDarkInit:function(){return gs},solarizedLight:function(){return fs},solarizedLightInit:function(){return Os},sublime:function(){return bs},sublimeInit:function(){return vs},tokyoNight:function(){return Ss},tokyoNightDay:function(){return Es},tokyoNightDayInit:function(){return Ts},tokyoNightInit:function(){return Rs},tokyoNightStorm:function(){return ws},tokyoNightStormInit:function(){return $s},vscodeDark:function(){return Wi},vscodeDarkInit:function(){return Ui},xcodeDark:function(){return Is},xcodeDarkInit:function(){return qs},xcodeLight:function(){return _s},xcodeLightInit:function(){return Xs}});var s=r(46378),o=r(11026),d=r(22951),u=r(91976),c=r(67591),l=r(99616),p=r(83528),O=r.t(p,2),f=r(11092),h=r(27791),g=r(64649),m=r(27597),y=r(6983);var v=r(98119);function b(e,t,r){return b=(0,v.Z)()?Reflect.construct.bind():function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&(0,y.Z)(a,r.prototype),a},b.apply(null,arguments)}function x(e){var t="function"===typeof Map?new Map:void 0;return x=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return b(e,arguments,(0,m.Z)(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),(0,y.Z)(n,e)},x(e)}var R=r(66470),S=r(55181),Q=r(64013),$=r(53764);function w(e){return(0,R.Z)(e)||(0,S.Z)(e)||(0,Q.Z)(e)||(0,$.Z)()}var P,T=r(60726),E=r(649);function k(){return k=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0&&(t.hash=e.substr(r),e=e.substr(0,r));var n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function I(e,t,r,n){void 0===n&&(n={});var a=n,i=a.window,s=void 0===i?document.defaultView:i,o=a.v5Compat,d=void 0!==o&&o,u=s.history,c=P.Pop,l=null,p=O();function O(){return(u.state||{idx:null}).idx}function f(){c=P.Pop;var e=O(),t=null==e?null:e-p;p=e,l&&l({action:c,location:g.location,delta:t})}function h(e){var t="null"!==s.location.origin?s.location.origin:s.location.href,r="string"===typeof e?e:F(e);return D(t,"No window.location.(origin|href) available to create URL for href: "+r),new URL(r,t)}null==p&&(p=0,u.replaceState(k({},u.state,{idx:p}),""));var g={get action(){return c},get location(){return e(s,u)},listen:function(e){if(l)throw new Error("A history only accepts one active listener");return s.addEventListener(j,f),l=e,function(){s.removeEventListener(j,f),l=null}},createHref:function(e){return t(s,e)},createURL:h,encodeLocation:function(e){var t=h(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){c=P.Push;var n=_(g.location,e,t);r&&r(n,e);var a=A(n,p=O()+1),i=g.createHref(n);try{u.pushState(a,"",i)}catch(o){if(o instanceof DOMException&&"DataCloneError"===o.name)throw o;s.location.assign(i)}d&&l&&l({action:c,location:g.location,delta:1})},replace:function(e,t){c=P.Replace;var n=_(g.location,e,t);r&&r(n,e);var a=A(n,p=O()),i=g.createHref(n);u.replaceState(a,"",i),d&&l&&l({action:c,location:g.location,delta:0})},go:function(e){return u.go(e)}};return g}!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(X||(X={}));var U=new Set(["lazy","caseSensitive","path","id","index","children"]);function W(e,t,r,n){return void 0===r&&(r=[]),void 0===n&&(n={}),e.map((function(e,a){var i=[].concat((0,E.Z)(r),[a]),s="string"===typeof e.id?e.id:i.join("-");if(D(!0!==e.index||!e.children,"Cannot specify children on an index route"),D(!n[s],'Found a route id collision on id "'+s+"\". Route id's must be globally unique within Data Router usages"),function(e){return!0===e.index}(e)){var o=k({},e,t(e),{id:s});return n[s]=o,o}var d=k({},e,t(e),{id:s,children:void 0});return n[s]=d,e.children&&(d.children=W(e.children,t,i,n)),d}))}function N(e,t,r){void 0===r&&(r="/");var n=re(("string"===typeof t?q(t):t).pathname||"/",r);if(null==n)return null;var a=Z(e);!function(e){e.sort((function(e,t){return e.score!==t.score?t.score-e.score:function(e,t){var r=e.length===t.length&&e.slice(0,-1).every((function(e,r){return e===t[r]}));return r?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((function(e){return e.childrenIndex})),t.routesMeta.map((function(e){return e.childrenIndex})))}))}(a);for(var i=null,s=0;null==i&&s0&&(D(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+o+'".'),Z(e.children,t,d,o)),(null!=e.path||e.index)&&t.push({path:o,score:H(o,e.index),routesMeta:d})};return e.forEach((function(e,t){var r;if(""!==e.path&&null!=(r=e.path)&&r.includes("?")){var n,i=(0,T.Z)(Y(e.path));try{for(i.s();!(n=i.n()).done;){var s=n.value;a(e,t,s)}}catch(o){i.e(o)}finally{i.f()}}else a(e,t)})),t}function Y(e){var t=e.split("/");if(0===t.length)return[];var r=w(t),n=r[0],a=r.slice(1),i=n.endsWith("?"),s=n.replace(/\?$/,"");if(0===a.length)return i?[s,""]:[s];var o=Y(a.join("/")),d=[];return d.push.apply(d,(0,E.Z)(o.map((function(e){return""===e?s:[s,e].join("/")})))),i&&d.push.apply(d,(0,E.Z)(o)),d.map((function(t){return e.startsWith("/")&&""===t?"/":t}))}var V=/^:\w+$/,G=3,B=2,z=1,L=10,M=-2,J=function(e){return"*"===e};function H(e,t){var r=e.split("/"),n=r.length;return r.some(J)&&(n+=M),t&&(n+=B),r.filter((function(e){return!J(e)})).reduce((function(e,t){return e+(V.test(t)?G:""===t?z:L)}),n)}function K(e,t){for(var r=e.routesMeta,n={},a="/",i=[],s=0;s and the router will parse it for you.'}function ae(e){return e.filter((function(e,t){return 0===t||e.route.path&&e.route.path.length>0}))}function ie(e,t,r,n){var a;void 0===n&&(n=!1),"string"===typeof e?a=q(e):(D(!(a=k({},e)).pathname||!a.pathname.includes("?"),ne("?","pathname","search",a)),D(!a.pathname||!a.pathname.includes("#"),ne("#","pathname","hash",a)),D(!a.search||!a.search.includes("#"),ne("#","search","hash",a)));var i,s=""===e||""===a.pathname,o=s?"/":a.pathname;if(n||null==o)i=r;else{var d=t.length-1;if(o.startsWith("..")){for(var u=o.split("/");".."===u[0];)u.shift(),d-=1;a.pathname=u.join("/")}i=d>=0?t[d]:"/"}var c=function(e,t){void 0===t&&(t="/");var r="string"===typeof e?q(e):e,n=r.pathname,a=r.search,i=void 0===a?"":a,s=r.hash,o=void 0===s?"":s,d=n?n.startsWith("/")?n:function(e,t){var r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((function(e){".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)})),r.length>1?r.join("/"):"/"}(n,t):t;return{pathname:d,search:de(i),hash:ue(o)}}(a,i),l=o&&"/"!==o&&o.endsWith("/"),p=(s||"."===o)&&r.endsWith("/");return c.pathname.endsWith("/")||!l&&!p||(c.pathname+="/"),c}var se=function(e){return e.join("/").replace(/\/\/+/g,"/")},oe=function(e){return e.replace(/\/+$/,"").replace(/^\/*/,"/")},de=function(e){return e&&"?"!==e?e.startsWith("?")?e:"?"+e:""},ue=function(e){return e&&"#"!==e?e.startsWith("#")?e:"#"+e:""},ce=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(){return(0,d.Z)(this,r),t.apply(this,arguments)}return(0,u.Z)(r)}(x(Error));var le=(0,u.Z)((function e(t,r,n,a){(0,d.Z)(this,e),void 0===a&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}));function pe(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}var Oe=["post","put","patch","delete"],fe=new Set(Oe),he=["get"].concat(Oe),ge=new Set(he),me=new Set([301,302,303,307,308]),ye=new Set([307,308]),ve={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},be={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},xe={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Re=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Se=function(e){return{hasErrorBoundary:Boolean(e.hasErrorBoundary)}};function Qe(e){var t,r=e.window?e.window:"undefined"!==typeof window?window:void 0,n="undefined"!==typeof r&&"undefined"!==typeof r.document&&"undefined"!==typeof r.document.createElement,a=!n;if(D(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)t=e.mapRouteProperties;else if(e.detectErrorBoundary){var i=e.detectErrorBoundary;t=function(e){return{hasErrorBoundary:i(e)}}}else t=Se;var s,d={},u=W(e.routes,t,void 0,d),c=e.basename||"/",l=k({v7_normalizeFormMethod:!1,v7_prependBasename:!1},e.future),p=null,O=new Set,m=null,y=null,v=null,b=null!=e.hydrationData,x=N(u,e.history.location,c),R=null;if(null==x){var S=Ne(404,{pathname:e.history.location.pathname}),Q=We(u),$=Q.matches,w=Q.route;x=$,R=(0,g.Z)({},w.id,S)}var j,A,F=!x.some((function(e){return e.route.lazy}))&&(!x.some((function(e){return e.route.loader}))||null!=e.hydrationData),q={historyAction:e.history.action,location:e.history.location,matches:x,initialized:F,navigation:ve,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||R,fetchers:new Map,blockers:new Map},I=P.Pop,U=!1,Z=!1,Y=!1,V=[],G=[],B=new Map,z=0,L=-1,M=new Map,J=new Set,H=new Map,K=new Map,ee=new Map,te=!1;function ne(e){q=k({},q,e),O.forEach((function(e){return e(q)}))}function ae(t,r){var n,a,i,d=null!=q.actionData&&null!=q.navigation.formMethod&&He(q.navigation.formMethod)&&"loading"===q.navigation.state&&!0!==(null==(n=t.state)?void 0:n._isRedirect);i=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:d?q.actionData:null;var c,l=r.loaderData?Ie(q.loaderData,r.loaderData,r.matches||[],r.errors):q.loaderData,p=(0,T.Z)(ee);try{for(p.s();!(c=p.n()).done;){Ye((0,o.Z)(c.value,1)[0])}}catch(f){p.e(f)}finally{p.f()}var O=!0===U||null!=q.navigation.formMethod&&He(q.navigation.formMethod)&&!0!==(null==(a=t.state)?void 0:a._isRedirect);s&&(u=s,s=void 0),ne(k({},r,{actionData:i,loaderData:l,historyAction:I,location:t,initialized:!0,navigation:ve,revalidation:"idle",restoreScrollPosition:rt(t,r.matches||q.matches),preventScrollReset:O,blockers:new Map(q.blockers)})),Z||I===P.Pop||(I===P.Push?e.history.push(t,t.state):I===P.Replace&&e.history.replace(t,t.state)),I=P.Pop,U=!1,Z=!1,Y=!1,V=[],G=[]}function ie(e,t){return se.apply(this,arguments)}function se(){return se=(0,h.Z)((0,f.Z)().mark((function t(r,n){var a,i,s,o,d,u,p,O,h,g,m;return(0,f.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("number"!==typeof r){t.next=3;break}return e.history.go(r),t.abrupt("return");case 3:if(a=$e(q.location,q.matches,c,l.v7_prependBasename,r,null==n?void 0:n.fromRouteId,null==n?void 0:n.relative),i=we(l.v7_normalizeFormMethod,!1,a,n),s=i.path,o=i.submission,d=i.error,u=q.location,p=k({},p=_(q.location,s,n&&n.state),e.history.encodeLocation(p)),O=n&&null!=n.replace?n.replace:void 0,h=P.Push,!0===O?h=P.Replace:!1===O||null!=o&&He(o.formMethod)&&o.formAction===q.location.pathname+q.location.search&&(h=P.Replace),g=n&&"preventScrollReset"in n?!0===n.preventScrollReset:void 0,!(m=Me({currentLocation:u,nextLocation:p,historyAction:h}))){t.next=16;break}return Le(m,{state:"blocked",location:p,proceed:function(){Le(m,{state:"proceeding",proceed:void 0,reset:void 0,location:p}),ie(r,n)},reset:function(){Ye(m),ne({blockers:new Map(q.blockers)})}}),t.abrupt("return");case 16:return t.next=18,oe(h,p,{submission:o,pendingError:d,preventScrollReset:g,replace:n&&n.replace});case 18:return t.abrupt("return",t.sent);case 19:case"end":return t.stop()}}),t)}))),se.apply(this,arguments)}function oe(e,t,r){return de.apply(this,arguments)}function de(){return de=(0,h.Z)((0,f.Z)().mark((function t(r,n,a){var i,o,d,l,p,O,h,m,y,v,b,x,R,S,Q,$;return(0,f.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(A&&A.abort(),A=null,I=r,Z=!0===(a&&a.startUninterruptedRevalidation),et(q.location,q.matches),U=!0===(a&&a.preventScrollReset),i=s||u,o=a&&a.overrideNavigation,d=N(i,n,c)){t.next=15;break}return l=Ne(404,{pathname:n.pathname}),p=We(i),O=p.matches,h=p.route,Je(),ae(n,{matches:O,loaderData:{},errors:(0,g.Z)({},h.id,l)}),t.abrupt("return");case 15:if(!q.initialized||Y||!Ve(q.location,n)||a&&a.submission&&He(a.submission.formMethod)){t.next=18;break}return ae(n,{matches:d}),t.abrupt("return");case 18:if(A=new AbortController,m=Ae(e.history,n,A.signal,a&&a.submission),!a||!a.pendingError){t.next=24;break}v=(0,g.Z)({},Ue(d).route.id,a.pendingError),t.next=35;break;case 24:if(!(a&&a.submission&&He(a.submission.formMethod))){t.next=35;break}return t.next=27,ue(m,n,a.submission,d,{replace:a.replace});case 27:if(!(b=t.sent).shortCircuited){t.next=30;break}return t.abrupt("return");case 30:y=b.pendingActionData,v=b.pendingActionError,x=k({state:"loading",location:n},a.submission),o=x,m=new Request(m.url,{signal:m.signal});case 35:return t.next=37,le(m,n,d,o,a&&a.submission,a&&a.fetcherSubmission,a&&a.replace,y,v);case 37:if(R=t.sent,S=R.shortCircuited,Q=R.loaderData,$=R.errors,!S){t.next=43;break}return t.abrupt("return");case 43:A=null,ae(n,k({matches:d},y?{actionData:y}:{},{loaderData:Q,errors:$}));case 45:case"end":return t.stop()}}),t)}))),de.apply(this,arguments)}function ue(e,t,r,n,a){return ce.apply(this,arguments)}function ce(){return ce=(0,h.Z)((0,f.Z)().mark((function e(r,n,a,i,s){var o,u,l,p;return(0,f.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Ee(),ne({navigation:k({state:"submitting",location:n},a)}),(u=it(i,n)).route.action||u.route.lazy){e.next=8;break}o={type:X.error,error:Ne(405,{method:r.method,pathname:n.pathname,routeId:u.route.id})},e.next=13;break;case 8:return e.next=10,De("action",r,u,i,d,t,c);case 10:if(o=e.sent,!r.signal.aborted){e.next=13;break}return e.abrupt("return",{shortCircuited:!0});case 13:if(!ze(o)){e.next=18;break}return l=s&&null!=s.replace?s.replace:o.location===q.location.pathname+q.location.search,e.next=17,ge(q,o,{submission:a,replace:l});case 17:return e.abrupt("return",{shortCircuited:!0});case 18:if(!Be(o)){e.next=22;break}return p=Ue(i,u.route.id),!0!==(s&&s.replace)&&(I=P.Push),e.abrupt("return",{pendingActionData:{},pendingActionError:(0,g.Z)({},p.route.id,o.error)});case 22:if(!Ge(o)){e.next=24;break}throw Ne(400,{type:"defer-action"});case 24:return e.abrupt("return",{pendingActionData:(0,g.Z)({},u.route.id,o.data)});case 25:case"end":return e.stop()}}),e)}))),ce.apply(this,arguments)}function le(e,t,r,n,a,i,s,o,d){return pe.apply(this,arguments)}function pe(){return pe=(0,h.Z)((0,f.Z)().mark((function t(r,n,a,i,d,l,p,O,h){var g,m,y,v,b,x,R,S,Q,$,w,P,T,E,X,j,D,C,_,F,I,U;return(0,f.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((g=i)||(m=k({state:"loading",location:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},d),g=m),y=d||l?d||l:g.formMethod&&g.formAction&&g.formData&&g.formEncType?{formMethod:g.formMethod,formAction:g.formAction,formData:g.formData,formEncType:g.formEncType}:void 0,v=s||u,b=Te(e.history,q,a,y,n,Y,V,G,H,v,c,O,h),x=(0,o.Z)(b,2),R=x[0],S=x[1],Je((function(e){return!(a&&a.some((function(t){return t.route.id===e})))||R&&R.some((function(t){return t.route.id===e}))})),0!==R.length||0!==S.length){t.next=10;break}return Q=_e(),ae(n,k({matches:a,loaderData:{},errors:h||null},O?{actionData:O}:{},Q?{fetchers:new Map(q.fetchers)}:{})),t.abrupt("return",{shortCircuited:!0});case 10:return Z||(S.forEach((function(e){var t=q.fetchers.get(e.key),r={state:"loading",data:t&&t.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};q.fetchers.set(e.key,r)})),$=O||q.actionData,ne(k({navigation:g},$?0===Object.keys($).length?{actionData:null}:{actionData:$}:{},S.length>0?{fetchers:new Map(q.fetchers)}:{}))),L=++z,S.forEach((function(e){e.controller&&B.set(e.key,e.controller)})),w=function(){return S.forEach((function(e){return je(e.key)}))},A&&A.signal.addEventListener("abort",w),t.next=17,Qe(q.matches,a,R,S,r);case 17:if(P=t.sent,T=P.results,E=P.loaderResults,X=P.fetcherResults,!r.signal.aborted){t.next=23;break}return t.abrupt("return",{shortCircuited:!0});case 23:if(A&&A.signal.removeEventListener("abort",w),S.forEach((function(e){return B.delete(e.key)})),!(j=Ze(T))){t.next=30;break}return t.next=29,ge(q,j,{replace:p});case 29:return t.abrupt("return",{shortCircuited:!0});case 30:return D=qe(q,a,R,E,h,S,X,K),C=D.loaderData,_=D.errors,K.forEach((function(e,t){e.subscribe((function(r){(r||e.done)&&K.delete(t)}))})),F=_e(),I=Fe(L),U=F||I||S.length>0,t.abrupt("return",k({loaderData:C,errors:_},U?{fetchers:new Map(q.fetchers)}:{}));case 36:case"end":return t.stop()}}),t)}))),pe.apply(this,arguments)}function Oe(e){return q.fetchers.get(e)||be}function fe(){return fe=(0,h.Z)((0,f.Z)().mark((function r(n,a,i,l,p,O){var h,m,y,v,b,x,R,S,Q,$,w,P,T,E,X,j,C,_,F,U,W,Z,ee,te,re,ie,se,oe;return(0,f.Z)().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(Ee(),H.delete(n),l.route.action||l.route.lazy){r.next=6;break}return h=Ne(405,{method:O.formMethod,pathname:i,routeId:a}),ke(n,a,h),r.abrupt("return");case 6:return m=q.fetchers.get(n),y=k({state:"submitting"},O,{data:m&&m.data," _hasFetcherDoneAnything ":!0}),q.fetchers.set(n,y),ne({fetchers:new Map(q.fetchers)}),v=new AbortController,b=Ae(e.history,i,v.signal,O),B.set(n,v),r.next=15,De("action",b,l,p,d,t,c);case 15:if(x=r.sent,!b.signal.aborted){r.next=19;break}return B.get(n)===v&&B.delete(n),r.abrupt("return");case 19:if(!ze(x)){r.next=26;break}return B.delete(n),J.add(n),R=k({state:"loading"},O,{data:void 0," _hasFetcherDoneAnything ":!0}),q.fetchers.set(n,R),ne({fetchers:new Map(q.fetchers)}),r.abrupt("return",ge(q,x,{submission:O,isFetchActionRedirect:!0}));case 26:if(!Be(x)){r.next=29;break}return ke(n,a,x.error),r.abrupt("return");case 29:if(!Ge(x)){r.next=31;break}throw Ne(400,{type:"defer-action"});case 31:return S=q.navigation.location||q.location,Q=Ae(e.history,S,v.signal),$=s||u,D(w="idle"!==q.navigation.state?N($,q.navigation.location,c):q.matches,"Didn't find any matches after fetcher action"),P=++z,M.set(n,P),T=k({state:"loading",data:x.data},O,{" _hasFetcherDoneAnything ":!0}),q.fetchers.set(n,T),E=Te(e.history,q,w,O,S,Y,V,G,H,$,c,(0,g.Z)({},l.route.id,x.data),void 0),X=(0,o.Z)(E,2),j=X[0],(C=X[1]).filter((function(e){return e.key!==n})).forEach((function(e){var t=e.key,r=q.fetchers.get(t),n={state:"loading",data:r&&r.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};q.fetchers.set(t,n),e.controller&&B.set(t,e.controller)})),ne({fetchers:new Map(q.fetchers)}),_=function(){return C.forEach((function(e){return je(e.key)}))},v.signal.addEventListener("abort",_),r.next=47,Qe(q.matches,w,j,C,Q);case 47:if(F=r.sent,U=F.results,W=F.loaderResults,Z=F.fetcherResults,!v.signal.aborted){r.next=53;break}return r.abrupt("return");case 53:if(v.signal.removeEventListener("abort",_),M.delete(n),B.delete(n),C.forEach((function(e){return B.delete(e.key)})),!(ee=Ze(U))){r.next=60;break}return r.abrupt("return",ge(q,ee));case 60:te=qe(q,q.matches,j,W,void 0,C,Z,K),re=te.loaderData,ie=te.errors,q.fetchers.has(n)&&(se={state:"idle",data:x.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0},q.fetchers.set(n,se)),oe=Fe(P),"loading"===q.navigation.state&&P>L?(D(I,"Expected pending action"),A&&A.abort(),ae(q.navigation.location,{matches:w,loaderData:re,errors:ie,fetchers:new Map(q.fetchers)})):(ne(k({errors:ie,loaderData:Ie(q.loaderData,re,w,ie)},oe||C.length>0?{fetchers:new Map(q.fetchers)}:{})),Y=!1);case 64:case"end":return r.stop()}}),r)}))),fe.apply(this,arguments)}function he(){return he=(0,h.Z)((0,f.Z)().mark((function r(n,a,i,s,o,u){var l,p,O,h,m,y,v;return(0,f.Z)().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return l=q.fetchers.get(n),p=k({state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},u,{data:l&&l.data," _hasFetcherDoneAnything ":!0}),q.fetchers.set(n,p),ne({fetchers:new Map(q.fetchers)}),O=new AbortController,h=Ae(e.history,i,O.signal),B.set(n,O),r.next=9,De("loader",h,s,o,d,t,c);case 9:if(!Ge(m=r.sent)){r.next=17;break}return r.next=13,tt(m,h.signal,!0);case 13:if(r.t0=r.sent,r.t0){r.next=16;break}r.t0=m;case 16:m=r.t0;case 17:if(B.get(n)===O&&B.delete(n),!h.signal.aborted){r.next=20;break}return r.abrupt("return");case 20:if(!ze(m)){r.next=25;break}return J.add(n),r.next=24,ge(q,m);case 24:return r.abrupt("return");case 25:if(!Be(m)){r.next=30;break}return y=Ue(q.matches,a),q.fetchers.delete(n),ne({fetchers:new Map(q.fetchers),errors:(0,g.Z)({},y.route.id,m.error)}),r.abrupt("return");case 30:D(!Ge(m),"Unhandled fetcher deferred data"),v={state:"idle",data:m.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0},q.fetchers.set(n,v),ne({fetchers:new Map(q.fetchers)});case 34:case"end":return r.stop()}}),r)}))),he.apply(this,arguments)}function ge(e,t,r){return me.apply(this,arguments)}function me(){return me=(0,h.Z)((0,f.Z)().mark((function t(a,i,s){var o,d,u,l,p,O,h,g,m,y,v,b,x;return(0,f.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(d=(o=void 0===s?{}:s).submission,u=o.replace,l=o.isFetchActionRedirect,i.revalidate&&(Y=!0),D(p=_(a.location,i.location,k({_isRedirect:!0},l?{_isFetchActionRedirect:!0}:{})),"Expected a location on the redirect navigation"),!Re.test(i.location)||!n){t.next=10;break}if(O=e.history.createURL(i.location),h=null==re(O.pathname,c),r.location.origin===O.origin&&!h){t.next=10;break}return u?r.location.replace(i.location):r.location.assign(i.location),t.abrupt("return");case 10:if(A=null,g=!0===u?P.Replace:P.Push,m=a.navigation,y=m.formMethod,v=m.formAction,b=m.formEncType,x=m.formData,!d&&y&&v&&x&&b&&(d={formMethod:y,formAction:v,formEncType:b,formData:x}),!(ye.has(i.status)&&d&&He(d.formMethod))){t.next=19;break}return t.next=17,oe(g,p,{submission:k({},d,{formAction:i.location}),preventScrollReset:U});case 17:case 22:t.next=26;break;case 19:if(!l){t.next=24;break}return t.next=22,oe(g,p,{overrideNavigation:{state:"loading",location:p,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},fetcherSubmission:d,preventScrollReset:U});case 24:return t.next=26,oe(g,p,{overrideNavigation:{state:"loading",location:p,formMethod:d?d.formMethod:void 0,formAction:d?d.formAction:void 0,formEncType:d?d.formEncType:void 0,formData:d?d.formData:void 0},preventScrollReset:U});case 26:case"end":return t.stop()}}),t)}))),me.apply(this,arguments)}function Qe(e,t,r,n,a){return Pe.apply(this,arguments)}function Pe(){return Pe=(0,h.Z)((0,f.Z)().mark((function r(n,a,i,s,o){var u,l,p;return(0,f.Z)().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,Promise.all([].concat((0,E.Z)(i.map((function(e){return De("loader",o,e,a,d,t,c)}))),(0,E.Z)(s.map((function(r){return r.matches&&r.match&&r.controller?De("loader",Ae(e.history,r.path,r.controller.signal),r.match,r.matches,d,t,c):{type:X.error,error:Ne(404,{pathname:r.path})}})))));case 2:return u=r.sent,l=u.slice(0,i.length),p=u.slice(i.length),r.next=7,Promise.all([Ke(n,i,l,l.map((function(){return o.signal})),!1,q.loaderData),Ke(n,s.map((function(e){return e.match})),p,s.map((function(e){return e.controller?e.controller.signal:null})),!0)]);case 7:return r.abrupt("return",{results:u,loaderResults:l,fetcherResults:p});case 8:case"end":return r.stop()}}),r)}))),Pe.apply(this,arguments)}function Ee(){var e;Y=!0,(e=V).push.apply(e,(0,E.Z)(Je())),H.forEach((function(e,t){B.has(t)&&(G.push(t),je(t))}))}function ke(e,t,r){var n=Ue(q.matches,t);Xe(e),ne({errors:(0,g.Z)({},n.route.id,r),fetchers:new Map(q.fetchers)})}function Xe(e){var t=q.fetchers.get(e);!B.has(e)||t&&"loading"===t.state&&M.has(e)||je(e),H.delete(e),M.delete(e),J.delete(e),q.fetchers.delete(e)}function je(e){var t=B.get(e);D(t,"Expected fetch controller: "+e),t.abort(),B.delete(e)}function Ce(e){var t,r=(0,T.Z)(e);try{for(r.s();!(t=r.n()).done;){var n=t.value,a={state:"idle",data:Oe(n).data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};q.fetchers.set(n,a)}}catch(i){r.e(i)}finally{r.f()}}function _e(){var e,t=[],r=!1,n=(0,T.Z)(J);try{for(n.s();!(e=n.n()).done;){var a=e.value,i=q.fetchers.get(a);D(i,"Expected fetcher: "+a),"loading"===i.state&&(J.delete(a),t.push(a),r=!0)}}catch(s){n.e(s)}finally{n.f()}return Ce(t),r}function Fe(e){var t,r=[],n=(0,T.Z)(M);try{for(n.s();!(t=n.n()).done;){var a=(0,o.Z)(t.value,2),i=a[0];if(a[1]0}function Ye(e){q.blockers.delete(e),ee.delete(e)}function Le(e,t){var r=q.blockers.get(e)||xe;D("unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state,"Invalid blocker state transition: "+r.state+" -> "+t.state),q.blockers.set(e,t),ne({blockers:new Map(q.blockers)})}function Me(e){var t=e.currentLocation,r=e.nextLocation,n=e.historyAction;if(0!==ee.size){ee.size>1&&C(!1,"A router only supports one blocker at a time");var a=Array.from(ee.entries()),i=(0,o.Z)(a[a.length-1],2),s=i[0],d=i[1],u=q.blockers.get(s);if(!u||"proceeding"!==u.state)return d({currentLocation:t,nextLocation:r,historyAction:n})?s:void 0}}function Je(e){var t=[];return K.forEach((function(r,n){e&&!e(n)||(r.cancel(),t.push(n),K.delete(n))})),t}function et(e,t){if(m&&y&&v){var r=t.map((function(e){return at(e,q.loaderData)})),n=y(e,r)||e.key;m[n]=v()}}function rt(e,t){if(m&&y&&v){var r=t.map((function(e){return at(e,q.loaderData)})),n=y(e,r)||e.key,a=m[n];if("number"===typeof a)return a}return null}return j={get basename(){return c},get state(){return q},get routes(){return u},initialize:function(){return p=e.history.listen((function(t){var r=t.action,n=t.location,a=t.delta;if(!te){C(0===ee.size||null!=a,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");var i=Me({currentLocation:q.location,nextLocation:n,historyAction:r});return i&&null!=a?(te=!0,e.history.go(-1*a),void Le(i,{state:"blocked",location:n,proceed:function(){Le(i,{state:"proceeding",proceed:void 0,reset:void 0,location:n}),e.history.go(a)},reset:function(){Ye(i),ne({blockers:new Map(j.state.blockers)})}})):oe(r,n)}te=!1})),q.initialized||oe(P.Pop,q.location),j},subscribe:function(e){return O.add(e),function(){return O.delete(e)}},enableScrollRestoration:function(e,t,r){if(m=e,v=t,y=r||function(e){return e.key},!b&&q.navigation===ve){b=!0;var n=rt(q.location,q.matches);null!=n&&ne({restoreScrollPosition:n})}return function(){m=null,v=null,y=null}},navigate:ie,fetch:function(e,t,r,n){if(a)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");B.has(e)&&je(e);var i=s||u,o=$e(q.location,q.matches,c,l.v7_prependBasename,r,t,null==n?void 0:n.relative),d=N(i,o,c);if(d){var p=we(l.v7_normalizeFormMethod,!0,o,n),O=p.path,f=p.submission,h=it(d,O);U=!0===(n&&n.preventScrollReset),f&&He(f.formMethod)?function(e,t,r,n,a,i){fe.apply(this,arguments)}(e,t,O,h,d,f):(H.set(e,{routeId:t,path:O}),function(e,t,r,n,a,i){he.apply(this,arguments)}(e,t,O,h,d,f))}else ke(e,t,Ne(404,{pathname:o}))},revalidate:function(){Ee(),ne({revalidation:"loading"}),"submitting"!==q.navigation.state&&("idle"!==q.navigation.state?oe(I||q.historyAction,q.navigation.location,{overrideNavigation:q.navigation}):oe(q.historyAction,q.location,{startUninterruptedRevalidation:!0}))},createHref:function(t){return e.history.createHref(t)},encodeLocation:function(t){return e.history.encodeLocation(t)},getFetcher:Oe,deleteFetcher:Xe,dispose:function(){p&&p(),O.clear(),A&&A.abort(),q.fetchers.forEach((function(e,t){return Xe(t)})),q.blockers.forEach((function(e,t){return Ye(t)}))},getBlocker:function(e,t){var r=q.blockers.get(e)||xe;return ee.get(e)!==t&&ee.set(e,t),r},deleteBlocker:Ye,_internalFetchControllers:B,_internalActiveDeferreds:K,_internalSetRoutes:function(e){s=W(e,t,void 0,d={})}},j}Symbol("deferred");function $e(e,t,r,n,a,i,s){var o,d;if(null!=i&&"path"!==s){o=[];var u,c=(0,T.Z)(t);try{for(c.s();!(u=c.n()).done;){var l=u.value;if(o.push(l),l.route.id===i){d=l;break}}}catch(O){c.e(O)}finally{c.f()}}else o=t,d=t[t.length-1];var p=ie(a||".",ae(o).map((function(e){return e.pathnameBase})),re(e.pathname,r)||e.pathname,"path"===s);return null==a&&(p.search=e.search,p.hash=e.hash),null!=a&&""!==a&&"."!==a||!d||!d.route.index||nt(p.search)||(p.search=p.search?p.search.replace(/^\?/,"?index&"):"?index"),n&&"/"!==r&&(p.pathname="/"===p.pathname?r:se([r,p.pathname])),F(p)}function we(e,t,r,n){if(!n||!function(e){return null!=e&&"formData"in e}(n))return{path:r};if(n.formMethod&&!Je(n.formMethod))return{path:r,error:Ne(405,{method:n.formMethod})};var a;if(n.formData){var i=n.formMethod||"get";if(He((a={formMethod:e?i.toUpperCase():i.toLowerCase(),formAction:Ye(r),formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:n.formData}).formMethod))return{path:r,submission:a}}var s=q(r),o=_e(n.formData);return t&&s.search&&nt(s.search)&&o.append("index",""),s.search="?"+o,{path:F(s),submission:a}}function Pe(e,t){var r=e;if(t){var n=e.findIndex((function(e){return e.route.id===t}));n>=0&&(r=e.slice(0,n))}return r}function Te(e,t,r,n,a,i,s,o,d,u,c,l,p){var O=p?Object.values(p)[0]:l?Object.values(l)[0]:void 0,f=e.createURL(t.location),h=e.createURL(a),g=p?Object.keys(p)[0]:void 0,m=Pe(r,g).filter((function(e,r){if(e.route.lazy)return!0;if(null==e.route.loader)return!1;if(function(e,t,r){var n=!t||r.route.id!==t.route.id,a=void 0===e[r.route.id];return n||a}(t.loaderData,t.matches[r],e)||s.some((function(t){return t===e.route.id})))return!0;var a=t.matches[r],o=e;return ke(e,k({currentUrl:f,currentParams:a.params,nextUrl:h,nextParams:o.params},n,{actionResult:O,defaultShouldRevalidate:i||f.pathname+f.search===h.pathname+h.search||f.search!==h.search||Ee(a,o)}))})),y=[];return d.forEach((function(e,a){if(r.some((function(t){return t.route.id===e.routeId}))){var s=N(u,e.path,c);if(s){var d=it(s,e.path);if(o.includes(a))y.push({key:a,routeId:e.routeId,path:e.path,matches:s,match:d,controller:new AbortController});else ke(d,k({currentUrl:f,currentParams:t.matches[t.matches.length-1].params,nextUrl:h,nextParams:r[r.length-1].params},n,{actionResult:O,defaultShouldRevalidate:i}))&&y.push({key:a,routeId:e.routeId,path:e.path,matches:s,match:d,controller:new AbortController})}else y.push({key:a,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null})}})),[m,y]}function Ee(e,t){var r=e.route.path;return e.pathname!==t.pathname||null!=r&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function ke(e,t){if(e.route.shouldRevalidate){var r=e.route.shouldRevalidate(t);if("boolean"===typeof r)return r}return t.defaultShouldRevalidate}function Xe(e,t,r){return je.apply(this,arguments)}function je(){return je=(0,h.Z)((0,f.Z)().mark((function e(t,r,n){var a,i,s,o,d,u;return(0,f.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.lazy){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,t.lazy();case 4:if(a=e.sent,t.lazy){e.next=7;break}return e.abrupt("return");case 7:for(o in D(i=n[t.id],"No route found in manifest"),s={},a)d=i[o],C(!(u=void 0!==d&&"hasErrorBoundary"!==o),'Route "'+i.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+o+'" will be ignored.'),u||U.has(o)||(s[o]=a[o]);Object.assign(i,s),Object.assign(i,k({},r(i),{lazy:void 0}));case 13:case"end":return e.stop()}}),e)}))),je.apply(this,arguments)}function De(e,t,r,n,a,i,s,o,d,u){return Ce.apply(this,arguments)}function Ce(){return Ce=(0,h.Z)((0,f.Z)().mark((function e(t,r,n,a,i,s,o,d,u,c){var l,p,O,h,g,m,y,v,b,x,R,S,Q,$,w,P,T,E;return(0,f.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===d&&(d=!1),void 0===u&&(u=!1),h=function(e){var t,a=new Promise((function(e,r){return t=r}));return O=function(){return t()},r.signal.addEventListener("abort",O),Promise.race([e({request:r,params:n.params,context:c}),a])},e.prev=3,g=n.route[t],!n.route.lazy){e.next=31;break}if(!g){e.next=13;break}return e.next=9,Promise.all([h(g),Xe(n.route,s,i)]);case 9:m=e.sent,p=m[0],e.next=29;break;case 13:return e.next=15,Xe(n.route,s,i);case 15:if(!(g=n.route[t])){e.next=22;break}return e.next=19,h(g);case 19:p=e.sent,e.next=29;break;case 22:if("action"!==t){e.next=28;break}throw y=new URL(r.url),v=y.pathname+y.search,Ne(405,{method:r.method,pathname:v,routeId:n.route.id});case 28:return e.abrupt("return",{type:X.data,data:void 0});case 29:e.next=40;break;case 31:if(g){e.next=37;break}throw b=new URL(r.url),Ne(404,{pathname:b.pathname+b.search});case 37:return e.next=39,h(g);case 39:p=e.sent;case 40:D(void 0!==p,"You defined "+("action"===t?"an action":"a loader")+' for route "'+n.route.id+"\" but didn't return anything from your `"+t+"` function. Please return a value or `null`."),e.next=47;break;case 43:e.prev=43,e.t0=e.catch(3),l=X.error,p=e.t0;case 47:return e.prev=47,O&&r.signal.removeEventListener("abort",O),e.finish(47);case 50:if(!Me(p)){e.next=75;break}if(x=p.status,!me.has(x)){e.next=60;break}if(D(R=p.headers.get("Location"),"Redirects returned/thrown from loaders/actions must have a Location header"),Re.test(R)?d||(S=new URL(r.url),Q=R.startsWith("//")?new URL(S.protocol+R):new URL(R),$=null!=re(Q.pathname,o),Q.origin===S.origin&&$&&(R=Q.pathname+Q.search+Q.hash)):R=$e(new URL(r.url),a.slice(0,a.indexOf(n)+1),o,!0,R),!d){e.next=59;break}throw p.headers.set("Location",R),p;case 59:return e.abrupt("return",{type:X.redirect,status:x,location:R,revalidate:null!==p.headers.get("X-Remix-Revalidate")});case 60:if(!u){e.next=62;break}throw{type:l||X.data,response:p};case 62:if(!(P=p.headers.get("Content-Type"))||!/\bapplication\/json\b/.test(P)){e.next=69;break}return e.next=66,p.json();case 66:w=e.sent,e.next=72;break;case 69:return e.next=71,p.text();case 71:w=e.sent;case 72:if(l!==X.error){e.next=74;break}return e.abrupt("return",{type:l,error:new le(x,p.statusText,w),headers:p.headers});case 74:return e.abrupt("return",{type:X.data,data:w,statusCode:p.status,headers:p.headers});case 75:if(l!==X.error){e.next=77;break}return e.abrupt("return",{type:l,error:p});case 77:if(!Le(p)){e.next=79;break}return e.abrupt("return",{type:X.deferred,deferredData:p,statusCode:null==(T=p.init)?void 0:T.status,headers:(null==(E=p.init)?void 0:E.headers)&&new Headers(p.init.headers)});case 79:return e.abrupt("return",{type:X.data,data:p});case 80:case"end":return e.stop()}}),e,null,[[3,43,47,50]])}))),Ce.apply(this,arguments)}function Ae(e,t,r,n){var a=e.createURL(Ye(t)).toString(),i={signal:r};if(n&&He(n.formMethod)){var s=n.formMethod,o=n.formEncType,d=n.formData;i.method=s.toUpperCase(),i.body="application/x-www-form-urlencoded"===o?_e(d):d}return new Request(a,i)}function _e(e){var t,r=new URLSearchParams,n=(0,T.Z)(e.entries());try{for(n.s();!(t=n.n()).done;){var a=(0,o.Z)(t.value,2),i=a[0],s=a[1];r.append(i,s instanceof File?s.name:s)}}catch(d){n.e(d)}finally{n.f()}return r}function Fe(e,t,r,n,a){var i,s={},o=null,d=!1,u={};return r.forEach((function(r,c){var l=t[c].route.id;if(D(!ze(r),"Cannot handle redirect results in processLoaderData"),Be(r)){var p=Ue(e,l),O=r.error;n&&(O=Object.values(n)[0],n=void 0),null==(o=o||{})[p.route.id]&&(o[p.route.id]=O),s[l]=void 0,d||(d=!0,i=pe(r.error)?r.error.status:500),r.headers&&(u[l]=r.headers)}else Ge(r)?(a.set(l,r.deferredData),s[l]=r.deferredData.data):s[l]=r.data,null==r.statusCode||200===r.statusCode||d||(i=r.statusCode),r.headers&&(u[l]=r.headers)})),n&&(o=n,s[Object.keys(n)[0]]=void 0),{loaderData:s,errors:o,statusCode:i||200,loaderHeaders:u}}function qe(e,t,r,n,a,i,s,o){for(var d=Fe(t,r,n,a,o),u=d.loaderData,c=d.errors,l=0;l=0;t--){var r=e[t];if(ze(r))return r}}function Ye(e){return F(k({},"string"===typeof e?q(e):e,{hash:""}))}function Ve(e,t){return e.pathname===t.pathname&&e.search===t.search&&(""===e.hash?""!==t.hash:e.hash===t.hash||""!==t.hash)}function Ge(e){return e.type===X.deferred}function Be(e){return e.type===X.error}function ze(e){return(e&&e.type)===X.redirect}function Le(e){var t=e;return t&&"object"===typeof t&&"object"===typeof t.data&&"function"===typeof t.subscribe&&"function"===typeof t.cancel&&"function"===typeof t.resolveData}function Me(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"object"===typeof e.headers&&"undefined"!==typeof e.body}function Je(e){return ge.has(e.toLowerCase())}function He(e){return fe.has(e.toLowerCase())}function Ke(e,t,r,n,a,i){return et.apply(this,arguments)}function et(){return et=(0,h.Z)((0,f.Z)().mark((function e(t,r,n,a,i,s){var o,d;return(0,f.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=(0,f.Z)().mark((function e(o){var d,u,c,l,p;return(0,f.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(d=n[o],u=r[o]){e.next=4;break}return e.abrupt("return","continue");case 4:if(c=t.find((function(e){return e.route.id===u.route.id})),l=null!=c&&!Ee(c,u)&&void 0!==(s&&s[u.route.id]),!Ge(d)||!i&&!l){e.next=11;break}return D(p=a[o],"Expected an AbortSignal for revalidating fetcher deferred result"),e.next=11,tt(d,p,i).then((function(e){e&&(n[o]=e||n[o])}));case 11:case"end":return e.stop()}}),e)})),d=0;case 2:if(!(d=0||D(!1),i=i.slice(0,Math.min(i.length,o+1))}return i.reduceRight((function(e,n,a){var o=n.route.id?null==s?void 0:s[n.route.id]:null,d=null;r&&(d=n.route.errorElement||Qt);var u=t.concat(i.slice(0,a+1)),c=function(){var t;return t=o?d:n.route.Component?p.createElement(n.route.Component,null):n.route.element?n.route.element:e,p.createElement(wt,{match:n,routeContext:{outlet:e,matches:u,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===a)?p.createElement($t,{location:r.location,revalidation:r.revalidation,component:d,error:o,children:c(),routeContext:{outlet:null,matches:u,isDataRoute:!0}}):c()}),null)}function Tt(e){var t=p.useContext(ot);return t||D(!1),t}function Et(e){var t=p.useContext(dt);return t||D(!1),t}function kt(e){var t=function(e){var t=p.useContext(pt);return t||D(!1),t}(),r=t.matches[t.matches.length-1];return r.route.id||D(!1),r.route.id}function Xt(){var e,t=p.useContext(Ot),r=Et(St.UseRouteError),n=kt(St.UseRouteError);return t||(null==(e=r.errors)?void 0:e[n])}!function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate"}(Rt||(Rt={})),function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId"}(St||(St={}));var jt,Dt="startTransition";function Ct(e){var t=e.fallbackElement,r=e.router,n=p.useState(r.state),a=(0,o.Z)(n,2),i=a[0],s=a[1],d=p.useCallback((function(e){Dt in O?O[Dt]((function(){return s(e)})):s(e)}),[s]);p.useLayoutEffect((function(){return r.subscribe(d)}),[r,d]);var u=p.useMemo((function(){return{createHref:r.createHref,encodeLocation:r.encodeLocation,go:function(e){return r.navigate(e)},push:function(e,t,n){return r.navigate(e,{state:t,preventScrollReset:null==n?void 0:n.preventScrollReset})},replace:function(e,t,n){return r.navigate(e,{replace:!0,state:t,preventScrollReset:null==n?void 0:n.preventScrollReset})}}}),[r]),c=r.basename||"/",l=p.useMemo((function(){return{router:r,navigator:u,static:!1,basename:c}}),[r,u,c]);return p.createElement(p.Fragment,null,p.createElement(ot.Provider,{value:l},p.createElement(dt.Provider,{value:i},p.createElement(qt,{basename:c,location:i.location,navigationType:i.historyAction,navigator:u},i.initialized?p.createElement(At,{routes:r.routes,state:i}):t))),null)}function At(e){return bt(e.routes,void 0,e.state)}function _t(e){var t=e.to,r=e.replace,n=e.state,a=e.relative;ft()||D(!1);var i=p.useContext(pt).matches,s=ht().pathname,o=mt(),d=ie(t,ae(i).map((function(e){return e.pathnameBase})),s,"path"===a),u=JSON.stringify(d);return p.useEffect((function(){return o(JSON.parse(u),{replace:r,state:n,relative:a})}),[o,u,a,r,n]),null}function Ft(e){return function(e){var t=p.useContext(pt).outlet;return t?p.createElement(yt.Provider,{value:e},t):t}(e.context)}function qt(e){var t=e.basename,r=void 0===t?"/":t,n=e.children,a=void 0===n?null:n,i=e.location,s=e.navigationType,o=void 0===s?P.Pop:s,d=e.navigator,u=e.static,c=void 0!==u&&u;ft()&&D(!1);var l=r.replace(/^\/*/,"/"),O=p.useMemo((function(){return{basename:l,navigator:d,static:c}}),[l,d,c]);"string"===typeof i&&(i=q(i));var f=i,h=f.pathname,g=void 0===h?"/":h,m=f.search,y=void 0===m?"":m,v=f.hash,b=void 0===v?"":v,x=f.state,R=void 0===x?null:x,S=f.key,Q=void 0===S?"default":S,$=p.useMemo((function(){var e=re(g,l);return null==e?null:{location:{pathname:e,search:y,hash:b,state:R,key:Q},navigationType:o}}),[l,g,y,b,R,Q,o]);return null==$?null:p.createElement(ct.Provider,{value:O},p.createElement(lt.Provider,{children:a,value:$}))}!function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"}(jt||(jt={}));var It=new Promise((function(){}));p.Component;function Ut(e){var t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&Object.assign(t,{element:p.createElement(e.Component),Component:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:p.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function Wt(){return Wt=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(a[r]=e[r]);return a}var Zt=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset"],Yt=["aria-current","caseSensitive","className","end","style","to","children"];function Vt(){var e,t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=Wt({},t,{errors:Gt(t.errors)})),t}function Gt(e){if(!e)return null;for(var t={},r=0,n=Object.entries(e);rO)&&(I=(N=N.replace(" ",":")).length),0n&&(n=(t=t.trim()).charCodeAt(0)),n){case 38:return t.replace(g,"$1"+e.trim());case 58:return e.trim()+t.replace(g,"$1"+e.trim());default:if(0<1*r&&0d.charCodeAt(8))break;case 115:s=s.replace(d,"-webkit-"+d)+";"+s;break;case 207:case 102:s=s.replace(d,"-webkit-"+(102n.charCodeAt(0)&&(n=n.trim()),n=[n],01?t-1:0),n=1;n0?" Args: "+r.join(", "):""))}var Tr=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,r=0;r=this.groupSizes.length){for(var r=this.groupSizes,n=r.length,a=n;e>=a;)(a<<=1)<0&&Pr(16,""+e);this.groupSizes=new Uint32Array(a),this.groupSizes.set(r),this.length=a;for(var i=n;i=this.length||0===this.groupSizes[e])return t;for(var r=this.groupSizes[e],n=this.indexOfGroup(e),a=n+r,i=n;i=Xr&&(Xr=t+1),Er.set(e,t),kr.set(t,e)},Ar="style["+Sr+'][data-styled-version="5.3.11"]',_r=new RegExp("^"+Sr+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),Fr=function(e,t,r){for(var n,a=r.split(","),i=0,s=a.length;i=0;r--){var n=t[r];if(n&&1===n.nodeType&&n.hasAttribute(Sr))return n}}(r),i=void 0!==a?a.nextSibling:null;n.setAttribute(Sr,"active"),n.setAttribute("data-styled-version","5.3.11");var s=Ir();return s&&n.setAttribute("nonce",s),r.insertBefore(n,i),n},Wr=function(){function e(e){var t=this.element=Ur(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,r=0,n=t.length;r=0){var r=document.createTextNode(t),n=this.nodes[e];return this.element.insertBefore(r,n||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e0&&(u+=e+",")})),n+=""+o+d+'{content:"'+u+'"}/*!sc*/\n'}}}return n}(this)},e}(),Br=/(a)(d)/gi,zr=function(e){return String.fromCharCode(e+(e>25?39:97))};function Lr(e){var t,r="";for(t=Math.abs(e);t>52;t=t/52|0)r=zr(t%52)+r;return(zr(t%52)+r).replace(Br,"$1-$2")}var Mr=function(e,t){for(var r=t.length;r;)e=33*e^t.charCodeAt(--r);return e},Jr=function(e){return Mr(5381,e)};function Hr(e){for(var t=0;t>>0);if(!t.hasNameForId(n,s)){var o=r(i,"."+s,void 0,n);t.insertRules(n,s,o)}a.push(s),this.staticRulesId=s}else{for(var d=this.rules.length,u=Mr(this.baseHash,r.hash),c="",l=0;l>>0);if(!t.hasNameForId(n,h)){var g=r(c,"."+h,void 0,n);t.insertRules(n,h,g)}a.push(h)}}return a.join(" ")},e}(),tn=/^\s*\/\/.*$/gm,rn=[":","[",".","#"];function nn(e){var t,r,n,a,i=void 0===e?vr:e,s=i.options,o=void 0===s?vr:s,d=i.plugins,u=void 0===d?yr:d,c=new or(o),l=[],p=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(r,n,a,i,s,o,d,u,c,l){switch(r){case 1:if(0===c&&64===n.charCodeAt(0))return e(n+";"),"";break;case 2:if(0===u)return n+"/*|*/";break;case 3:switch(u){case 102:case 112:return e(a[0]+n),"";default:return n+(0===l?"/*|*/":"")}case-2:n.split("/*|*/}").forEach(t)}}}((function(e){l.push(e)})),O=function(e,n,i){return 0===n&&-1!==rn.indexOf(i[r.length])||i.match(a)?e:"."+t};function f(e,i,s,o){void 0===o&&(o="&");var d=e.replace(tn,""),u=i&&s?s+" "+i+" { "+d+" }":d;return t=o,r=i,n=new RegExp("\\"+r+"\\b","g"),a=new RegExp("(\\"+r+"\\b){2,}"),c(s||!i?"":i,u)}return c.use([].concat(u,[function(e,t,a){2===e&&a.length&&a[0].lastIndexOf(r)>0&&(a[0]=a[0].replace(n,O))},p,function(e){if(-2===e){var t=l;return l=[],t}}])),f.hash=u.length?u.reduce((function(e,t){return t.name||Pr(15),Mr(e,t.name)}),5381).toString():"",f}var an=p.createContext(),sn=(an.Consumer,p.createContext()),on=(sn.Consumer,new Gr),dn=nn();function un(){return(0,p.useContext)(an)||on}function cn(){return(0,p.useContext)(sn)||dn}function ln(e){var t=(0,p.useState)(e.stylisPlugins),r=t[0],n=t[1],a=un(),i=(0,p.useMemo)((function(){var t=a;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),s=(0,p.useMemo)((function(){return nn({options:{prefix:!e.disableVendorPrefixes},plugins:r})}),[e.disableVendorPrefixes,r]);return(0,p.useEffect)((function(){sr()(r,e.stylisPlugins)||n(e.stylisPlugins)}),[e.stylisPlugins]),p.createElement(an.Provider,{value:i},p.createElement(sn.Provider,{value:s},e.children))}var pn=function(){function e(e,t){var r=this;this.inject=function(e,t){void 0===t&&(t=dn);var n=r.name+t.hash;e.hasNameForId(r.id,n)||e.insertRules(r.id,n,t(r.rules,n,"@keyframes"))},this.toString=function(){return Pr(12,String(r.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=dn),this.name+e.hash},e}(),On=/([A-Z])/,fn=/([A-Z])/g,hn=/^ms-/,gn=function(e){return"-"+e.toLowerCase()};function mn(e){return On.test(e)?e.replace(fn,gn).replace(hn,"-ms-"):e}var yn=function(e){return null==e||!1===e||""===e};function vn(e,t,r,n){if(Array.isArray(e)){for(var a,i=[],s=0,o=e.length;s1?t-1:0),n=1;n?@[\\\]^`{|}~-]+/g,Qn=/(^-|-$)/g;function $n(e){return e.replace(Sn,"-").replace(Qn,"")}var wn=function(e){return Lr(Jr(e)>>>0)};function Pn(e){return"string"==typeof e&&!0}var Tn=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},En=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function kn(e,t,r){var n=e[r];Tn(t)&&Tn(n)?Xn(n,t):e[r]=t}function Xn(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=0||(a[r]=e[r]);return a}(t,["componentId"]),i=n&&n+"-"+(Pn(e)?e:$n(xr(e)));return Cn(e,hr({},a,{attrs:O,componentId:i}),r)},Object.defineProperty(h,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=n?Xn({},e.defaultProps,t):t}}),Object.defineProperty(h,"toString",{value:function(){return"."+h.styledComponentId}}),a&&Or()(h,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),h}var An=function(e){return function e(t,r,n){if(void 0===n&&(n=vr),!(0,ar.isValidElementType)(r))return Pr(1,String(r));var a=function(){return t(r,n,xn.apply(void 0,arguments))};return a.withConfig=function(a){return e(t,r,hr({},n,{},a))},a.attrs=function(a){return e(t,r,hr({},n,{attrs:Array.prototype.concat(n.attrs,a).filter(Boolean)}))},a}(Cn,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){An[e]=An(e)}));var _n=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Hr(e),Gr.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,r,n){var a=n(vn(this.rules,t,r,n).join(""),""),i=this.componentId+e;r.insertRules(i,i,a)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,r,n){e>2&&Gr.registerId(this.componentId+e),this.removeStyles(e,r),this.createStyles(e,t,r,n)},e}();!function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var r=Ir();return""},this.getStyleTags=function(){return e.sealed?Pr(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return Pr(2);var r=((t={})[Sr]="",t["data-styled-version"]="5.3.11",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),n=Ir();return n&&(r.nonce=n),[p.createElement("style",hr({},r,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new Gr({isServer:!0}),this.sealed=!1}var t=e.prototype;t.collectStyles=function(e){return this.sealed?Pr(2):p.createElement(ln,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return Pr(3)}}();var Fn,qn,In,Un,Wn,Nn,Zn,Yn,Vn,Gn,Bn=An,zn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAABpCAYAAAAN+8wmAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAKOAAACjgH/xBOOAAAAB3RJTUUH3goUFDELO4vaAAAAIABJREFUeNrtnXd8VEXXx79zdze9kAABKVIUabsLIUEEBKSFEhBrQAhFQfTlUVBBUUCf18IDNlCkC4iF3osQpImFRyEQsrsEFGmhSktPNtnsnfePbMImJCFlA4HX8/nsJ9mZ2Tv3zu/OzDlnThFSSu4WEkKIls2btbYj+oDSTAjpKSSeUuApJZ4gPUFYQcRIKQ+gsMdsNpvu+Oe+00Fs1KiRn7e7e5iK0kdRRLiqqtVKeYlYkF+jKItNJlPCPyDeYtLr9YEaqekghN3LLoQ2wDfAe9ToUbOsVqty9uxZzp07x7kzZ7lw4QKZmZk3u9wlIZWXYg/HrvoHxNtIRr3Be+PmTb/Xr1+/uXO5lJLTp0/zyy+/8Ouen9l/IJqsrKwilmTW2+z2UXFxcRf+AfH2gPjoV18vnhoSEtK0uHZWq5Xf9v6X5UuXsfe3/xbWJFEKxprN5kV3wnMr3F3UNyUlxfdmjTw8PHikS2fmLpjPqjWrCe/bB41G49ykipAsNOoNPxiNxoB/QLx1s7An8CyqvKc0v2vcuDFTpkxh4+ZNBIe0KljdHVVuCw0N9f9nOa14APXAr0II359+2iP8A8o2eVRVZfHixcz6YiY2m8256r8qMsxisaT+MxMrBsCawGbAr1mzZtayAgigKArPPfccS5cvo0aNGs5vd1sF8c0/y2nFADhQq9XGAfUAHn/yCU9XXLdx48Z89fViUQDIxw0Gw/B/llPXAKd4eXn19vX1nfL333/rc8sHRg7izTffdGlf586d47lhz6oXLlzIfdlTUUQLk8l04h8QywZeg/r1649JSEgYlpSU5H9drhM8M2gg48ePRwjh8n7PnDnD008+paanpzuAlEtNFsugf0AsOXCtfLy8++vc3QYmJCTUKVjfpVtX/vWvf9GoUaMKvY9tUVt5fdwbefyPFOjNZvORyjJO2koGmg7oJITo5+bmFgEEpaanQXpaXpvadWrRrXsY4eHhNGnS5JbcV4+evfjl171sWLceQNFI/g0M+GcmXgdOAB2BIYqiPKWqql/BNnXr1qV7jzC6d+9O8+bNb8t9ZmRk8Fi/R+0Xzl/UAFJRNcZDcYcs/69BNOoN9wNDgMFA/YL19RvUo1v3MMLCwm7ZjHOWFxXlRsZ906ZNTHxrgmMvZlWs2Rzx/w5Eo95QBejvAK9dwfqgoCB69wmnT58+PPDAA7dlQFRVJTYmluCQ4ELrnnz8SXn8+F8CyFaRdS0Wy8X/F3uiUW94EBgL9APcnet8vLzp2qM7ffr0oXXr1oXOgFtJNpuNPT/vKRRERVEYPXq0GDNmNIBWQRkKfHhXg2jUG9oDbwM9Ctbdf38jBg8dTO/evXF3d680zFViYiIHow8UWd+5a2cCAgJISEgA5KC7FkSj3vAQMBnoUrCuTduHGDp0KO3bt68Qua7cICZc4/Tp00XWZ2VlOZ943HfXiRhGvSEAmAo8D+QhpNVq6dGrJ0OHDr3lTEpp6eq1BBISEkhJScHXN/+p1vnz5/n000+5cuVKbtHfQgghXchYtGzZsna9unVH6HTuPseOH1sQGxv7xy0D0ag3DASmA0HO5e07PMyECROoW7fuHaEZSryWCEB8fDzNmzcn+coVDu/ew/ZtUWz4/XdsDrw0QsQj7QNcCeCgAf3DqwYEruzbr5/XmlWrURCjWzRv0Tv2cOzOCgXRqDdUA74ruO8FBQXx5lvj6dY9jDuJ/r78NwCLp37M2VMniUtMIBcnBfAVmkup2P9jk+pCi+Wwy46menbr2cdmz1r37ZLvtLVq1SItLY2FXy5wUwSfAMEVBqJRbwgB1gL35pZpNBoGDY5k1KhReHl5caeR6WAMAEl/HONoRgrOE00FUqTdZrKYP3dlnwaDIdxNq1s3Y+YX2lq1agE51geOPluGhob6R0dHJ7kcRKPeMAyYA3jklumNBv73f//3tsl4rqD9v+9TAaVPlaqMq1mX3SkJXLXbEHZYmXwFu5S1mzVrdo+rDKkMBkNdnUa7esTI57Xt2rVDZtsQWh3nzp3La2O324VLZ6JRb1CAGcC/nMvD+/bh3Xffxc3N7Y4F8MiRIySnpykAPlotNXRuDAiskVfv56Zj3uXzuClKKLDJFX36evt+Vb16NbeRzw0nc9ka3MI6I6pV5Xz82RJfQyklgAL40hlAIQSjXvoXU6ZMuaMBBFi9cmUu08IDbjeeL/evWoNArS5ZRXnQJcxgM+NjqakpXV8f/4aSHbWd7PgzSJ0OgBOnTuK0RUmXgQh8DjyX+8Xd3Z2PPv6QF198kTud0tLS2Lx+gwoQ7OmNb37rNwB0El6sdo+3FvlCcHBwlfL0p9frfbRumrnt27ajbe17sR35M29SWCwWZzEmuWHDhqkuAdGoN0wBXs79HhgYyIJFC+nRs9dtGfTTp0+TlJTksutNmzbNlmGzKQCP+BSNTwf/QA2IQDU7e2p5+lNQPrDb7UGvjn2NrB0/5gCo0SB8fdixY4dz059XrlxpLzeIRr1hIvCm8wycNWc2LVq0uG0z595772XGjBnMmDGDy5cvl+taWzZvYdWKlTqAhm4e9KxStci2Pgja+fgqUjKyRfMWXcvSX3DT4PogX3rsiccJupaE/epVSE1DCaqKEIIdP2zPaysFP5Z7TzTqDWHA+85l7733/m0713PeiydOnEhWVhY9w3owadIkjh49WqprqKrKihUr7BMnTsjK5fIm1aqPuyh+WHr4VxOAkELdWBYg7Rr7OCGE5rmBkSLxYAzSlo166TKapo35888/iY+Pd37O3eXS2Bj1hkDgK2cV2vDnR9ArvBeVgRRFYdy4cRj0zXl70jtsXL+BoKAaBIcEExoaSkhICPfdd98NOtrExERMJhOzvphpP3LkiAbQKMDooNo0cr+5wVwH3yoYPbwxWdO8pFA3G43GniaTaU9J7rlFixZBIId36NRJrXXxb+VYehrVzl1AKBq0Rj07FuXzHEg0m80x5VW7zQNq5X7p+EgnXn755UrHlPTo2YsGDe/jldFjOHv2LNu2RrFtaxQA/v7+1KpTG51Oh1ar5eL5C5w/fz6P8QPwF5rsd+o00D7o5VuyVUBKXqlZl+dPHsEuhAeqXGMwGNqYzebjN5392eoYIfCI6NOH7LijpFozsdtsaBo1RPHwYMcPzvuh2CmlVMsMolFvGAI85bwHffjhh7f9vK8oeuCBB1i9dg3Lli3j66+/JvFajqthUlJSsQxQKy8f69u1G3pUUzSl6q+Ruyejg+rw+eVzqFBVSDEdeLTY3zRq5Ofl4fmvJk2aqH6nzihSKqQnJ6Hx9kb4+nL69Gn++uuY034oF5dZTjTqDXWBL5zLxo0bh7e3d6UWE7y8vBg+fDhRUVFMeudtuoV1p0pg0Rbhk++pz+d1G5UawFx6IjCId++pj04IO8ieN2vv6e7+opTSf1jkICXeZEZkWEm2WiGoGrpgI9u3b3dufqFp06ZbS3IfRc3ECUCewVLrkFAe6dL5jpH5vLy8iIiIICIiAikl58+fJyoqis+nf5avXapqL9V1U+x2liVcIjYtmQwpaeTpRVZ2NgpS4ymUv4v7bUREhAaUMb6+PpnNqgW5R6elIoVAq2hAq0HTqCE7PvvU6Rfy65uJFkXORKPecA/wrDMX+Nob4+5YIV4IQe3atenc+caXcN7Vi1n7M1JRS3Cdg9Y0hp06yrdXL2KypnMsM4MtiVfZnZZsD9S6HbJj73YTlV5XkLV6hffWxJ84STWrHeHtRYCvL5qAAC5lZREXF3ddS2PXfVXSZyxsJr6Gkx1Mr/Det12ccAU1aNAAX28fUtKuKz9SbDb7a/HHqKbV0dW3CmF+gTzgkf/kJT4rk3UJl1iXdBW704mGEPwkpFyUarWuizlmSr45MyQGgSQ8PFx7dPNWDDodokZ1qly8gPbBELZui3KehT/HHIn5s0wgOkSKPB2aVqtl9OjR3A0khKBaUHVSTl4H0SYwuQsl6Eq2rcGKhMusSLjMvW4e3KPRYROSFLudY5kZBS9lFVIZEGuJ3VDSvkNDQ71APhEQEJBmvP9+792X/6ZrrVooXl4EVK8OTRqxdOwrzsvjwtJpf/LTaMAn90v7Dg+Te751N5C/f0FfUXnxSmpyM62Q05Sc40Lis6z8npHCwfTUQgCUp6Sga+zhkgMIkG21Pgr4hPfto7EfiMVmV/EKDEBmZhL4WDibtm7h0qVLuc0vpmVmLi/N9bVOs1ADjHKuDO/di7uJ/AOqFHiDRfLJkyetwFi9Xr9cqxKBIrqp0BDwdSg5zoA8KITYn27N/OLYsWPJZVgHBgH07d7Dw37IQl3/HI5Z+PqirVmDxYuctz/x+bFjxzLLBCLQHqie+8XDw4NOj3S+q0DMzs7OL3gj8gCxWCz7gf1Oy69o27atx969ezPK06fD57+Hv79/yn0aja/q7k49X18UBJpgA7t27eLUqVN527RGp5lb2j6cQXzcuaJT50fw9PS8q0A8ffJUwaIixQKHAVRG+d8cQlDQPfhQG5vdfATFx5u6nt5oGtRH4+/HIic1mxDMj4mJSSy1+tHp/8fyLaW9et9VANpsNmd1W87Dy+wfKl7BqxoA2gS38rKfyTmtr6Zo0LQJYc+ePVhM5ut8lkYzvUxdOPbDFjg5tWg0Gtq2b3dXgXj27FlUNZ9E+Hds3JF9t6BrI0Bw9RxLTmmzITw9sQdUYep/pjjP/SWHDh06V2YQCy6lDRo0rFSm9a6gn3/+uYDIwRZ5S7yJhMHDwyOjri7HdEWmpKILacn8+fOdjaGsGrvu3TJPdsfffBxMo8aNuNto/dr1BZgaNt8C2VQBmjVs2DBZSb++vZ7z9y7AkcqPYo7EnCoviAbnwjvZ5LAwOmw25zsdALKklBW+HzZv3lwLeNZrUN9d2rLRuHugCw/j/SlTnOPkxPv4+ZXP1MOoN9QG8qn6GzdufFeBuHrt2gK8hlx0KwILWSyWLCC1Xr16fmpiErpe3Vi8cQP7fvvdSR2njCuvGKMtOAsr80yUUpbakyo+Pp6N6/MpWFKlTvPv8txH586dtdcuXWsrheygKLjlbq0qXFMUZW1sbOxZpyU1oWbNmj5u3btz4MgRZs5wPuGTO10RmlML6J0LNBoNQUFBlRLEq5cvU62U9/bxxx8XDPHlI+32pQaD4UutVrutpHKZ0Whs6Ovr29ffz3dgWkpqsBSqDsCZ4RWAtKvTjXrDT1LwutlsjgZ5+eLFi7XPXL2qvDHudWcO+QCK8rRrWKfm+q/Jcb8GwNfbh19//2+lAzA1NZWTx09iaGEo8W/27t3LiyNfKK6JHeReUL5HYYubm9txQJeWlqbVaDQBnu7uHQMCAh5LS0lrl5KWWhVyzioffKgN7dq1o327tgRWrUZGRgaHYg6yfcdOtm2NygUqC+SbUgjvAN8qb2Vn27xSr0cB2a/RacPKItgXBeJPQIfcgmrVqrHrx92VDsSFCxfSr18/qlUrWXTozMxMIp56mpMnT+Yua5RHorjvvvsYMmwo4eHhxVq6//HHH3w85UP2Redo8KTgqJA0yVltUUFscPNwG16cg0xZuNN8NheVUdWWmZnJlu83lxhAKSVvv/12HoBeXl68Nm4s999fOtFJURTatH2ImbNnsXb9Oh5//PGbuio0btyYBYsXMe2z6dSuXVt1AlARUulvspieciWAuXtiPhBzXaoqFXe5ejVBVUu+F86ePZuoLVvzBvWTaZ9Sr149Bg8ezPebN7Hth+0c3BeN0/JWUDSgV3hvevbsWWb+oFu3bnTs2FH55ptvmDnjC6GqUpXCXiHMhjA018cDeW68hhZGlixZUmkAPH78OIOeGcjY18fx9NM35wM2b97MhDffAuDp/hG88cYbhWqf7HY7cZY4/jrxF15eXnh7e+Pt7U2NGjVcfoa6b98+XnvlVTU5OVlRVPnJoTjL6y7twNBcf8XQXC9zP0MiB8vKQikpKbJP7z6yTesHZWpq6k3bb1i3QYYEt5JtW7eRUVu3VMg9ZWdny6SkpFL/Lj4+Xvbu2Us1NNdLQ1NDNyklrvrcsJwmJydXihkopWT8+PGcPn2KJ556slhzyczMTCZPnsyPu3YzZNhQBgwY4FIxKTs7my2bt7Bpwwb2H4hGVVXqN6hHr945gZNKEo+gbt26fDp9mogcOAgQC3HEaHXVcpoF6HILqlevzs7du247iLNmzWLenJzz0WUrlhdprHXh3HkWLf6Kpk2bEh4e7lLFvd1uZ+PGjcyfN5dzZ88X2kaj0TAwchCjRo0qkV3uggULmD1zVvrBQzEuM+LVApeA2pVpJq5cuZL5c+flMRnFWdvVrHUPEydOdGn/qqoStSWKOXPmcPq0s15aHAbpD9RxBvrbr79h29ZtRA6JpFevXtSoUaM4jldVVfVvVzM20UCIc+H+A9G35SjKbrczdepUVizLsRNyd3dnybKlt0wNKKVkxw87mDVrJidOXA8uLATrUZQ3Y2Nj/+jcubM24fLlx1SU/wF5Q7AlIQTBIa1o06YNTz75ZL5l/cqlS/Tp0zc7LS39I/Nhc5nfPKPeEAHMBMxAuBa4IcBcSlIS7rdY9RYfH8+7b/+b/Qei88rGvj7ulgH4467dzJo1iz/++MMZvIOoyiuxlti8w8jdu3dnA6uB1Xq9/l4hRHchZUvAR1E0fVVVrXow+gAHow+wbWsU6zde19suWLSI9PR0rRRyZTkADAW+BdzIidj1bKEgJiQllVpHWR512rx581j63ZJ8Os7OXbswYEDFx4X95ZdfmPXFTA4fPpzvPZaCSU2aNp1VnCm9xWKJBxY2bdq0qlbRDlRVNZ+Jy6WL+VfNixcvSkVREs1mU3kyxX3kADCXHisUxD+OHqnwkMyZmZmsWrWKL+fNdwS7c1I4eHny3nvvVWj/+/btY+aMLzh06FDBBXGNolXGlMZUQqfRTQU5omB5YLX8HscnTxxPVVX1x7JaFBj1hlpApwLF92uBUwUbxxyKpU/fRytk8KxWKytWrGDxoq+4evVqoW2yrJlcvHC+EGPf8jMsu3ft5JtvvyPmwMGC+sdzdsELZrPp+1LvpUL+JCQ3gPjCiyPz/o/aukWeOnnasyTu28VQf240+A7QAr8WbHko5qDLwcvIyMgD79q1azcd7P9MnsL8BV+6hMFKSkhg1Zo1rFy+gosXC48xqyriA7Op9AACmM3mb1sYWgyTUu3ixIWeaxUSWnvdunWsXbvWHhtzSAMiEcG6cjzKM4WU+QgpJUa94TJQzZnD+mXvrzdEGSwrx7ds2TLmzp2b5/hZGOn1euLi4vJZpAUHBzNj5hdlnpF/HD3CkqXL2Pr9lkLzJ9apU5uzZ8/lMjFLYs3myHIwHAtxCg8DZBXYuxKkICznjLFM178fOFZI1cVc4+GfcbJ4k1ISGxvLww8/XC4Az5w5wzvvvMOB/UXfd0BAAONeH0vfR/uxaNEiPpt23fQyJiaGIZGDefXVV2nbvt1NZ+WVK1eIjo7O+ezbn09McCb/gCq8MvoVWoW2op9j25CSsNDQUK/o6Oj00j5nixYtGuN0Jgv8BdgBf5BRUog1Vqt1e2nN8wvQU0WU/10oiLkDWFYQpZQsX76cz6ZNJyOjcPMRT09P+j8zgBEjRuDnl+PP+txzz5GUlMRXC69bRZ88eZLRo0fj6elJ+w4P07Jlyxtczk+cOEH0vv3O5vBFalfsdjsZaekE1QyiQYMG1KtXP1egr55lzXqLnEjJpXteu/1DENo8LZ1q71gBSTQfL6L8XO5yGoqTHwLkBNtbunRpmbjOl19+md/2Fm4d4OvtQ/9BzzBkyBCqVCk86M/8+fOZP3dekdlGS0O+vr706BFGl27d2LJlC5s35oRk0+l0zJozm4y0DBwxvQGsQqM0i42NPVnKpc7m0H6hwIpDFrNLZSOj3lAHiMcpiokTTcp9ew46GuWFvLSYzBw2m2luMJSqww8++KBQAP38/Bg0OJLIyMib7rUjR44kLCyMefPmsXvnLtLTS77C3XPPPeiNBgyGnI9er89bhh9++GHq1KnD3NlzsNlsfDT1I9asW0OHTh35ec9PAB7Sbp9OAZeGm5GC/B8V8b4QXJGKUhFu1QOLABBgd15KBaPe8BbwH+faXuG9+fDDkscpX7FiBZPf/yBfmZeXF0OfHcbgwYPx8fEpk0jy6y8/8+exvzhz5gznzpzFZs/Gy80Dd29PPD09qVevHkaDnuZ6w01P/5MSEujSpWueYuHTT6fRtHlTHu/3WB7zIwSTYs3myVQCMuoNnsAJoGZhuhIg0BnEIOCMM0el0WiI+mFbsQpd5z10+LPP5bmP6XQ6Igb0Z+TIkQQEVK6MruPHj2fr91sAeDC0NQsWL+K7777jo6kfOqvcRsWazXMqAYijyQmMWBh9brKYX8njEEwW8yVgVUGF9PLlJXNanTp1KtnZ2SiKwqOP9WPT95sZP358hQCYlpbG0aNHOXDgAHv27GHPj7s5fvx4iffQdg9ddxY6fSYnBFdkZCTPDneWEMSsNiEhz95mAN2BN4qotgGfwo2BF2YB+dLKrV65ihdeeKFY25szZ85w5HAcQUFBTJ/+WanMCkuqaYmLi2Pv3r3s3buX2JhD2O32vNUitFUIHbs8gsFgwGg03jRgkrMBcqbtOvCvvvoqKSkprF65CimlyMjMWtSpU6fXkpOTx8TExNyOQ9bncDomLEDfmizmMzeAaLKY/2vUG34lx2s4Zw9JSmLjxo1ERBSdFmn79u20Cg1h2rRpBAYGuuwJpJREbYlixhef3XAo2+7h9oT37kXHTo+UWhmQG6w9R+DPn9Fv0qRJpKens2VzjvIm4eo1PbCzU4eOl61W6xmrNeOaYy+KFnbNzgf0D+wvabyZUs7CKsWIOypOSVUKC4HyEhCNI+4ZwPy58+jZs2eePFeQjh8/zuzZs10auN1ms/HKK6/kco15VL9+fd6c8Bbt2pXdf/KnH6/H0qtaNb+SWlEUpk6dyiOPPMKX8+dx6uRp7HY7UsrqWkVT3Ul1/ZhU7B8cjTt6rEXzFq+XNhhDCWg6UFSm8rUmizkvREqhCb+MesMMnALUFsepJicnk5SU5PK8F2+99Rbfb9qcj8t9cdT/EBkZiVZb9iQCFpOJyMjBqKqKEAJvTy9WrVtD7dq1i1wNcpdfVVVZunRpPgbIqeV7Jovl3y6ahT2B4kKChZgs5oPXRZzC6W0KHFFt/X4LUVFRhcp/rgbwxIkTecsZQJUqVVi5ehXDhg0rF4CZmZlMmDghTz8rpSQ1PY3XXnutSLMU5/1z3759rFu7pqid9p2yBrEtAKAvML+YJmudASwSRJPFnATcYBs5+f0PuHI93kqF0ZIlS/JM7rVaLZ9/PoN77723/OvT9OmcOnnaibsTewGOHI4jctBAzsQXniMq5kAMEU9FyJEjnufYn385A3wJxCYgFpBS3HimWAb6GCc74AJ0Gm488iqSjTNZzN8B2/IJyklJTHrnnQoFMDk5mU0bNuZ979Kta6Fp8EpL+/btY9mSpc5y4CcqamdFlTMAeerkaZ4ZMFDu3nmjH8qn0z/l6NEjwum3WxRV0zbWbKphspgeNVnMLVVkB6BbOWdhN2BkMSJFf5PFnFBiEJ3UPfm0ynt/+ZUVK1aU+Uazjx7DunYT1rWbyNocRebOPdiPXY/1umP7D1it1rzvffuEuwTAV18e43SgLubEms0TLBZL1qE4yxgp6ALyVHJyshgzZjQjRozIZ67hFOv8shR0jjWbww/FHfot315rsfyqwR5eDgCbACuLUa+9YbKYfy90Ib+ZpYBRb2gJ7AXyPG08PDz4+ttvaNq0ack4zf0HyP7tANkHTahF7D2a2rXQde/EhB3b2L5zZ54M+Nu+38t1MLxl8xYmTZoos7OzRc4Ds8gUZxlR0ESiSZMmvm5atw8dZhY6gHr16tMqtBVxlsMOAyo5X4WXHR7ArhQnagL/pZC0vA5aZ7KYnyhS7i2JuYdRb4gkx8IqH0Pz5cIFxQJpv3CRjDmLsB8uWYB1Fehz4jApDgG8UaNGrFm3tsyDs2jRIvn59M+cnlF8Yz5sfra4kMyhjR+oZXNzf0lKIovYmxJALBUa8V5sbOwlFwDoA+wBWhXF5wGtHHxK2UF0dPY5OQH8SgSk/dx50iZ+gEwpuWt8bEYqL8VfP7zu2+9RJk8uvR76+PHjTJ48OSN6337P64pi+ZrJYvmyNNcJbhr8QLY2u4uQIghUT0CgKr9p3DU/usJB1Kg3aMlJV1RU1OIsoJ3JYj5Q3HVKw6+PBZo5b97Jyck8P3xEoUCmfzKzVAACrEm4ku97SZfrXEpMTGTGjBnWNatWu0kpcwHcKwVDzGbL8dIOsiPm6J9UHM0tBsBMByNz4GYXKXFUdpPFnE1OoPIdBbnJ54eP4MiRI/mYF7UUCasAzBmp7E7Jz3gFlzB5Snp6OnPnzrV169I1c/XKVR5SSgVIFII3mjRr2rEkUfJvsWJbGPWGD4HhRTRJBXqbLOYSaYFKnaLdqDd4AOspkPTSeWlNn70Q2849pbrui/F/cDjj+uFvrVq1iPph202F9+XLl8s5c+ZkpqemeVwfAPG5Rqf5xFU+8S4G0Bv4BiiKUbkG9DJZzCUOWVbq/Agmi9lKTqr1rYXNyB937UaWMofTxsRr+QAE6N4jrFi96ooVKwgLC7N9+vEnwgGgFeQ0rZuuoclimlRJAawL/FIMgBeAjqUBsEwz0emG3IE1wA2yUfh9jRiteOJ1k1QFKvDl5bN8dy1/ridFUVi1ZnWhVuiHDh5k/Pg35YULF3LlKZuiyoW4aT8oa4C7WwRgW2AdUKMYLrS7yWI+Udpri/JElDDqDW6OpaF/wbqaWjcm1KpHsGfhJhmpqsq7507yW/qNcuPT/SN4++0bT2F+3LWbsWPHqjZHdjXgrIp8whFwlkoM4BCHPrQogfewA8AyWcgJVwQaNOoNLwGfFLxJBXgIg8YpAAAD30lEQVQ6oDojg2rj5lBEnMiy8n3CZbYlXSOpEHEtMDCQDZs23nBGuGfPHka/9LKUUjpmoIiRQvYym81F+vo1aNDAw8fHx99ut3sAxMXFnb7F4GmAKRSih3YW5IERJov5Wln7Ea6KFulIEr0CuK9gnb/Q0MDTi8TsLE5lFW0/6+fnx4JFC2nSpEm+ciklPcN6JF+4cMHv+gsi+x2yWDbeIKyHhuqyrdYnVUQE0AunnMfAJRA/oTDVZDIdqGAAw8nxYGpWlEQEvOzQUZeLXJb4ySHPhJDju5ePkqSdQ+mpxQJYp04d5n05/wYAAXbt2oUzgADZkHLDwBmNnbKsmbEqYhk5xrYFbUqCQD6FKn8zGAzjKgi8YKPesJOcUJxFARgF6F0BYGmF/ZIAmQQ8XfjyWviM9/X1pf8zA3jhhReK1JGeP3++oF8DCmJ9i+YtRkiNNCv2bH9VaCeALIkr1yUQ04Skn16vX2+xWP5yIec5GYikaCV2CjDWZDF/6cpx11bE22iymGca9YZd5JyNFRlMvG7durzwwov07tO72MPexo0bF7Zi+EmhrkQFVWiKeklSHFxfLa5nGgiSUvqZD5s76PV6NxeA5we8BbxSyMzPx5cBz5os5lOuHm9R0RGUjXpDFweYRSl4CQoK4plBA3nqqacKNXrKzMyke9duMYmJiSU4WBS/K6izpUbzu8lk+lNKKSMiIjRH446OAfk+4AUkVK1eLcjhul3W56oNDHWAV72YpknAO8AXJou5QgZb3Iow2I7U7gMdy02R8Vs8PDx4uGMHWrduTevWrfNlIc3IyFjbpnXrZBCDcTLicqIjqGK0Kc60o6jrN2vW7B6d0HWRwt7KZLGMLcNzeDgUHc8C3W/CU1wEPgPmmCzmCg1JcktALKAgGE1Oar+bpjivEhhASEgIoaGhuaB2b9mypVmBAagYhcBbRSRLIaPc3d03RUdH2yrgnhsCXR2fHiW4778c/MBik8WceSvG9ZaC6DQw/uR4vQ4D2pT0d35+fhLYlZycvAn4nZzkJFdd9aY7XBmaOD5tHMCVNPJTDDAVWG2ymNVbOZ63BcQCA9fYAeZgirZ2vhnZgKvAFae/VwqUpZMTAs2bnKRmuZ9AoLHjUxafg93AVJPF/MPtGsPbDqITmAo5Z5VDHTJeZc1xZAV+csh6W00W89HbfUOVBsRC2PauwEOOZS2UAoEEbzEddYC2DdhjspgzKtN4VUoQCwFVAzR3AJoLbFNXapwKEQt25QJnsphPV+bxuSNALAJYX4fsWdOxlxX3CXTM5DSHAiDV8TfFwRwdd3CVxx2fCxUl01UE/R+4oNmVz83aAgAAAABJRU5ErkJggg==",Ln=r(79584),Mn=Bn.div(Fn||(Fn=i(["\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 2px;\n & a {\n display: flex;\n align-items: center;\n }\n"]))),Jn=xn(qn||(qn=i(["\n padding: 2px 5px;\n border-radius: 3px;\n text-decoration: none;\n color: var(--color-accent-emphasis);\n &.active {\n background-color: var(--color-neutral-muted);\n color: var(--color-fg-default);\n }\n"]))),Hn=Bn(Mt)(In||(In=i(["\n ","\n"])),Jn),Kn=Bn.a(Un||(Un=i(["\n ","\n"])),Jn),ea=function(e){var t=e.children;return(0,Ln.jsxs)(Mn,{children:[t,(0,Ln.jsx)(Kn,{href:"https://github.com/uiwjs/react-codemirror",target:"__blank",children:"Github"}),(0,Ln.jsx)("dark-mode",{permanent:!0})]})},ta=Bn.div(Wn||(Wn=i(["\n display: flex;\n flex-direction: column;\n"]))),ra=Bn.div(Nn||(Nn=i(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 42px;\n padding-left: 10px;\n padding-right: 10px;\n border-bottom: 1px solid var(--color-border-default);\n position: sticky;\n top: 0;\n z-index: 9999;\n background-color: var(--color-canvas-subtle);\n"]))),na=Bn(Mt)(Zn||(Zn=i(["\n font-size: 14px;\n font-weight: bold;\n display: flex;\n align-items: center;\n gap: 10px;\n text-decoration: none;\n color: var(--color-fg-muted);\n > img {\n height: 21px;\n }\n"]))),aa=function(e){var t=e.children;return(0,Ln.jsxs)(ra,{children:[(0,Ln.jsxs)(na,{to:"/",children:[(0,Ln.jsx)("img",{src:zn,alt:"Logo"}),(0,Ln.jsx)("span",{children:"React CodeMirror"})]}),(0,Ln.jsx)(ea,{children:t})]})},ia=Bn.div(Yn||(Yn=i(["\n display: flex;\n flex: 1;\n width: 100%;\n"]))),sa=Bn.div(Vn||(Vn=i(["\n width: 220px;\n min-width: 220px;\n overflow: auto;\n height: calc(100vh - 42px);\n padding: 18px 16px 120px 16px;\n border-right: 1px solid var(--color-border-default);\n display: flex;\n flex-direction: column;\n gap: 5px;\n"]))),oa=Bn(Mt)(Gn||(Gn=i(["\n cursor: pointer;\n padding: 6px 8px;\n font-size: 16px;\n text-decoration: none;\n text-transform: capitalize;\n border-radius: 2px;\n transition: background-color 0.3s;\n color: var(--color-accent-emphasis);\n &.active {\n background-color: var(--color-neutral-muted);\n color: var(--color-theme-text);\n }\n &:hover {\n background-color: var(--color-neutral-muted);\n }\n"]))),da=function(){var e,t,r,n,a=ht(),i=null===(e=Xm[0].children)||void 0===e?void 0:e.find((function(e){return e.path===a.pathname.split("/")[1]}));return(0,Ln.jsxs)(ta,{children:[(0,Ln.jsx)(aa,{children:null===(t=Xm[0].children)||void 0===t?void 0:t.map((function(e,t){return e.label?(0,Ln.jsx)(Hn,{to:"/".concat(e.path||""),children:e.label},t):null}))}),(0,Ln.jsxs)(ia,{children:[i&&(null===(r=i.children)||void 0===r?void 0:r.length)&&(0,Ln.jsx)(sa,{children:i&&(null===(n=i.children)||void 0===n?void 0:n.map((function(e,t){return e.label?(0,Ln.jsx)(oa,{to:"/".concat(i.path,"/").concat(e.path||""),children:e.label},t):null})))}),(0,Ln.jsx)(Ft,{})]})]})},ua=r(50189),ca=r(30808);function la(e,t){if(null==e)return{};var r,n,a=(0,ca.Z)(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var pa,Oa,fa=["children"],ha=Bn.div(pa||(pa=i([""]))),ga=Bn.em(Oa||(Oa=i(["\n font-weight: bold;\n display: inline-block;\n margin-right: 10px;\n font-size: 21px;\n"]))),ma=(0,p.forwardRef)((function(e,t){e.children;var r=la(e,fa),n=Xt();return(0,Ln.jsxs)(ha,(0,ua.Z)((0,ua.Z)({id:"error-page"},r),{},{ref:t,children:[(0,Ln.jsx)("h1",{children:"Oops!"}),(0,Ln.jsx)("p",{children:"Sorry, an unexpected error has occurred."}),(0,Ln.jsxs)("p",{children:[(null===n||void 0===n?void 0:n.status)&&(0,Ln.jsx)(ga,{children:null===n||void 0===n?void 0:n.status}),(null===n||void 0===n?void 0:n.statusText)&&(0,Ln.jsx)("i",{children:null===n||void 0===n?void 0:n.statusText})]})]}))})),ya=r(4801),va=r(50389),ba=r(94019),xa=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],Ra=["#F0F8FF","#FAEBD7","#00FFFF","#7FFFD4","#F0FFFF","#F5F5DC","#FFE4C4","#000000","#FFEBCD","#0000FF","#8A2BE2","#A52A2A","#DEB887","#5F9EA0","#7FFF00","#D2691E","#FF7F50","#6495ED","#FFF8DC","#DC143C","#00FFFF","#00008B","#008B8B","#B8860B","#A9A9A9","#006400","#A9A9A9","#BDB76B","#8B008B","#556B2F","#FF8C00","#9932CC","#8B0000","#E9967A","#8FBC8F","#483D8B","#2F4F4F","#2F4F4F","#00CED1","#9400D3","#FF1493","#00BFFF","#696969","#696969","#1E90FF","#B22222","#FFFAF0","#228B22","#FF00FF","#DCDCDC","#F8F8FF","#FFD700","#DAA520","#808080","#008000","#ADFF2F","#808080","#F0FFF0","#FF69B4","#CD5C5C","#4B0082","#FFFFF0","#F0E68C","#E6E6FA","#FFF0F5","#7CFC00","#FFFACD","#ADD8E6","#F08080","#E0FFFF","#FAFAD2","#D3D3D3","#90EE90","#D3D3D3","#FFB6C1","#FFA07A","#20B2AA","#87CEFA","#778899","#778899","#B0C4DE","#FFFFE0","#00FF00","#32CD32","#FAF0E6","#FF00FF","#800000","#66CDAA","#0000CD","#BA55D3","#9370DB","#3CB371","#7B68EE","#00FA9A","#48D1CC","#C71585","#191970","#F5FFFA","#FFE4E1","#FFE4B5","#FFDEAD","#000080","#FDF5E6","#808000","#6B8E23","#FFA500","#FF4500","#DA70D6","#EEE8AA","#98FB98","#AFEEEE","#DB7093","#FFEFD5","#FFDAB9","#CD853F","#FFC0CB","#DDA0DD","#B0E0E6","#800080","#663399","#FF0000","#BC8F8F","#4169E1","#8B4513","#FA8072","#F4A460","#2E8B57","#FFF5EE","#A0522D","#C0C0C0","#87CEEB","#6A5ACD","#708090","#708090","#FFFAFA","#00FF7F","#4682B4","#D2B48C","#008080","#D8BFD8","#FF6347","#40E0D0","#EE82EE","#F5DEB3","#FFFFFF","#F5F5F5","#FFFF00","#9ACD32"],Sa=/hsla?\(\s*(\+?-?\d*\.?\d*(?:e\+)?(?:\d*)?(?:deg|rad|grad|turn)?)\s*,\s*(\+?\-?\d*\.?\d*(?:e\+)?(?:\d*)?%)\s*,\s*(\+?\-?\d*\.?\d*(?:e\+)?(?:\d*)?%)\s*(,\s*\+?\-?\s*(?:\d*\.?\d*(?:E-\d*)?%?)?)?\s*\)/i,Qa=/hsla?\(\s*(\+?-?\d*\.?\d*(?:e\+)?(?:\d*)?(?:deg|rad|grad|turn)?)\s*(\+?\-?\d*\.?\d*(?:e\+)?(?:\d*)?%)\s*(\+?\-?\d*\.?\d*(?:e\+)?(?:\d*)?%)\s*(\/\s*\+?\-?\s*(?:\d*\.?\d*(?:E-\d*)?%?)?)?\s*\)/i,$a=function(e){return e?e.replace(/^(,|\/)\s*/,"").trim():e};function wa(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=Sa.exec(e)||Qa.exec(e);if(t){var r=(0,o.Z)(t,5),n=(r[0],r[1]),a=r[2],i=r[3],s=r[4];if(s&&/^(:?(\/|,)\s*-?\+?)$/.test(s.trim()))return;return{h:n,s:a,l:i,a:$a(s)}}}function Pa(e){var t=wa(e);if(t){var r,n=t.h,a=t.s,i=t.l,s=t.a,o=0,d=0,u=0;/\s*\d*turn\s*$/.test(n)?o=360*Number(n.replace(/turn\s*$/i,"")):/\s*\d*grad\s*$/.test(n)?o=function(e){var t=Number(e);(t%=400)<0&&(t+=400);return t/400*360}(n.replace(/grad\s*$/i,"")):/\s*\d*rad\s*$/.test(n)&&(r=Number(n.replace(/rad\s*$/i,"")),o=Number((r*(180/Math.PI)).toFixed())),/^((-|\+)?\d*|(-|\+)?\d*?.\d*(e\+)?\d*?)$/.test(n.replace(/deg$/i,""))&&(o=Number(n.replace(/deg$/i,""))),o>360&&(o=360),o<0&&(o=0),/^((-|\+)?\d*|(-|\+)?\d*?.\d*(e\+)?\d*?)%$/.test(a)&&(d=Number(a.replace(/%$/,""))),d>100&&(d=100),d<0&&(d=0),/^((-|\+)?\d*|(-|\+)?\d*?.\d*(e\+)?\d*?)%$/.test(i)&&(u=Number(i.replace(/%$/,""))),u>100&&(u=100),u<0&&(u=0),u/=100;var c=function(e){return(e+o/30)%12},l=(d/=100)*Math.min(u,1-u),p=function(e){return u-l*Math.max(-1,Math.min(c(e)-3,Math.min(9-c(e),1)))},O=function(e){return Number(e.toFixed())};if(s&&/^\+?-?\d*(E-\d*|.\d*%?)?$/.test(s)){var f=/%/g.test(s)?Number(s.replace(/%/g,""))/100:Number(s);return{r:O(255*p(0)),g:O(255*p(8)),b:O(255*p(4)),a:f}}return{r:O(255*p(0)),g:O(255*p(8)),b:O(255*p(4))}}}function Ta(e){return 4===e.length?["#"+e[1].repeat(2)+e[2].repeat(2)+e[3].repeat(2),""]:5===e.length?["#"+e[1].repeat(2)+e[2].repeat(2)+e[3].repeat(2),e[4].repeat(2)]:9===e.length?["#"+e.slice(1,-2),e.slice(-2)]:[e,""]}function Ea(e,t,r){return"#"+((1<<24)+(e<<16)+(t<<8)+r).toString(16).slice(1)}function ka(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}var Xa=["color","colorRaw"],ja=function(e){return e.rgb="RGB",e.hex="HEX",e.named="NAMED",e.hsl="HSL",e}({}),Da=new WeakMap;function Ca(e){var t,r=[],n=(0,T.Z)(e.visibleRanges);try{for(n.s();!(t=n.n()).done;){var a=t.value;(0,ba.qz)(e.state).iterate({from:a.from,to:a.to,enter:function(t){var n=t.type,a=t.from,i=t.to,s=e.state.doc.sliceString(a,i);if("CallExpression"===n.name&&s.startsWith("rgb")){var d=/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,?\s*(\d{1,3})\s*(,\s*\d*\.\d*\s*)?\)/i.exec(s)||/rgba?\(\s*(\d{1,3})\s*(\d{1,3})\s*(\d{1,3})\s*(\/?\s*\d+%)?(\/\s*\d+\.\d\s*)?\)/i.exec(s);if(!d)return;var u=(0,o.Z)(d,5),c=(u[0],u[1]),l=u[2],p=u[3],O=u[4],f=Ea(Number(c),Number(l),Number(p)),h=va.p.widget({widget:new Fa({colorType:ja.rgb,color:f,colorRaw:s,from:a,to:i,alpha:O?O.replace(/(\/|,)/g,""):""}),side:0});r.push(h.range(a))}else if("CallExpression"===n.name&&wa(s)){var g=Pa(s);if(!g)return;var m=g.r,y=g.g,v=g.b,b=Ea(Number(m),Number(y),Number(v)),x=va.p.widget({widget:new Fa({colorType:ja.hsl,color:b,colorRaw:s,from:a,to:i,alpha:g.a?g.a.toString():""}),side:0});r.push(x.range(a))}else if("ColorLiteral"===n.name){var R=Ta(s),S=(0,o.Z)(R,2),Q=S[0],$=S[1],w=va.p.widget({widget:new Fa({colorType:ja.hex,color:Q,colorRaw:s,from:a,to:i,alpha:$}),side:0});r.push(w.range(a))}else if("ValueName"===n.name){var P=s;if(xa.includes(P)){var T=va.p.widget({widget:new Fa({colorType:ja.named,color:Ra[xa.indexOf(P)],colorRaw:s,from:a,to:i,alpha:""}),side:0});r.push(T.range(a))}}}})}}catch(i){n.e(i)}finally{n.f()}return va.p.set(r)}var Aa,_a,Fa=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;(0,d.Z)(this,r);var a=e.color,i=e.colorRaw,s=(0,ca.Z)(e,Xa);return(n=t.call(this)).state=void 0,n.color=void 0,n.colorRaw=void 0,n.state=s,n.color=a,n.colorRaw=i,n}return(0,u.Z)(r,[{key:"eq",value:function(e){return e.state.colorType===this.state.colorType&&e.color===this.color&&e.state.from===this.state.from&&e.state.to===this.state.to&&e.state.alpha===this.state.alpha}},{key:"toDOM",value:function(){var e=document.createElement("input");Da.set(e,this.state),e.type="color",e.value=this.color,e.dataset.color=this.color,e.dataset.colorraw=this.colorRaw;var t=document.createElement("span");return t.appendChild(e),t.dataset.color=this.color,t.style.backgroundColor=this.colorRaw,t}},{key:"ignoreEvent",value:function(){return!1}}]),r}(va.l9),qa=va.tk.baseTheme({"span[data-color]":{width:"12px",height:"12px",display:"inline-block",borderRadius:"2px",marginRight:"0.5ch",outline:"1px solid #00000040",overflow:"hidden",verticalAlign:"middle",marginTop:"-2px"},'span[data-color] input[type="color"]':{background:"transparent",display:"block",border:"none",outline:"0",paddingLeft:"24px",height:"12px"},'span[data-color] input[type="color"]::-webkit-color-swatch':{border:"none",paddingLeft:"24px"}}),Ia=[(void 0===Aa&&(Aa=!0),va.lg.fromClass(function(){function e(t){(0,d.Z)(this,e),this.decorations=void 0,this.decorations=Ca(t)}return(0,u.Z)(e,[{key:"update",value:function(e){(e.docChanged||e.viewportChanged)&&(this.decorations=Ca(e.view));var t="true"===e.view.contentDOM.ariaReadOnly,r="true"===e.view.contentDOM.contentEditable,n=!1===t&&r;this.changePicker(e.view,n)}},{key:"changePicker",value:function(e,t){e.contentDOM.querySelectorAll("input[type=color]").forEach((function(e){Aa&&t?e.removeAttribute("disabled"):e.setAttribute("disabled","")}))}}]),e}(),{decorations:function(e){return e.decorations},eventHandlers:{change:function(e,t){var r=e.target;if("INPUT"!==r.nodeName||!r.parentElement||!r.dataset.color&&!r.dataset.colorraw)return!1;var n=Da.get(r),a=r.value,i=ka(a),s=r.dataset.colorraw,o=(r.dataset.colorraw||"").indexOf("/")>4,d=(r.dataset.colorraw||"").indexOf(",")>4,u=r.value;if(n.colorType===ja.rgb){var c=null!=s&&s.match(/^(rgba?)/)?null==s?void 0:s.match(/^(rgba?)/)[0]:void 0;u=d?i?c+"("+i.r+", "+i.g+", "+i.b+(n.alpha?", "+n.alpha.trim():"")+")":a:o?i?c+"("+i.r+" "+i.g+" "+i.b+(n.alpha?" / "+n.alpha.trim():"")+")":a:i?c+"("+i.r+" "+i.g+" "+i.b+")":a}else if(n.colorType===ja.hsl){var l=ka(a);if(l){var p=function(e,t,r){e/=255,t/=255,r/=255;var n,a=Math.max(e,t,r),i=Math.min(e,t,r),s=0,o=(a+i)/2;if(a==i)s=n=0;else{var d=a-i;switch(n=o>.5?d/(2-a-i):d/(a+i),a){case e:s=(t-r)/d+(t0&&(x.current.style.opacity=a>u?"1":"0")};(0,p.useEffect)((function(){var e=s===Ba?document:s;return e&&e.addEventListener("scroll",X,{passive:!0}),function(){e&&e.removeEventListener("scroll",X)}}),[s]);return(0,Ln.jsxs)("div",(0,Wa.Z)({className:R,ref:x},b,{onClick:function(e){s.scrollTo({top:0,behavior:g?"smooth":"auto"})},style:S,children:[!y&&(0,Ln.jsxs)("svg",{viewBox:"0 0 "+l+" "+l,width:l,height:l,focusable:"false",style:Ya,children:[(0,Ln.jsx)("circle",{fill:"rgb(0 0 0 / 75%)",stroke:"rgb(200 200 200 / 85%)",strokeWidth:f,r:$,cx:Q,cy:Q}),(0,Ln.jsx)("circle",{fill:"none",stroke:"rgb(0 0 0 / 50%)",strokeWidth:f,r:$,cx:Q,cy:Q,strokeDasharray:w,strokeDashoffset:E||0,style:Va})]}),v&&(0,Ln.jsx)("div",{style:Ga,children:v})]}))}var La=Bn.div(_a||(_a=i(["\n width: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n height: calc(100vh - 42px);\n"]))),Ma=function(e){var t=(0,p.useRef)(null),r=(0,p.useState)(),n=(0,o.Z)(r,2),a=n[0],i=n[1];return(0,p.useEffect)((function(){return i(t.current)}),[]),(0,Ln.jsxs)(La,(0,ua.Z)((0,ua.Z)({ref:t},e),{},{children:[e.children,(0,Ln.jsx)(za,{element:a,style:{position:"fixed"},children:"Top"}),(0,Ln.jsx)(Kt,{})]}))},Ja=r(60994),Ha=function(e){var t=e.theme,r=e.settings,n=void 0===r?{}:r,a=e.styles,i=void 0===a?[]:a,s={".cm-gutters":{}},o={};n.background&&(o.backgroundColor=n.background),n.foreground&&(o.color=n.foreground),(n.background||n.foreground)&&(s["&"]=o),n.fontFamily&&(s["&.cm-editor .cm-scroller"]={fontFamily:n.fontFamily}),n.gutterBackground&&(s[".cm-gutters"].backgroundColor=n.gutterBackground),n.gutterForeground&&(s[".cm-gutters"].color=n.gutterForeground),n.gutterBorder&&(s[".cm-gutters"].borderRightColor=n.gutterBorder),n.caret&&(s[".cm-content"]={caretColor:n.caret},s[".cm-cursor, .cm-dropCursor"]={borderLeftColor:n.caret});var d={};n.gutterActiveForeground&&(d.color=n.gutterActiveForeground),n.lineHighlight&&(s[".cm-activeLine"]={backgroundColor:n.lineHighlight},d.backgroundColor=n.lineHighlight),s[".cm-activeLineGutter"]=d,n.selection&&(s["&.cm-focused .cm-selectionBackground, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={backgroundColor:n.selection}),n.selectionMatch&&(s["& .cm-selectionMatch"]={backgroundColor:n.selectionMatch});var u=va.tk.theme(s,{dark:"dark"===t}),c=ba.Qf.define(i);return[u,(0,ba.nF)(c)]},Ka=Ha,ei={background:"#0f0f0f",foreground:"#defdef",caret:"#00FF00",selection:"#515151",selectionMatch:"#515151",gutterBackground:"#555",gutterForeground:"#FFFFFF",lineHighlight:"#314151"},ti=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},ei,i),styles:[{tag:Ja.pJ.keyword,color:"darkgoldenrod",fontWeight:"bold"},{tag:Ja.pJ.atom,color:"#77F"},{tag:Ja.pJ.comment,color:"#7a7b7c",fontStyle:"italic"},{tag:Ja.pJ.number,color:"violet"},{tag:Ja.pJ.definition(Ja.pJ.variableName),color:"#fffabc"},{tag:Ja.pJ.variableName,color:"#abcdef"},{tag:Ja.pJ.function(Ja.pJ.variableName),color:"#fffabc"},{tag:Ja.pJ.typeName,color:"#FFDD44"},{tag:Ja.pJ.tagName,color:"#def"},{tag:Ja.pJ.string,color:"#2b4"},{tag:Ja.pJ.meta,color:"#C9F"},{tag:Ja.pJ.bracket,color:"#8a8a8a"},{tag:Ja.pJ.attributeName,color:"#DDFF00"},{tag:Ja.pJ.heading,color:"aquamarine",fontWeight:"bold"},{tag:Ja.pJ.link,color:"blueviolet",fontWeight:"bold"}].concat((0,E.Z)(o))})},ri=ti(),ni={background:"#282b2e",foreground:"#a9b7c6",caret:"#00FF00",selection:"#343739",selectionMatch:"#343739",lineHighlight:"#343739"},ai=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},ni,i),styles:[{tag:[Ja.pJ.keyword,Ja.pJ.deleted,Ja.pJ.className],color:"#cc7832"},{tag:[Ja.pJ.number,Ja.pJ.literal,Ja.pJ.derefOperator],color:"#6897bb"},{tag:[Ja.pJ.link,Ja.pJ.variableName],color:"#629755"},{tag:[Ja.pJ.comment,Ja.pJ.quote],color:"grey"},{tag:[Ja.pJ.meta,Ja.pJ.documentMeta],color:"#bbb529"},{tag:[Ja.pJ.string,Ja.pJ.propertyName,Ja.pJ.attributeValue],color:"#6a8759"},{tag:[Ja.pJ.heading,Ja.pJ.typeName],color:"#ffc66d"},{tag:[Ja.pJ.attributeName],color:"#a9b7c6"},{tag:[Ja.pJ.emphasis],fontStyle:"italic"}].concat((0,E.Z)(o))})},ii=ai(),si={background:"#272C35",foreground:"#9d9b97",caret:"#797977",selection:"#ffffff30",selectionMatch:"#2B323D",gutterBackground:"#272C35",gutterForeground:"#465063",gutterBorder:"transparent",lineHighlight:"#2B323D"},oi=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},si,i),styles:[{tag:[Ja.pJ.function(Ja.pJ.variableName),Ja.pJ.function(Ja.pJ.propertyName),Ja.pJ.url,Ja.pJ.processingInstruction],color:"hsl(207, 82%, 66%)"},{tag:[Ja.pJ.tagName,Ja.pJ.heading],color:"#e06c75"},{tag:Ja.pJ.comment,color:"#54636D"},{tag:[Ja.pJ.propertyName],color:"hsl(220, 14%, 71%)"},{tag:[Ja.pJ.attributeName,Ja.pJ.number],color:"hsl( 29, 54%, 61%)"},{tag:Ja.pJ.className,color:"hsl( 39, 67%, 69%)"},{tag:Ja.pJ.keyword,color:"hsl(286, 60%, 67%)"},{tag:[Ja.pJ.string,Ja.pJ.regexp,Ja.pJ.special(Ja.pJ.propertyName)],color:"#98c379"}].concat((0,E.Z)(o))})},di=oi(),ui={background:"#21202e",foreground:"#edecee",caret:"#a277ff",selection:"#3d375e7f",selectionMatch:"#3d375e7f",gutterBackground:"#21202e",gutterForeground:"#edecee",gutterBorder:"transparent",lineHighlight:"#a394f033"},ci=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},ui,i),styles:[{tag:Ja.pJ.keyword,color:"#a277ff"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.macroName],color:"#edecee"},{tag:[Ja.pJ.propertyName],color:"#ffca85"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.string,Ja.pJ.inserted,Ja.pJ.special(Ja.pJ.string)],color:"#61ffca"},{tag:[Ja.pJ.function(Ja.pJ.variableName),Ja.pJ.labelName],color:"#ffca85"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#61ffca"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#edecee"},{tag:[Ja.pJ.className],color:"#82e2ff"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#61ffca"},{tag:[Ja.pJ.typeName],color:"#82e2ff"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#a277ff"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.regexp,Ja.pJ.link],color:"#61ffca"},{tag:[Ja.pJ.meta,Ja.pJ.comment],color:"#6d6d6d"},{tag:Ja.pJ.strong,fontWeight:"bold"},{tag:Ja.pJ.emphasis,fontStyle:"italic"},{tag:Ja.pJ.link,textDecoration:"underline"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#a277ff"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#edecee"},{tag:Ja.pJ.invalid,color:"#ff6767"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"}].concat((0,E.Z)(o))})},li=ci(),pi={background:"#FFFFFF",foreground:"#000000",caret:"#FBAC52",selection:"#FFD420",selectionMatch:"#FFD420",gutterBackground:"#f5f5f5",gutterForeground:"#4D4D4C",gutterBorder:"transparent",lineHighlight:"#00000012"},Oi=function(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},pi,i),styles:[{tag:[Ja.pJ.meta,Ja.pJ.comment],color:"#804000"},{tag:[Ja.pJ.keyword,Ja.pJ.strong],color:"#0000FF"},{tag:[Ja.pJ.number],color:"#FF0080"},{tag:[Ja.pJ.string],color:"#FF0080"},{tag:[Ja.pJ.variableName],color:"#006600"},{tag:[Ja.pJ.escape],color:"#33CC33"},{tag:[Ja.pJ.tagName],color:"#1C02FF"},{tag:[Ja.pJ.heading],color:"#0C07FF"},{tag:[Ja.pJ.quote],color:"#000000"},{tag:[Ja.pJ.list],color:"#B90690"},{tag:[Ja.pJ.documentMeta],color:"#888888"},{tag:[Ja.pJ.function(Ja.pJ.variableName)],color:"#0000A2"},{tag:[Ja.pJ.definition(Ja.pJ.typeName),Ja.pJ.typeName],color:"#6D79DE"}].concat((0,E.Z)(o))})},fi=Oi(),hi={background:"#282a36",foreground:"#f8f8f2",caret:"#f8f8f0",selection:"rgba(255, 255, 255, 0.1)",selectionMatch:"rgba(255, 255, 255, 0.2)",gutterBackground:"#282a36",gutterForeground:"#6D8A88",gutterBorder:"transparent",lineHighlight:"rgba(255, 255, 255, 0.1)"},gi=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},hi,i),styles:[{tag:Ja.pJ.comment,color:"#6272a4"},{tag:Ja.pJ.string,color:"#f1fa8c"},{tag:Ja.pJ.atom,color:"#bd93f9"},{tag:Ja.pJ.meta,color:"#f8f8f2"},{tag:[Ja.pJ.keyword,Ja.pJ.operator,Ja.pJ.tagName],color:"#ff79c6"},{tag:[Ja.pJ.function(Ja.pJ.propertyName),Ja.pJ.propertyName],color:"#66d9ef"},{tag:[Ja.pJ.definition(Ja.pJ.variableName),Ja.pJ.function(Ja.pJ.variableName),Ja.pJ.className,Ja.pJ.attributeName],color:"#50fa7b"},{tag:Ja.pJ.atom,color:"#bd93f9"}].concat((0,E.Z)(o))})},mi=gi(),yi={background:"#2B2B2B",foreground:"#f8f8f2",caret:"#FFFFFF",selection:"rgba(255, 255, 255, 0.1)",selectionMatch:"rgba(255, 255, 255, 0.2)",gutterBackground:"rgba(255, 255, 255, 0.1)",gutterForeground:"#999",gutterBorder:"transparent",lineHighlight:"rgba(255, 255, 255, 0.1)"},vi=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},yi,i),styles:[{tag:[Ja.pJ.atom,Ja.pJ.number],color:"#bd93f9"},{tag:[Ja.pJ.comment],color:"#61A151"},{tag:[Ja.pJ.string],color:"#6A8759"},{tag:[Ja.pJ.variableName,Ja.pJ.operator],color:"#A9B7C6"},{tag:[Ja.pJ.meta,Ja.pJ.className],color:"#A9B7C6"},{tag:[Ja.pJ.propertyName],color:"#FFC66D"},{tag:[Ja.pJ.keyword],color:"#CC7832"},{tag:[Ja.pJ.tagName],color:"#ff79c6"},{tag:[Ja.pJ.typeName],color:"#ffb86c"}].concat((0,E.Z)(o))})},bi=vi(),xi={background:"#fff",foreground:"#000",caret:"#FFFFFF",selection:"#d7d4f0",selectionMatch:"#d7d4f0",gutterBackground:"#f7f7f7",gutterForeground:"#999",lineHighlight:"#e8f2ff",gutterBorder:"transparent"},Ri=function(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},xi,i),styles:[{tag:[Ja.pJ.comment],color:"#3F7F5F"},{tag:[Ja.pJ.documentMeta],color:"#FF1717"},{tag:Ja.pJ.keyword,color:"#7F0055",fontWeight:"bold"},{tag:Ja.pJ.atom,color:"#00f"},{tag:Ja.pJ.number,color:"#164"},{tag:Ja.pJ.propertyName,color:"#164"},{tag:[Ja.pJ.variableName,Ja.pJ.definition(Ja.pJ.variableName)],color:"#0000C0"},{tag:Ja.pJ.function(Ja.pJ.variableName),color:"#0000C0"},{tag:Ja.pJ.string,color:"#2A00FF"},{tag:Ja.pJ.operator,color:"black"},{tag:Ja.pJ.tagName,color:"#170"},{tag:Ja.pJ.attributeName,color:"#00c"},{tag:Ja.pJ.link,color:"#219"}].concat((0,E.Z)(o))})},Si=Ri(),Qi={background:"#28211c",foreground:"#9d9b97",caret:"#797977",selection:"#36312e",selectionMatch:"#4f382b",gutterBackground:"#28211c",gutterForeground:"#666666",lineHighlight:"rgba(255, 255, 255, 0.1)"},$i=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Qi,i),styles:[{tag:[Ja.pJ.atom,Ja.pJ.number,Ja.pJ.link,Ja.pJ.bool],color:"#9b859d"},{tag:Ja.pJ.comment,color:"#937121"},{tag:[Ja.pJ.keyword,Ja.pJ.tagName],color:"#cf6a4c"},{tag:Ja.pJ.string,color:"#f9ee98"},{tag:Ja.pJ.bracket,color:"#9d9b97"},{tag:[Ja.pJ.variableName],color:"#5ea6ea"},{tag:Ja.pJ.definition(Ja.pJ.variableName),color:"#cf7d34"},{tag:[Ja.pJ.function(Ja.pJ.variableName),Ja.pJ.className],color:"#cf7d34"},{tag:[Ja.pJ.propertyName,Ja.pJ.attributeName],color:"#54be0d"}].concat((0,E.Z)(o))})},wi=$i(),Pi={background:"#2e3235",foreground:"#bdbdbd",caret:"#a0a4ae",selection:"#d7d4f0",selectionMatch:"#d7d4f0",gutterBackground:"#2e3235",gutterForeground:"#999",gutterActiveForeground:"#4f5b66",lineHighlight:"#545b61"},Ti=Pi,Ei=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Pi,i),styles:[{tag:Ja.pJ.keyword,color:"#cf6edf"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.macroName],color:"#56c8d8"},{tag:[Ja.pJ.propertyName],color:"#facf4e"},{tag:[Ja.pJ.variableName],color:"#bdbdbd"},{tag:[Ja.pJ.function(Ja.pJ.variableName)],color:"#56c8d8"},{tag:[Ja.pJ.labelName],color:"#cf6edf"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#facf4e"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#fa5788"},{tag:[Ja.pJ.brace],color:"#cf6edf"},{tag:[Ja.pJ.annotation],color:"#ff5f52"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#ffad42"},{tag:[Ja.pJ.typeName,Ja.pJ.className],color:"#ffad42"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#7186f0"},{tag:[Ja.pJ.tagName],color:"#99d066"},{tag:[Ja.pJ.squareBracket],color:"#ff5f52"},{tag:[Ja.pJ.angleBracket],color:"#606f7a"},{tag:[Ja.pJ.attributeName],color:"#bdbdbd"},{tag:[Ja.pJ.regexp],color:"#ff5f52"},{tag:[Ja.pJ.quote],color:"#6abf69"},{tag:[Ja.pJ.string],color:"#99d066"},{tag:Ja.pJ.link,color:"#56c8d8",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.special(Ja.pJ.string)],color:"#facf4e"},{tag:[Ja.pJ.meta],color:"#707d8b"},{tag:[Ja.pJ.comment],color:"#707d8b",fontStyle:"italic"},{tag:Ja.pJ.monospace,color:"#bdbdbd"},{tag:Ja.pJ.strong,fontWeight:"bold",color:"#ff5f52"},{tag:Ja.pJ.emphasis,fontStyle:"italic",color:"#99d066"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#facf4e"},{tag:Ja.pJ.heading1,fontWeight:"bold",color:"#facf4e"},{tag:[Ja.pJ.heading2,Ja.pJ.heading3,Ja.pJ.heading4],fontWeight:"bold",color:"#facf4e"},{tag:[Ja.pJ.heading5,Ja.pJ.heading6],color:"#facf4e"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#56c8d8"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.inserted],color:"#ff5f52"},{tag:[Ja.pJ.contentSeparator],color:"#56c8d8"},{tag:Ja.pJ.invalid,color:"#606f7a",borderBottom:"1px dotted #ff5f52"}].concat((0,E.Z)(o))})},ki=Ei,Xi=Ei(),ji=Ei(),Di={background:"#FAFAFA",foreground:"#90A4AE",caret:"#272727",selection:"#80CBC440",selectionMatch:"#FAFAFA",gutterBackground:"#FAFAFA",gutterForeground:"#90A4AE",gutterBorder:"transparent",lineHighlight:"#CCD7DA50"},Ci=function(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Di,i),styles:[{tag:Ja.pJ.keyword,color:"#39ADB5"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.macroName],color:"#90A4AE"},{tag:[Ja.pJ.propertyName],color:"#6182B8"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.string,Ja.pJ.inserted,Ja.pJ.special(Ja.pJ.string)],color:"#91B859"},{tag:[Ja.pJ.function(Ja.pJ.variableName),Ja.pJ.labelName],color:"#6182B8"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#39ADB5"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#90A4AE"},{tag:[Ja.pJ.className],color:"#E2931D"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#F76D47"},{tag:[Ja.pJ.typeName],color:"#E2931D",fontStyle:"#E2931D"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#39ADB5"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.regexp,Ja.pJ.link],color:"#91B859"},{tag:[Ja.pJ.meta,Ja.pJ.comment],color:"#90A4AE"},{tag:Ja.pJ.strong,fontWeight:"bold"},{tag:Ja.pJ.emphasis,fontStyle:"italic"},{tag:Ja.pJ.link,textDecoration:"underline"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#39ADB5"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#90A4AE"},{tag:Ja.pJ.invalid,color:"#E5393570"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"}].concat((0,E.Z)(o))})},Ai=Ci(),_i={background:"#f2f1f8",foreground:"#0c006b",caret:"#5c49e9",selection:"#d5d1f2",selectionMatch:"#d5d1f2",gutterBackground:"#f2f1f8",gutterForeground:"#0c006b70",lineHighlight:"#e1def3"},Fi=function(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},_i,i),styles:[{tag:Ja.pJ.comment,color:"#9995b7"},{tag:Ja.pJ.keyword,color:"#ff5792",fontWeight:"bold"},{tag:[Ja.pJ.definitionKeyword,Ja.pJ.modifier],color:"#ff5792"},{tag:[Ja.pJ.className,Ja.pJ.tagName,Ja.pJ.definition(Ja.pJ.typeName)],color:"#0094f0"},{tag:[Ja.pJ.number,Ja.pJ.bool,Ja.pJ.null,Ja.pJ.special(Ja.pJ.brace)],color:"#5842ff"},{tag:[Ja.pJ.definition(Ja.pJ.propertyName),Ja.pJ.function(Ja.pJ.variableName)],color:"#0095a8"},{tag:Ja.pJ.typeName,color:"#b3694d"},{tag:[Ja.pJ.propertyName,Ja.pJ.variableName],color:"#fa8900"},{tag:Ja.pJ.operator,color:"#ff5792"},{tag:Ja.pJ.self,color:"#e64100"},{tag:[Ja.pJ.string,Ja.pJ.regexp],color:"#00b368"},{tag:[Ja.pJ.paren,Ja.pJ.bracket],color:"#0431fa"},{tag:Ja.pJ.labelName,color:"#00bdd6"},{tag:Ja.pJ.attributeName,color:"#e64100"},{tag:Ja.pJ.angleBracket,color:"#9995b7"}].concat((0,E.Z)(o))})},qi=Fi(),Ii={background:"#1e1e1e",foreground:"#9cdcfe",caret:"#c6c6c6",selection:"#6199ff2f",selectionMatch:"#72a1ff59",lineHighlight:"#ffffff0f",gutterBackground:"#1e1e1e",gutterForeground:"#838383",gutterActiveForeground:"#fff",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace'};function Ui(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Ii,i),styles:[{tag:[Ja.pJ.keyword,Ja.pJ.operatorKeyword,Ja.pJ.modifier,Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.tagName),Ja.pJ.special(Ja.pJ.brace),Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#569cd6"},{tag:[Ja.pJ.controlKeyword,Ja.pJ.moduleKeyword],color:"#c586c0"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.macroName,Ja.pJ.propertyName,Ja.pJ.variableName,Ja.pJ.labelName,Ja.pJ.definition(Ja.pJ.name)],color:"#9cdcfe"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#9cdcfe"},{tag:[Ja.pJ.typeName,Ja.pJ.className,Ja.pJ.tagName,Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.self,Ja.pJ.namespace],color:"#4ec9b0"},{tag:[Ja.pJ.function(Ja.pJ.variableName),Ja.pJ.function(Ja.pJ.propertyName)],color:"#dcdcaa"},{tag:[Ja.pJ.number],color:"#b5cea8"},{tag:[Ja.pJ.operator,Ja.pJ.punctuation,Ja.pJ.separator,Ja.pJ.url,Ja.pJ.escape,Ja.pJ.regexp],color:"#d4d4d4"},{tag:[Ja.pJ.regexp],color:"#d16969"},{tag:[Ja.pJ.special(Ja.pJ.string),Ja.pJ.processingInstruction,Ja.pJ.string,Ja.pJ.inserted],color:"#ce9178"},{tag:[Ja.pJ.angleBracket],color:"#808080"},{tag:Ja.pJ.strong,fontWeight:"bold"},{tag:Ja.pJ.emphasis,fontStyle:"italic"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"},{tag:[Ja.pJ.meta,Ja.pJ.comment],color:"#6a9955"},{tag:Ja.pJ.link,color:"#6a9955",textDecoration:"underline"},{tag:Ja.pJ.invalid,color:"#ff0000"}].concat((0,E.Z)(o))})}var Wi=Ui(),Ni={background:"#faf8f5",foreground:"#b29762",caret:"#93abdc",selection:"#e3dcce",selectionMatch:"#e3dcce",gutterBackground:"#faf8f5",gutterForeground:"#cdc4b1",gutterBorder:"transparent",lineHighlight:"#EFEFEF"},Zi=function(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Ni,i),styles:[{tag:[Ja.pJ.comment,Ja.pJ.bracket],color:"#b6ad9a"},{tag:[Ja.pJ.atom,Ja.pJ.number,Ja.pJ.keyword,Ja.pJ.link,Ja.pJ.attributeName,Ja.pJ.quote],color:"#063289"},{tag:[Ja.pJ.emphasis,Ja.pJ.heading,Ja.pJ.tagName,Ja.pJ.propertyName,Ja.pJ.variableName],color:"#2d2006"},{tag:[Ja.pJ.typeName,Ja.pJ.url,Ja.pJ.string],color:"#896724"},{tag:[Ja.pJ.operator,Ja.pJ.string],color:"#1659df"},{tag:[Ja.pJ.propertyName],color:"#b29762"},{tag:[Ja.pJ.unit,Ja.pJ.punctuation],color:"#063289"}].concat((0,E.Z)(o))})},Yi=Zi(),Vi={background:"#2a2734",foreground:"#6c6783",caret:"#ffad5c",selection:"rgba(255, 255, 255, 0.1)",gutterBackground:"#2a2734",gutterForeground:"#545167",lineHighlight:"#36334280"},Gi=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Vi,i),styles:[{tag:[Ja.pJ.comment,Ja.pJ.bracket],color:"#6c6783"},{tag:[Ja.pJ.atom,Ja.pJ.number,Ja.pJ.keyword,Ja.pJ.link,Ja.pJ.attributeName,Ja.pJ.quote],color:"#ffcc99"},{tag:[Ja.pJ.emphasis,Ja.pJ.heading,Ja.pJ.tagName,Ja.pJ.propertyName,Ja.pJ.className,Ja.pJ.variableName],color:"#eeebff"},{tag:[Ja.pJ.typeName,Ja.pJ.url],color:"#7a63ee"},{tag:Ja.pJ.operator,color:"#ffad5c"},{tag:Ja.pJ.string,color:"#ffb870"},{tag:[Ja.pJ.propertyName],color:"#9a86fd"},{tag:[Ja.pJ.unit,Ja.pJ.punctuation],color:"#e09142"}].concat((0,E.Z)(o))})},Bi=Gi(),zi={background:"#fff",foreground:"#24292e",selection:"#BBDFFF",selectionMatch:"#BBDFFF",gutterBackground:"#fff",gutterForeground:"#6e7781"},Li=function(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},zi,i),styles:[{tag:[Ja.pJ.standard(Ja.pJ.tagName),Ja.pJ.tagName],color:"#116329"},{tag:[Ja.pJ.comment,Ja.pJ.bracket],color:"#6a737d"},{tag:[Ja.pJ.className,Ja.pJ.propertyName],color:"#6f42c1"},{tag:[Ja.pJ.variableName,Ja.pJ.attributeName,Ja.pJ.number,Ja.pJ.operator],color:"#005cc5"},{tag:[Ja.pJ.keyword,Ja.pJ.typeName,Ja.pJ.typeOperator,Ja.pJ.typeName],color:"#d73a49"},{tag:[Ja.pJ.string,Ja.pJ.meta,Ja.pJ.regexp],color:"#032f62"},{tag:[Ja.pJ.name,Ja.pJ.quote],color:"#22863a"},{tag:[Ja.pJ.heading],color:"#24292e",fontWeight:"bold"},{tag:[Ja.pJ.emphasis],color:"#24292e",fontStyle:"italic"},{tag:[Ja.pJ.deleted],color:"#b31d28",backgroundColor:"ffeef0"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#e36209"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.regexp,Ja.pJ.link],color:"#032f62"},{tag:Ja.pJ.link,textDecoration:"underline"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"},{tag:Ja.pJ.invalid,color:"#cb2431"}].concat((0,E.Z)(o))})},Mi=Li(),Ji={background:"#0d1117",foreground:"#c9d1d9",caret:"#c9d1d9",selection:"#003d73",selectionMatch:"#003d73",lineHighlight:"#36334280"},Hi=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Ji,i),styles:[{tag:[Ja.pJ.standard(Ja.pJ.tagName),Ja.pJ.tagName],color:"#7ee787"},{tag:[Ja.pJ.comment,Ja.pJ.bracket],color:"#8b949e"},{tag:[Ja.pJ.className,Ja.pJ.propertyName],color:"#d2a8ff"},{tag:[Ja.pJ.variableName,Ja.pJ.attributeName,Ja.pJ.number,Ja.pJ.operator],color:"#79c0ff"},{tag:[Ja.pJ.keyword,Ja.pJ.typeName,Ja.pJ.typeOperator,Ja.pJ.typeName],color:"#ff7b72"},{tag:[Ja.pJ.string,Ja.pJ.meta,Ja.pJ.regexp],color:"#a5d6ff"},{tag:[Ja.pJ.name,Ja.pJ.quote],color:"#7ee787"},{tag:[Ja.pJ.heading],color:"#d2a8ff",fontWeight:"bold"},{tag:[Ja.pJ.emphasis],color:"#d2a8ff",fontStyle:"italic"},{tag:[Ja.pJ.deleted],color:"#ffdcd7",backgroundColor:"ffeef0"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#ffab70"},{tag:Ja.pJ.link,textDecoration:"underline"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"},{tag:Ja.pJ.invalid,color:"#f97583"}].concat((0,E.Z)(o))})},Ki=Hi(),es={background:"#282828",foreground:"#ebdbb2",caret:"#ebdbb2",selection:"#bdae93",selectionMatch:"#bdae93",lineHighlight:"#3c3836",gutterBackground:"#282828",gutterForeground:"#7c6f64"},ts=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},es,i),styles:[{tag:Ja.pJ.keyword,color:"#fb4934"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.propertyName,Ja.pJ.macroName],color:"#8ec07c"},{tag:[Ja.pJ.variableName],color:"#83a598"},{tag:[Ja.pJ.function(Ja.pJ.variableName)],color:"#b8bb26",fontStyle:"bold"},{tag:[Ja.pJ.labelName],color:"#ebdbb2"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#d3869b"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#ebdbb2"},{tag:[Ja.pJ.brace],color:"#ebdbb2"},{tag:[Ja.pJ.annotation],color:"#fb4934d"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#d3869b"},{tag:[Ja.pJ.typeName,Ja.pJ.className],color:"#fabd2f"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#fb4934"},{tag:[Ja.pJ.tagName],color:"#8ec07c",fontStyle:"bold"},{tag:[Ja.pJ.squareBracket],color:"#fe8019"},{tag:[Ja.pJ.angleBracket],color:"#83a598"},{tag:[Ja.pJ.attributeName],color:"#8ec07c"},{tag:[Ja.pJ.regexp],color:"#8ec07c"},{tag:[Ja.pJ.quote],color:"#928374"},{tag:[Ja.pJ.string],color:"#ebdbb2"},{tag:Ja.pJ.link,color:"#a89984",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.special(Ja.pJ.string)],color:"#d3869b"},{tag:[Ja.pJ.meta],color:"#fabd2f"},{tag:[Ja.pJ.comment],color:"#928374",fontStyle:"italic"},{tag:Ja.pJ.strong,fontWeight:"bold",color:"#fe8019"},{tag:Ja.pJ.emphasis,fontStyle:"italic",color:"#b8bb26"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#b8bb26"},{tag:[Ja.pJ.heading1,Ja.pJ.heading2],fontWeight:"bold",color:"#b8bb26"},{tag:[Ja.pJ.heading3,Ja.pJ.heading4],fontWeight:"bold",color:"#fabd2f"},{tag:[Ja.pJ.heading5,Ja.pJ.heading6],color:"#fabd2f"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#d3869b"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.inserted],color:"#83a598"},{tag:[Ja.pJ.contentSeparator],color:"#fb4934"},{tag:Ja.pJ.invalid,color:"#fe8019",borderBottom:"1px dotted #fb4934d"}].concat((0,E.Z)(o))})},rs=ts(),ns={background:"#fbf1c7",foreground:"#3c3836",caret:"#af3a03",selection:"#ebdbb2",selectionMatch:"#bdae93",lineHighlight:"#ebdbb2",gutterBackground:"#ebdbb2",gutterForeground:"#665c54",gutterBorder:"transparent"},as=function(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},ns,i),styles:[{tag:Ja.pJ.keyword,color:"#9d0006"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.propertyName,Ja.pJ.macroName],color:"#427b58"},{tag:[Ja.pJ.variableName],color:"#076678"},{tag:[Ja.pJ.function(Ja.pJ.variableName)],color:"#79740e",fontStyle:"bold"},{tag:[Ja.pJ.labelName],color:"#3c3836"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#8f3f71"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#3c3836"},{tag:[Ja.pJ.brace],color:"#3c3836"},{tag:[Ja.pJ.annotation],color:"#9d0006"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#8f3f71"},{tag:[Ja.pJ.typeName,Ja.pJ.className],color:"#b57614"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#9d0006"},{tag:[Ja.pJ.tagName],color:"#427b58",fontStyle:"bold"},{tag:[Ja.pJ.squareBracket],color:"#af3a03"},{tag:[Ja.pJ.angleBracket],color:"#076678"},{tag:[Ja.pJ.attributeName],color:"#427b58"},{tag:[Ja.pJ.regexp],color:"#427b58"},{tag:[Ja.pJ.quote],color:"#928374"},{tag:[Ja.pJ.string],color:"#3c3836"},{tag:Ja.pJ.link,color:"#7c6f64",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.special(Ja.pJ.string)],color:"#8f3f71"},{tag:[Ja.pJ.meta],color:"#b57614"},{tag:[Ja.pJ.comment],color:"#928374",fontStyle:"italic"},{tag:Ja.pJ.strong,fontWeight:"bold",color:"#af3a03"},{tag:Ja.pJ.emphasis,fontStyle:"italic",color:"#79740e"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#79740e"},{tag:[Ja.pJ.heading1,Ja.pJ.heading2],fontWeight:"bold",color:"#79740e"},{tag:[Ja.pJ.heading3,Ja.pJ.heading4],fontWeight:"bold",color:"#b57614"},{tag:[Ja.pJ.heading5,Ja.pJ.heading6],color:"#b57614"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#8f3f71"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.inserted],color:"#076678"},{tag:[Ja.pJ.contentSeparator],color:"#9d0006"},{tag:Ja.pJ.invalid,color:"#af3a03",borderBottom:"1px dotted #9d0006"}].concat((0,E.Z)(o))})},is=as(),ss={background:"#2e3440",foreground:"#FFFFFF",caret:"#FFFFFF",selection:"#3b4252",selectionMatch:"#e5e9f0",gutterBackground:"#2e3440",gutterForeground:"#4c566a",gutterActiveForeground:"#d8dee9",lineHighlight:"#4c566a"},os=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},ss,i),styles:[{tag:Ja.pJ.keyword,color:"#5e81ac"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.propertyName,Ja.pJ.macroName],color:"#88c0d0"},{tag:[Ja.pJ.variableName],color:"#8fbcbb"},{tag:[Ja.pJ.function(Ja.pJ.variableName)],color:"#8fbcbb"},{tag:[Ja.pJ.labelName],color:"#81a1c1"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#5e81ac"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#a3be8c"},{tag:[Ja.pJ.brace],color:"#8fbcbb"},{tag:[Ja.pJ.annotation],color:"#d30102"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#b48ead"},{tag:[Ja.pJ.typeName,Ja.pJ.className],color:"#ebcb8b"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#a3be8c"},{tag:[Ja.pJ.tagName],color:"#b48ead"},{tag:[Ja.pJ.squareBracket],color:"#bf616a"},{tag:[Ja.pJ.angleBracket],color:"#d08770"},{tag:[Ja.pJ.attributeName],color:"#ebcb8b"},{tag:[Ja.pJ.regexp],color:"#5e81ac"},{tag:[Ja.pJ.quote],color:"#b48ead"},{tag:[Ja.pJ.string],color:"#a3be8c"},{tag:Ja.pJ.link,color:"#a3be8c",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.special(Ja.pJ.string)],color:"#8fbcbb"},{tag:[Ja.pJ.meta],color:"#88c0d0"},{tag:[Ja.pJ.monospace],color:"#d8dee9",fontStyle:"italic"},{tag:[Ja.pJ.comment],color:"#4c566a",fontStyle:"italic"},{tag:Ja.pJ.strong,fontWeight:"bold",color:"#5e81ac"},{tag:Ja.pJ.emphasis,fontStyle:"italic",color:"#5e81ac"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#5e81ac"},{tag:Ja.pJ.special(Ja.pJ.heading1),fontWeight:"bold",color:"#5e81ac"},{tag:Ja.pJ.heading1,fontWeight:"bold",color:"#5e81ac"},{tag:[Ja.pJ.heading2,Ja.pJ.heading3,Ja.pJ.heading4],fontWeight:"bold",color:"#5e81ac"},{tag:[Ja.pJ.heading5,Ja.pJ.heading6],color:"#5e81ac"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#d08770"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.inserted],color:"#8fbcbb"},{tag:[Ja.pJ.contentSeparator],color:"#ebcb8b"},{tag:Ja.pJ.invalid,color:"#434c5e",borderBottom:"1px dotted #d30102"}].concat((0,E.Z)(o))})},ds=os(),us={background:"#272822",foreground:"#FFFFFF",caret:"#FFFFFF",selection:"#49483E",selectionMatch:"#49483E",gutterBackground:"#272822",gutterForeground:"#FFFFFF70",lineHighlight:"#00000059"},cs=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},us,i),styles:[{tag:[Ja.pJ.comment,Ja.pJ.documentMeta],color:"#8292a2"},{tag:[Ja.pJ.number,Ja.pJ.bool,Ja.pJ.null,Ja.pJ.atom],color:"#ae81ff"},{tag:[Ja.pJ.attributeValue,Ja.pJ.className,Ja.pJ.name],color:"#e6db74"},{tag:[Ja.pJ.propertyName,Ja.pJ.attributeName],color:"#a6e22e"},{tag:[Ja.pJ.variableName],color:"#9effff"},{tag:[Ja.pJ.squareBracket],color:"#bababa"},{tag:[Ja.pJ.string,Ja.pJ.special(Ja.pJ.brace)],color:"#e6db74"},{tag:[Ja.pJ.regexp,Ja.pJ.className,Ja.pJ.typeName,Ja.pJ.definition(Ja.pJ.typeName)],color:"#66d9ef"},{tag:[Ja.pJ.definition(Ja.pJ.variableName),Ja.pJ.definition(Ja.pJ.propertyName),Ja.pJ.function(Ja.pJ.variableName)],color:"#fd971f"},{tag:[Ja.pJ.keyword,Ja.pJ.definitionKeyword,Ja.pJ.modifier,Ja.pJ.tagName,Ja.pJ.angleBracket],color:"#f92672"}].concat((0,E.Z)(o))})},ls=cs(),ps={background:"#fdf6e3",foreground:"#657b83",caret:"#586e75",selection:"#dfd9c8",selectionMatch:"#dfd9c8",gutterBackground:"#00000010",gutterForeground:"#657b83",lineHighlight:"#dfd9c8"},Os=function(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},ps,i),styles:[{tag:Ja.pJ.keyword,color:"#859900"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.propertyName,Ja.pJ.macroName],color:"#2aa198"},{tag:[Ja.pJ.variableName],color:"#268bd2"},{tag:[Ja.pJ.function(Ja.pJ.variableName)],color:"#268bd2"},{tag:[Ja.pJ.labelName],color:"#d33682"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#b58900"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#2aa198"},{tag:[Ja.pJ.brace],color:"#d33682"},{tag:[Ja.pJ.annotation],color:"#d30102"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#d33682"},{tag:[Ja.pJ.typeName,Ja.pJ.className],color:"#cb4b16"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#6c71c4"},{tag:[Ja.pJ.tagName],color:"#268bd2"},{tag:[Ja.pJ.squareBracket],color:"#dc322f"},{tag:[Ja.pJ.angleBracket],color:"#073642"},{tag:[Ja.pJ.attributeName],color:"#93a1a1"},{tag:[Ja.pJ.regexp],color:"#d30102"},{tag:[Ja.pJ.quote],color:"#859900"},{tag:[Ja.pJ.string],color:"#b58900"},{tag:Ja.pJ.link,color:"#2aa198",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.special(Ja.pJ.string)],color:"#b58900"},{tag:[Ja.pJ.meta],color:"#dc322f"},{tag:[Ja.pJ.comment],color:"#586e75",fontStyle:"italic"},{tag:Ja.pJ.strong,fontWeight:"bold",color:"#586e75"},{tag:Ja.pJ.emphasis,fontStyle:"italic",color:"#859900"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#b58900"},{tag:Ja.pJ.heading1,fontWeight:"bold",color:"#002b36"},{tag:[Ja.pJ.heading2,Ja.pJ.heading3,Ja.pJ.heading4],fontWeight:"bold",color:"#002b36"},{tag:[Ja.pJ.heading5,Ja.pJ.heading6],color:"#002b36"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#d33682"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.inserted,Ja.pJ.contentSeparator],color:"#dc322f"},{tag:[Ja.pJ.contentSeparator],color:"#b58900"},{tag:Ja.pJ.invalid,color:"#073642",borderBottom:"1px dotted #dc322f"}].concat((0,E.Z)(o))})},fs=Os(),hs={background:"#002b36",foreground:"#93a1a1",caret:"#839496",selection:"#173541",selectionMatch:"#aafe661a",gutterBackground:"#00252f",gutterForeground:"#839496",lineHighlight:"#173541"},gs=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},hs,i),styles:[{tag:Ja.pJ.keyword,color:"#859900"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.propertyName,Ja.pJ.macroName],color:"#2aa198"},{tag:[Ja.pJ.variableName],color:"#93a1a1"},{tag:[Ja.pJ.function(Ja.pJ.variableName)],color:"#268bd2"},{tag:[Ja.pJ.labelName],color:"#d33682"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#b58900"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#2aa198"},{tag:[Ja.pJ.brace],color:"#d33682"},{tag:[Ja.pJ.annotation],color:"#d30102"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#d33682"},{tag:[Ja.pJ.typeName,Ja.pJ.className],color:"#cb4b16"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#6c71c4"},{tag:[Ja.pJ.tagName],color:"#268bd2"},{tag:[Ja.pJ.squareBracket],color:"#dc322f"},{tag:[Ja.pJ.angleBracket],color:"#586e75"},{tag:[Ja.pJ.attributeName],color:"#93a1a1"},{tag:[Ja.pJ.regexp],color:"#d30102"},{tag:[Ja.pJ.quote],color:"#859900"},{tag:[Ja.pJ.string],color:"#b58900"},{tag:Ja.pJ.link,color:"#2aa198",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.special(Ja.pJ.string)],color:"#b58900"},{tag:[Ja.pJ.meta],color:"#dc322f"},{tag:[Ja.pJ.comment],color:"#586e75",fontStyle:"italic"},{tag:Ja.pJ.strong,fontWeight:"bold",color:"#eee8d5"},{tag:Ja.pJ.emphasis,fontStyle:"italic",color:"#859900"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#b58900"},{tag:Ja.pJ.heading1,fontWeight:"bold",color:"#fdf6e3"},{tag:[Ja.pJ.heading2,Ja.pJ.heading3,Ja.pJ.heading4],fontWeight:"bold",color:"#eee8d5"},{tag:[Ja.pJ.heading5,Ja.pJ.heading6],color:"#eee8d5"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#d33682"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.inserted,Ja.pJ.contentSeparator],color:"#dc322f"},{tag:[Ja.pJ.contentSeparator],color:"#b58900"},{tag:Ja.pJ.invalid,color:"#586e75",borderBottom:"1px dotted #dc322f"}].concat((0,E.Z)(o))})},ms=gs(),ys={background:"#303841",foreground:"#FFFFFF",caret:"#FBAC52",selection:"#4C5964",selectionMatch:"#3A546E",gutterBackground:"#303841",gutterForeground:"#FFFFFF70",lineHighlight:"#00000059"};function vs(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},ys,i),styles:[{tag:[Ja.pJ.meta,Ja.pJ.comment],color:"#A2A9B5"},{tag:[Ja.pJ.attributeName,Ja.pJ.keyword],color:"#B78FBA"},{tag:Ja.pJ.function(Ja.pJ.variableName),color:"#5AB0B0"},{tag:[Ja.pJ.string,Ja.pJ.regexp,Ja.pJ.attributeValue],color:"#99C592"},{tag:Ja.pJ.operator,color:"#f47954"},{tag:[Ja.pJ.tagName,Ja.pJ.modifier],color:"#E35F63"},{tag:[Ja.pJ.number,Ja.pJ.definition(Ja.pJ.tagName),Ja.pJ.className,Ja.pJ.definition(Ja.pJ.variableName)],color:"#fbac52"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#E35F63"},{tag:Ja.pJ.variableName,color:"#539ac4"},{tag:[Ja.pJ.propertyName,Ja.pJ.typeName],color:"#629ccd"},{tag:Ja.pJ.propertyName,color:"#36b7b5"}].concat((0,E.Z)(o))})}var bs=vs(),xs={background:"#1a1b26",foreground:"#787c99",caret:"#c0caf5",selection:"#515c7e40",selectionMatch:"#16161e",gutterBackground:"#1a1b26",gutterForeground:"#787c99",gutterBorder:"transparent",lineHighlight:"#1e202e"},Rs=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},xs,i),styles:[{tag:Ja.pJ.keyword,color:"#bb9af7"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.macroName],color:"#c0caf5"},{tag:[Ja.pJ.propertyName],color:"#7aa2f7"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.string,Ja.pJ.inserted,Ja.pJ.special(Ja.pJ.string)],color:"#9ece6a"},{tag:[Ja.pJ.function(Ja.pJ.variableName),Ja.pJ.labelName],color:"#7aa2f7"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#bb9af7"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#c0caf5"},{tag:[Ja.pJ.className],color:"#c0caf5"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#ff9e64"},{tag:[Ja.pJ.typeName],color:"#0db9d7"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#bb9af7"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.regexp,Ja.pJ.link],color:"#b4f9f8"},{tag:[Ja.pJ.meta,Ja.pJ.comment],color:"#444b6a"},{tag:Ja.pJ.strong,fontWeight:"bold"},{tag:Ja.pJ.emphasis,fontStyle:"italic"},{tag:Ja.pJ.link,textDecoration:"underline"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#89ddff"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#c0caf5"},{tag:Ja.pJ.invalid,color:"#ff5370"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"}].concat((0,E.Z)(o))})},Ss=Rs(),Qs={background:"#24283b",foreground:"#7982a9",caret:"#c0caf5",selection:"#6f7bb630",selectionMatch:"#1f2335",gutterBackground:"#24283b",gutterForeground:"#7982a9",gutterBorder:"transparent",lineHighlight:"#292e42"},$s=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Qs,i),styles:[{tag:Ja.pJ.keyword,color:"#bb9af7"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.macroName],color:"#c0caf5"},{tag:[Ja.pJ.propertyName],color:"#7aa2f7"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.string,Ja.pJ.inserted,Ja.pJ.special(Ja.pJ.string)],color:"#9ece6a"},{tag:[Ja.pJ.function(Ja.pJ.variableName),Ja.pJ.labelName],color:"#7aa2f7"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#bb9af7"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#c0caf5"},{tag:[Ja.pJ.className],color:"#c0caf5"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#ff9e64"},{tag:[Ja.pJ.typeName],color:"#2ac3de",fontStyle:"#2ac3de"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#bb9af7"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.regexp,Ja.pJ.link],color:"#b4f9f8"},{tag:[Ja.pJ.meta,Ja.pJ.comment],color:"#565f89"},{tag:Ja.pJ.strong,fontWeight:"bold"},{tag:Ja.pJ.emphasis,fontStyle:"italic"},{tag:Ja.pJ.link,textDecoration:"underline"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#89ddff"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#c0caf5"},{tag:Ja.pJ.invalid,color:"#ff5370"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"}].concat((0,E.Z)(o))})},ws=$s(),Ps={background:"#e1e2e7",foreground:"#3760bf",caret:"#3760bf",selection:"#99a7df",selectionMatch:"#99a7df",gutterBackground:"#e1e2e7",gutterForeground:"#3760bf",gutterBorder:"transparent",lineHighlight:"#5f5faf11"},Ts=function(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Ps,i),styles:[{tag:Ja.pJ.keyword,color:"#007197"},{tag:[Ja.pJ.name,Ja.pJ.deleted,Ja.pJ.character,Ja.pJ.macroName],color:"#3760bf"},{tag:[Ja.pJ.propertyName],color:"#3760bf"},{tag:[Ja.pJ.processingInstruction,Ja.pJ.string,Ja.pJ.inserted,Ja.pJ.special(Ja.pJ.string)],color:"#587539"},{tag:[Ja.pJ.function(Ja.pJ.variableName),Ja.pJ.labelName],color:"#3760bf"},{tag:[Ja.pJ.color,Ja.pJ.constant(Ja.pJ.name),Ja.pJ.standard(Ja.pJ.name)],color:"#3760bf"},{tag:[Ja.pJ.definition(Ja.pJ.name),Ja.pJ.separator],color:"#3760bf"},{tag:[Ja.pJ.className],color:"#3760bf"},{tag:[Ja.pJ.number,Ja.pJ.changed,Ja.pJ.annotation,Ja.pJ.modifier,Ja.pJ.self,Ja.pJ.namespace],color:"#b15c00"},{tag:[Ja.pJ.typeName],color:"#007197",fontStyle:"#007197"},{tag:[Ja.pJ.operator,Ja.pJ.operatorKeyword],color:"#007197"},{tag:[Ja.pJ.url,Ja.pJ.escape,Ja.pJ.regexp,Ja.pJ.link],color:"#587539"},{tag:[Ja.pJ.meta,Ja.pJ.comment],color:"#848cb5"},{tag:Ja.pJ.strong,fontWeight:"bold"},{tag:Ja.pJ.emphasis,fontStyle:"italic"},{tag:Ja.pJ.link,textDecoration:"underline"},{tag:Ja.pJ.heading,fontWeight:"bold",color:"#b15c00"},{tag:[Ja.pJ.atom,Ja.pJ.bool,Ja.pJ.special(Ja.pJ.variableName)],color:"#3760bf"},{tag:Ja.pJ.invalid,color:"#f52a65"},{tag:Ja.pJ.strikethrough,textDecoration:"line-through"}].concat((0,E.Z)(o))})},Es=Ts(),ks={background:"#fff",foreground:"#3D3D3D",selection:"#BBDFFF",selectionMatch:"#BBDFFF",gutterBackground:"#fff",gutterForeground:"#AFAFAF",lineHighlight:"#EDF4FF"};function Xs(e){var t=e||{},r=t.theme,n=void 0===r?"light":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},ks,i),styles:[{tag:[Ja.pJ.comment,Ja.pJ.quote],color:"#707F8D"},{tag:[Ja.pJ.typeName,Ja.pJ.typeOperator],color:"#aa0d91"},{tag:[Ja.pJ.keyword],color:"#aa0d91",fontWeight:"bold"},{tag:[Ja.pJ.string,Ja.pJ.meta],color:"#D23423"},{tag:[Ja.pJ.name],color:"#032f62"},{tag:[Ja.pJ.typeName],color:"#522BB2"},{tag:[Ja.pJ.variableName],color:"#23575C"},{tag:[Ja.pJ.definition(Ja.pJ.variableName)],color:"#327A9E"},{tag:[Ja.pJ.regexp,Ja.pJ.link],color:"#0e0eff"}].concat((0,E.Z)(o))})}var js,Ds,Cs,As,_s=Xs(),Fs={background:"#292A30",foreground:"#CECFD0",caret:"#fff",selection:"#727377",selectionMatch:"#727377",lineHighlight:"#2F3239"},qs=function(e){var t=e||{},r=t.theme,n=void 0===r?"dark":r,a=t.settings,i=void 0===a?{}:a,s=t.styles,o=void 0===s?[]:s;return Ha({theme:n,settings:(0,Wa.Z)({},Fs,i),styles:[{tag:[Ja.pJ.comment,Ja.pJ.quote],color:"#7F8C98"},{tag:[Ja.pJ.keyword],color:"#FF7AB2",fontWeight:"bold"},{tag:[Ja.pJ.string,Ja.pJ.meta],color:"#FF8170"},{tag:[Ja.pJ.typeName],color:"#DABAFF"},{tag:[Ja.pJ.definition(Ja.pJ.variableName)],color:"#6BDFFF"},{tag:[Ja.pJ.name],color:"#6BAA9F"},{tag:[Ja.pJ.variableName],color:"#ACF2E4"},{tag:[Ja.pJ.regexp,Ja.pJ.link],color:"#FF8170"}].concat((0,E.Z)(o))})},Is=qs(),Us={abcdef:ri,androidstudio:ii,atomone:di,aura:li,bbedit:fi,bespin:wi,darcula:bi,dracula:mi,duotoneLight:Yi,duotoneDark:Bi,eclipse:Si,githubLight:Mi,githubDark:Ki,gruvboxDark:rs,gruvboxLight:is,materialLight:Ai,materialDark:Xi,noctisLilac:qi,nord:ds,okaidia:ls,solarizedLight:fs,solarizedDark:ms,sublime:bs,tokyoNight:Ss,tokyoNightStorm:ws,tokyoNightDay:Es,vscodeDark:Wi,xcodeLight:_s,xcodeDark:Is},Ws=function(){var e;return null===(e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))||void 0===e?void 0:e.map((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})).join(" ")},Ns=Bn.div(js||(js=i(["\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 2.5rem;\n display: grid;\n padding: 2.6rem;\n a {\n text-decoration: none;\n }\n @media (max-width: 1280px) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n @media (max-width: 1024px) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n @media (max-width: 860px) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n"]))),Zs=Bn.div(Ds||(Ds=i(["\n padding: 1rem;\n box-shadow: 0 0 #0000, 0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n border-radius: 0.5rem;\n border: 1px solid var(--color-neutral-muted);\n background-color: var(--color-canvas-subtle);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n &:hover {\n transform: translate(0, -0.25rem) rotate(0) skewX(0) skewY(0) scaleX(1) scaleY(1);\n }\n"]))),Ys=Bn.div(Cs||(Cs=i(["\n font-weight: 600;\n padding-bottom: 0.68rem;\n"]))),Vs=Bn(ya.default)(As||(As=i(["\n border-radius: 0.375rem;\n overflow: hidden;\n position: relative;\n &::before {\n content: '';\n display: block;\n height: 100%;\n background: transparent;\n width: 100%;\n position: absolute;\n z-index: 1;\n }\n"])));r(39446);var Gs,Bs,zs,Ls,Ms,Js,Hs,Ks,eo,to,ro=r(72351),no={comment:"#787b80",lineComment:"",blockComment:"",docComment:"",name:"",typeDefinition:"#194a7b",typeName:"#194a7b",typeStandard:"",tagName:"#008a02",tagNameStandard:"",variableName:"#1a00db",variableNameDefinition:"",variableNameFunction:"",propertyName:"",propertyNameDefinition:"",propertyNameFunction:"",propertyNameSpecial:"",attributeName:"",attributeValue:"",className:"",classNameConstant:"",labelName:"",namespace:"",macroName:"",literal:"",string:"",stringSpecial:"",docString:"",character:"",number:"",integer:"",float:"",bool:"",regexp:"",escape:"",color:"",url:"",keyword:"",self:"",null:"",atom:"",unit:"",modifier:"",operatorKeyword:"",controlKeyword:"",definitionKeyword:"",moduleKeyword:"",operator:"",derefOperator:"",arithmeticOperator:"",logicOperator:"",bitwiseOperator:"",brace:"",angleBracket:"",compareOperator:"",updateOperator:"",definitionOperator:"",typeOperator:"",controlOperator:"",punctuation:"",separator:"",bracket:"",squareBracket:"",paren:"",content:"",heading:"",heading1:"",heading2:"",heading3:"",heading4:"",heading5:"",heading6:"",contentSeparator:"",list:"",quote:"",emphasis:"",strong:"",link:"",monospace:"",strikethrough:"",inserted:"",deleted:"",changed:"",invalid:"",meta:"",documentMeta:"",annotation:"",processingInstruction:""},ao=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[];return e.comment&&t.push("{ tag: t.comment, color: '".concat(e.comment,"' },")),e.lineComment&&t.push("{ tag: t.lineComment, color: '".concat(e.lineComment,"' },")),e.blockComment&&t.push("{ tag: t.blockComment, color: '".concat(e.blockComment,"' },")),e.docComment&&t.push("{ tag: t.docComment, color: '".concat(e.docComment,"' },")),e.name&&t.push("{ tag: t.name, color: '".concat(e.name,"' },")),e.typeDefinition&&t.push("{ tag: t.definition(t.typeName), color: '".concat(e.typeDefinition,"' },")),e.typeName&&t.push("{ tag: t.typeName, color: '".concat(e.typeName,"' },")),e.typeStandard&&t.push("{ tag: t.standard(t.typeName), color: '".concat(e.typeName,"' },")),e.tagName&&t.push("{ tag: t.tagName, color: '".concat(e.tagName,"' },")),e.tagNameStandard&&t.push("{ tag: t.standard(t.tagName), color: '".concat(e.tagNameStandard,"' },")),e.variableName&&t.push("{ tag: t.variableName, color: '".concat(e.variableName,"' },")),e.variableNameDefinition&&t.push("{ tag: t.definition(t.variableName), color: '".concat(e.variableNameDefinition,"' },")),e.variableNameFunction&&t.push("{ tag: t.function(t.variableName), color: '".concat(e.variableNameFunction,"' },")),e.propertyName&&t.push("{ tag: t.propertyName, color: '".concat(e.propertyName,"' },")),e.propertyNameFunction&&t.push("{ tag: t.function(t.propertyName), color: '".concat(e.propertyNameFunction,"' },")),e.propertyNameDefinition&&t.push("{ tag: t.definition(t.propertyName), color: '".concat(e.propertyNameDefinition,"' },")),e.propertyNameSpecial&&t.push("{ tag: t.special(t.propertyName), color: '".concat(e.propertyNameSpecial,"' },")),e.attributeName&&t.push("{ tag: t.attributeName, color: '".concat(e.attributeName,"' },")),e.className&&t.push("{ tag: t.className, color: '".concat(e.className,"' },")),e.classNameConstant&&t.push("{ tag: t.constant(t.className), color: '".concat(e.className,"' },")),e.labelName&&t.push("{ tag: t.labelName, color: '".concat(e.labelName,"' },")),e.namespace&&t.push("{ tag: t.namespace, color: '".concat(e.namespace,"' },")),e.macroName&&t.push("{ tag: t.macroName, color: '".concat(e.macroName,"' },")),e.literal&&t.push("{ tag: t.literal, color: '".concat(e.literal,"' },")),e.string&&t.push("{ tag: t.string, color: '".concat(e.string,"' },")),e.stringSpecial&&t.push("{ tag: t.special(t.string), color: '".concat(e.stringSpecial,"' },")),e.docString&&t.push("{ tag: t.docString, color: '".concat(e.docString,"' },")),e.character&&t.push("{ tag: t.character, color: '".concat(e.character,"' },")),e.attributeValue&&t.push("{ tag: t.attributeValue, color: '".concat(e.attributeValue,"' },")),e.number&&t.push("{ tag: t.number, color: '".concat(e.number,"' },")),e.integer&&t.push("{ tag: t.integer, color: '".concat(e.integer,"' },")),e.float&&t.push("{ tag: t.float, color: '".concat(e.float,"' },")),e.bool&&t.push("{ tag: t.bool, color: '".concat(e.bool,"' },")),e.regexp&&t.push("{ tag: t.regexp, color: '".concat(e.regexp,"' },")),e.escape&&t.push("{ tag: t.escape, color: '".concat(e.escape,"' },")),e.color&&t.push("{ tag: t.color, color: '".concat(e.color,"' },")),e.url&&t.push("{ tag: t.url, color: '".concat(e.url,"' },")),e.keyword&&t.push("{ tag: t.keyword, color: '".concat(e.keyword,"' },")),e.self&&t.push("{ tag: t.self, color: '".concat(e.self,"' },")),e.null&&t.push("{ tag: t.null, color: '".concat(e.null,"' },")),e.atom&&t.push("{ tag: t.atom, color: '".concat(e.atom,"' },")),e.unit&&t.push("{ tag: t.unit, color: '".concat(e.unit,"' },")),e.modifier&&t.push("{ tag: t.modifier, color: '".concat(e.modifier,"' },")),e.operatorKeyword&&t.push("{ tag: t.operatorKeyword, color: '".concat(e.operatorKeyword,"' },")),e.controlKeyword&&t.push("{ tag: t.controlKeyword, color: '".concat(e.controlKeyword,"' },")),e.definitionKeyword&&t.push("{ tag: t.definitionKeyword, color: '".concat(e.definitionKeyword,"' },")),e.moduleKeyword&&t.push("{ tag: t.moduleKeyword, color: '".concat(e.moduleKeyword,"' },")),e.operator&&t.push("{ tag: t.operator, color: '".concat(e.operator,"' },")),e.derefOperator&&t.push("{ tag: t.derefOperator, color: '".concat(e.derefOperator,"' },")),e.arithmeticOperator&&t.push("{ tag: t.arithmeticOperator, color: '".concat(e.arithmeticOperator,"' },")),e.logicOperator&&t.push("{ tag: t.logicOperator, color: '".concat(e.logicOperator,"' },")),e.logicOperator&&t.push("{ tag: t.bitwiseOperator, color: '".concat(e.logicOperator,"' },")),e.compareOperator&&t.push("{ tag: t.compareOperator, color: '".concat(e.compareOperator,"' },")),e.updateOperator&&t.push("{ tag: t.updateOperator, color: '".concat(e.updateOperator,"' },")),e.definitionOperator&&t.push("{ tag: t.definitionOperator, color: '".concat(e.definitionOperator,"' },")),e.typeOperator&&t.push("{ tag: t.typeOperator, color: '".concat(e.typeOperator,"' },")),e.controlOperator&&t.push("{ tag: t.controlOperator, color: '".concat(e.controlOperator,"' },")),e.punctuation&&t.push("{ tag: t.punctuation, color: '".concat(e.punctuation,"' },")),e.separator&&t.push("{ tag: t.separator, color: '".concat(e.separator,"' },")),e.bracket&&t.push("{ tag: t.bracket, color: '".concat(e.bracket,"' },")),e.angleBracket&&t.push("{ tag: t.angleBracket, color: '".concat(e.angleBracket,"' },")),e.squareBracket&&t.push("{ tag: t.squareBracket, color: '".concat(e.squareBracket,"' },")),e.paren&&t.push("{ tag: t.paren, color: '".concat(e.paren,"' },")),e.brace&&t.push("{ tag: t.brace, color: '".concat(e.brace,"' },")),e.content&&t.push("{ tag: t.content, color: '".concat(e.content,"' },")),e.heading&&t.push("{ tag: t.heading, color: '".concat(e.heading,"' },")),e.heading1&&t.push("{ tag: t.heading1, color: '".concat(e.heading1,"' },")),e.heading2&&t.push("{ tag: t.heading2, color: '".concat(e.heading2,"' },")),e.heading3&&t.push("{ tag: t.heading3, color: '".concat(e.heading3,"' },")),e.heading4&&t.push("{ tag: t.heading4, color: '".concat(e.heading4,"' },")),e.heading5&&t.push("{ tag: t.heading5, color: '".concat(e.heading5,"' },")),e.heading6&&t.push("{ tag: t.heading6, color: '".concat(e.heading6,"' },")),e.contentSeparator&&t.push("{ tag: t.contentSeparator, color: '".concat(e.contentSeparator,"' },")),e.list&&t.push("{ tag: t.list, color: '".concat(e.list,"' },")),e.quote&&t.push("{ tag: t.quote, color: '".concat(e.quote,"' },")),e.emphasis&&t.push("{ tag: t.emphasis, color: '".concat(e.emphasis,"' },")),e.strong&&t.push("{ tag: t.strong, color: '".concat(e.strong,"' },")),e.link&&t.push("{ tag: t.link, color: '".concat(e.link,"' },")),e.monospace&&t.push("{ tag: t.monospace, color: '".concat(e.monospace,"' },")),e.strikethrough&&t.push("{ tag: t.strikethrough, color: '".concat(e.strikethrough,"' },")),e.inserted&&t.push("{ tag: t.inserted, color: '".concat(e.inserted,"' },")),e.deleted&&t.push("{ tag: t.deleted, color: '".concat(e.deleted,"' },")),e.changed&&t.push("{ tag: t.changed, color: '".concat(e.changed,"' },")),e.invalid&&t.push("{ tag: t.invalid, color: '".concat(e.invalid,"' },")),e.meta&&t.push("{ tag: t.meta, color: '".concat(e.meta,"' },")),e.documentMeta&&t.push("{ tag: t.documentMeta, color: '".concat(e.documentMeta,"' },")),e.annotation&&t.push("{ tag: t.annotation, color: '".concat(e.annotation,"' },")),e.processingInstruction&&t.push("{ tag: t.processingInstruction, color: '".concat(e.processingInstruction,"' },")),"import CodeMirror from '@uiw/react-codemirror';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tags as t } from '@lezer/highlight';\n\nconst myTheme = createTheme({\n dark: '".concat(e.dark,"',\n settings: {\n background: '").concat(e.background,"',\n foreground: '").concat(e.foreground,"',\n caret: '").concat(e.caret,"',\n selection: '").concat(e.selection,"',\n selectionMatch: '").concat(e.selectionMatch,"',\n gutterBackground: '").concat(e.gutterBackground,"',\n gutterForeground: '").concat(e.gutterForeground,"',\n gutterBorder: '").concat(e.gutterBorder,"',\n gutterActiveForeground: '").concat(e.gutterActiveForeground,"',\n lineHighlight: '").concat(e.lineHighlight,"',\n },\n styles: [\n ").concat(t.join("\n "),"\n ],\n});\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;")},io=["children","onChange"],so=["color","children"],oo=Bn.div(Gs||(Gs=i(["\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n"]))),uo=Bn.div(Bs||(Bs=i(["\n /* font-weight: bold; */\n"]))),co=Bn.div(zs||(zs=i(["\n width: 16px;\n height: 16px;\n overflow: hidden;\n border: 1px solid var(--color-border-default);\n border-radius: 3px;\n position: relative;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpattern id='a' width='12' height='12' patternUnits='userSpaceOnUse'%3E%3Cpath fill='rgba(0, 0, 0, 0.06)' d='M0 0h8v8H0zm8 8h8v8H8z'/%3E%3C/pattern%3E%3Crect fill='url(%23a)' width='100%25' height='100%25'/%3E%3C/svg%3E\");\n &::before {\n content: ' ';\n display: block;\n position: absolute;\n left: 1px;\n right: 1px;\n top: 1px;\n bottom: 1px;\n border-radius: 2px;\n ","\n }\n input {\n position: relative;\n z-index: 3;\n border: 0;\n background-color: transparent;\n padding-left: 16px;\n height: 16px;\n }\n"])),(function(e){return e.color&&xn(Ls||(Ls=i(["\n background-color: ",";\n "])),e.color)})),lo=function(e){e.children;var t=e.onChange,r=la(e,io);return(0,Ln.jsx)(co,{color:r.value,children:(0,Ln.jsx)("input",(0,ua.Z)((0,ua.Z)({type:"color"},r),{},{onChange:t}))})},po=function(e){var t=e.color,r=e.children,n=la(e,so);return(0,Ln.jsxs)(oo,{children:[(0,Ln.jsx)(uo,{children:r}),(0,Ln.jsx)(lo,(0,ua.Z)({value:t},n))]})},Oo=function(e){var t=e.theme,r=e.onChange,n=function(e,t){r&&r(t)};return(0,Ln.jsxs)("div",{children:[(0,Ln.jsxs)("label",{children:[(0,Ln.jsx)("input",{type:"radio",name:"theme",onChange:function(e){return n(0,"light")},checked:"light"===t})," ","light"]}),(0,Ln.jsxs)("label",{children:[(0,Ln.jsx)("input",{type:"radio",name:"theme",onChange:function(e){return n(0,"dark")},checked:"dark"===t})," ","dark"]})]})},fo=["onChange","styles"],ho=Bn.select(Ms||(Ms=i(["\n position: absolute;\n right: 10px;\n top: 10px;\n padding: 3px 6px;\n z-index: 9;\n"]))),go=Object.keys(Ua.RI),mo=function(e){var t=e.onChange,n=e.styles,a=la(e,fo),i=(0,p.useState)("code"),s=(0,o.Z)(i,2),d=s[0],u=s[1];return(0,p.useEffect)((function(){"code"===d&&t&&t(ao(n),"code",Ua.RI.jsx())}),[]),(0,Ln.jsxs)(ho,(0,ua.Z)((0,ua.Z)({value:d,onChange:function(e){var a=e.target.value;if(u(a),"code"!==a)try{r(70620)("./sample.".concat(a.toLocaleLowerCase(),".txt")).then((function(e){var r=Ua.RI[a];t&&t(e.default,a,r?r():void 0)})).catch((function(e){t&&t("","",void 0)}))}catch(i){}else t&&t(ao(n),"code",Ua.RI.jsx())}},a),{},{children:[(0,Ln.jsx)("option",{value:"code",children:"Sample Code"}),go.map((function(e,t){return(0,Ln.jsx)("option",{value:e,children:e},t)}))]}))},yo=r(11039),vo=r(33528),bo=r(53992),xo=r(17251),Ro=r(20230),So=r(90348),Qo=r(80088),$o=r(17995),wo=r(74922),Po=r(73486),To=r(11200),Eo=r(55718),ko=r(2223),Xo=r(69512),jo=r(31027),Do=r(79770),Co=["theme"],Ao=Bn.div(Js||(Js=i(["\n font-weight: bold;\n font-size: 16px;\n padding: 5px 0;\n"]))),_o=Bn.div(Hs||(Hs=i(["\n max-width: 980px;\n"]))),Fo=function(e){var t=e.theme,r=la(e,Co);return(0,Ln.jsxs)(_o,(0,ua.Z)((0,ua.Z)({},r),{},{children:[(0,Ln.jsx)(Ao,{children:"JavaScript"}),(0,Ln.jsx)(ya.default,{value:yo.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.javascript()]}),(0,Ln.jsx)(Ao,{children:"JSX"}),(0,Ln.jsx)(ya.default,{value:vo.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.jsx()]}),(0,Ln.jsx)(Ao,{children:"TypeScript"}),(0,Ln.jsx)(ya.default,{value:bo.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.typescript()]}),(0,Ln.jsx)(Ao,{children:"TSX"}),(0,Ln.jsx)(ya.default,{value:xo.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.tsx()]}),(0,Ln.jsx)(Ao,{children:"JSON"}),(0,Ln.jsx)(ya.default,{value:Ro.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.json()]}),(0,Ln.jsx)(Ao,{children:"HTML"}),(0,Ln.jsx)(ya.default,{value:So.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.html()]}),(0,Ln.jsx)(Ao,{children:"Markdown"}),(0,Ln.jsx)(ya.default,{value:Do.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.markdown()]}),(0,Ln.jsx)(Ao,{children:"CSS"}),(0,Ln.jsx)(ya.default,{value:Qo.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.css()]}),(0,Ln.jsx)(Ao,{children:"PHP"}),(0,Ln.jsx)(ya.default,{value:$o.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.php()]}),(0,Ln.jsx)(Ao,{children:"JAVA"}),(0,Ln.jsx)(ya.default,{value:Po.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.java()]}),(0,Ln.jsx)(Ao,{children:"Rust"}),(0,Ln.jsx)(ya.default,{value:wo.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.rust()]}),(0,Ln.jsx)(Ao,{children:"Go"}),(0,Ln.jsx)(ya.default,{value:To.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.go()]}),(0,Ln.jsx)(Ao,{children:"MySQL"}),(0,Ln.jsx)(ya.default,{value:Eo.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.mysql()]}),(0,Ln.jsx)(Ao,{children:"Python"}),(0,Ln.jsx)(ya.default,{value:ko.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.python()]}),(0,Ln.jsx)(Ao,{children:"Shell"}),(0,Ln.jsx)(ya.default,{value:Xo.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.shell()]}),(0,Ln.jsx)(Ao,{children:"Swift"}),(0,Ln.jsx)(ya.default,{value:jo.default,height:"300px !important",theme:t,extensions:[Ia,Ua.RI.swift()]})]}))},qo=Bn.div(Ks||(Ks=i(["\n width: 220px;\n min-width: 220px;\n overflow: auto;\n height: calc(100vh - 42px);\n padding: 18px 16px 120px 16px;\n border-right: 1px solid var(--color-border-default);\n display: flex;\n flex-direction: column;\n gap: 5px;\n"]))),Io=Bn.div(eo||(eo=i(["\n height: 100%;\n width: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n height: calc(100vh - 42px);\n position: relative;\n"]))),Uo=Bn.div(to||(to=i(["\n color: var(--color-fg-subtle);\n font-size: 12px;\n padding: 0 0;\n"])));function Wo(e,t){return e&&t?(t.color=e,[t]):[]}var No=document.createElement("template");No.innerHTML='\n\n\n';var Zo=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(){var e;return(0,d.Z)(this,r),(e=t.call(this)).right="0",e.shadow=e.attachShadow({mode:"open"}),e.shadow.appendChild(e.ownerDocument.importNode(No.content,!0)),e.update(),e}return(0,u.Z)(r,[{key:"setAttr",value:function(e,t){var r=this.shadow.querySelector("svg");/(href)/.test(e.toLocaleLowerCase())?r.lastElementChild.setAttribute("xlink:href",t):/(color|fill)/.test(e.toLocaleLowerCase())?r.firstElementChild.style[e]=t:/(z-index|position|top|left|right|bottom|transform)/.test(e.toLocaleLowerCase())?r.style[e]=t:r.setAttribute(e,t)}},{key:"update",value:function(){var e=this;[].concat((0,E.Z)(this.getAttributeNames()),["right"]).forEach((function(t){var r=e.getAttribute(t)||e[t]||"";e.setAttr(t,r)}))}},{key:"attributeChangedCallback",value:function(e,t,r){t!==r&&this.setAttr(e,r)}}],[{key:"observedAttributes",get:function(){return["style","z-index","target","height","width","href","color","fill","position","top","left","right","bottom","transform"]}}]),r}(x(HTMLElement));customElements.define("github-corners",Zo);var Yo=["size","fixed","bottom","zIndex","className","style","bgColor","color","position"];function Vo(e){var t=e.size,r=void 0===t?80:t,n=e.fixed,a=void 0!==n&&n,i=e.bottom,s=e.zIndex,o=e.style,d=e.bgColor,u=void 0===d?"#151513":d,c=e.color,l=void 0===c?"#fff":c,p=e.position,O=void 0===p?"right":p,f=(0,ca.Z)(e,Yo),h="left"===O?{left:0,right:"initial",transform:"scale(-1, 1)"}:{right:0,left:"initial",transform:"scale(1, 1)"};return i?(h.bottom=0,h.top="initial",h.transform="left"===O?"scale(-1, -1)":"scale(1, -1)"):(h.bottom="initial",h.top=0),(0,Ln.jsx)("github-corners",(0,Wa.Z)({target:"__blank",width:r,height:r,href:e.href,position:a?"fixed":"absolute","z-index":s,style:o,fill:u,color:l},h,f))}var Go=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(){return(0,d.Z)(this,r),t.apply(this,arguments)}return(0,u.Z)(r,[{key:"render",value:function(){var e=this;return(0,Ln.jsx)(Ln.Fragment,{children:p.Children.toArray(this.props.children).map((function(t){return p.isValidElement(t)?p.cloneElement(t,(0,Wa.Z)({},e.props,t.props)):null}))})}}]),r}(p.Component),Bo=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e,n,a){var i;return(0,d.Z)(this,r),(i=t.call(this,e)).getUrl=function(){return""},i.state=Object.assign({},(0,Wa.Z)({},n,e),a),i}return(0,u.Z)(r,[{key:"render",value:function(){var e=this.state.href;return e?(0,Ln.jsxs)("a",{href:e,children:[" ",(0,Ln.jsx)("img",{alt:"",src:this.getUrl()})," "]}):(0,Ln.jsx)("img",{alt:"",src:this.getUrl()})}}]),r}(p.Component);Bo.defaultProps={platform:"github",base:"https://img.shields.io"};var zo=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{platform:"github",type:"issues"})).getUrl=function(){var e=n.state,t=e.type,r=e.platform,a=e.property,i=e.user,s=e.repo,o=e.label,d=e.base;return"github"!==r?"":"issues"===t||/^issues-(raw|closed|closed-raw|pr|pr-raw|pr-closed|pr-closed-raw)/.test(t)?o&&("issues"===t||/^issues-(raw|pr|pr-raw)/.test(t||""))?[d,r,t,i,s,o].join("/"):[d,r,t,i,s].join("/"):"issueKind"===t?[d,r,t,"detail",a,i,s].join("/"):""},n}return(0,u.Z)(r)}(Bo),Lo=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{platform:"github",type:"languages"})).getUrl=function(){var e=n.state,t=e.type,r=e.platform,a=e.user,i=e.repo,s=e.base,o=e.path;return"github"!==r?"":"languages"===t?[s,r,t,"code-size",a,i].join("/"):"repo-size"===t?[s,r,t,a,i].join("/"):"size"===t&&o?[s,r,t,a,i,o].join("/"):""},n}return(0,u.Z)(r)}(Bo),Mo=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{platform:"github",type:"downloads",total:!0})).getUrl=function(){var e=n.state,t=e.type,r=e.platform,a=e.user,i=e.repo,s=e.base,o=e.tag,d=e.path,u=e.total;if("github"!==r||!/^(downloads|downloads-pre)/.test(t||""))return"";var c=[s,r,t,a,i];return d&&o?[].concat(c,[o,d]).join("/"):u&&o||"downloads-pre"===t&&o&&u?[].concat(c,[o,"total"]).join("/"):u?[].concat(c,["total"]).join("/"):""},n}return(0,u.Z)(r)}(Bo),Jo=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{platform:"github",type:"commits-since"})).getUrl=function(){var e=n.state,t=e.type,r=e.platform,a=e.user,i=e.repo,s=e.base,o=e.interval,d=e.variant,u=e.version,c=e.branch;return"github"!==r?"":"commits-since"===t&&u&&c?[s,r,t,a,i,u,c].join("/"):"commit-activity"===t&&o?[s,r,t,o,a,i].join("/"):"variant"===t&&d?[s,r,t,d,a,i].join("/"):"last-commit"===t?c?[s,r,t,a,i,c].join("/"):[s,r,t,a,i].join("/"):t&&/^release-(date|date-pre)/.test(t)?[s,r,t,a,i].join("/"):""},n}return(0,u.Z)(r)}(Bo),Ho=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{platform:"github",type:"version-release"})).getUrl=function(){var e=n.state,t=e.type,r=e.platform,a=e.user,i=e.repo,s=e.base,o=e.branch,d="";switch(t){case"version-release":d="v/release";break;case"version-tag":d="v/tag";break;case"package-json":d="package-json/v";break;case"manifest-json":d="manifest-json/v";break;case"go-mod":d="go-mod/go-version"}if("github"!==r||!d)return"";var u=[s,r,d,a,i];return/(go-mod|manifest-json|package-json)/.test(t||"")&&o?[].concat(u,[o]).join("/"):u.join("/")},n}return(0,u.Z)(r)}(Bo),Ko=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{platform:"github",type:"license"})).getUrl=function(){var e=n.state,t=e.type,r=e.platform,a=e.user,i=e.repo,s=e.base;return"github"!==r?"":[s,r,t,a,i].join("/")},n}return(0,u.Z)(r)}(Bo),ed=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{platform:"github",type:"languages-count"})).getUrl=function(){var e=n.state,t=e.base,r=e.platform,a=e.type,i=e.user,s=e.repo,o=e.query,d="";switch(a){case"languages-count":d="languages/count";break;case"languages-top":d="languages/top";break;case"search":d="search"}if("github"!==r||!d)return"";var u=[t,r,d,i,s];return o?[].concat(u,[o]).join("/"):u.join("/")},n}return(0,u.Z)(r)}(Bo),td=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{platform:"github",type:"followers"})).getUrl=function(){var e=n.state,t=e.type,r=e.platform,a=e.user,i=e.repo,s=e.base;return"github"!==r?"":"followers"===t?[s,r,t,a].join("/"):[s,r,t,a,i].join("/")},n}return(0,u.Z)(r)}(Bo),rd=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(){return(0,d.Z)(this,r),t.apply(this,arguments)}return(0,u.Z)(r)}(Go);rd.Issues=zo,rd.Size=Lo,rd.Activity=Jo,rd.Downloads=Mo,rd.Version=Ho,rd.License=Ko,rd.Analysis=ed,rd.Social=td;var nd=rd,ad=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{type:"version"},{platform:"npm"})).getUrl=function(){var e=n.state,t=e.base,r=e.platform,a=e.type,i=e.scope,s=e.packageName,o=e.dependency,d=e.dependencyScope,u=e.version,c=e.registryUri;if("npm"!==r||!s)return"";var l="",p=[t,r];return"version"===a&&s?(p.push("v"),i&&p.push(i),p.push(s),u&&p.push(u),l=p.join("/"),c&&(l=l+"?registry_uri="+c)):"peer-dependency"===a&&s&&o?(p.push("dependency-version"),i&&p.push(i),l=[].concat(p,[s,"peer",o]).join("/")):"dev-dependency"===a&&s&&o?(p.push("dependency-version"),i&&p.push(i),p.concat([s,"dev"]),d&&p.push(d),p.push(o),l=p.join("/")):s&&o&&(p.concat([s,o]),l=p.join("/")),l},n}return(0,u.Z)(r)}(Bo),id=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this,e,{format:"min"},{platform:"npm"})).getUrl=function(){var e=n.state,t=e.base,r=e.platform,a=e.format,i=e.packageName,s=e.scope,o=e.version;if("npm"!==r)return"";var d=[t,"bundlephobia"],u="";return i&&a&&(u=[].concat(d,[a,i]).join("/")),i&&a&&s&&(u=[].concat(d,[a,s,i]).join("/")),i&&a&&s&&o&&(u=[].concat(d,[a,s,i,o]).join("/")),i&&a&&o&&(u=[].concat(d,[a,i,o]).join("/")),u},n}return(0,u.Z)(r)}(Bo),sd=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(){return(0,d.Z)(this,r),t.apply(this,arguments)}return(0,u.Z)(r)}(Go);sd.Version=ad,sd.Size=id;var od=sd,dd=r(82589);function ud(e){return e&&"object"===typeof e?"position"in e||"type"in e?ld(e.position):"start"in e||"end"in e?ld(e):"line"in e||"column"in e?cd(e):"":""}function cd(e){return pd(e&&e.line)+":"+pd(e&&e.column)}function ld(e){return cd(e&&e.start)+"-"+cd(e&&e.end)}function pd(e){return e&&"number"===typeof e?e:1}var Od=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e,n,a){var i;(0,d.Z)(this,r);var s=[null,null],o={start:{line:null,column:null},end:{line:null,column:null}};if(i=t.call(this),"string"===typeof n&&(a=n,n=void 0),"string"===typeof a){var u=a.indexOf(":");-1===u?s[1]=a:(s[0]=a.slice(0,u),s[1]=a.slice(u+1))}return n&&("type"in n||"position"in n?n.position&&(o=n.position):"start"in n||"end"in n?o=n:("line"in n||"column"in n)&&(o.start=n)),i.name=ud(n)||"1:1",i.message="object"===typeof e?e.message:e,i.stack="","object"===typeof e&&e.stack&&(i.stack=e.stack),i.reason=i.message,i.fatal,i.line=o.start.line,i.column=o.start.column,i.position=o,i.source=s[0],i.ruleId=s[1],i.file,i.actual,i.expected,i.url,i.note,i}return(0,u.Z)(r)}(x(Error));Od.prototype.file="",Od.prototype.name="",Od.prototype.reason="",Od.prototype.message="",Od.prototype.stack="",Od.prototype.fatal=null,Od.prototype.column=null,Od.prototype.line=null,Od.prototype.source=null,Od.prototype.ruleId=null,Od.prototype.position=null;var fd={basename:function(e,t){if(void 0!==t&&"string"!==typeof t)throw new TypeError('"ext" argument must be a string');hd(e);var r,n=0,a=-1,i=e.length;if(void 0===t||0===t.length||t.length>e.length){for(;i--;)if(47===e.charCodeAt(i)){if(r){n=i+1;break}}else a<0&&(r=!0,a=i+1);return a<0?"":e.slice(n,a)}if(t===e)return"";var s=-1,o=t.length-1;for(;i--;)if(47===e.charCodeAt(i)){if(r){n=i+1;break}}else s<0&&(r=!0,s=i+1),o>-1&&(e.charCodeAt(i)===t.charCodeAt(o--)?o<0&&(a=i):(o=-1,a=s));n===a?a=s:a<0&&(a=e.length);return e.slice(n,a)},dirname:function(e){if(hd(e),0===e.length)return".";var t,r=-1,n=e.length;for(;--n;)if(47===e.charCodeAt(n)){if(t){r=n;break}}else t||(t=!0);return r<0?47===e.charCodeAt(0)?"/":".":1===r&&47===e.charCodeAt(0)?"//":e.slice(0,r)},extname:function(e){hd(e);var t,r=e.length,n=-1,a=0,i=-1,s=0;for(;r--;){var o=e.charCodeAt(r);if(47!==o)n<0&&(t=!0,n=r+1),46===o?i<0?i=r:1!==s&&(s=1):i>-1&&(s=-1);else if(t){a=r+1;break}}if(i<0||n<0||0===s||1===s&&i===n-1&&i===a+1)return"";return e.slice(i,n)},join:function(){for(var e,t=-1,r=arguments.length,n=new Array(r),a=0;a2){if((n=a.lastIndexOf("/"))!==a.length-1){n<0?(a="",i=0):i=(a=a.slice(0,n)).length-1-a.lastIndexOf("/"),s=d,o=0;continue}}else if(a.length>0){a="",i=0,s=d,o=0;continue}t&&(a=a.length>0?a+"/..":"..",i=2)}else a.length>0?a+="/"+e.slice(s+1,d):a=e.slice(s+1,d),i=d-s-1;s=d,o=0}else 46===r&&o>-1?o++:o=-1}return a}(e,!t);0!==r.length||t||(r=".");r.length>0&&47===e.charCodeAt(e.length-1)&&(r+="/");return t?"/"+r:r}(e)},sep:"/"};function hd(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var gd={cwd:function(){return"/"}};function md(e){return null!==e&&"object"===typeof e&&e.href&&e.origin}function yd(e){if("string"===typeof e)e=new URL(e);else if(!md(e)){var t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if("file:"!==e.protocol){var r=new TypeError("The URL must be of scheme file");throw r.code="ERR_INVALID_URL_SCHEME",r}return function(e){if(""!==e.hostname){var t=new TypeError('File URL host must be "localhost" or empty on darwin');throw t.code="ERR_INVALID_FILE_URL_HOST",t}var r=e.pathname,n=-1;for(;++n1?d-1:0),c=1;ca.length;u&&a.push(i);try{d=e.apply(this,a)}catch(n){if(u&&r)throw n;return i(n)}u||(d instanceof Promise?d.then(s,i):d instanceof Error?i(d):s(d))}function i(e){if(!r){r=!0;for(var n=arguments.length,a=new Array(n>1?n-1:0),i=1;i1?r-1:0),o=1;oi?0:i+t:t>i?i:t,r=r>0?r:0,n.length<1e4)(a=Array.from(n)).unshift(t,r),e.splice.apply(e,(0,E.Z)(a));else for(r&&e.splice(t,r);s0?(Ud(e,e.length,0,t),e):t}var Nd={}.hasOwnProperty;function Zd(e){for(var t={},r=-1;++rn))return;for(var u,c,l=a.events.length,p=l;p--;)if("exit"===a.events[p][0]&&"chunkFlow"===a.events[p][1].type){if(u){c=a.events[p][1].end;break}u=!0}for(m(s),d=l;dt;){var n=i[r];a.containerState=n[1],n[0].exit.call(a,e)}i.length=t}function y(){t.write([null]),r=void 0,t=void 0,a.containerState._closeFlow=void 0}}},du={tokenize:function(e,t,r){return iu(e,e.attempt(this.parser.constructs.document,t,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};var uu={tokenize:function(e,t,r){return function(t){return tu(t)?iu(e,n,"linePrefix")(t):n(t)};function n(e){return null===e||Kd(e)?t(e):r(e)}},partial:!0};function cu(e){for(var t,r,n,a,i,s,o,d={},u=-1;++u=4?t(a):e.interrupt(n.parser.constructs.flow,r,t)(a)}},partial:!0};var fu={tokenize:function(e){var t=this,r=e.attempt(uu,(function(n){if(null===n)return void e.consume(n);return e.enter("lineEndingBlank"),e.consume(n),e.exit("lineEndingBlank"),t.currentConstruct=void 0,r}),e.attempt(this.parser.constructs.flowInitial,n,iu(e,e.attempt(this.parser.constructs.flow,n,e.attempt(pu,n)),"linePrefix")));return r;function n(n){if(null!==n)return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),t.currentConstruct=void 0,r;e.consume(n)}}};var hu={resolveAll:vu()},gu=yu("string"),mu=yu("text");function yu(e){return{tokenize:function(t){var r=this,n=this.parser.constructs[e],a=t.attempt(n,i,s);return i;function i(e){return d(e)?a(e):s(e)}function s(e){if(null!==e)return t.enter("data"),t.consume(e),o;t.consume(e)}function o(e){return d(e)?(t.exit("data"),a(e)):(t.consume(e),o)}function d(e){if(null===e)return!0;var t=n[e],a=-1;if(t)for(;++a-1){var o=r[0];"string"===typeof o?r[0]=o.slice(a):r.shift()}s>0&&r.push(e[i].slice(0,s))}return r}(s,e)}function p(){var e=n;return{line:e.line,column:e.column,offset:e.offset,_index:e._index,_bufferIndex:e._bufferIndex}}function O(){for(var e;n._index=3&&(null===i||Kd(i))?(e.exit("thematicBreak"),t(i)):r(i)}function s(t){return t===n?(e.consume(t),a++,s):(e.exit("thematicBreakSequence"),tu(t)?iu(e,i,"whitespace")(t):i(t))}}};var Qu={name:"list",tokenize:function(e,t,r){var n=this,a=n.events[n.events.length-1],i=a&&"linePrefix"===a[1].type?a[2].sliceSerialize(a[1],!0).length:0,s=0;return function(t){var a=n.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===a?!n.containerState.marker||t===n.containerState.marker:Md(t)){if(n.containerState.type||(n.containerState.type=a,e.enter(a,{_container:!0})),"listUnordered"===a)return e.enter("listItemPrefix"),42===t||45===t?e.check(Su,r,d)(t):d(t);if(!n.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),o(t)}return r(t)};function o(t){return Md(t)&&++s<10?(e.consume(t),o):(!n.interrupt||s<2)&&(n.containerState.marker?t===n.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),d(t)):r(t)}function d(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),n.containerState.marker=n.containerState.marker||t,e.check(uu,n.interrupt?r:u,e.attempt($u,l,c))}function u(e){return n.containerState.initialBlankLine=!0,i++,l(e)}function c(t){return tu(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),l):r(t)}function l(r){return n.containerState.size=i+n.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(r)}},continuation:{tokenize:function(e,t,r){var n=this;return n.containerState._closeFlow=void 0,e.check(uu,a,i);function a(r){return n.containerState.furtherBlankLines=n.containerState.furtherBlankLines||n.containerState.initialBlankLine,iu(e,t,"listItemIndent",n.containerState.size+1)(r)}function i(r){return n.containerState.furtherBlankLines||!tu(r)?(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,s(r)):(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,e.attempt(wu,t,s)(r))}function s(a){return n.containerState._closeFlow=!0,n.interrupt=void 0,iu(e,e.attempt(Qu,t,r),"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}},exit:function(e){e.exit(this.containerState.type)}},$u={tokenize:function(e,t,r){var n=this;return iu(e,(function(e){var a=n.events[n.events.length-1];return!tu(e)&&a&&"listItemPrefixWhitespace"===a[1].type?t(e):r(e)}),"listItemPrefixWhitespace",n.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},wu={tokenize:function(e,t,r){var n=this;return iu(e,(function(e){var a=n.events[n.events.length-1];return a&&"listItemIndent"===a[1].type&&a[2].sliceSerialize(a[1],!0).length===n.containerState.size?t(e):r(e)}),"listItemIndent",n.containerState.size+1)},partial:!0};var Pu={name:"blockQuote",tokenize:function(e,t,r){var n=this;return function(t){if(62===t){var i=n.containerState;return i.open||(e.enter("blockQuote",{_container:!0}),i.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),a}return r(t)};function a(r){return tu(r)?(e.enter("blockQuotePrefixWhitespace"),e.consume(r),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(r))}},continuation:{tokenize:function(e,t,r){var n=this;return function(t){if(tu(t))return iu(e,a,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t);return a(t)};function a(n){return e.attempt(Pu,t,r)(n)}}},exit:function(e){e.exit("blockQuote")}};function Tu(e,t,r,n,a,i,s,o,d){var u=d||Number.POSITIVE_INFINITY,c=0;return function(t){if(60===t)return e.enter(n),e.enter(a),e.enter(i),e.consume(t),e.exit(i),l;if(null===t||32===t||41===t||Ld(t))return r(t);return e.enter(n),e.enter(s),e.enter(o),e.enter("chunkString",{contentType:"string"}),f(t)};function l(r){return 62===r?(e.enter(i),e.consume(r),e.exit(i),e.exit(a),e.exit(n),t):(e.enter(o),e.enter("chunkString",{contentType:"string"}),p(r))}function p(t){return 62===t?(e.exit("chunkString"),e.exit(o),l(t)):null===t||60===t||Kd(t)?r(t):(e.consume(t),92===t?O:p)}function O(t){return 60===t||62===t||92===t?(e.consume(t),p):p(t)}function f(a){return c||null!==a&&41!==a&&!eu(a)?c999||null===l||91===l||93===l&&!s||94===l&&!d&&"_hiddenFootnoteSupport"in o.parser.constructs?r(l):93===l?(e.exit(i),e.enter(a),e.consume(l),e.exit(a),e.exit(n),t):Kd(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),c(l))}function c(t){return null===t||91===t||93===t||Kd(t)||d++>999?(e.exit("chunkString"),u(t)):(e.consume(t),s||(s=!tu(t)),92===t?l:c)}function l(t){return 91===t||92===t||93===t?(e.consume(t),d++,c):c(t)}}function ku(e,t,r,n,a,i){var s;return function(t){if(34===t||39===t||40===t)return e.enter(n),e.enter(a),e.consume(t),e.exit(a),s=40===t?41:t,o;return r(t)};function o(r){return r===s?(e.enter(a),e.consume(r),e.exit(a),e.exit(n),t):(e.enter(i),d(r))}function d(t){return t===s?(e.exit(i),o(s)):null===t?r(t):Kd(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),iu(e,d,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(t))}function u(t){return t===s||null===t||Kd(t)?(e.exit("chunkString"),d(t)):(e.consume(t),92===t?c:u)}function c(t){return t===s||92===t?(e.consume(t),u):u(t)}}function Xu(e,t){var r;return function n(a){if(Kd(a))return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),r=!0,n;if(tu(a))return iu(e,n,r?"linePrefix":"lineSuffix")(a);return t(a)}}function ju(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var Du={name:"definition",tokenize:function(e,t,r){var n,a=this;return function(t){return e.enter("definition"),function(t){return Eu.call(a,e,i,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)}(t)};function i(t){return n=ju(a.sliceSerialize(a.events[a.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),s):r(t)}function s(t){return eu(t)?Xu(e,o)(t):o(t)}function o(t){return Tu(e,d,r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(t)}function d(t){return e.attempt(Cu,u,u)(t)}function u(t){return tu(t)?iu(e,c,"whitespace")(t):c(t)}function c(i){return null===i||Kd(i)?(e.exit("definition"),a.parser.defined.push(n),t(i)):r(i)}}},Cu={tokenize:function(e,t,r){return function(t){return eu(t)?Xu(e,n)(t):r(t)};function n(t){return ku(e,a,r,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function a(t){return tu(t)?iu(e,i,"whitespace")(t):i(t)}function i(e){return null===e||Kd(e)?t(e):r(e)}},partial:!0};var Au={name:"codeIndented",tokenize:function(e,t,r){var n=this;return function(t){return e.enter("codeIndented"),iu(e,a,"linePrefix",5)(t)};function a(e){var t=n.events[n.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?i(e):r(e)}function i(t){return null===t?o(t):Kd(t)?e.attempt(_u,i,o)(t):(e.enter("codeFlowValue"),s(t))}function s(t){return null===t||Kd(t)?(e.exit("codeFlowValue"),i(t)):(e.consume(t),s)}function o(r){return e.exit("codeIndented"),t(r)}}},_u={tokenize:function(e,t,r){var n=this;return a;function a(t){return n.parser.lazy[n.now().line]?r(t):Kd(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),a):iu(e,i,"linePrefix",5)(t)}function i(e){var i=n.events[n.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?t(e):Kd(e)?a(e):r(e)}},partial:!0};var Fu={name:"headingAtx",tokenize:function(e,t,r){var n=0;return function(t){return e.enter("atxHeading"),function(t){return e.enter("atxHeadingSequence"),a(t)}(t)};function a(t){return 35===t&&n++<6?(e.consume(t),a):null===t||eu(t)?(e.exit("atxHeadingSequence"),i(t)):r(t)}function i(r){return 35===r?(e.enter("atxHeadingSequence"),s(r)):null===r||Kd(r)?(e.exit("atxHeading"),t(r)):tu(r)?iu(e,i,"whitespace")(r):(e.enter("atxHeadingText"),o(r))}function s(t){return 35===t?(e.consume(t),s):(e.exit("atxHeadingSequence"),i(t))}function o(t){return null===t||35===t||eu(t)?(e.exit("atxHeadingText"),i(t)):(e.consume(t),o)}},resolve:function(e,t){var r,n,a=e.length-2,i=3;"whitespace"===e[i][1].type&&(i+=2);a-2>i&&"whitespace"===e[a][1].type&&(a-=2);"atxHeadingSequence"===e[a][1].type&&(i===a-1||a-4>i&&"whitespace"===e[a-2][1].type)&&(a-=i+1===a?2:4);a>i&&Ud(e,i,a-i+1,[["enter",r={type:"atxHeadingText",start:e[i][1].start,end:e[a][1].end},t],["enter",n={type:"chunkText",start:e[i][1].start,end:e[a][1].end,contentType:"text"},t],["exit",n,t],["exit",r,t]]);return e}};var qu={name:"setextUnderline",tokenize:function(e,t,r){var n,a=this;return function(t){var s,o=a.events.length;for(;o--;)if("lineEnding"!==a.events[o][1].type&&"linePrefix"!==a.events[o][1].type&&"content"!==a.events[o][1].type){s="paragraph"===a.events[o][1].type;break}if(!a.parser.lazy[a.now().line]&&(a.interrupt||s))return e.enter("setextHeadingLine"),n=t,function(t){return e.enter("setextHeadingLineSequence"),i(t)}(t);return r(t)};function i(t){return t===n?(e.consume(t),i):(e.exit("setextHeadingLineSequence"),tu(t)?iu(e,s,"lineSuffix")(t):s(t))}function s(n){return null===n||Kd(n)?(e.exit("setextHeadingLine"),t(n)):r(n)}},resolveTo:function(e,t){var r,n,a,i=e.length;for(;i--;)if("enter"===e[i][0]){if("content"===e[i][1].type){r=i;break}"paragraph"===e[i][1].type&&(n=i)}else"content"===e[i][1].type&&e.splice(i,1),a||"definition"!==e[i][1].type||(a=i);var s={type:"setextHeading",start:Object.assign({},e[n][1].start),end:Object.assign({},e[e.length-1][1].end)};e[n][1].type="setextHeadingText",a?(e.splice(n,0,["enter",s,t]),e.splice(a+1,0,["exit",e[r][1],t]),e[r][1].end=Object.assign({},e[a][1].end)):e[r][1]=s;return e.push(["exit",s,t]),e}};var Iu=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Uu=["pre","script","style","textarea"],Wu={name:"htmlFlow",tokenize:function(e,t,r){var n,a,i,s,o,d=this;return function(t){return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),u}(t)};function u(s){return 33===s?(e.consume(s),c):47===s?(e.consume(s),a=!0,O):63===s?(e.consume(s),n=3,d.interrupt?t:C):Gd(s)?(e.consume(s),i=String.fromCharCode(s),f):r(s)}function c(a){return 45===a?(e.consume(a),n=2,l):91===a?(e.consume(a),n=5,s=0,p):Gd(a)?(e.consume(a),n=4,d.interrupt?t:C):r(a)}function l(n){return 45===n?(e.consume(n),d.interrupt?t:C):r(n)}function p(n){var a="CDATA[";return n===a.charCodeAt(s++)?(e.consume(n),6===s?d.interrupt?t:w:p):r(n)}function O(t){return Gd(t)?(e.consume(t),i=String.fromCharCode(t),f):r(t)}function f(s){if(null===s||47===s||62===s||eu(s)){var o=47===s,u=i.toLowerCase();return o||a||!Uu.includes(u)?Iu.includes(i.toLowerCase())?(n=6,o?(e.consume(s),h):d.interrupt?t(s):w(s)):(n=7,d.interrupt&&!d.parser.lazy[d.now().line]?r(s):a?g(s):m(s)):(n=1,d.interrupt?t(s):w(s))}return 45===s||Bd(s)?(e.consume(s),i+=String.fromCharCode(s),f):r(s)}function h(n){return 62===n?(e.consume(n),d.interrupt?t:w):r(n)}function g(t){return tu(t)?(e.consume(t),g):Q(t)}function m(t){return 47===t?(e.consume(t),Q):58===t||95===t||Gd(t)?(e.consume(t),y):tu(t)?(e.consume(t),m):Q(t)}function y(t){return 45===t||46===t||58===t||95===t||Bd(t)?(e.consume(t),y):v(t)}function v(t){return 61===t?(e.consume(t),b):tu(t)?(e.consume(t),v):m(t)}function b(t){return null===t||60===t||61===t||62===t||96===t?r(t):34===t||39===t?(e.consume(t),o=t,x):tu(t)?(e.consume(t),b):R(t)}function x(t){return t===o?(e.consume(t),o=null,S):null===t||Kd(t)?r(t):(e.consume(t),x)}function R(t){return null===t||34===t||39===t||47===t||60===t||61===t||62===t||96===t||eu(t)?v(t):(e.consume(t),R)}function S(e){return 47===e||62===e||tu(e)?m(e):r(e)}function Q(t){return 62===t?(e.consume(t),$):r(t)}function $(t){return null===t||Kd(t)?w(t):tu(t)?(e.consume(t),$):r(t)}function w(t){return 45===t&&2===n?(e.consume(t),k):60===t&&1===n?(e.consume(t),X):62===t&&4===n?(e.consume(t),A):63===t&&3===n?(e.consume(t),C):93===t&&5===n?(e.consume(t),D):!Kd(t)||6!==n&&7!==n?null===t||Kd(t)?(e.exit("htmlFlowData"),P(t)):(e.consume(t),w):(e.exit("htmlFlowData"),e.check(Nu,_,P)(t))}function P(t){return e.check(Zu,T,_)(t)}function T(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),E}function E(t){return null===t||Kd(t)?P(t):(e.enter("htmlFlowData"),w(t))}function k(t){return 45===t?(e.consume(t),C):w(t)}function X(t){return 47===t?(e.consume(t),i="",j):w(t)}function j(t){if(62===t){var r=i.toLowerCase();return Uu.includes(r)?(e.consume(t),A):w(t)}return Gd(t)&&i.length<8?(e.consume(t),i+=String.fromCharCode(t),j):w(t)}function D(t){return 93===t?(e.consume(t),C):w(t)}function C(t){return 62===t?(e.consume(t),A):45===t&&2===n?(e.consume(t),C):w(t)}function A(t){return null===t||Kd(t)?(e.exit("htmlFlowData"),_(t)):(e.consume(t),A)}function _(r){return e.exit("htmlFlow"),t(r)}},resolveTo:function(e){var t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},Nu={tokenize:function(e,t,r){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),e.attempt(uu,t,r)}},partial:!0},Zu={tokenize:function(e,t,r){var n=this;return function(t){if(Kd(t))return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),a;return r(t)};function a(e){return n.parser.lazy[n.now().line]?r(e):t(e)}},partial:!0};var Yu={tokenize:function(e,t,r){var n=this;return function(t){if(null===t)return r(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),a};function a(e){return n.parser.lazy[n.now().line]?r(e):t(e)}},partial:!0},Vu={name:"codeFenced",tokenize:function(e,t,r){var n,a=this,i={tokenize:function(e,t,r){var i=0;return s;function s(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),d}function d(t){return e.enter("codeFencedFence"),tu(t)?iu(e,u,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):u(t)}function u(t){return t===n?(e.enter("codeFencedFenceSequence"),c(t)):r(t)}function c(t){return t===n?(i++,e.consume(t),c):i>=o?(e.exit("codeFencedFenceSequence"),tu(t)?iu(e,l,"whitespace")(t):l(t)):r(t)}function l(n){return null===n||Kd(n)?(e.exit("codeFencedFence"),t(n)):r(n)}},partial:!0},s=0,o=0;return function(t){return function(t){var r=a.events[a.events.length-1];return s=r&&"linePrefix"===r[1].type?r[2].sliceSerialize(r[1],!0).length:0,n=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),d(t)}(t)};function d(t){return t===n?(o++,e.consume(t),d):o<3?r(t):(e.exit("codeFencedFenceSequence"),tu(t)?iu(e,u,"whitespace")(t):u(t))}function u(r){return null===r||Kd(r)?(e.exit("codeFencedFence"),a.interrupt?t(r):e.check(Yu,O,y)(r)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),c(r))}function c(t){return null===t||Kd(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),u(t)):tu(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),iu(e,l,"whitespace")(t)):96===t&&t===n?r(t):(e.consume(t),c)}function l(t){return null===t||Kd(t)?u(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),p(t))}function p(t){return null===t||Kd(t)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),u(t)):96===t&&t===n?r(t):(e.consume(t),p)}function O(t){return e.attempt(i,y,f)(t)}function f(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),h}function h(t){return s>0&&tu(t)?iu(e,g,"linePrefix",s+1)(t):g(t)}function g(t){return null===t||Kd(t)?e.check(Yu,O,y)(t):(e.enter("codeFlowValue"),m(t))}function m(t){return null===t||Kd(t)?(e.exit("codeFlowValue"),g(t)):(e.consume(t),m)}function y(r){return e.exit("codeFenced"),t(r)}},concrete:!0};var Gu=r(86166),Bu={name:"characterReference",tokenize:function(e,t,r){var n,a,i=this,s=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),o};function o(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),d):(e.enter("characterReferenceValue"),n=31,a=Bd,u(t))}function d(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),n=6,a=Jd,u):(e.enter("characterReferenceValue"),n=7,a=Md,u(t))}function u(o){if(59===o&&s){var d=e.exit("characterReferenceValue");return a!==Bd||(0,Gu.T)(i.sliceSerialize(d))?(e.enter("characterReferenceMarker"),e.consume(o),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):r(o)}return a(o)&&s++1&&e[c][1].end.offset-e[c][1].start.offset>1?2:1;var l=Object.assign({},e[r][1].end),p=Object.assign({},e[c][1].start);nc(l,-o),nc(p,o),i={type:o>1?"strongSequence":"emphasisSequence",start:l,end:Object.assign({},e[r][1].end)},s={type:o>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[c][1].start),end:p},a={type:o>1?"strongText":"emphasisText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[c][1].start)},n={type:o>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},s.end)},e[r][1].end=Object.assign({},i.start),e[c][1].start=Object.assign({},s.end),d=[],e[r][1].end.offset-e[r][1].start.offset&&(d=Wd(d,[["enter",e[r][1],t],["exit",e[r][1],t]])),d=Wd(d,[["enter",n,t],["enter",i,t],["exit",i,t],["enter",a,t]]),d=Wd(d,xu(t.parser.constructs.insideSpan.null,e.slice(r+1,c),t)),d=Wd(d,[["exit",a,t],["enter",s,t],["exit",s,t],["exit",n,t]]),e[c][1].end.offset-e[c][1].start.offset?(u=2,d=Wd(d,[["enter",e[c][1],t],["exit",e[c][1],t]])):u=0,Ud(e,r-1,c-r+3,d),c=r+d.length-u-2;break}c=-1;for(;++c13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||65535===(65535&r)||65534===(65535&r)||r>1114111?"\ufffd":String.fromCharCode(r)}var $c=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function wc(e){return e.replace($c,Pc)}function Pc(e,t,r){if(t)return t;if(35===r.charCodeAt(0)){var n=r.charCodeAt(1),a=120===n||88===n;return Qc(r.slice(a?2:1),a?16:10)}return(0,Gu.T)(r)||e}var Tc={}.hasOwnProperty,Ec=function(e,t,r){return"string"!==typeof t&&(r=t,t=void 0),function(e){var t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:o(re),autolinkProtocol:P,autolinkEmail:P,atxHeading:o(H),blockQuote:o(B),characterEscape:P,characterReference:P,codeFenced:o(z),codeFencedFenceInfo:d,codeFencedFenceMeta:d,codeIndented:o(z,d),codeText:o(L,d),codeTextData:P,data:P,codeFlowValue:P,definition:o(M),definitionDestinationString:d,definitionLabelString:d,definitionTitleString:d,emphasis:o(J),hardBreakEscape:o(K),hardBreakTrailing:o(K),htmlFlow:o(ee,d),htmlFlowData:P,htmlText:o(ee,d),htmlTextData:P,image:o(te),label:d,link:o(re),listItem:o(ae),listItemValue:f,listOrdered:o(ne,O),listUnordered:o(ne),paragraph:o(ie),reference:W,referenceString:d,resourceDestinationString:d,resourceTitleString:d,setextHeading:o(H),strong:o(se),thematicBreak:o(de)},exit:{atxHeading:c(),atxHeadingSequence:S,autolink:c(),autolinkEmail:G,autolinkProtocol:V,blockQuote:c(),characterEscapeValue:T,characterReferenceMarkerHexadecimal:Z,characterReferenceMarkerNumeric:Z,characterReferenceValue:Y,codeFenced:c(y),codeFencedFence:m,codeFencedFenceInfo:h,codeFencedFenceMeta:g,codeFlowValue:T,codeIndented:c(v),codeText:c(D),codeTextData:T,data:T,definition:c(),definitionDestinationString:R,definitionLabelString:b,definitionTitleString:x,emphasis:c(),hardBreakEscape:c(k),hardBreakTrailing:c(k),htmlFlow:c(X),htmlFlowData:T,htmlText:c(j),htmlTextData:T,image:c(A),label:F,labelText:_,lineEnding:E,link:c(C),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:N,resourceDestinationString:q,resourceTitleString:I,resource:U,setextHeading:c(w),setextHeadingLineSequence:$,setextHeadingText:Q,strong:c(),thematicBreak:c()}};Xc(t,(e||{}).mdastExtensions||[]);var r={};return n;function n(e){for(var r={type:"root",children:[]},n={stack:[r],tokenStack:[],config:t,enter:u,exit:l,buffer:d,resume:p,setData:i,getData:s},o=[],c=-1;++c0){var f=n.tokenStack[n.tokenStack.length-1];(f[1]||Dc).call(n,void 0,f[0])}for(r.position={start:kc(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:kc(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},c=-1;++c55295&&i<57344){var o=e.charCodeAt(r+1);i<56320&&o>56319&&o<57344?(s=String.fromCharCode(i,o),a=1):s="\ufffd"}else s=String.fromCharCode(i);s&&(t.push(e.slice(n,r),encodeURIComponent(s)),n=r+a+1,s=""),a&&(r+=a,a=0)}return t.join("")+e.slice(n)}var _c=function(e){if(void 0===e||null===e)return Ic;if("string"===typeof e)return function(e){return qc(t);function t(t){return t&&t.type===e}}(e);if("object"===typeof e)return Array.isArray(e)?Fc(e):function(e){return qc(t);function t(t){var r;for(r in e)if(t[r]!==e[r])return!1;return!0}}(e);if("function"===typeof e)return qc(e);throw new Error("Expected function, string, or object as test")};function Fc(e){for(var t=[],r=-1;++r1?r-1:0),a=1;a":"")+")"})}return l;function l(){var u,c,l,p=[];if((!t||a(s,o,d[d.length-1]||null))&&(p=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[true,e];return[e]}(r(s,d)),p[0]===Uc))return p;if(s.children&&p[0]!==Wc)for(c=(n?s.children.length:-1)+i,l=d.concat(s);c>-1&&c-1?r.offset:null}}}var Bc={}.hasOwnProperty;function zc(e){return String(e||"").toUpperCase()}function Lc(e,t){var r,n=String(t.identifier).toUpperCase(),a=Ac(n.toLowerCase()),i=e.footnoteOrder.indexOf(n);-1===i?(e.footnoteOrder.push(n),e.footnoteCounts[n]=1,r=e.footnoteOrder.length):(e.footnoteCounts[n]++,r=i+1);var s=e.footnoteCounts[n],o={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fn-"+a,id:e.clobberPrefix+"fnref-"+a+(s>1?"-"+s:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(r)}]};e.patch(t,o);var d={type:"element",tagName:"sup",properties:{},children:[o]};return e.patch(t,d),e.applyData(t,d)}function Mc(e,t){var r=t.referenceType,n="]";if("collapsed"===r?n+="[]":"full"===r&&(n+="["+(t.label||t.identifier)+"]"),"imageReference"===t.type)return{type:"text",value:"!["+t.alt+n};var a=e.all(t),i=a[0];i&&"text"===i.type?i.value="["+i.value:a.unshift({type:"text",value:"["});var s=a[a.length-1];return s&&"text"===s.type?s.value+=n:a.push({type:"text",value:n}),a}function Jc(e){var t=e.spread;return void 0===t||null===t?e.children.length>1:t}var Hc=9,Kc=32;function el(e){for(var t=String(e),r=/\r?\n|\r/g,n=r.exec(t),a=0,i=[];n;)i.push(tl(t.slice(a,n.index),a>0,!0),n[0]),a=n.index+n[0].length,n=r.exec(t);return i.push(tl(t.slice(a),a>0,!1)),i.join("")}function tl(e,t,r){var n=0,a=e.length;if(t)for(var i=e.codePointAt(n);i===Hc||i===Kc;)n++,i=e.codePointAt(n);if(r)for(var s=e.codePointAt(a-1);s===Hc||s===Kc;)a--,s=e.codePointAt(a-1);return a>n?e.slice(n,a):""}var rl={blockquote:function(e,t){var r={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,r),e.applyData(t,r)},break:function(e,t){var r={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,r),[e.applyData(t,r),{type:"text",value:"\n"}]},code:function(e,t){var r=t.value?t.value+"\n":"",n=t.lang?t.lang.match(/^[^ \t]+(?=[ \t]|$)/):null,a={};n&&(a.className=["language-"+n]);var i={type:"element",tagName:"code",properties:a,children:[{type:"text",value:r}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i={type:"element",tagName:"pre",properties:{},children:[i=e.applyData(t,i)]},e.patch(t,i),i},delete:function(e,t){var r={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},emphasis:function(e,t){var r={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},footnoteReference:Lc,footnote:function(e,t){for(var r=e.footnoteById,n=1;n in r;)n++;var a=String(n);return r[a]={type:"footnoteDefinition",identifier:a,children:[{type:"paragraph",children:t.children}],position:t.position},Lc(e,{type:"footnoteReference",identifier:a,position:t.position})},heading:function(e,t){var r={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},html:function(e,t){if(e.dangerous){var r={type:"raw",value:t.value};return e.patch(t,r),e.applyData(t,r)}return null},imageReference:function(e,t){var r=e.definition(t.identifier);if(!r)return Mc(e,t);var n={src:Ac(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(n.title=r.title);var a={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,a),e.applyData(t,a)},image:function(e,t){var r={src:Ac(t.url)};null!==t.alt&&void 0!==t.alt&&(r.alt=t.alt),null!==t.title&&void 0!==t.title&&(r.title=t.title);var n={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,n),e.applyData(t,n)},inlineCode:function(e,t){var r={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,r);var n={type:"element",tagName:"code",properties:{},children:[r]};return e.patch(t,n),e.applyData(t,n)},linkReference:function(e,t){var r=e.definition(t.identifier);if(!r)return Mc(e,t);var n={href:Ac(r.url||"")};null!==r.title&&void 0!==r.title&&(n.title=r.title);var a={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)},link:function(e,t){var r={href:Ac(t.url)};null!==t.title&&void 0!==t.title&&(r.title=t.title);var n={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},listItem:function(e,t,r){var n=e.all(t),a=r?function(e){var t=!1;if("list"===e.type){t=e.spread||!1;for(var r=e.children,n=-1;!t&&++n0&&o.children.unshift({type:"text",value:" "}),o.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}for(var u=-1;++u0){var s={type:"element",tagName:"tbody",properties:{},children:e.wrap(r,!0)},o=Yc(t.children[1]),d=Vc(t.children[t.children.length-1]);o.line&&d.line&&(s.position={start:o,end:d}),a.push(s)}var u={type:"element",tagName:"table",properties:{},children:e.wrap(a,!0)};return e.patch(t,u),e.applyData(t,u)},tableCell:function(e,t){var r={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},tableRow:function(e,t,r){for(var n=r?r.children:void 0,a=0===(n?n.indexOf(t):1)?"th":"td",i=r&&"table"===r.type?r.align:void 0,s=i?i.length:t.children.length,o=-1,d=[];++o0&&r.push({type:"text",value:"\n"}),r}function ll(e,t){var r=il(e,t),n=r.one(e,null),a=function(e){for(var t=[],r=-1;++r1?"-"+o:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:e.footnoteBackLabel},children:[{type:"text",value:"\u21a9"}]};o>1&&u.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(o)}]}),d.length>0&&d.push({type:"text",value:" "}),d.push(u)}var c=a[a.length-1];if(c&&"element"===c.type&&"p"===c.tagName){var l,p=c.children[c.children.length-1];p&&"text"===p.type?p.value+=" ":c.children.push({type:"text",value:" "}),(l=c.children).push.apply(l,d)}else a.push.apply(a,d);var O={type:"element",tagName:"li",properties:{id:e.clobberPrefix+"fn-"+s},children:e.wrap(a,!0)};e.patch(n,O),t.push(O)}}if(0!==t.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:e.footnoteLabelTagName,properties:(0,ua.Z)((0,ua.Z)({},JSON.parse(JSON.stringify(e.footnoteLabelProperties))),{},{id:"footnote-label"}),children:[{type:"text",value:e.footnoteLabel}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(t,!0)},{type:"text",value:"\n"}]}}(r);return a&&n.children.push({type:"text",value:"\n"},a),Array.isArray(n)?{type:"root",children:n}:n}var pl=function(e,t){return e&&"run"in e?function(e,t){return function(r,n,a){e.run(ll(r,t),n,(function(e){a(e)}))}}(e,t):function(e){return function(t){return ll(t,e)}}(e||t)};var Ol=r(40726),fl=r(52092);function hl(e){if(e.allowedElements&&e.disallowedElements)throw new TypeError("Only one of `allowedElements` and `disallowedElements` should be defined");if(e.allowedElements||e.disallowedElements||e.allowElement)return function(t){Zc(t,"element",(function(t,r,n){var a,i=n;if(e.allowedElements?a=!e.allowedElements.includes(t.tagName):e.disallowedElements&&(a=e.disallowedElements.includes(t.tagName)),!a&&e.allowElement&&"number"===typeof r&&(a=!e.allowElement(t,r,i)),a&&"number"===typeof r){var s;if(e.unwrapDisallowed&&t.children)(s=i.children).splice.apply(s,[r,1].concat((0,E.Z)(t.children)));else i.children.splice(r,1);return r}}))}}function gl(e){var t=e&&"object"===typeof e&&"text"===e.type?e.value||"":e;return"string"===typeof t&&""===t.replace(/[ \t\n\f\r]/g,"")}var ml=r(61003),yl={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},vl=r(96370),bl=r(98522),xl=r(69290),Rl=["http","https","mailto","tel"];function Sl(e){var t=(e||"").trim(),r=t.charAt(0);if("#"===r||"/"===r)return t;var n=t.indexOf(":");if(-1===n)return t;for(var a=-1;++aa||-1!==(a=t.indexOf("#"))&&n>a?t:"javascript:void(0)"}var Ql={}.hasOwnProperty,$l=new Set(["table","thead","tbody","tfoot","tr"]);function wl(e,t){for(var r,n=[],a=-1;++a0?p.createElement(h,u,l):p.createElement(h,u)}function Tl(e,t){for(var r=-1,n=0;++r for more info)")),delete jl[t]}var n=Td().use(Cc).use(e.remarkPlugins||[]).use(pl,(0,ua.Z)((0,ua.Z)({},e.remarkRehypeOptions),{},{allowDangerousHtml:!0})).use(e.rehypePlugins||[]).use(hl,e),a=new bd;"string"===typeof e.children?a.value=e.children:void 0!==e.children&&null!==e.children&&console.warn("[react-markdown] Warning: please pass a string as `children` (not: `".concat(e.children,"`)"));var i=n.runSync(n.parse(a),a);if("root"!==i.type)throw new TypeError("Expected a `root` node");var s=p.createElement(p.Fragment,{},wl({options:e,schema:fl.dy,listDepth:0},i));return e.className&&(s=p.createElement("div",{className:e.className},s)),s}Dl.propTypes={children:Ol.string,className:Ol.string,allowElement:Ol.func,allowedElements:Ol.arrayOf(Ol.string),disallowedElements:Ol.arrayOf(Ol.string),unwrapDisallowed:Ol.bool,remarkPlugins:Ol.arrayOf(Ol.oneOfType([Ol.object,Ol.func,Ol.arrayOf(Ol.oneOfType([Ol.bool,Ol.string,Ol.object,Ol.func,Ol.arrayOf(Ol.any)]))])),rehypePlugins:Ol.arrayOf(Ol.oneOfType([Ol.object,Ol.func,Ol.arrayOf(Ol.oneOfType([Ol.bool,Ol.string,Ol.object,Ol.func,Ol.arrayOf(Ol.any)]))])),sourcePos:Ol.bool,rawSourcePos:Ol.bool,skipHtml:Ol.bool,includeElementIndex:Ol.bool,transformLinkUri:Ol.oneOfType([Ol.func,Ol.bool]),linkTarget:Ol.oneOfType([Ol.func,Ol.string]),transformImageUri:Ol.func,components:Ol.object};for(var Cl={tokenize:function(e,t,r){var n=0;return function t(i){if((87===i||119===i)&&n<3)return n++,e.consume(i),t;if(46===i&&3===n)return e.consume(i),a;return r(i)};function a(e){return null===e?r(e):t(e)}},partial:!0},Al={tokenize:function(e,t,r){var n,a,i;return s;function s(t){return 46===t||95===t?e.check(Fl,d,o)(t):null===t||eu(t)||nu(t)||45!==t&&ru(t)?d(t):(i=!0,e.consume(t),s)}function o(t){return 95===t?n=!0:(a=n,n=void 0),e.consume(t),s}function d(e){return a||n||!i?r(e):t(e)}},partial:!0},_l={tokenize:function(e,t){var r=0,n=0;return a;function a(s){return 40===s?(r++,e.consume(s),a):41===s&&n0&&!r&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),r}Nl[43]=Wl,Nl[45]=Wl,Nl[46]=Wl,Nl[95]=Wl,Nl[72]=[Wl,Ul],Nl[104]=[Wl,Ul],Nl[87]=[Wl,Il],Nl[119]=[Wl,Il];var Ml={tokenize:function(e,t,r){var n=this;return iu(e,(function(e){var a=n.events[n.events.length-1];return a&&"gfmFootnoteDefinitionIndent"===a[1].type&&4===a[2].sliceSerialize(a[1],!0).length?t(e):r(e)}),"gfmFootnoteDefinitionIndent",5)},partial:!0};function Jl(){var e;return{document:(0,g.Z)({},91,{tokenize:tp,continuation:{tokenize:rp},exit:np}),text:(e={},(0,g.Z)(e,91,{tokenize:ep}),(0,g.Z)(e,93,{add:"after",tokenize:Hl,resolveTo:Kl}),e)}}function Hl(e,t,r){for(var n,a=this,i=a.events.length,s=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]);i--;){var o=a.events[i][1];if("labelImage"===o.type){n=o;break}if("gfmFootnoteCall"===o.type||"labelLink"===o.type||"label"===o.type||"image"===o.type||"link"===o.type)break}return function(i){if(!n||!n._balanced)return r(i);var o=ju(a.sliceSerialize({start:n.end,end:a.now()}));if(94!==o.codePointAt(0)||!s.includes(o.slice(1)))return r(i);return e.enter("gfmFootnoteCallLabelMarker"),e.consume(i),e.exit("gfmFootnoteCallLabelMarker"),t(i)}}function Kl(e,t){for(var r=e.length;r--;)if("labelImage"===e[r][1].type&&"enter"===e[r][0]){e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";var n={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},a={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};a.end.column++,a.end.offset++,a.end._bufferIndex++;var i={type:"gfmFootnoteCallString",start:Object.assign({},a.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},o=[e[r+1],e[r+2],["enter",n,t],e[r+3],e[r+4],["enter",a,t],["exit",a,t],["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",n,t]];return e.splice.apply(e,[r,e.length-r+1].concat(o)),e}function ep(e,t,r){var n,a=this,i=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]),s=0;return function(t){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(t),e.exit("gfmFootnoteCallLabelMarker"),o};function o(t){return 94!==t?r(t):(e.enter("gfmFootnoteCallMarker"),e.consume(t),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",d)}function d(o){if(s>999||93===o&&!n||null===o||91===o||eu(o))return r(o);if(93===o){e.exit("chunkString");var c=e.exit("gfmFootnoteCallString");return i.includes(ju(a.sliceSerialize(c)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(o),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):r(o)}return eu(o)||(n=!0),s++,e.consume(o),92===o?u:d}function u(t){return 91===t||92===t||93===t?(e.consume(t),s++,d):d(t)}}function tp(e,t,r){var n,a,i=this,s=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]),o=0;return function(t){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),d};function d(t){return 94===t?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",u):r(t)}function u(t){if(o>999||93===t&&!a||null===t||91===t||eu(t))return r(t);if(93===t){e.exit("chunkString");var s=e.exit("gfmFootnoteDefinitionLabelString");return n=ju(i.sliceSerialize(s)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),l}return eu(t)||(a=!0),o++,e.consume(t),92===t?c:u}function c(t){return 91===t||92===t||93===t?(e.consume(t),o++,u):u(t)}function l(t){return 58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),s.includes(n)||s.push(n),iu(e,p,"gfmFootnoteDefinitionWhitespace")):r(t)}function p(e){return t(e)}}function rp(e,t,r){return e.check(uu,t,e.attempt(Ml,t,r))}function np(e){e.exit("gfmFootnoteDefinition")}function ap(e){var t=(e||{}).singleTilde,r={tokenize:function(e,r,n){var a=this.previous,i=this.events,s=0;return function(t){if(126===a&&"characterEscape"!==i[i.length-1][1].type)return n(t);return e.enter("strikethroughSequenceTemporary"),o(t)};function o(i){var d=tc(a);if(126===i)return s>1?n(i):(e.consume(i),s++,o);if(s<2&&!t)return n(i);var u=e.exit("strikethroughSequenceTemporary"),c=tc(i);return u._open=!c||2===c&&Boolean(d),u._close=!d||2===d&&Boolean(c),r(i)}},resolveAll:function(e,t){var r=-1;for(;++r0;)t-=1,r.push(e.slice(this.map[t][0]+this.map[t][1])),r.push(this.map[t][2]),e.length=this.map[t][0];r.push((0,E.Z)(e)),e.length=0;for(var n=r.pop();n;)e.push.apply(e,(0,E.Z)(n)),n=r.pop();this.map.length=0}}}]),e}();function sp(e,t){for(var r=!1,n=[];t-1;){var n=a.events[t][1].type;if("lineEnding"!==n&&"linePrefix"!==n)break;t--}var i=t>-1?a.events[t][1].type:null,s="tableHead"===i||"tableRow"===i?b:o;if(s===b&&a.parser.lazy[a.now().line])return r(e);return s(e)};function o(t){return e.enter("tableHead"),e.enter("tableRow"),function(e){if(124===e)return d(e);return n=!0,s+=1,d(e)}(t)}function d(t){return null===t?r(t):Kd(t)?s>1?(s=0,a.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),l):r(t):tu(t)?iu(e,d,"whitespace")(t):(s+=1,n&&(n=!1,i+=1),124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),n=!0,d):(e.enter("data"),u(t)))}function u(t){return null===t||124===t||eu(t)?(e.exit("data"),d(t)):(e.consume(t),92===t?c:u)}function c(t){return 92===t||124===t?(e.consume(t),u):u(t)}function l(t){return a.interrupt=!1,a.parser.lazy[a.now().line]?r(t):(e.enter("tableDelimiterRow"),n=!1,tu(t)?iu(e,p,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):p(t))}function p(t){return 45===t||58===t?f(t):124===t?(n=!0,e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),O):v(t)}function O(t){return tu(t)?iu(e,f,"whitespace")(t):f(t)}function f(t){return 58===t?(s+=1,n=!0,e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),h):45===t?(s+=1,h(t)):null===t||Kd(t)?y(t):v(t)}function h(t){return 45===t?(e.enter("tableDelimiterFiller"),g(t)):v(t)}function g(t){return 45===t?(e.consume(t),g):58===t?(n=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),m):(e.exit("tableDelimiterFiller"),m(t))}function m(t){return tu(t)?iu(e,y,"whitespace")(t):y(t)}function y(r){return 124===r?p(r):(null===r||Kd(r))&&n&&i===s?(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(r)):v(r)}function v(e){return r(e)}function b(t){return e.enter("tableRow"),x(t)}function x(r){return 124===r?(e.enter("tableCellDivider"),e.consume(r),e.exit("tableCellDivider"),x):null===r||Kd(r)?(e.exit("tableRow"),t(r)):tu(r)?iu(e,x,"whitespace")(r):(e.enter("data"),R(r))}function R(t){return null===t||124===t||eu(t)?(e.exit("data"),x(t)):(e.consume(t),92===t?S:R)}function S(t){return 92===t||124===t?(e.consume(t),R):R(t)}},resolveAll:function(e,t){var r,n,a,i=-1,s=!0,o=0,d=[0,0,0,0],u=[0,0,0,0],c=!1,l=0,p=new ip;for(;++ir[2]+1){var O=r[2]+1,f=r[3]-r[2]-1;e.add(O,f,[])}}e.add(r[3]+1,0,[["exit",c,t]])}return void 0!==a&&(i.end=Object.assign({},cp(t.events,a)),e.add(a,0,[["exit",i,t]]),i=void 0),i}function up(e,t,r,n,a){var i=[],s=cp(t.events,r);a&&(a.end=Object.assign({},s),i.push(["exit",a,t])),n.end=Object.assign({},s),i.push(["exit",n,t]),e.add(r+1,0,i)}function cp(e,t){var r=e[t],n="enter"===r[0]?"start":"end";return r[1][n]}var lp={tokenize:function(e,t,r){var n=this;return function(t){if(null!==n.previous||!n._gfmTasklistFirstContentOfListItem)return r(t);return e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),a};function a(t){return eu(t)?(e.enter("taskListCheckValueUnchecked"),e.consume(t),e.exit("taskListCheckValueUnchecked"),i):88===t||120===t?(e.enter("taskListCheckValueChecked"),e.consume(t),e.exit("taskListCheckValueChecked"),i):r(t)}function i(t){return 93===t?(e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),s):r(t)}function s(n){return Kd(n)?t(n):tu(n)?e.check({tokenize:Op},t,r)(n):r(n)}}},pp={text:(0,g.Z)({},91,lp)};function Op(e,t,r){return iu(e,(function(e){return null===e?r(e):t(e)}),"whitespace")}function fp(e,t){var r=String(e);if("string"!==typeof t)throw new TypeError("Expected character");for(var n=0,a=r.indexOf(t);-1!==a;)n++,a=r.indexOf(t,a+t.length);return n}var hp={}.hasOwnProperty,gp=function(e,t,r,n){var a,i;"string"===typeof t||t instanceof RegExp?(i=[[t,r]],a=n):(i=t,a=r),a||(a={});for(var s=_c(a.ignore||[]),o=function(e){var t=[];if("object"!==typeof e)throw new TypeError("Expected array or object as schema");if(Array.isArray(e))for(var r=-1;++r0?{type:"text",value:f}:void 0),!1!==f){var h;if(i!==p&&c.push({type:"text",value:e.value.slice(i,p)}),Array.isArray(f))(h=c).push.apply(h,(0,E.Z)(f));else f&&c.push(f);i=p+l[0].length,u=!0}if(!n.global)break;l=n.exec(e.value)}if(u){var g;i?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);var r=t[0],n=r.indexOf(")"),a=fp(e,"("),i=fp(e,")");for(;-1!==n&&a>i;)e+=r.slice(0,n+1),n=(r=r.slice(n+1)).indexOf(")"),i++;return[e,r]}(r+n);if(!s[0])return!1;var o={type:"link",title:null,url:i+t+s[0],children:[{type:"text",value:t+s[0]}]};return s[1]?[o,{type:"text",value:s[1]}]:o}function $p(e,t,r,n){return!(!wp(n,!0)||/[-\d_]$/.test(r))&&{type:"link",title:null,url:"mailto:"+t+"@"+r,children:[{type:"text",value:t+"@"+r}]}}function wp(e,t){var r=e.input.charCodeAt(e.index-1);return(0===e.index||nu(r)||ru(r))&&(!t||47!==r)}function Pp(e){return e.label||!e.identifier?e.label||"":wc(e.identifier)}function Tp(e,t,r,n){for(var a=n.join.length;a--;){var i=n.join[a](e,t,r,n);if(!0===i||1===i)break;if("number"===typeof i)return"\n".repeat(1+i);if(!1===i)return"\n\n\x3c!----\x3e\n\n"}return"\n\n"}var Ep=/\r?\n|\r/g;function kp(e){if(!e._compiled){var t=(e.atBreak?"[\\r\\n][\\t ]*":"")+(e.before?"(?:"+e.before+")":"");e._compiled=new RegExp((t?"("+t+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(e.character)?"\\":"")+e.character+(e.after?"(?:"+e.after+")":""),"g")}return e._compiled}function Xp(e,t){return jp(e,t.inConstruct,!0)&&!jp(e,t.notInConstruct,!1)}function jp(e,t,r){if("string"===typeof t&&(t=[t]),!t||0===t.length)return r;for(var n=-1;++n=h||(g+10?" ":"")),a.shift(4),i+=a.move(function(e,t){for(var r,n=[],a=0,i=0;r=Ep.exec(e);)s(e.slice(a,r.index)),n.push(r[0]),a=r.index+r[0].length,i++;return s(e.slice(a)),n.join("");function s(e){n.push(t(e,i,!e))}}(function(e,t,r){var n=t.indexStack,a=e.children||[],i=t.createTracker(r),s=[],o=-1;for(n.push(-1);++o0&&("\r"===o||"\n"===o)&&"html"===u.type&&(i[i.length-1]=i[i.length-1].replace(/(\r?\n|\r)$/," "),o=" ",(d=t.createTracker(r)).move(i.join(""))),i.push(d.move(t.handle(u,e,t,(0,ua.Z)((0,ua.Z)({},d.current()),{},{before:o,after:c})))),o=i[i.length-1].slice(-1)}return n.pop(),i.join("")}Vp.peek=function(){return"["};Jp.peek=function(){return"~"};var Lp={canContainEols:["delete"],enter:{strikethrough:function(e){this.enter({type:"delete",children:[]},e)}},exit:{strikethrough:function(e){this.exit(e)}}},Mp={unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"]}],handlers:{delete:Jp}};function Jp(e,t,r,n){var a=_p(n),i=r.enter("strikethrough"),s=a.move("~~");return s+=zp(e,r,(0,ua.Z)((0,ua.Z)({},a.current()),{},{before:s,after:"~"})),s+=a.move("~~"),i(),s}function Hp(e,t,r){for(var n=e.value||"",a="`",i=-1;new RegExp("(^|[^`])"+a+"([^`]|$)").test(n);)a+="`";for(/[^ \r\n]/.test(n)&&(/^[ \r\n]/.test(n)&&/[ \r\n]$/.test(n)||/^`|`$/.test(n))&&(n=" "+n+" ");++i1&&void 0!==arguments[1]?arguments[1]:{},r=(t.align||[]).concat(),n=t.stringLength||eO,a=[],i=[],s=[],o=[],d=0,u=-1;++ud&&(d=e[u].length);++po[p])&&(o[p]=f)}c.push(O)}i[u]=c,s[u]=l}var h=-1;if("object"===typeof r&&"length"in r)for(;++ho[h]&&(o[h]=R),y[h]=R),m[h]=S}i.splice(1,0,m),s.splice(1,0,y),u=-1;for(var Q=[];++u-1?t.start:1)+(!1===r.options.incrementListMarker?0:t.children.indexOf(e))+i);var s=i.length+1;("tab"===a||"mixed"===a&&(t&&"list"===t.type&&t.spread||e.spread))&&(s=4*Math.ceil(s/4));var o=r.createTracker(n);o.move(i+" ".repeat(s-i.length)),o.shift(s);var d=r.enter("listItem"),u=r.indentLines(r.containerFlow(e,o.current()),(function(e,t,r){if(t)return(r?"":" ".repeat(s))+e;return(r?i:i+" ".repeat(s-i.length))+e}));return d(),u}var dO={exit:{taskListCheckValueChecked:cO,taskListCheckValueUnchecked:cO,paragraph:function(e){var t=this.stack[this.stack.length-2];if(t&&"listItem"===t.type&&"boolean"===typeof t.checked){var r=this.stack[this.stack.length-1],n=r.children[0];if(n&&"text"===n.type){for(var a,i=t.children,s=-1;++s0&&void 0!==arguments[0]?arguments[0]:{},t=this.data();function r(e,r){(t[e]?t[e]:t[e]=[]).push(r)}r("micromarkExtensions",function(e){return Zd([Zl,Jl(),ap(e),op,pp])}(e)),r("fromMarkdownExtensions",[xp,{enter:{gfmFootnoteDefinition:Fp,gfmFootnoteDefinitionLabelString:qp,gfmFootnoteCall:Wp,gfmFootnoteCallString:Np},exit:{gfmFootnoteDefinition:Up,gfmFootnoteDefinitionLabelString:Ip,gfmFootnoteCall:Yp,gfmFootnoteCallString:Zp}},Lp,rO,dO]),r("toMarkdownExtensions",function(e){return{extensions:[Rp,{unsafe:[{character:"[",inConstruct:["phrasing","label","reference"]}],handlers:{footnoteDefinition:Gp,footnoteReference:Vp}},Mp,sO(e),uO]}}(e))}var pO=r(91775),OO=(0,r(91865).v)(fl.YP,"g",["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","solidColor","textArea","textPath"]),fO=r(58372);var hO={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},gO={}.hasOwnProperty,mO=Object.prototype;function yO(e,t){var r;switch(t.nodeName){case"#comment":return bO(e,t,r={type:"comment",value:t.data}),r;case"#document":case"#document-fragment":var n=t,a="mode"in n&&("quirks"===n.mode||"limited-quirks"===n.mode);if(r={type:"root",children:vO(e,t.childNodes),data:{quirksMode:a}},e.file&&e.location){var i=String(e.file),s=function(e){for(var t=String(e),r=[],n=/\r?\n|\r/g;n.test(t);)r.push(n.lastIndex);return r.push(t.length+1),{toPoint:function(e){var t=-1;if("number"===typeof e&&e>-1&&ee)return{line:t+1,column:e-(t>0?r[t-1]:0)+1,offset:e};return{line:void 0,column:void 0,offset:void 0}},toOffset:function(e){var t=e&&e.line,n=e&&e.column;if("number"===typeof t&&"number"===typeof n&&!Number.isNaN(t)&&!Number.isNaN(n)&&t-1 in r){var a=(r[t-2]||0)+n-1||0;if(a>-1&&a1?o-1:0),u=1;u0&&void 0!==arguments[0]?arguments[0]:{};return function(t,r){return DO(t,r,e)}}var IO=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,UO=Object.hasOwnProperty;var WO={}.hasOwnProperty;function NO(e,t){var r="string"===typeof t&&function(e){return Boolean(e&&"object"===typeof e&&"type"in e)}(e)&&"element"===e.type&&e.properties&&WO.call(e.properties,t)&&e.properties[t];return null!==r&&void 0!==r&&!1!==r}function ZO(e){var t=e&&"element"===e.type&&e.tagName.toLowerCase()||"",r=2===t.length&&104===t.charCodeAt(0)?t.charCodeAt(1):0;return r>48&&r<55?r-48:null}function YO(e){return"children"in e?GO(e):"value"in e?e.value:""}function VO(e){return"text"===e.type?e.value:"children"in e?GO(e):""}function GO(e){for(var t=-1,r=[];++t0&&void 0!==arguments[0]?arguments[0]:{}).prefix||"";return function(t){BO.reset(),Zc(t,"element",(function(t){ZO(t)&&t.properties&&!NO(t,"id")&&(t.properties.id=e+BO.slug(YO(t)))}))}}var LO=function(e){if(void 0===e||null===e)return HO;if("string"===typeof e)return function(e){return t;function t(t){return HO(t)&&t.tagName===e}}(e);if("object"===typeof e)return MO(e);if("function"===typeof e)return JO(e);throw new Error("Expected function, string, or array as test")};function MO(e){for(var t=[],r=-1;++r1?r-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{},r=t.properties,n=t.behaviour||t.behavior||"prepend",a=t.content||KO,i=t.group,s=LO(t.test);return"wrap"===n?e=function(e){return e.children=[u(e,$d(!0,{},r),e.children)],[Wc]}:"before"===n||"after"===n?e=function(e,t,s){var c;if("number"!==typeof t||!s)return;var l=u(e,$d(!0,{},r),o(a,e)),p="before"===n?[l,e]:[e,l];if(i){var O=d(i,e);O&&!Array.isArray(O)&&"element"===O.type&&(O.children=p,p=[O])}return(c=s.children).splice.apply(c,[t,1].concat((0,E.Z)(p))),[Wc,t+p.length]}:(r||(r={ariaHidden:"true",tabIndex:-1}),e=function(e){return e.children["prepend"===n?"unshift":"push"](u(e,$d(!0,{},r),o(a,e))),[Wc]}),function(t){Zc(t,"element",(function(t,r,n){if(ZO(t)&&NO(t,"id")&&s(t,r,n))return e(t,r,n)}))};function o(e,t){var r=d(e,t);return Array.isArray(r)?r:[r]}function d(e,t){return"function"===typeof e?e(t):$d(!0,Array.isArray(e)?[]:{},e)}function u(e,t,r){return{type:"element",tagName:"a",properties:Object.assign({},t,{href:"#"+(e.properties||{}).id}),children:r}}}var tf=function e(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,a=arguments.length>1?arguments[1]:void 0;a/,"$2")||""))return;if(n){if(e(t,a,"pre",n))return;return s.value=(s.value||"").replace(/^(\n|\s)+/,""),s}return s.value=(s.value||"").replace(/^(\n|\s)+/,""),s}}},rf=function(e){var t=e.value,r=function(){return((arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").match(/([^?=&]+)(=([^&]*))/g)||[]).reduce((function(e,t){return e[t.slice(0,t.indexOf("="))]=t.slice(t.indexOf("=")+1),e}),{})}((void 0===t?"":t).replace(/^/,"$1").replace(/^rehype:/,""));return Object.keys(r).forEach((function(e){"true"===r[e]&&(r[e]=!0),"false"===r[e]&&(r[e]=!1),"string"!==typeof r[e]||/^0/.test(r[e])||isNaN(+r[e])||(r[e]=+r[e])})),r},nf=function(e,t,r){return"string"===r?(0,ua.Z)((0,ua.Z)({},e),{},{"data-config":JSON.stringify((0,ua.Z)((0,ua.Z)({},t),{},{rehyp:!0}))}):"attr"===r?(0,ua.Z)((0,ua.Z)({},e),t):(0,ua.Z)((0,ua.Z)({},e),{},{"data-config":(0,ua.Z)((0,ua.Z)({},t),{},{rehyp:!0})})},af=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.properties,r=void 0===t?"data":t,n=e.codeBlockParames,a=void 0===n||n;return function(e){Zc(e,"element",(function(e,t,n){if(a&&"pre"===e.tagName&&e&&Array.isArray(e.children)&&n&&Array.isArray(n.children)&&n.children.length>1){var i=e.children[0];if(i&&"code"===i.tagName&&"number"===typeof t){var s=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;t>-1;){if(!e[--t])return;if(e[t]&&e[t].value&&""!==e[t].value.replace(/(\n|\s)/g,"")||"text"!==e[t].type){if(!/^rehype:/.test(e[t].value)||"comment"!==e[t].type)return;return e[t]}}}(n.children,t);if(s){var o=rf(s);Object.keys(o).length>0&&(e.properties=(0,ua.Z)((0,ua.Z)({},e.properties),{"data-type":"rehyp"}),i.properties=nf(i.properties,o,r))}}}if(/^(em|strong|b|a|i|p|pre|kbd|blockquote|h(1|2|3|4|5|6)|code|table|img|del|ul|ol)$/.test(e.tagName)&&n&&Array.isArray(n.children)&&"number"===typeof t){var d=tf(n.children,t,"",a);if(d){var u=rf(d);Object.keys(u).length>0&&(e.properties=nf(e.properties,u,r))}}}))}},sf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.openDelimiter,r=void 0===t?"rehype:ignore:start":t,n=e.closeDelimiter,a=void 0===n?"rehype:ignore:end":n;return function(e){Zc(e,(function(e,t,n){if("element"===e.type||"root"===e.type){var i=!1;e.children=e.children.filter((function(e){if("raw"===e.type||"comment"===e.type){var t=(e.value||"").trim();if((t=t.replace(/^/,"$1"))===r)return i=!0,!1;if(t===a)return i=!1,!1}return!i}))}}))}},of={}.hasOwnProperty,df=r(7392),uf=r(19686),cf=r(82352);function lf(){lf=function(e,t){return new r(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function r(e,n,a){var i=new RegExp(e,n);return t.set(i,a||t.get(e)),pf(i,r.prototype)}function n(e,r){var n=t.get(r);return Object.keys(n).reduce((function(t,r){return t[r]=e[n[r]],t}),Object.create(null))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&pf(e,t)}(r,RegExp),r.prototype.exec=function(t){var r=e.exec.call(this,t);return r&&(r.groups=n(r,this)),r},r.prototype[Symbol.replace]=function(r,a){if("string"==typeof a){var i=t.get(this);return e[Symbol.replace].call(this,r,a.replace(/\$<([^>]+)>/g,(function(e,t){return"$"+i[t]})))}if("function"==typeof a){var s=this;return e[Symbol.replace].call(this,r,(function(){var e=arguments;return"object"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(n(e,s)),a.apply(this,e)}))}return e[Symbol.replace].call(this,r,a)},lf.apply(this,arguments)}function pf(e,t){return pf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},pf(e,t)}function Of(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var hf=function(e){return function(t){return void 0===t&&(t={}),function(e){Zc(e,"element",r)};function r(r,n,a){var i,s;if(a&&"pre"===a.tagName&&"code"===r.tagName){var o=(null==r||null==(i=r.data)?void 0:i.meta)||(null==r||null==(s=r.properties)?void 0:s.metastring)||"";r.properties.className?"boolean"==typeof r.properties.className?r.properties.className=[]:Array.isArray(r.properties.className)||(r.properties.className=[r.properties.className]):r.properties.className=[],r.properties.className.push("code-highlight");var d,u,c=function(e){for(var t,r=ff(e.properties.className);!(t=r()).done;){var n=t.value;if("language-"===n.slice(0,9))return n.slice(9).toLowerCase()}return null}(r);if(c)try{var l;l=null!=c&&c.includes("diff-")?c.split("-")[1]:c,d=e.highlight(YO(r),l),a.properties.className=(a.properties.className||[]).concat("language-"+l)}catch(v){if(!t.ignoreMissing||!/Unknown language/.test(v.message))throw v;d=r}else d=r;d.children=(u=1,function e(t){return t.reduce((function(t,r){if("text"===r.type){var n=r.value,a=(n.match(/\n/g)||"").length;if(0===a)r.position={start:{line:u,column:1},end:{line:u,column:1}},t.push(r);else for(var i,s=n.split("\n"),o=ff(s.entries());!(i=o()).done;){var d=i.value,c=d[0],l=d[1];t.push({type:"text",value:c===s.length-1?l:l+"\n",position:{start:{line:u+c,column:1},end:{line:u+c,column:1}}})}return u+=a,t}if(Object.prototype.hasOwnProperty.call(r,"children")){var p=u;return r.children=e(r.children),t.push(r),r.position={start:{line:p,column:1},end:{line:u,column:1}},t}return t.push(r),t}),[])})(d.children),d.position=d.children.length>0?{start:{line:d.children[0].position.start.line,column:0},end:{line:d.children[d.children.length-1].position.end.line,column:0}}:{start:{line:0,column:0},end:{line:0,column:0}};for(var p,O=function(e){var t=/{([\d,-]+)}/,r=e.split(",").map((function(e){return e.trim()})).join();if(t.test(r)){var n=t.exec(r)[1],a=df(n);return function(e){return a.includes(e+1)}}return function(){return!1}}(o),f=function(e){var t=lf(/showLineNumbers=([0-9]+)/i,{lines:1});if(t.test(e)){var r=t.exec(e);return Number(r.groups.lines)}return 1}(o),h=function(e){for(var t=new Array(e),r=0;r0&&0===s.length)return null}var u,c={};for(u in t)of.call(t,u)&&(c[u]="children"===u?s:t[u]);return c}(e)}(d,(function(e){return e.position.start.line<=r+1&&e.position.end.line>=r+1}));n.children=a.children,!o.toLowerCase().includes("showLineNumbers".toLowerCase())&&!t.showLineNumbers||g.some((function(e){return o.toLowerCase().includes(e)}))||(n.properties.line=[(r+f).toString()],n.properties.className.push("line-number")),O(r)&&n.properties.className.push("highlight-line"),("diff"===c||null!=c&&c.includes("diff-"))&&"-"===YO(n).substring(0,1)?n.properties.className.push("deleted"):("diff"===c||null!=c&&c.includes("diff-"))&&"+"===YO(n).substring(0,1)&&n.properties.className.push("inserted")},y=ff(h.entries());!(p=y()).done;)m();h.length>0&&""===YO(h[h.length-1]).trim()&&h.pop(),r.children=h}}}},gf=(hf(uf.$),hf(cf.$)),mf="\u0591-\u07ff\ufb1d-\ufdfd\ufe70-\ufefc",yf="A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff",vf=new RegExp("^[^"+yf+"]*["+mf+"]"),bf=new RegExp("^[^"+mf+"]*["+yf+"]");function xf(e){var t=function(e){var t=String(e||"");return vf.test(t)?"rtl":bf.test(t)?"ltr":"neutral"}(e);return"neutral"===t?void 0:t}function Rf(e){var t="element"===e.type&&e.properties&&"string"===typeof e.properties.dir?e.properties.dir.toLowerCase():void 0;return"auto"===t||"ltr"===t||"rtl"===t?t:void 0}var Sf=QO("operator",{unknown:function(e){throw new Error("Unknown operator `"+e.operator+"`")},invalid:function(e,t,r){return NO(t,r.property)},handlers:{"=":function(e,t,r){return Boolean(NO(t,r.property)&&t.properties&&Qf(t.properties[r.property],r)===e.value)},"~=":function(e,t,r){var n=t.properties&&t.properties[r.property];return!r.commaSeparated&&n&&"object"===typeof n&&e.value&&n.includes(e.value)||NO(t,r.property)&&Qf(n,r)===e.value},"|=":function(e,t,r){var n=Qf(t.properties&&t.properties[r.property],r);return Boolean(NO(t,r.property)&&e.value&&(n===e.value||n.slice(0,e.value.length)===e.value&&"-"===n.charAt(e.value.length)))},"^=":function(e,t,r){return Boolean(NO(t,r.property)&&t.properties&&e.value&&Qf(t.properties[r.property],r).slice(0,e.value.length)===e.value)},"$=":function(e,t,r){return Boolean(NO(t,r.property)&&t.properties&&e.value&&Qf(t.properties[r.property],r).slice(-e.value.length)===e.value)},"*=":function(e,t,r){return Boolean(NO(t,r.property)&&t.properties&&e.value&&Qf(t.properties[r.property],r).includes(e.value))}}});function Qf(e,t){return"boolean"===typeof e?t.attribute:Array.isArray(e)?(t.commaSeparated?bl.P:vl.P)(e):String(e)}function $f(e,t){return function(r,n){for(var a=Pf(r,"tag"),i=Pf(null===n||void 0===n?"*":n,"range"),s=[],o=-1;++o=r};var n=Math.abs(t),a=(r%n+n)%n;return t>1?function(e){return e>=r&&e%n===a}:function(e){return e<=r&&e%n===a}}(function(e){if("even"===(e=e.trim().toLowerCase()))return[2,0];if("odd"===e)return[2,1];var t=0,r=0,n=i(),a=s();if(t=Ef&&e.charCodeAt(t)<=kf;)n=10*n+(e.charCodeAt(t)-Ef),t++;return t===r?null:n}function o(){for(;t0},lang:function(e,t,r,n,a){return""!==a.language&&void 0!==a.language&&wf(a.language,(0,bl.Q)(e.value)).length>0},"last-child":function(e,t,r,n,a){return Wf(a,e),Boolean(a.elementCount&&a.elementIndex===a.elementCount-1)},"last-of-type":function(e,t,r,n,a){return Wf(a,e),"number"===typeof a.typeIndex&&"number"===typeof a.typeCount&&a.typeIndex===a.typeCount-1},matches:Ff,not:function(e,t,r,n,a){return!Ff(e,t,r,n,a)},"nth-child":function(e,t,r,n,a){var i=Nf(e);return Wf(a,e),"number"===typeof a.elementIndex&&i(a.elementIndex)},"nth-last-child":function(e,t,r,n,a){var i=Nf(e);return Wf(a,e),Boolean("number"===typeof a.elementCount&&"number"===typeof a.elementIndex&&i(a.elementCount-a.elementIndex-1))},"nth-of-type":function(e,t,r,n,a){var i=Nf(e);return Wf(a,e),"number"===typeof a.typeIndex&&i(a.typeIndex)},"nth-last-of-type":function(e,t,r,n,a){var i=Nf(e);return Wf(a,e),"number"===typeof a.typeCount&&"number"===typeof a.typeIndex&&i(a.typeCount-1-a.typeIndex)},"only-child":function(e,t,r,n,a){return Wf(a,e),1===a.elementCount},"only-of-type":function(e,t,r,n,a){return Wf(a,e),1===a.typeCount},optional:function(e,t){return!If(e,t)},"read-only":function(e,t,r,n,a){return!qf(e,t,r,n,a)},"read-write":qf,required:If,root:function(e,t,r,n,a){return Boolean((!n||"root"===n.type)&&a.schema&&("html"===a.schema.space||"svg"===a.schema.space)&&("html"===t.tagName||"svg"===t.tagName))},scope:function(e,t,r,n,a){return a.scopeElements.includes(t)}}});function Af(e,t,r,n,a){for(var i=e.pseudos,s=-1;++s"===d.nestingOperator?"directChild":"descendant",u)}else e.found=!0,e.results.includes(r)||e.results.push(r)}null===o.rule.nestingOperator?Lf(i,"descendant",o):"~"===o.rule.nestingOperator&&Lf(i,"generalSibling",o)}return i}(e,zf(t,e.rootQuery.selectors),r,n,a)),!("children"in r)||e.shallow||e.one&&e.found||function(e,t,r){var n,a=zf(t.descendant,t.directChild),i=-1,s={count:0,types:new Map},o={count:0,types:new Map};for(;++i0&&t.length>0?[].concat((0,E.Z)(e),(0,E.Z)(t)):e&&e.length>0?e:t&&t.length>0?t:Yf}function Lf(e,t,r){var n=e[t];n?n.push(r):e[t]=[r]}function Mf(e,t){if("element"===t.type){var r=t.tagName.toUpperCase(),n=(e.types.get(r)||0)+1;e.count++,e.types.set(r,n)}}var Jf=new(r(46428).N);function Hf(e){if("string"!==typeof e)throw new TypeError("Expected `string` as selector, not `"+e+"`");return Jf.parse(e)}function Kf(e,t,r){return{rootQuery:Vf(Hf(e)),results:[],scopeElements:t?"root"===t.type?t.children:[t]:[],one:!1,shallow:!1,found:!1,schema:"svg"===r?fl.YP:fl.dy,language:void 0,direction:"ltr",editableOrEditingHost:!1,typeIndex:void 0,elementIndex:void 0,typeCount:void 0,elementCount:void 0}}Jf.registerAttrEqualityMods("~","|","^","$","*"),Jf.registerSelectorPseudos("any","matches","not","has"),Jf.registerNestingOperators(">","+","~");var eh=function e(){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(r){"text"===r.type?t+=r.value:"element"===r.type&&r.children&&Array.isArray(r.children)&&(t+=e(r.children))})),t},th=function(e){var t=e||{},r=t.selector,n=t.rewrite;return function(e){if(n&&"function"===typeof n)if(r&&"string"===typeof r){var t=function(e,t,r){var n=Kf(e,t,r);return Gf(n,t||void 0),n.results}(r,e);t&&t.length>0&&Zc(e,t,(function(e,t,r){n(e,t,r)}))}else Zc(e,(function(e,t,r){n(e,t,r)}))}},rh={type:"element",tagName:"svg",properties:{className:"octicon octicon-link",viewBox:"0 0 16 16",version:"1.1",width:"16",height:"16",ariaHidden:"true"},children:[{type:"element",tagName:"path",children:[],properties:{fillRule:"evenodd",d:"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"}}]};var nh=r(57298),ah=r.n(nh);function ih(e){if(!e)return null;var t=e;return t.dataset.code&&t.classList.contains("copied")?t:t.parentElement?ih(t.parentElement):null}function sh(e){var t=function(e){var t=ih(e.target);t&&(t.classList.add("active"),ah()(t.dataset.code,(function(){setTimeout((function(){t.classList.remove("active")}),2e3)})))};(0,p.useEffect)((function(){var r,n;return null==(r=e.current)||r.removeEventListener("click",t,!1),null==(n=e.current)||n.addEventListener("click",t,!1),function(){var r;null==(r=e.current)||r.removeEventListener("click",t,!1)}}),[e])}var oh,dh,uh=function(e){return void 0===e&&(e={}),function(e){Zc(e,(function(e){"element"===e.type&&"code"===e.tagName&&e.data&&e.data.meta&&(e.properties=(0,Wa.Z)({},e.properties,{"data-meta":String(e.data.meta)}))}))}},ch=["prefixCls","className","source","style","disableCopy","skipHtml","onScroll","onMouseOver","pluginsFilter","rehypeRewrite","wrapperElement","warpperElement"],lh=p.forwardRef((function(e,t){var r=e.prefixCls,n=void 0===r?"wmde-markdown wmde-markdown-color":r,a=e.className,i=e.source,s=e.style,o=e.disableCopy,d=void 0!==o&&o,u=e.skipHtml,c=void 0===u||u,l=e.onScroll,O=e.onMouseOver,f=e.pluginsFilter,h=e.rehypeRewrite,g=e.wrapperElement,m=void 0===g?{}:g,y=e.warpperElement,v=void 0===y?{}:y,b=(0,ca.Z)(e,ch),x=p.useRef(null);(0,p.useImperativeHandle)(t,(function(){return(0,Wa.Z)({},e,{mdp:x})}),[x,e]);var R=(n||"")+" "+(a||"");sh(x);var S=[uh,[gf,{ignoreMissing:!0}],zO,ef,sf,[th,{rewrite:function(e,t,r){if("element"===e.type&&r&&"root"===r.type&&/h(1|2|3|4|5|6)/.test(e.tagName)){var n=e.children&&e.children[0];n&&n.properties&&"true"===n.properties.ariaHidden&&(n.properties=(0,Wa.Z)({class:"anchor"},n.properties),n.children=[rh])}if("element"===e.type&&"pre"===e.tagName&&!d){var a=eh(e.children);e.children.push((void 0===(i=a)&&(i=""),{type:"element",tagName:"div",properties:{class:"copied","data-code":i},children:[{type:"element",tagName:"svg",properties:{className:"octicon-copy",ariaHidden:"true",viewBox:"0 0 16 16",fill:"currentColor",height:12,width:12},children:[{type:"element",tagName:"path",properties:{fillRule:"evenodd",d:"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"},children:[]},{type:"element",tagName:"path",properties:{fillRule:"evenodd",d:"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"},children:[]}]},{type:"element",tagName:"svg",properties:{className:"octicon-check",ariaHidden:"true",viewBox:"0 0 16 16",fill:"currentColor",height:12,width:12},children:[{type:"element",tagName:"path",properties:{fillRule:"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"},children:[]}]}]}))}var i;h&&h(e,t,r)}}],[af,{properties:"attr"}]].concat((0,E.Z)(b.rehypePlugins||[])),Q={allowElement:function(e,t,r){return b.allowElement?b.allowElement(e,t,r):/^[A-Za-z0-9]+$/.test(e.tagName)}};c&&S.push(qO);var $=[].concat((0,E.Z)(b.remarkPlugins||[]),[lO]),w=(0,Wa.Z)({},v,m);return(0,Ln.jsx)("div",(0,Wa.Z)({ref:x,onScroll:l,onMouseOver:O},w,{className:R,style:s,children:(0,Ln.jsx)(Dl,(0,Wa.Z)({},Q,b,{skipHtml:c,rehypePlugins:f?f("rehype",S):S,remarkPlugins:f?f("remark",$):$,children:i||""}))}))})),ph={components:{89:function(){var e=a(r(83528)),t=a(r(4801)),n=r(16718);function a(e){return e&&e.__esModule?e:{default:e}}return function(){var r=e.default.useCallback((function(e,t){console.log("value:",e)}),[]);return e.default.createElement(t.default,{value:"console.log('hello world!');",height:"200px",extensions:[(0,n.javascript)({jsx:!0})],onChange:r})}}()},data:{89:{name:89,meta:{},code:'"use strict";\n\nvar _react = _interopRequireDefault(require("react"));\nvar _reactCodemirror = _interopRequireDefault(require("@uiw/react-codemirror"));\nvar _langJavascript = require("@codemirror/lang-javascript");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }\nfunction App() {\n var onChange = _react["default"].useCallback(function (value, viewUpdate) {\n console.log(\'value:\', value);\n }, []);\n return /*#__PURE__*/_react["default"].createElement(_reactCodemirror["default"], {\n value: "console.log(\'hello world!\');",\n height: "200px",\n extensions: [(0, _langJavascript.javascript)({\n jsx: true\n })],\n onChange: onChange\n });\n}\nreturn App;',language:"jsx",value:"import React from 'react';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n const onChange = React.useCallback((value, viewUpdate) => {\n console.log('value:', value);\n }, []);\n return (\n \n );\n}\nexport default App;"}},source:"

\n \n \"react-codemirror\n \n

\n\n# react-codemirror\n\n[![jsdelivr CDN](https://data.jsdelivr.com/v1/package/npm/@uiw/react-codemirror/badge?style=rounded)](https://www.jsdelivr.com/package/npm/@uiw/react-codemirror)\n[![NPM Downloads](https://img.shields.io/npm/dm/@uiw/react-codemirror.svg?style=flat)](https://www.npmjs.com/package/@uiw/react-codemirror)\n[![Build & Deploy](https://github.com/uiwjs/react-codemirror/workflows/Build%20&%20Deploy/badge.svg)](https://github.com/uiwjs/react-codemirror/actions)\n[![Open in unpkg](https://img.shields.io/badge/Open%20in-unpkg-blue)](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-codemirror/file/README.md)\n[![npm version](https://img.shields.io/npm/v/@uiw/react-codemirror.svg)](https://www.npmjs.com/package/@uiw/react-codemirror)\n[![Coverage Status](https://uiwjs.github.io/react-codemirror/coverage/badges.svg)](https://uiwjs.github.io/react-codemirror/coverage/lcov-report/)\n[![Open in Gitpod](https://shields.io/badge/Open%20in-Gitpod-green?logo=Gitpod)](https://gitpod.io/#https://github.com/uiwjs/react-codemirror)\n\nCodeMirror component for React. Demo Preview: [@uiwjs.github.io/react-codemirror](https://uiwjs.github.io/react-codemirror/)\n\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n**Features:**\n\n\ud83d\ude80 Quickly and easily configure the API. \n\ud83c\udf31 Versions after `@uiw/react-codemirror@v4`\x3c!--rehype:style=background-color: #ffe564; padding: 1px 4px;--\x3e use [codemirror 6](https://codemirror.net/). [#88](https://github.com/uiwjs/react-codemirror/issues/88#issuecomment-914185563). \n\u269b\ufe0f Support the features of React Hook(requires React 16.8+). \n\ud83d\udcda Use Typescript to write, better code hints. \n\ud83c\udf10 The bundled version supports use directly in the browser [#267](https://github.com/uiwjs/react-codemirror/issues/267#issuecomment-1041227592). \n\ud83c\udf0e There are better [sample previews](https://uiwjs.github.io/react-codemirror). \n\ud83c\udfa8 Support [theme](https://uiwjs.github.io/react-codemirror/#/theme/data/dracula) customization, provide theme [editor](https://uiwjs.github.io/react-codemirror/#/editor/theme).\n\n## Install\n\n**Not dependent on uiw.**\n\n```bash\nnpm install @uiw/react-codemirror --save\n```\n\n**All Packages**\n\n| Name | NPM Version | Website |\n| :------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |\n| `@uiw/react-codemirror` | [![npm version](https://img.shields.io/npm/v/@uiw/react-codemirror.svg)](https://www.npmjs.com/package/@uiw/react-codemirror) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/react-codemirror.svg?style=flat)](https://www.npmjs.com/package/@uiw/react-codemirror) | [`#preview`](https://uiwjs.github.io/react-codemirror/) |\n| `react-codemirror-merge` | [![npm version](https://img.shields.io/npm/v/react-codemirror-merge.svg)](https://www.npmjs.com/package/react-codemirror-merge) [![NPM Downloads](https://img.shields.io/npm/dm/react-codemirror-merge.svg?style=flat)](https://www.npmjs.com/package/react-codemirror-merge) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/merge/document) |\n| `@uiw/codemirror-extensions-basic-setup` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-basic-setup.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-basic-setup) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-basic-setup.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-basic-setup) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/extensions/basic-setup) |\n| `@uiw/codemirror-extensions-color` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-color.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-color) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-color.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-color) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/extensions/color) |\n| `@uiw/codemirror-extensions-classname` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-classname.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-classname) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-classname.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-classname) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/extensions/classname) |\n| `@uiw/codemirror-extensions-events` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-events.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-events) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-events.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-events) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/extensions/events) |\n| `@uiw/codemirror-extensions-hyper-link` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-hyper-link.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-hyper-link) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-hyper-link.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-hyper-link) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/extensions/hyper-link) |\n| `@uiw/codemirror-extensions-langs` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-langs.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-langs) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-langs.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-langs) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/extensions/languages) |\n| `@uiw/codemirror-extensions-line-numbers-relative` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-line-numbers-relative.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-line-numbers-relative) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-line-numbers-relative.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-line-numbers-relative) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/extensions/line-numbers-relative) |\n| `@uiw/codemirror-extensions-mentions` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-mentions.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-mentions) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-mentions.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-mentions) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/extensions/mentions) |\n| `@uiw/codemirror-extensions-zebra-stripes` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-zebra-stripes.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-zebra-stripes) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-zebra-stripes.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-zebra-stripes) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/extensions/zebra-stripes) |\n| `@uiw/codemirror-themes` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-themes.svg)](https://www.npmjs.com/package/@uiw/codemirror-themes) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-themes.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-themes) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/doc) |\n\n| Name | NPM Version | Website |\n| :---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |\n| `@uiw/codemirror-themes-all` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-themes-all.svg)](https://www.npmjs.com/package/@uiw/codemirror-themes-all) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-themes-all.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-themes-all) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/all) |\n| `@uiw/codemirror-theme-abcdef` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abcdef.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-abcdef) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-abcdef.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-abcdef) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/abcdef) |\n| `@uiw/codemirror-theme-androidstudio` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-androidstudio.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-androidstudio) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-androidstudio.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-androidstudio) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/androidstudio) |\n| `@uiw/codemirror-theme-atomone` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-atomone.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-atomone) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-atomone.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-atomone) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/atomone) |\n| `@uiw/codemirror-theme-aura` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-aura.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-aura) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-aura.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-aura) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/aura) |\n| `@uiw/codemirror-theme-bbedit` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bbedit.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bbedit) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-bbedit.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-bbedit) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/bbedit) |\n| `@uiw/codemirror-theme-bespin` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bespin.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bespin) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-bespin.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-bespin) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/bespin) |\n| `@uiw/codemirror-theme-duotone` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-duotone.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-duotone) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-duotone.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-duotone) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/duotone/light) |\n| `@uiw/codemirror-theme-dracula` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-dracula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-dracula.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/dracula) |\n| `@uiw/codemirror-theme-darcula` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-darcula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-darcula) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-darcula.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-darcula) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/darcula) |\n| `@uiw/codemirror-theme-eclipse` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-eclipse.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-eclipse) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-eclipse.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-eclipse) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/eclipse) |\n| `@uiw/codemirror-theme-github` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-github.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-github) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-github.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-github) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/github) |\n| `@uiw/codemirror-theme-gruvbox-dark` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-gruvbox-dark.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-gruvbox-dark.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/gruvbox/dark) |\n| `@uiw/codemirror-theme-material` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-material.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-material) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-material.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-material) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/material/dark) |\n| `@uiw/codemirror-theme-noctis-lilac` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-noctis-lilac.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-noctis-lilac.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/noctis-lilac) |\n| `@uiw/codemirror-theme-nord` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-nord.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-nord.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/nord) |\n| `@uiw/codemirror-theme-okaidia` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-okaidia.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-okaidia) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-okaidia.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-okaidia) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/okaidia) |\n| `@uiw/codemirror-theme-solarized` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-solarized.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-solarized.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/solarized/dark) |\n| `@uiw/codemirror-theme-sublime` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-sublime.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-sublime) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-sublime.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-sublime) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/sublime) |\n| `@uiw/codemirror-theme-tokyo-night` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tokyo-night.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/tokyo-night) |\n| `@uiw/codemirror-theme-tokyo-night-storm` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night-storm.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-storm) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tokyo-night-storm.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-storm) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/tokyo-night-storm) |\n| `@uiw/codemirror-theme-tokyo-night-day` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night-day.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-day) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tokyo-night-day.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-day) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/tokyo-night-day) |\n| `@uiw/codemirror-theme-vscode` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-vscode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-vscode) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-vscode.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-vscode) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/vscode) |\n| `@uiw/codemirror-theme-xcode` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-xcode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-xcode) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-xcode.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-xcode) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/xcode) |\n\n\x3c!--rehype:style=width: 100%; display: inline-table;--\x3e\n\n## Usage\n\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-slvju?fontsize=14&hidenavigation=1&theme=dark)\n\n```jsx mdx:preview\nimport React from 'react';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n const onChange = React.useCallback((value, viewUpdate) => {\n console.log('value:', value);\n }, []);\n return (\n \n );\n}\nexport default App;\n```\n\n## Support Language\n\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-language-rz4rh?fontsize=14&hidenavigation=1&theme=dark)\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { StreamLanguage } from '@codemirror/language';\nimport { go } from '@codemirror/legacy-modes/mode/go';\n\nconst goLang = `package main\nimport \"fmt\"\n\nfunc main() {\n fmt.Println(\"Hello, \u4e16\u754c\")\n}`;\n\nexport default function App() {\n return ;\n}\n```\n\n- ~~`@codemirror/legacy-modes/mode/cpp`~~ => [`@codemirror/lang-cpp`](https://www.npmjs.com/package/@codemirror/lang-cpp)\n- ~~`@codemirror/legacy-modes/mode/html`~~ => [`@codemirror/lang-html`](https://www.npmjs.com/package/@codemirror/lang-html)\n- ~~`@codemirror/legacy-modes/mode/java`~~ => [`@codemirror/lang-java`](https://www.npmjs.com/package/@codemirror/lang-java)\n- ~~`@codemirror/legacy-modes/mode/javascript`~~ => [`@codemirror/lang-javascript`](https://www.npmjs.com/package/@codemirror/lang-javascript)\n- ~~`@codemirror/legacy-modes/mode/json`~~ => [`@codemirror/lang-json`](https://www.npmjs.com/package/@codemirror/lang-json)\n- ~~`@codemirror/legacy-modes/mode/lezer`~~ => [`@codemirror/lang-lezer`](https://www.npmjs.com/package/@codemirror/lang-lezer)\n- ~~`@codemirror/legacy-modes/mode/markdown`~~ => [`@codemirror/lang-markdown`](https://www.npmjs.com/package/@codemirror/lang-markdown)\n- ~~`@codemirror/legacy-modes/mode/php`~~ => [`@codemirror/lang-php`](https://www.npmjs.com/package/@codemirror/lang-php)\n- ~~`@codemirror/legacy-modes/mode/python`~~ => [`@codemirror/lang-python`](https://www.npmjs.com/package/@codemirror/lang-python)\n- ~~`@codemirror/legacy-modes/mode/rust`~~ => [`@codemirror/lang-rust`](https://www.npmjs.com/package/@codemirror/lang-rust)\n- ~~`@codemirror/legacy-modes/mode/sql`~~ => [`@codemirror/lang-sql`](https://www.npmjs.com/package/@codemirror/lang-sql)\n- ~~`@codemirror/legacy-modes/mode/xml`~~ => [`@codemirror/lang-xml`](https://www.npmjs.com/package/@codemirror/lang-xml)\n- ~~`@codemirror/legacy-modes/mode/css`~~ => [`@codemirror/lang-less`](https://www.npmjs.com/package/@codemirror/lang-less)\n- ~~`@codemirror/legacy-modes/mode/sass`~~ => [`@codemirror/lang-sass`](https://www.npmjs.com/package/@codemirror/lang-sass)\n- ~~`@codemirror/legacy-modes/mode/clojure`~~ => [`@nextjournal/lang-clojure`](https://www.npmjs.com/package/@nextjournal/lang-clojure)\n- ~~`@codemirror/legacy-modes/mode/clike`~~ => [`@replit/codemirror-lang-csharp`](https://www.npmjs.com/package/@replit/codemirror-lang-csharp)\n\n### Markdown Example\n\nMarkdown language code is automatically highlighted.\n\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-markdown-auto-languages-iudnj?fontsize=14&hidenavigation=1&theme=dark)\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { markdown, markdownLanguage } from '@codemirror/lang-markdown';\nimport { languages } from '@codemirror/language-data';\n\nconst code = `## Title\n\n\\`\\`\\`jsx\nfunction Demo() {\n return
demo
\n}\n\\`\\`\\`\n\n\\`\\`\\`bash\n# Not dependent on uiw.\nnpm install @codemirror/lang-markdown --save\nnpm install @codemirror/language-data --save\n\\`\\`\\`\n\n[weisit ulr](https://uiwjs.github.io/react-codemirror/)\n\n\\`\\`\\`go\npackage main\nimport \"fmt\"\nfunc main() {\n fmt.Println(\"Hello, \u4e16\u754c\")\n}\n\\`\\`\\`\n`;\n\nexport default function App() {\n return ;\n}\n```\n\n## Codemirror Merge\n\n```jsx\nimport CodeMirrorMerge from 'react-codemirror-merge';\nimport { EditorView } from 'codemirror';\nimport { EditorState } from '@codemirror/state';\n\nconst Original = CodeMirrorMerge.Original;\nconst Modified = CodeMirrorMerge.Modified;\nlet doc = `one\ntwo\nthree\nfour\nfive`;\n\nexport const Example = () => {\n return (\n \n \n \n \n );\n};\n```\n\n## Support Hook\n\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-hook-yr4vg?fontsize=14&hidenavigation=1&theme=dark)\n\n```jsx\nimport { useEffect, useMemo, useRef } from 'react';\nimport { useCodeMirror } from '@uiw/react-codemirror';\nimport { javascript } from '@codemirror/lang-javascript';\n\nconst code = \"console.log('hello world!');\\n\\n\\n\";\n// Define the extensions outside the component for the best performance.\n// If you need dynamic extensions, use React.useMemo to minimize reference changes\n// which cause costly re-renders.\nconst extensions = [javascript()];\n\nexport default function App() {\n const editor = useRef();\n const { setContainer } = useCodeMirror({\n container: editor.current,\n extensions,\n value: code,\n });\n\n useEffect(() => {\n if (editor.current) {\n setContainer(editor.current);\n }\n }, [editor.current]);\n\n return
;\n}\n```\n\n## Using Theme\n\nWe have created a [`theme editor`](https://uiwjs.github.io/react-codemirror/#/editor/theme) where you can define your own theme. We have also defined [some themes](https://uiwjs.github.io/react-codemirror/#/theme/data/okaidia) ourselves, which can be installed and used directly. Below is a usage example:\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { okaidia } from '@uiw/codemirror-theme-okaidia';\n\nconst extensions = [javascript({ jsx: true })];\n\nexport default function App() {\n return (\n \n );\n}\n```\n\n## Using custom theme\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tags as t } from '@lezer/highlight';\n\nconst myTheme = createTheme({\n theme: 'light',\n settings: {\n background: '#ffffff',\n foreground: '#75baff',\n caret: '#5d00ff',\n selection: '#036dd626',\n selectionMatch: '#036dd626',\n lineHighlight: '#8a91991a',\n gutterBackground: '#fff',\n gutterForeground: '#8a919966',\n },\n styles: [\n { tag: t.comment, color: '#787b8099' },\n { tag: t.variableName, color: '#0080ff' },\n { tag: [t.string, t.special(t.brace)], color: '#5c6166' },\n { tag: t.number, color: '#5c6166' },\n { tag: t.bool, color: '#5c6166' },\n { tag: t.null, color: '#5c6166' },\n { tag: t.keyword, color: '#5c6166' },\n { tag: t.operator, color: '#5c6166' },\n { tag: t.className, color: '#5c6166' },\n { tag: t.definition(t.typeName), color: '#5c6166' },\n { tag: t.typeName, color: '#5c6166' },\n { tag: t.angleBracket, color: '#5c6166' },\n { tag: t.tagName, color: '#5c6166' },\n { tag: t.attributeName, color: '#5c6166' },\n ],\n});\nconst extensions = [javascript({ jsx: true })];\n\nexport default function App() {\n const onChange = React.useCallback((value, viewUpdate) => {\n console.log('value:', value);\n }, []);\n return (\n \n );\n}\n```\n\n## Use `initialState` to restore state from JSON-serialized representation\n\nCodeMirror allows to serialize editor state to JSON representation with [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) function for persistency or other needs. This JSON representation can be later used to recreate ReactCodeMirror component with the same internal state.\n\nFor example, this is how undo history can be saved in the local storage, so that it remains after the page reloads\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { historyField } from '@codemirror/commands';\n\n// When custom fields should be serialized, you can pass them in as an object mapping property names to fields.\n// See [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) documentation for more details\nconst stateFields = { history: historyField };\n\nexport function EditorWithInitialState() {\n const serializedState = localStorage.getItem('myEditorState');\n const value = localStorage.getItem('myValue') || '';\n\n return (\n {\n localStorage.setItem('myValue', value);\n\n const state = viewUpdate.state.toJSON(stateFields);\n localStorage.setItem('myEditorState', JSON.stringify(state));\n }}\n />\n );\n}\n```\n\n## Props\n\n\x3c!--rehype:style=background-color: #ffe564; display: inline-block; border-bottom: 0; padding: 3px 12px;--\x3e\n\n- `value?: string` value of the auto created model in the editor.\n- `width?: string` width of editor. Defaults to `auto`.\n- `height?: string` height of editor. Defaults to `auto`.\n- `theme?`: `'light'` / `'dark'` / `Extension` Defaults to `'light'`.\n\n```ts\nimport React from 'react';\nimport { EditorState, EditorStateConfig, Extension } from '@codemirror/state';\nimport { EditorView, ViewUpdate } from '@codemirror/view';\nexport * from '@codemirror/view';\nexport * from '@codemirror/basic-setup';\nexport * from '@codemirror/state';\nexport interface UseCodeMirror extends ReactCodeMirrorProps {\n container?: HTMLDivElement | null;\n}\nexport declare function useCodeMirror(props: UseCodeMirror): {\n state: EditorState | undefined;\n setState: import('react').Dispatch>;\n view: EditorView | undefined;\n setView: import('react').Dispatch>;\n container: HTMLDivElement | null | undefined;\n setContainer: import('react').Dispatch>;\n};\nexport interface ReactCodeMirrorProps\n extends Omit,\n Omit, 'onChange' | 'placeholder'> {\n /** value of the auto created model in the editor. */\n value?: string;\n height?: string;\n minHeight?: string;\n maxHeight?: string;\n width?: string;\n minWidth?: string;\n maxWidth?: string;\n /** focus on the editor. */\n autoFocus?: boolean;\n /** Enables a placeholder\u2014a piece of example content to show when the editor is empty. */\n placeholder?: string | HTMLElement;\n /**\n * `light` / `dark` / `Extension` Defaults to `light`.\n * @default light\n */\n theme?: 'light' | 'dark' | Extension;\n /**\n * Whether to optional basicSetup by default\n * @default true\n */\n basicSetup?: boolean | BasicSetupOptions;\n /**\n * This disables editing of the editor content by the user.\n * @default true\n */\n editable?: boolean;\n /**\n * This disables editing of the editor content by the user.\n * @default false\n */\n readOnly?: boolean;\n /**\n * Controls whether pressing the `Tab` key inserts a tab character and indents the text (`true`)\n * or behaves according to the browser's default behavior (`false`).\n * @default true\n */\n indentWithTab?: boolean;\n /** Fired whenever a change occurs to the document. */\n onChange?(value: string, viewUpdate: ViewUpdate): void;\n /** Some data on the statistics editor. */\n onStatistics?(data: Statistics): void;\n /** The first time the editor executes the event. */\n onCreateEditor?(view: EditorView, state: EditorState): void;\n /** Fired whenever any state change occurs within the editor, including non-document changes like lint results. */\n onUpdate?(viewUpdate: ViewUpdate): void;\n /**\n * Extension values can be [provided](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions) when creating a state to attach various kinds of configuration and behavior information.\n * They can either be built-in extension-providing objects,\n * such as [state fields](https://codemirror.net/6/docs/ref/#state.StateField) or [facet providers](https://codemirror.net/6/docs/ref/#state.Facet.of),\n * or objects with an extension in its `extension` property. Extensions can be nested in arrays arbitrarily deep\u2014they will be flattened when processed.\n */\n extensions?: Extension[];\n /**\n * If the view is going to be mounted in a shadow root or document other than the one held by the global variable document (the default), you should pass it here.\n * Originally from the [config of EditorView](https://codemirror.net/6/docs/ref/#view.EditorView.constructor%5Econfig.root)\n */\n root?: ShadowRoot | Document;\n /**\n * Create a state from its JSON representation serialized with [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) function\n */\n initialState?: {\n json: any;\n fields?: Record<'string', StateField>;\n };\n}\nexport interface ReactCodeMirrorRef {\n editor?: HTMLDivElement | null;\n state?: EditorState;\n view?: EditorView;\n}\ndeclare const ReactCodeMirror: React.ForwardRefExoticComponent<\n ReactCodeMirrorProps & React.RefAttributes\n>;\nexport default ReactCodeMirror;\nexport interface BasicSetupOptions {\n lineNumbers?: boolean;\n highlightActiveLineGutter?: boolean;\n highlightSpecialChars?: boolean;\n history?: boolean;\n foldGutter?: boolean;\n drawSelection?: boolean;\n dropCursor?: boolean;\n allowMultipleSelections?: boolean;\n indentOnInput?: boolean;\n syntaxHighlighting?: boolean;\n bracketMatching?: boolean;\n closeBrackets?: boolean;\n autocompletion?: boolean;\n rectangularSelection?: boolean;\n crosshairCursor?: boolean;\n highlightActiveLine?: boolean;\n highlightSelectionMatches?: boolean;\n closeBracketsKeymap?: boolean;\n defaultKeymap?: boolean;\n searchKeymap?: boolean;\n historyKeymap?: boolean;\n foldKeymap?: boolean;\n completionKeymap?: boolean;\n lintKeymap?: boolean;\n}\n```\n\n```ts\nimport { EditorSelection, SelectionRange } from '@codemirror/state';\nimport { ViewUpdate } from '@codemirror/view';\nexport interface Statistics {\n /** Get the number of lines in the editor. */\n lineCount: number;\n /** total length of the document */\n length: number;\n /** Get the proper [line-break](https://codemirror.net/docs/ref/#state.EditorState^lineSeparator) string for this state. */\n lineBreak: string;\n /** Returns true when the editor is [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only. */\n readOnly: boolean;\n /** The size (in columns) of a tab in the document, determined by the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet. */\n tabSize: number;\n /** Cursor Position */\n selection: EditorSelection;\n /** Make sure the selection only has one range. */\n selectionAsSingle: SelectionRange;\n /** Retrieves a list of all current selections. */\n ranges: readonly SelectionRange[];\n /** Get the currently selected code. */\n selectionCode: string;\n /**\n * The length of the given array should be the same as the number of active selections.\n * Replaces the content of the selections with the strings in the array.\n */\n selections: string[];\n /** Return true if any text is selected. */\n selectedText: boolean;\n}\nexport declare const getStatistics: (view: ViewUpdate) => Statistics;\n```\n\n### Related\n\n- [@uiw/react-textarea-code-editor](https://github.com/uiwjs/react-textarea-code-editor): A simple code editor with syntax highlighting.\n- [@uiw/react-md-editor](https://github.com/uiwjs/react-md-editor): A simple markdown editor with preview, implemented with React.js and TypeScript.\n- [@uiw/react-monacoeditor](https://github.com/jaywcjlove/react-monacoeditor): Monaco Editor component for React.\n- [@uiw/react-markdown-editor](https://github.com/uiwjs/react-markdown-editor): A markdown editor with preview, implemented with React.js and TypeScript.\n- [@uiw/react-markdown-preview](https://github.com/uiwjs/react-markdown-preview): React component preview markdown text in web browser.\n- [Online JSON Viewer](https://github.com/uiwjs/json-viewer) Online JSON Viewer, JSON Beautifier to beautify and tree view of JSON data - It works as JSON Pretty Print to pretty print JSON data.\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n"},Oh=function(e){var t=e.label,r=void 0===t?"":t,n=e.value,a=e.options,i=void 0===a?[]:a,s=e.onChange;return(0,Ln.jsxs)("label",{children:[r&&(0,Ln.jsxs)("span",{children:[r,"\uff1a"]}),(0,Ln.jsx)("select",{value:n,onChange:s,children:i.map((function(e,t){var r={};return n===e&&(r.value=e),(0,Ln.jsx)("option",(0,ua.Z)((0,ua.Z)({},r),{},{children:e}),t)}))})]})};function fh(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light",t=document.documentElement.getAttribute("data-color-mode"),r=(0,p.useState)("dark"===t?"dark":e),n=(0,o.Z)(r,2),a=n[0],i=n[1];return(0,p.useEffect)((function(){i("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(function(e){i(e.detail.colorScheme)}))}),[]),{theme:a,setTheme:i}}var hh,gh,mh,yh,vh,bh,xh,Rh,Sh,Qh,$h,wh,Ph,Th=Bn.div(oh||(oh=i(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"]))),Eh=(Bn.div(dh||(dh=i(["\n display: flex;\n flex: 1;\n"]))),["children"]),kh=Bn.label(hh||(hh=i(["\n user-select: none;\n white-space: nowrap;\n"]))),Xh=function(e){var t=e.children,r=la(e,Eh);return(0,Ln.jsxs)(kh,{children:[(0,Ln.jsx)("input",(0,ua.Z)({type:"checkbox"},r)),(0,Ln.jsx)("span",{children:t})]})},jh=Bn.div(gh||(gh=i(["\n padding-bottom: 32px;\n"]))),Dh=function(e){var t=fh().theme,r=(0,p.useState)({}),n=(0,o.Z)(r,2),a=n[0],i=n[1];return(0,Ln.jsxs)(Th,{children:[(0,Ln.jsx)(ya.default,{value:e.source,theme:t,basicSetup:a,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[Ua.RI.markdown()]}),(0,Ln.jsxs)(jh,{children:[(0,Ln.jsxs)("select",{value:a.tabSize,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{tabSize:Number(e.target.value||"2")}))},children:[(0,Ln.jsx)("option",{value:2,children:"TabSize: 2"}),(0,Ln.jsx)("option",{value:4,children:"TabSize: 4"}),(0,Ln.jsx)("option",{value:6,children:"TabSize: 6"}),(0,Ln.jsx)("option",{value:8,children:"TabSize: 8"})]}),(0,Ln.jsx)(Xh,{checked:!1!==a.lineNumbers,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{lineNumbers:e.target.checked}))},children:"lineNumbers"}),(0,Ln.jsx)(Xh,{checked:!1!==a.foldGutter,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{foldGutter:e.target.checked}))},children:"foldGutter"}),(0,Ln.jsx)(Xh,{checked:!1!==a.highlightActiveLineGutter,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{highlightActiveLineGutter:e.target.checked}))},children:"highlightActiveLineGutter"}),(0,Ln.jsx)(Xh,{checked:!1!==a.highlightSpecialChars,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{highlightSpecialChars:e.target.checked}))},children:"highlightSpecialChars"}),(0,Ln.jsx)(Xh,{checked:!1!==a.history,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{history:e.target.checked}))},children:"history"}),(0,Ln.jsx)(Xh,{checked:!1!==a.drawSelection,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{drawSelection:e.target.checked}))},children:"drawSelection"}),(0,Ln.jsx)(Xh,{checked:!1!==a.dropCursor,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{dropCursor:e.target.checked}))},children:"dropCursor"}),(0,Ln.jsx)(Xh,{checked:!1!==a.allowMultipleSelections,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{allowMultipleSelections:e.target.checked}))},children:"allowMultipleSelections"}),(0,Ln.jsx)(Xh,{checked:!1!==a.indentOnInput,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{indentOnInput:e.target.checked}))},children:"indentOnInput"}),(0,Ln.jsx)(Xh,{checked:!1!==a.syntaxHighlighting,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{syntaxHighlighting:e.target.checked}))},children:"syntaxHighlighting"}),(0,Ln.jsx)(Xh,{checked:!1!==a.bracketMatching,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{bracketMatching:e.target.checked}))},children:"bracketMatching"}),(0,Ln.jsx)(Xh,{checked:!1!==a.closeBrackets,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{closeBrackets:e.target.checked}))},children:"closeBrackets"}),(0,Ln.jsx)(Xh,{checked:!1!==a.autocompletion,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{autocompletion:e.target.checked}))},children:"autocompletion"}),(0,Ln.jsx)(Xh,{checked:!1!==a.rectangularSelection,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{rectangularSelection:e.target.checked}))},children:"rectangularSelection"}),(0,Ln.jsx)(Xh,{checked:!1!==a.crosshairCursor,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{crosshairCursor:e.target.checked}))},children:"crosshairCursor"}),(0,Ln.jsx)(Xh,{checked:!1!==a.highlightActiveLine,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{highlightActiveLine:e.target.checked}))},children:"highlightActiveLine"}),(0,Ln.jsx)(Xh,{checked:!1!==a.highlightSelectionMatches,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{highlightSelectionMatches:e.target.checked}))},children:"highlightSelectionMatches"}),(0,Ln.jsx)(Xh,{checked:!1!==a.closeBracketsKeymap,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{closeBracketsKeymap:e.target.checked}))},children:"closeBracketsKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==a.defaultKeymap,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{defaultKeymap:e.target.checked}))},children:"defaultKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==a.searchKeymap,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{searchKeymap:e.target.checked}))},children:"searchKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==a.historyKeymap,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{historyKeymap:e.target.checked}))},children:"historyKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==a.foldKeymap,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{foldKeymap:e.target.checked}))},children:"foldKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==a.completionKeymap,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{completionKeymap:e.target.checked}))},children:"completionKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==a.lintKeymap,onChange:function(e){return i((0,ua.Z)((0,ua.Z)({},a),{},{lintKeymap:e.target.checked}))},children:"lintKeymap"})]})]})},Ch=["dark","light"].concat(Object.keys(a)).filter((function(e){return"function"!==typeof a[e]})).filter((function(e){return!/^(defaultSettings)/.test(e)})),Ah=["auto","200px","300px","500px"],_h=0,Fh=Bn.div(mh||(mh=i(["\n margin: 0 auto;\n text-align: left;\n max-width: 995px;\n overflow: auto;\n padding: 16px;\n border-radius: 5px;\n"]))),qh=Bn.div(yh||(yh=i(["\n margin: 0 auto;\n max-width: 995px;\n padding: 15px 0 0 0;\n > label {\n margin-right: 15px;\n }\n"]))),Ih=Bn(ya.default)(vh||(vh=i(["\n box-shadow: 0 0 0 1px rgb(16 22 26 / 10%), 0 0 0 rgb(16 22 26 / 0%), 0 1px 1px rgb(16 22 26 / 20%);\n margin: 0 auto;\n text-align: left;\n max-width: 995px;\n overflow: auto;\n border-radius: 5px;\n"]))),Uh=Bn.div(bh||(bh=i(["\n padding-bottom: 18px;\n"])));function Wh(){var e=(0,p.useState)("javascript"),t=(0,o.Z)(e,2),n=t[0],i=t[1],s=(0,p.useState)("Please enter the code."),d=(0,o.Z)(s,2),u=d[0],c=d[1],l=(0,p.useState)(!1),O=(0,o.Z)(l,2),f=O[0],h=O[1],g=(0,p.useState)(!0),m=(0,o.Z)(g,2),y=m[0],v=m[1],b=fh(),x=b.theme,R=b.setTheme,S=(0,p.useState)(""),Q=(0,o.Z)(S,2),$=Q[0],w=Q[1],P=(0,p.useState)(),T=(0,o.Z)(P,2),E=T[0],k=T[1],X=(0,p.useState)("500px"),j=(0,o.Z)(X,2),D=j[0],C=j[1],A=(0,p.useState)({}),_=(0,o.Z)(A,2),F=_[0],q=_[1];function I(e){try{r(70620)("./sample.".concat(e.toLocaleLowerCase(),".txt")).then((function(t){w(t.default),Ua.RI[e]&&k([Ia,Ua.RI[e]()]),i(e)})).catch((function(t){Ua.RI[e]?k([Ia,Ua.RI[e]()]):k([Ia]),i(e),w("")}))}catch(t){}}return(0,p.useEffect)((function(){I("javascript")}),[]),(0,Ln.jsxs)(Uh,{className:"wmde-markdown-var",children:[(0,Ln.jsx)(Ih,{value:$,height:"".concat(D," !important"),theme:a[x]||x,editable:y,extensions:E,autoFocus:f,basicSetup:F,placeholder:u,onChange:function(e){},style:{maxWidth:"995px",margin:"-18px auto 0 auto",position:"relative",zIndex:999}}),(0,Ln.jsxs)(Fh,{children:[(0,Ln.jsxs)(qh,{children:[(0,Ln.jsx)(Oh,{label:"Lang",options:Object.keys(Ua.RI).sort(),value:n,onChange:function(e){return I(e.target.value)}}),(0,Ln.jsx)(Oh,{label:"Website Theme",options:["dark","light"],value:x,onChange:function(e){document.documentElement.setAttribute("data-color-mode","dark"===e.target.value?"dark":"light"),R(e.target.value)}}),(0,Ln.jsx)(Oh,{label:"Themes",options:Ch,value:x,onChange:function(e){/^(dark|light)$/.test(e.target.value)&&document.documentElement.setAttribute("data-color-mode",e.target.value),R(e.target.value)}})]}),(0,Ln.jsxs)(qh,{children:[(0,Ln.jsx)(Oh,{label:"Height",options:Ah,value:D,onChange:function(e){return C(e.target.value)}}),(0,Ln.jsx)("button",{onClick:function(){_h++,w('console.log("Hello World! '.concat(_h,'")'))},children:"change code"}),(0,Ln.jsxs)("label",{children:[(0,Ln.jsx)("input",{type:"checkbox",checked:f,onChange:function(e){return h(e.target.checked)}}),"autoFocus"]}),(0,Ln.jsxs)("label",{children:[(0,Ln.jsx)("input",{type:"checkbox",checked:y,onChange:function(e){return v(e.target.checked)}}),"editable"]}),(0,Ln.jsxs)("label",{children:["placeholder:",(0,Ln.jsx)("input",{type:"text",value:u,onChange:function(e){return c(e.target.value)}})]}),(0,Ln.jsx)(Xh,{checked:!1!==F.lineNumbers,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{lineNumbers:e.target.checked}))},children:"lineNumbers"}),(0,Ln.jsx)(Xh,{checked:!1!==F.foldGutter,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{foldGutter:e.target.checked}))},children:"foldGutter"}),(0,Ln.jsx)(Xh,{checked:!1!==F.highlightActiveLineGutter,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{highlightActiveLineGutter:e.target.checked}))},children:"highlightActiveLineGutter"}),(0,Ln.jsx)(Xh,{checked:!1!==F.highlightSpecialChars,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{highlightSpecialChars:e.target.checked}))},children:"highlightSpecialChars"}),(0,Ln.jsx)(Xh,{checked:!1!==F.history,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{history:e.target.checked}))},children:"history"}),(0,Ln.jsx)(Xh,{checked:!1!==F.drawSelection,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{drawSelection:e.target.checked}))},children:"drawSelection"}),(0,Ln.jsx)(Xh,{checked:!1!==F.dropCursor,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{dropCursor:e.target.checked}))},children:"dropCursor"}),(0,Ln.jsx)(Xh,{checked:!1!==F.allowMultipleSelections,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{allowMultipleSelections:e.target.checked}))},children:"allowMultipleSelections"}),(0,Ln.jsx)(Xh,{checked:!1!==F.indentOnInput,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{indentOnInput:e.target.checked}))},children:"indentOnInput"}),(0,Ln.jsx)(Xh,{checked:!1!==F.syntaxHighlighting,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{syntaxHighlighting:e.target.checked}))},children:"syntaxHighlighting"}),(0,Ln.jsx)(Xh,{checked:!1!==F.bracketMatching,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{bracketMatching:e.target.checked}))},children:"bracketMatching"}),(0,Ln.jsx)(Xh,{checked:!1!==F.closeBrackets,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{closeBrackets:e.target.checked}))},children:"closeBrackets"}),(0,Ln.jsx)(Xh,{checked:!1!==F.autocompletion,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{autocompletion:e.target.checked}))},children:"autocompletion"}),(0,Ln.jsx)(Xh,{checked:!1!==F.rectangularSelection,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{rectangularSelection:e.target.checked}))},children:"rectangularSelection"}),(0,Ln.jsx)(Xh,{checked:!1!==F.crosshairCursor,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{crosshairCursor:e.target.checked}))},children:"crosshairCursor"}),(0,Ln.jsx)(Xh,{checked:!1!==F.highlightActiveLine,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{highlightActiveLine:e.target.checked}))},children:"highlightActiveLine"}),(0,Ln.jsx)(Xh,{checked:!1!==F.highlightSelectionMatches,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{highlightSelectionMatches:e.target.checked}))},children:"highlightSelectionMatches"}),(0,Ln.jsx)(Xh,{checked:!1!==F.closeBracketsKeymap,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{closeBracketsKeymap:e.target.checked}))},children:"closeBracketsKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==F.defaultKeymap,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{defaultKeymap:e.target.checked}))},children:"defaultKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==F.searchKeymap,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{searchKeymap:e.target.checked}))},children:"searchKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==F.historyKeymap,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{historyKeymap:e.target.checked}))},children:"historyKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==F.foldKeymap,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{foldKeymap:e.target.checked}))},children:"foldKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==F.completionKeymap,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{completionKeymap:e.target.checked}))},children:"completionKeymap"}),(0,Ln.jsx)(Xh,{checked:!1!==F.lintKeymap,onChange:function(e){return q((0,ua.Z)((0,ua.Z)({},F),{},{lintKeymap:e.target.checked}))},children:"lintKeymap"})]}),(0,Ln.jsx)(lh,{source:ph.source})]})]})}var Nh=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;nt.doc.lines)return"0";var r=t.doc.lineAt(t.selection.asSingle().ranges[0].to).number;return e===r?"0":Math.abs(r-e).toString()}})],sg=function(e){var t=e.source,r=fh().theme;return(0,Ln.jsx)(Th,{children:(0,Ln.jsx)(ya.default,{value:t,theme:r,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[Ua.RI.markdown(),ig]})})},og=Bn.div(ag||(ag=i(["\n padding-bottom: 32px;\n"]))),dg=function(e){var t=fh().theme,n=(0,p.useState)("markdown"),a=(0,o.Z)(n,2),i=a[0],s=a[1],d=(0,p.useState)(e.source||""),u=(0,o.Z)(d,2),c=u[0],l=u[1];return(0,p.useEffect)((function(){i&&r(70620)("./sample.".concat(i.toLocaleLowerCase(),".txt")).then((function(e){l(e.default)})).catch((function(e){l("")}))}),[i]),(0,Ln.jsxs)(Th,{children:[(0,Ln.jsx)(ya.default,{value:c,theme:t,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[(0,Ua.vf)(i)].filter(Boolean)}),(0,Ln.jsxs)(og,{children:[(0,Ln.jsxs)("select",{value:i,onChange:function(e){return s(e.target.value)},children:[(0,Ln.jsx)("option",{value:"good",children:"good"}),Ua.UD.sort().map((function(e,t){return(0,Ln.jsx)("option",{value:e,children:e},t)}))]}),(0,Ln.jsxs)("span",{children:["\xa0 Total: ",Ua.UD.length]})]})]})},ug=function(e){(0,c.Z)(r,e);var t=(0,l.Z)(r);function r(e){var n;return(0,d.Z)(this,r),(n=t.call(this)).state=void 0,n.state=e,n}return(0,u.Z)(r,[{key:"eq",value:function(e){return this.state.url===e.state.url&&this.state.to===e.state.to&&this.state.from===e.state.from}},{key:"toDOM",value:function(){var e=document.createElement("a");return e.href=this.state.url,e.target="__blank",e.innerHTML='',e.className="cm-hyper-link-icon",e}},{key:"ignoreEvent",value:function(){return!1}}]),r}(va.l9);function cg(e){var t,r=[],n=(0,T.Z)(e.visibleRanges);try{for(n.s();!(t=n.n()).done;){var a=t.value;(0,ba.qz)(e.state).iterate({from:a.from,to:a.to,enter:function(t){var n=t.type,a=t.from,i=t.to,s=e.state.doc.sliceString(a,i);if("URL"===n.name){var o=va.p.widget({widget:new ug({from:a,to:i,url:s}),side:1});r.push(o.range(i))}}})}}catch(i){n.e(i)}finally{n.f()}return va.p.set(r)}var lg=va.tk.baseTheme({".cm-hyper-link-icon":{display:"inline-block",verticalAlign:"middle",marginLeft:"0.2ch"},".cm-hyper-link-icon svg":{display:"block"}}),pg=[va.lg.fromClass(function(){function e(t){(0,d.Z)(this,e),this.decorations=void 0,this.decorations=cg(t)}return(0,u.Z)(e,[{key:"update",value:function(e){(e.docChanged||e.viewportChanged)&&(this.decorations=cg(e.view))}}]),e}(),{decorations:function(e){return e.decorations}}),lg],Og=function(){var e=fh().theme;return(0,Ln.jsx)(Th,{children:(0,Ln.jsx)(ya.default,{value:'Hyper Link\n====\n\n- https://www.npmjs.com/package/@uiw/react-codemirror this url\n\n[url 1](https://www.npmjs.com)\n[url 2](https://www.npmjs.com/package/@uiw/react-codemirror)\n\n```js\nconst str = "https://www.npmjs.com/package/@uiw/react-codemirror"\n```\n',theme:e,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[Ua.RI.markdown(),pg]})})},fg=function(){var e=(0,p.useState)("readOnly"),t=(0,o.Z)(e,2),r=t[0],n=t[1],a=(0,p.useState)(!1),i=(0,o.Z)(a,2),s=i[0],d=i[1],u=fh().theme,c={};return"editable"===r&&(c.editable=s),"readOnly"===r&&(c.readOnly=s),(0,Ln.jsxs)(Th,{children:[(0,Ln.jsx)(ya.default,(0,ua.Z)((0,ua.Z)({value:"body {\n color: red;\n background-color: #333;\n}\n.header { color: purple; }\n.header { color: #ff4646; }\n.header { color: #167; }\n.header { color: rgb(0 133 160); }\n.header { color: rgb(0, 133, 160); }\n.header { color: rgba(0, 133, 160); }\n.header { color: rgba(0, 133, 160, .775); }\n.header { color: rgb(0 107 128 / 60%); }\n.header { color: hsl(190deg 100% 36% / 53%); }\n.good { color: hsl(240, 100% 50%); }\n.good { color: hsl(240, 100%, 50%); }\n.good { color: hsl(240, 100%, 50%, 0.1); }\n.good { color: hsl(240, 100%, 50%, 10%); }\n.good { color: hsl(240,100%,50%,0.1); }\n.good { color: hsl(180deg, 100%, 50%, 0.1); }\n.good { color: hsl(3.14rad, 100%, 50%, 0.1); }\n.good { color: hsl(200grad, 100%, 50%, 0.1); }\n.good { color: hsl(0.5turn, 100%, 50%, 0.1); }\n.good { color: hsl(-240, -100%, -50%, -0.1); }\n.good { color: hsl(+240, +100%, +50%, +0.1); }\n.good { color: hsl(240.5, 99.99%, 49.999%, 0.9999); }\n.good { color: hsl(.9, .99%, .999%, .9999); }\n.good { color: hsl(0240, 0100%, 0050%, 01); }\n.good { color: hsl(240.0, 100.00%, 50.000%, 1.0000); }\n.good { color: hsl(2400, 1000%, 1000%, 10); }\n.good { color: hsl(-2400.01deg, -1000.5%, -1000.05%, -100); }\n.good { color: hsl(2.40e+2, 1.00e+2%, 5.00e+1%, 1E-3); }\n.good { color: hsl(240 100% 50%); }\n.good { color: hsl(240 100% 50% / 0.1); }\n.good { color: hsla(240, 100%, 50%); }\n.good { color: hsla(240, 100%, 50%, 0.1); }\n.good { color: HSL(240Deg, 100%, 50%); }",theme:u,height:"400px !important"},c),{},{style:{margin:"0 0 23px 0"},extensions:[Ua.RI.css(),Ia]})),(0,Ln.jsxs)("div",{style:{marginBottom:23},children:[(0,Ln.jsxs)("button",{type:"button",onClick:function(){return d(!s)},children:["\u7f16\u8f91\u5668 & ",String(s)]}),(0,Ln.jsxs)("label",{children:[(0,Ln.jsx)("input",{type:"radio",name:"mode",checked:"readOnly"===r,value:"readOnly",onChange:function(e){var t=e.target;return n(t.value)}})," ","readOnly"]}),(0,Ln.jsxs)("label",{children:[(0,Ln.jsx)("input",{type:"radio",name:"mode",checked:"editable"===r,value:"editable",onChange:function(e){var t=e.target;return n(t.value)}})," ","editable"]})]})]})},hg=r(76391);function gg(e){return void 0===e&&(e=[]),(0,hg.ys)({override:[function(t){var r=t.matchBefore(/@(\w+)?/);return r?r&&r.from==r.to&&!t.explicit?null:{from:null==r?void 0:r.from,options:(0,E.Z)(e)}:null}]})}gg();var mg,yg=[{label:"@Walter White"},{label:"@\u76ae\u76ae\u9c81"},{label:"@\u9c81\u897f\u897f"},{label:"@\u4e2d\u672c\u806a"},{label:"@\u30b5\u30c8\u30b7\u30fb\u30ca\u30ab\u30e2\u30c8"},{label:"@\u91ce\u6bd4\u306e\u3073\u592a"},{label:"@\uc131\ub355\uc120"},{label:"@Jesse Pinkman"},{label:'@Gustavo "Gus" Fring'},{label:"@Saul Goodman"},{label:"@Hank Schrader"},{label:"@Skyler White"},{label:"@Mike Ehrmantraut"},{label:"@Lyd\xec\xe3 R\xf4dart\xe9-Q\xfcayle"}],vg=function(e){var t=e.source,r=fh().theme;return(0,Ln.jsx)(Th,{children:(0,Ln.jsx)(ya.default,{value:t,theme:r,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[Ua.RI.markdown(),gg(yg)]})})},bg=Bn.div(mg||(mg=i(["\n padding: 0 0 23px 0;\n"]))),xg=function(e){var t=e.source,r={};Object.keys(a).filter((function(e){return"function"!==typeof a[e]})).filter((function(e){return!/^(defaultSettings)/.test(e)})).forEach((function(e){r[e]=a[e]}));var n=(0,p.useState)(),i=(0,o.Z)(n,2),s=i[0],d=i[1],u=fh(),c=r[s]?r[s]:u.theme;return(0,Ln.jsxs)(Th,{children:[(0,Ln.jsx)(ya.default,{value:t,theme:c,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[Ua.RI.markdown()]}),(0,Ln.jsxs)(bg,{children:["Select Theme:",(0,Ln.jsxs)("select",{value:s,onChange:function(e){d(e.target.value)},children:[(0,Ln.jsx)("option",{children:"Select Theme"}),Object.keys(r).map((function(e,t){return(0,Ln.jsx)("option",{children:e},t)}))]}),(0,Ln.jsx)("br",{}),(0,Ln.jsx)(Lt,{to:"/theme/home",children:"All Theme Example"})]})]})},Rg=Mh.r$.define({combine:function(e){return e.length&&Array.isArray(e)?e.flat():[]}}),Sg=Mh.r$.define({combine:function(e){return e.length&&Array.isArray(e)?Math.min.apply(Math,(0,E.Z)(e)):2}}),Qg=va.p.line({attributes:{class:"cm-zebra-stripe"}});function $g(e){var t,r=e.state.facet(Sg),n=e.state.facet(Rg),a=new Mh.f_,i=(0,T.Z)(e.visibleRanges);try{for(i.s();!(t=i.n()).done;)for(var s=t.value,o=s.from,d=s.to,u=o;u<=d;){var c=e.state.doc.lineAt(u);c.number%r===0&&0===n.length&&a.add(c.from,c.from,Qg),n.length>0&&n.flat().includes(c.number)&&a.add(c.from,c.from,Qg),u=c.to+1}}catch(l){i.e(l)}finally{i.f()}return a.finish()}var wg,Pg=va.lg.fromClass(function(){function e(t){(0,d.Z)(this,e),this.decorations=void 0,this.decorations=$g(t)}return(0,u.Z)(e,[{key:"update",value:function(e){this.decorations=$g(e.view)}}]),e}(),{decorations:function(e){return e.decorations}});function Tg(e){void 0===e&&(e={});var t=e.className,r=void 0===t?"cm-zebra-stripe":t;Qg=va.p.line({attributes:{class:r}}),e.lineNumber&&Array.isArray(e.lineNumber)?(e.step=null,e.lineNumber=e.lineNumber.map((function(e){return Array.isArray(e)&&"number"===typeof e[0]&&"number"===typeof e[1]?(t=e[0],r=e[1],n=1,Array.from({length:(r-t)/n+1},(function(e,r){return t+r*n}))):e;var t,r,n}))):e.lineNumber=null;var n=[null===e.lineNumber?[]:Rg.of(e.lineNumber||[]),null===e.step?[]:Sg.of(e.step||2),Pg];if(r){var a=function(e){var t;return void 0===e&&(e={}),va.tk.baseTheme((t={},(0,g.Z)(t,"&light ."+e.className,{backgroundColor:e.lightColor||"#eef6ff"}),(0,g.Z)(t,"&dark ."+e.className,{backgroundColor:e.darkColor||"#3a404d"}),t))}({lightColor:e.lightColor,darkColor:e.darkColor,className:r});n.push(a)}return n}var Eg,kg,Xg,jg,Dg=Bn.div(wg||(wg=i(["\n padding-bottom: 24px;\n display: flex;\n gap: 18px;\n"]))),Cg=function(e){var t=e.source,r=fh().theme,n=(0,p.useState)(2),a=(0,o.Z)(n,2),i=a[0],s=a[1],d=Tg({step:i});return(0,Ln.jsxs)(Th,{children:[(0,Ln.jsx)(ya.default,{value:t,theme:r,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[Ua.RI.markdown(),d]}),(0,Ln.jsx)(Dg,{children:(0,Ln.jsxs)("select",{value:i,onChange:function(e){return s(Number(e.target.value))},children:[(0,Ln.jsx)("option",{value:1,children:"1"}),(0,Ln.jsx)("option",{value:2,children:"2"}),(0,Ln.jsx)("option",{value:3,children:"3"}),(0,Ln.jsx)("option",{value:4,children:"4"}),(0,Ln.jsx)("option",{value:5,children:"5"}),(0,Ln.jsx)("option",{value:6,children:"6"})]})}),(0,Ln.jsx)(ya.default,{value:t,theme:r,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[Ua.RI.markdown(),Tg({lineNumber:[1,[3,6],10],lightColor:"#aca2ff33",darkColor:"#aca2ff40"})]})]})},Ag=r(50559),_g="// The player has a position, a size, and a current speed.\nclass Player {\n size = new Vec(0.8, 1.5);\n\n constructor(pos, speed) {\n this.pos = pos;\n this.speed = speed;\n }\n\n static create(pos) {\n return new Player(pos.plus(new Vec(0, -0.5)), new Vec(0, 0));\n }\n}\n\n// Lava block. When you touch it, you die.\nclass Lava {\n size = new Vec(1, 1)\n\n constructor(pos, speed, reset) {\n this.pos = pos;\n this.speed = speed;\n this.reset = reset;\n }\n\n static horizontal(pos) {\n return new Lava(pos, new Vec(2, 0));\n }\n\n static vertical(pos) {\n return new Lava(pos, new Vec(0, 2));\n }\n\n static drip(pos) {\n return new Lava(pos, new Vec(0, 3), pos);\n }\n}\n",Fg=Ag.default.Original,qg=Ag.default.Modified,Ig=function(){var e=(0,p.useState)("a-b"),t=(0,o.Z)(e,2),r=t[0],n=t[1],a=(0,p.useState)(),i=(0,o.Z)(a,2),s=i[0],d=i[1],u=(0,p.useState)(!0),c=(0,o.Z)(u,2),l=c[0],O=c[1],f=(0,p.useState)(!0),h=(0,o.Z)(f,2),g=h[0],m=h[1],y=(0,p.useState)({}),v=(0,o.Z)(y,2),b=v[0],x=v[1],R=fh().theme,S=(0,p.useState)(_g),Q=(0,o.Z)(S,2),$=Q[0],w=Q[1],P=(0,p.useRef)();return(0,Ln.jsxs)(p.Fragment,{children:[(0,Ln.jsxs)("button",{onClick:function(){P.current=Math.floor(101*Math.random());var e="// hello world"+P.current+"\n"+_g;w(e)},children:["Change Original Value ",P.current]}),(0,Ln.jsxs)(Ag.default,{orientation:r,revertControls:s,collapseUnchanged:b,highlightChanges:l,gutter:g,style:{height:300,overflow:"auto"},theme:R,children:[(0,Ln.jsx)(Fg,{value:$,extensions:[Ua.RI.javascript()],onChange:function(e){}}),(0,Ln.jsx)(qg,{value:'class Player {\n get type() { return "player" }\n\n constructor(pos, speed) {\n this.pos = pos;\n this.speed = speed;\n }\n\n static create(pos) {\n return new Player(pos.plus(new Vec(0, -0.5)), new Vec(0, 0));\n }\n}\n\nclass Lava {\n constructor(pos, speed, reset) {\n this.pos = pos;\n this.speed = speed;\n this.reset = reset;\n }\n\n get type() { return "lava"; }\n\n static create(pos, ch) {\n if (ch == "=") {\n return new Lava(pos, new Vec(2, 0));\n } else if (ch == "|") {\n return new Lava(pos, new Vec(0, 2));\n } else if (ch == "v") {\n return new Lava(pos, new Vec(0, 3), pos);\n }\n }\n}\n\nPlayer.prototype.size = new Vec(0.8, 1.5);\nLava.prototype.size = new Vec(1, 1);\n',extensions:[Ua.RI.javascript(),va.tk.editable.of(!1),Mh.yy.readOnly.of(!0)]})]}),(0,Ln.jsxs)("label",{children:["Orientation",(0,Ln.jsxs)("select",{onChange:function(e){n(e.target.value)},defaultValue:r,children:[(0,Ln.jsx)("option",{value:"",children:"please orientation choose"}),(0,Ln.jsx)("option",{value:"a-b",children:"a-b"}),(0,Ln.jsx)("option",{value:"b-a",children:"b-a"})]})]}),(0,Ln.jsx)("br",{}),(0,Ln.jsxs)("label",{children:["Revert buttons",(0,Ln.jsxs)("select",{defaultValue:s,onChange:function(e){return d(e.target.value)},children:[(0,Ln.jsx)("option",{value:"",children:"please revertControls choose"}),(0,Ln.jsx)("option",{value:"a-to-b",children:"a-to-b"}),(0,Ln.jsx)("option",{value:"b-to-a",children:"b-to-a"})]})]}),(0,Ln.jsx)("br",{}),(0,Ln.jsxs)("label",{children:["Highlight changes",(0,Ln.jsx)("input",{type:"checkbox",checked:!!l,onChange:function(e){return O(e.target.checked)}})]}),(0,Ln.jsx)("br",{}),(0,Ln.jsxs)("label",{children:["Gutter markers",(0,Ln.jsx)("input",{type:"checkbox",checked:!!g,onChange:function(e){return m(e.target.checked)}})]}),(0,Ln.jsxs)("label",{children:["Collapse unchanged code",(0,Ln.jsx)("input",{type:"checkbox",checked:!!b,onChange:function(e){return x(e.target.checked?{}:void 0)}})]})]})},Ug=Bn.pre(Eg||(Eg=i(["\n border: 1px solid var(--color-border-default);\n background-color: var(--color-canvas-subtle);\n display: inline-block;\n padding: 10px 13px;\n border-radius: 5px;\n"]))),Wg=Bn.span(kg||(kg=i(["\n ","\n ","\n"])),(function(e){return 0===e.number&&xn(Xg||(Xg=i(["\n color: var(--color-accent-emphasis);\n "])))}),(function(e){return 2===e.number&&xn(jg||(jg=i(["\n color: var(--color-danger-fg);\n "])))})),Ng=function(e){var t=e.value,r=void 0===t?"":t;return(0,Ln.jsx)(Ug,{children:r.split(" ").map((function(e,t){return(0,Ln.jsxs)(Wg,{number:t,children:[e," "]},t)}))})},Zg={},Yg=(0,p.createContext)({}),Vg=function(e,t){return(0,Wa.Z)({},e,t)},Gg=function(e){var t=e.children,r=e.value,n=(0,p.useReducer)(Vg,(0,Wa.Z)({},Zg,r)),a=(0,o.Z)(n,2),i=a[0],s=a[1];return(0,Ln.jsx)(Yg.Provider,{value:(0,Wa.Z)({},i,{dispatch:s}),children:t})},Bg=["className","children"],zg=p.forwardRef((function(e,t){var r=e.className,n=e.children,a=(0,ca.Z)(e,Bg),i=[am+"-code",r].filter(Boolean).join(" ").trim();return(0,p.useContext)(Yg).collapse?null:(0,Ln.jsx)("div",(0,Wa.Z)({},a,{className:i,ref:t,children:n}))}));zg.displayName="uiw.CodeLayoutCode";var Lg=["className","children"],Mg=p.forwardRef((function(e,t){var r=e.className,n=e.children,a=(0,ca.Z)(e,Lg),i=[am+"-preview",r].filter(Boolean).join(" ").trim();return(0,Ln.jsx)("div",(0,Wa.Z)({},a,{className:i,ref:t,children:n}))}));Mg.displayName="uiw.Preview";var Jg=function(e){return(0,Ln.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",children:(0,Ln.jsx)("path",{d:"M8.64 5.23a1 1 0 0 0-1.41.13l-5 6a1 1 0 0 0 0 1.27l4.83 6a1 1 0 0 0 .78.37 1 1 0 0 0 .78-1.63L4.29 12l4.48-5.36a1 1 0 0 0-.13-1.41zm13.14 6.14-4.78-6a1 1 0 0 0-1.41-.15 1 1 0 0 0-.15 1.41L19.71 12l-4.48 5.37a1 1 0 0 0 .13 1.41A1 1 0 0 0 16 19a1 1 0 0 0 .77-.36l5-6a1 1 0 0 0 .01-1.27z","data-name":"code"})})},Hg=function(e){return(0,Ln.jsxs)("svg",{viewBox:"0 0 24 24",fill:"currentColor",children:[(0,Ln.jsx)("path",{d:"M18 21h-6a3 3 0 0 1-3-3v-6a3 3 0 0 1 3-3h6a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3zm-6-10a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1z"}),(0,Ln.jsx)("path",{d:"M9.73 15H5.67A2.68 2.68 0 0 1 3 12.33V5.67A2.68 2.68 0 0 1 5.67 3h6.66A2.68 2.68 0 0 1 15 5.67V9.4h-2V5.67a.67.67 0 0 0-.67-.67H5.67a.67.67 0 0 0-.67.67v6.66a.67.67 0 0 0 .67.67h4.06z"})]})},Kg=function(e){return(0,Ln.jsxs)("svg",{viewBox:"0 0 24 24",fill:"green",children:[(0,Ln.jsx)("path",{d:"M9.71 11.29a1 1 0 0 0-1.42 1.42l3 3A1 1 0 0 0 12 16a1 1 0 0 0 .72-.34l7-8a1 1 0 0 0-1.5-1.32L12 13.54z"}),(0,Ln.jsx)("path",{d:"M21 11a1 1 0 0 0-1 1 8 8 0 0 1-8 8A8 8 0 0 1 6.33 6.36 7.93 7.93 0 0 1 12 4a8.79 8.79 0 0 1 1.9.22 1 1 0 1 0 .47-1.94A10.54 10.54 0 0 0 12 2a10 10 0 0 0-7 17.09A9.93 9.93 0 0 0 12 22a10 10 0 0 0 10-10 1 1 0 0 0-1-1z"})]})},em=function(e){var t=(0,p.useState)(!1),r=(0,o.Z)(t,2),n=r[0],a=r[1];return(0,Ln.jsx)("button",{onClick:function(){a(!0),ah()(e.text||"",(function(){var e=setTimeout((function(){a(!1),clearTimeout(e)}),2e3)}))},children:n?(0,Ln.jsx)(Kg,{}):(0,Ln.jsx)(Hg,{})})},tm=["className","children","extra","text","copied","collapse","visibleButton","visible"],rm=p.forwardRef((function(e,t){var r=e.className,n=e.children,a=e.extra,i=e.text,s=void 0===i?"":i,o=e.copied,d=void 0===o||o,u=e.collapse,c=void 0===u||u,l=e.visibleButton,O=void 0===l||l,f=e.visible,h=void 0===f||f,g=(0,ca.Z)(e,tm),m=(0,p.useContext)(Yg),y=[am+"-toolbar",r].filter(Boolean).join(" ").trim();if((0,p.useEffect)((function(){return m.dispatch({collapse:c})}),[c]),!h)return null;return(0,Ln.jsxs)("div",(0,Wa.Z)({className:y},g,{ref:t,children:[(0,Ln.jsx)("div",{className:am+"-title",children:n}),(0,Ln.jsxs)("div",{className:am+"-extra",children:[a,d&&(0,Ln.jsx)(em,{text:s}),O&&(0,Ln.jsx)("button",{onClick:function(){return m.dispatch({collapse:!m.collapse})},children:(0,Ln.jsx)(Jg,{})})]})]}))}));rm.displayName="uiw.Toolbar";var nm=["children","prefixCls","className","bordered","disableCheckered"],am="w-rcpl",im=p.forwardRef((function(e,t){var r=e.children,n=e.prefixCls,a=void 0===n?am:n,i=e.className,s=e.bordered,o=void 0===s||s,d=e.disableCheckered,u=(0,ca.Z)(e,nm),c=[a,i,o?"w-bordered":null,d?"w-disable-checkered":null].filter(Boolean).join(" ").trim();return(0,Ln.jsx)("div",(0,Wa.Z)({ref:t},u,{className:c,children:p.Children.map(r,(function(e,t){return p.isValidElement(e)?p.cloneElement(e,(0,Wa.Z)({},e.props,{key:t})):e}))}))})),sm=p.forwardRef((function(e,t){return(0,Ln.jsx)(Gg,{value:{collapse:!1},children:(0,Ln.jsx)(im,(0,Wa.Z)({},e,{ref:t}))})}));sm.Preview=Mg,sm.Toolbar=rm,sm.Code=zg;var om=sm,dm=(r(48970),r(8784),r(82258),r(91e3),function(e){for(var t,r=/([^?=&]+)=([^&]*)/g,n={};t=r.exec(e);)n[t[1]]=t[2];return n}),um=function(e){void 0===e&&(e="");var t=/mdx:(.[\w|:]+)/i.exec(e)||[],r=(0,o.Z)(t,1)[0];return(void 0===r?"":r).replace(/^mdx:preview:?/,"")},cm=function(e){return void 0===e&&(e=""),e&&e.includes("mdx:preview")};var lm,pm,Om,fm,hm,gm=["inline","node"],mm=["mdData"],ym=["mdData"],vm=om.Preview,bm=om.Code,xm=om.Toolbar,Rm=Bn(om)(lm||(lm=i(["\n & + div.copied {\n display: none !important;\n }\n"]))),Sm=function(e){var t,r=e.inline,n=e.node,a=la(e,gm),i=(0,p.useRef)(null),s=a.mdData,o=la(a,mm),d=a["data-meta"];if(r||!cm(d))return(0,Ln.jsx)("code",(0,ua.Z)({},o));var u=null===(t=n.position)||void 0===t?void 0:t.start.line,c=um(d)||String(u),l=null===s||void 0===s?void 0:s.components["".concat(c)];if(c&&"function"===typeof l){var O=(null===s||void 0===s?void 0:s.data[c].value)||"",f=dm(d);return(0,Ln.jsxs)(Rm,{ref:i,children:[(0,Ln.jsx)(vm,{children:(0,Ln.jsx)(l,{})}),(0,Ln.jsx)(xm,{text:O,children:f.title||"Example"}),(0,Ln.jsx)(bm,{children:(0,Ln.jsx)("pre",(0,ua.Z)({},o))})]})}return(0,Ln.jsx)("code",(0,ua.Z)({},o))};function Qm(e){var t=e.mdData,r=la(e,ym);return(0,Ln.jsx)(lh,(0,ua.Z)((0,ua.Z)({},r),{},{style:{paddingTop:30},rehypePlugins:[sf],source:e.source||"",components:{code:function(e){return(0,Ln.jsx)(Sm,(0,ua.Z)((0,ua.Z)({},e),{},{mdData:t}))}}}))}var $m,wm=Bn.div(pm||(pm=i(["\n padding: 30px 38px 120px 38px;\n flex: 1;\n"]))),Pm=Bn.button(Om||(Om=i(["\n position: absolute;\n right: 0;\n"]))),Tm=Bn.div(fm||(fm=i(["\n font-size: 24px;\n padding-bottom: 15px;\n text-transform: capitalize;\n font-weight: bold;\n"]))),Em=Bn.div(hm||(hm=i(["\n position: relative;\n padding: 0 0 22px 0;\n margin-bottom: 16px;\n border-bottom: 1px solid var(--color-border-default);\n "," {\n padding: 6px 0 12px 0;\n }\n "," {\n }\n"])),Tm,Pm),km=function(e){var t=e.themePkg,r=e.mode,n=function(e){var t=(0,p.useState)({source:"",components:{},data:{}}),r=(0,o.Z)(t,2),n=r[0],a=r[1],i=(0,p.useState)(!1),s=(0,o.Z)(i,2),d=s[0],u=s[1];return(0,p.useEffect)((function(){u((function(){return!0}));var t=function(){var t=(0,h.Z)((0,f.Z)().mark((function t(){var r;return(0,f.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e();case 3:(r=t.sent).default&&a(r.default),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),console.warn(t.t0);case 10:u((function(){return!1}));case 11:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();t()}),[e]),{mdData:n,loading:d}}(e.path),a=n.mdData,i=p.Children.toArray(e.children),s=(0,p.useState)(e.preview||"example"),d=(0,o.Z)(s,2),u=d[0],c=d[1],l=r?null===t||void 0===t?void 0:t.replace(/-(light|dark)$/,""):t,O=null===l||void 0===l?void 0:l.replace("@uiw/codemirror-theme-","").replace("-"," "),g=(null===l||void 0===l?void 0:l.replace("@uiw/codemirror-theme-",""))+(r?"-".concat(r):""),m=Us[function(){var e,t=(null===(e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))||void 0===e?void 0:e.map((function(e){return e.slice(0,1).toUpperCase()+e.slice(1).toLowerCase()})).join(""))||"";return t.slice(0,1).toLowerCase()+t.slice(1)}(g)];return(0,Ln.jsx)(Ma,{children:(0,Ln.jsxs)(wm,{children:[e.themePkg&&(0,Ln.jsxs)(Em,{children:[(0,Ln.jsxs)(Tm,{children:[O," Theme"]}),(0,Ln.jsx)("div",{children:(0,Ln.jsx)(Pm,{onClick:function(){return c("document"===u?"example":"document")},children:"document"===u?"Preview Theme Example":"Preview Document"})}),(0,Ln.jsx)(Ng,{value:"npm install ".concat(t," --save")})]}),i.map((function(e,t){return(0,p.cloneElement)(e,{key:t,source:null===a||void 0===a?void 0:a.source})})),a&&("document"===u||!t)&&(0,Ln.jsx)(Qm,{source:a.source,mdData:a}),"example"===u&&t&&g&&(0,Ln.jsx)(Fo,{theme:m})]})})},Xm=[{path:"/",Component:Ft,errorElement:(0,Ln.jsx)(ma,{}),children:[{index:!0,label:"Home",Component:function(){return(0,Ln.jsxs)("div",{className:"wmde-markdown-var",children:[(0,Ln.jsx)(za,{children:"Top"}),(0,Ln.jsx)("dark-mode",{permanent:!0,dark:"Dark",light:"Light",style:{position:"fixed",top:8,left:8,zIndex:99}}),(0,Ln.jsx)(Vo,{fixed:!0,target:"__blank",zIndex:10,href:"https://github.com/uiwjs/react-codemirror"}),(0,Ln.jsxs)(zh,{children:[(0,Ln.jsx)(Zh,{src:zn,alt:"logo"}),(0,Ln.jsxs)(Yh,{children:["React CodeMirror ",(0,Ln.jsxs)("sup",{children:["v","4.21.2"]})]}),(0,Ln.jsx)(Vh,{children:"CodeMirror component for React. "}),(0,Ln.jsxs)(Gh,{children:[(0,Ln.jsx)(Lt,{to:"/editor/theme",className:"special",children:"Theme Editor"}),(0,Ln.jsx)(Lt,{to:"/theme",className:"themes",children:"Themes"}),(0,Ln.jsx)(Lt,{to:"/extensions",className:"extensions",children:"Extensions"}),(0,Ln.jsx)(Lt,{to:"/merge/document",children:"Merge"}),Lh.map((function(e,t){var r=e.href,n=e.label,a=e.style;return(0,Ln.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:r,style:a,children:n},t)}))]})]}),(0,Ln.jsx)(Wh,{}),(0,Ln.jsxs)(Bh,{children:[(0,Ln.jsxs)(nd,{user:"uiwjs",repo:"react-codemirror",children:[(0,Ln.jsx)(nd.Social,{type:"forks",href:"https://github.com/uiwjs/react-codemirror"}),(0,Ln.jsx)(nd.Social,{type:"stars",href:"https://github.com/uiwjs/react-codemirror/stargazers"}),(0,Ln.jsx)(nd.Social,{type:"watchers",href:"https://github.com/uiwjs/react-codemirror/watchers"}),(0,Ln.jsx)("a",{href:"https://www.npmjs.com/package/@uiw/react-codemirror",target:"__blank",children:(0,Ln.jsx)("img",{src:"https://img.shields.io/npm/dm/@uiw/react-codemirror.svg?style=flat",alt:"NPM Downloads"})})]}),(0,Ln.jsx)(od.Version,{scope:"@uiw",packageName:"react-codemirror",href:"https://www.npmjs.com/package/@uiw/react-codemirror"})]})]})}},{path:"extensions",label:"Extensions",Component:da,children:[{index:!0,element:(0,Ln.jsx)(_t,{to:"color",replace:!0})},{path:"basic-setup",label:"basic setup",element:(0,Ln.jsx)(km,{path:function(){return r.e(7324).then(r.bind(r,97324))},children:(0,Ln.jsx)(Dh,{})})},{path:"color",label:"color",element:(0,Ln.jsx)(km,{path:function(){return r.e(7324).then(r.bind(r,97324))},children:(0,Ln.jsx)(fg,{})})},{path:"classname",label:"classname",element:(0,Ln.jsx)(km,{path:function(){return r.e(2942).then(r.bind(r,52942))},children:(0,Ln.jsx)(Kh,{})})},{path:"events",label:"events",element:(0,Ln.jsx)(km,{path:function(){return r.e(2211).then(r.bind(r,32211))},children:(0,Ln.jsx)(ng,{})})},{path:"hyper-link",label:"hyper link",element:(0,Ln.jsx)(km,{path:function(){return r.e(6971).then(r.bind(r,16971))},children:(0,Ln.jsx)(Og,{})})},{path:"line-numbers-relative",label:"line numbers relative",element:(0,Ln.jsx)(km,{path:function(){return r.e(4185).then(r.bind(r,94185))},children:(0,Ln.jsx)(sg,{})})},{path:"languages",label:"languages",element:(0,Ln.jsx)(km,{path:function(){return r.e(5797).then(r.bind(r,35797))},children:(0,Ln.jsx)(dg,{})})},{path:"mentions",label:"mentions",element:(0,Ln.jsx)(km,{path:function(){return r.e(6453).then(r.bind(r,86453))},children:(0,Ln.jsx)(vg,{})})},{path:"themes-all",label:"themes all",element:(0,Ln.jsx)(km,{path:function(){return r.e(3294).then(r.bind(r,33294))},children:(0,Ln.jsx)(xg,{})})},{path:"zebra-stripes",label:"zebra stripes",element:(0,Ln.jsx)(km,{path:function(){return r.e(1958).then(r.bind(r,81958))},children:(0,Ln.jsx)(Cg,{})})}]},{path:"editor/theme",label:"Themes Editor",Component:da,children:[{index:!0,element:(0,Ln.jsx)(_t,{to:"single",replace:!0})},{path:":type",Component:function(){var e=mt(),t=function(){var e=p.useContext(pt).matches,t=e[e.length-1];return t?t.params:{}}(),r=t.type,n=void 0===r?"light":r,a=(0,p.useState)((0,ro.javascript)({jsx:!0})),i=(0,o.Z)(a,2),s=i[0],d=i[1],u=(0,p.useState)(""),c=(0,o.Z)(u,2),l=c[0],O=c[1],f=(0,p.useState)("jsx"),h=(0,o.Z)(f,2),m=h[0],y=h[1],v=(0,p.useState)("light"),b=(0,o.Z)(v,2),x=b[0],R=b[1],S=(0,p.useState)({background:"#ffffff",foreground:"#4D4D4C",caret:"#AEAFAD",selection:"#D6D6D6",selectionMatch:"#D6D6D6",gutterBackground:"#FFFFFF",gutterForeground:"#4D4D4C",gutterBorder:"#dddddd",gutterActiveForeground:"",lineHighlight:"#EFEFEF"}),Q=(0,o.Z)(S,2),$=Q[0],w=Q[1],P=(0,p.useState)(no),T=(0,o.Z)(P,2),E=T[0],k=T[1],X=Ka({theme:x,settings:(0,ua.Z)({},$),styles:[Wo(E.comment,{tag:Ja.pJ.comment}),Wo(E.lineComment,{tag:Ja.pJ.lineComment}),Wo(E.blockComment,{tag:Ja.pJ.blockComment}),Wo(E.docComment,{tag:Ja.pJ.docComment}),Wo(E.name,{tag:Ja.pJ.name}),Wo(E.typeDefinition,{tag:Ja.pJ.definition(Ja.pJ.typeName)}),Wo(E.typeStandard,{tag:Ja.pJ.standard(Ja.pJ.typeName)}),Wo(E.typeName,{tag:Ja.pJ.typeName}),Wo(E.tagNameStandard,{tag:Ja.pJ.standard(Ja.pJ.tagName)}),Wo(E.tagName,{tag:Ja.pJ.tagName}),Wo(E.variableName,{tag:Ja.pJ.variableName}),Wo(E.variableNameDefinition,{tag:Ja.pJ.definition(Ja.pJ.variableName)}),Wo(E.variableNameFunction,{tag:Ja.pJ.function(Ja.pJ.variableName)}),Wo(E.propertyName,{tag:Ja.pJ.propertyName}),Wo(E.propertyNameDefinition,{tag:Ja.pJ.definition(Ja.pJ.propertyName)}),Wo(E.propertyNameSpecial,{tag:Ja.pJ.special(Ja.pJ.propertyName)}),Wo(E.propertyNameFunction,{tag:Ja.pJ.function(Ja.pJ.propertyName)}),Wo(E.attributeName,{tag:Ja.pJ.attributeName}),Wo(E.attributeValue,{tag:Ja.pJ.attributeValue}),Wo(E.className,{tag:Ja.pJ.className}),Wo(E.classNameConstant,{tag:Ja.pJ.constant(Ja.pJ.className)}),Wo(E.labelName,{tag:Ja.pJ.labelName}),Wo(E.namespace,{tag:Ja.pJ.namespace}),Wo(E.macroName,{tag:Ja.pJ.macroName}),Wo(E.literal,{tag:Ja.pJ.literal}),Wo(E.string,{tag:Ja.pJ.string}),Wo(E.stringSpecial,{tag:Ja.pJ.special(Ja.pJ.string)}),Wo(E.docString,{tag:Ja.pJ.docString}),Wo(E.character,{tag:Ja.pJ.character}),Wo(E.number,{tag:Ja.pJ.number}),Wo(E.integer,{tag:Ja.pJ.integer}),Wo(E.float,{tag:Ja.pJ.float}),Wo(E.bool,{tag:Ja.pJ.bool}),Wo(E.regexp,{tag:Ja.pJ.regexp}),Wo(E.escape,{tag:Ja.pJ.escape}),Wo(E.color,{tag:Ja.pJ.color}),Wo(E.url,{tag:Ja.pJ.url}),Wo(E.keyword,{tag:Ja.pJ.keyword}),Wo(E.self,{tag:Ja.pJ.self}),Wo(E.null,{tag:Ja.pJ.null}),Wo(E.atom,{tag:Ja.pJ.atom}),Wo(E.unit,{tag:Ja.pJ.unit}),Wo(E.modifier,{tag:Ja.pJ.modifier}),Wo(E.operatorKeyword,{tag:Ja.pJ.operatorKeyword}),Wo(E.controlKeyword,{tag:Ja.pJ.controlKeyword}),Wo(E.definitionKeyword,{tag:Ja.pJ.definitionKeyword}),Wo(E.moduleKeyword,{tag:Ja.pJ.moduleKeyword}),Wo(E.operator,{tag:Ja.pJ.operator}),Wo(E.derefOperator,{tag:Ja.pJ.derefOperator}),Wo(E.arithmeticOperator,{tag:Ja.pJ.arithmeticOperator}),Wo(E.logicOperator,{tag:Ja.pJ.logicOperator}),Wo(E.bitwiseOperator,{tag:Ja.pJ.bitwiseOperator}),Wo(E.compareOperator,{tag:Ja.pJ.compareOperator}),Wo(E.updateOperator,{tag:Ja.pJ.updateOperator}),Wo(E.definitionOperator,{tag:Ja.pJ.definitionOperator}),Wo(E.typeOperator,{tag:Ja.pJ.typeOperator}),Wo(E.controlOperator,{tag:Ja.pJ.controlOperator}),Wo(E.punctuation,{tag:Ja.pJ.punctuation}),Wo(E.separator,{tag:Ja.pJ.separator}),Wo(E.bracket,{tag:Ja.pJ.bracket}),Wo(E.angleBracket,{tag:Ja.pJ.angleBracket}),Wo(E.squareBracket,{tag:Ja.pJ.squareBracket}),Wo(E.paren,{tag:Ja.pJ.paren}),Wo(E.brace,{tag:Ja.pJ.brace}),Wo(E.content,{tag:Ja.pJ.content}),Wo(E.heading,{tag:Ja.pJ.heading}),Wo(E.heading1,{tag:Ja.pJ.heading1}),Wo(E.heading2,{tag:Ja.pJ.heading2}),Wo(E.heading3,{tag:Ja.pJ.heading3}),Wo(E.heading4,{tag:Ja.pJ.heading4}),Wo(E.heading5,{tag:Ja.pJ.heading5}),Wo(E.heading6,{tag:Ja.pJ.heading6}),Wo(E.contentSeparator,{tag:Ja.pJ.contentSeparator}),Wo(E.list,{tag:Ja.pJ.list}),Wo(E.quote,{tag:Ja.pJ.quote}),Wo(E.emphasis,{tag:Ja.pJ.emphasis}),Wo(E.strong,{tag:Ja.pJ.strong}),Wo(E.link,{tag:Ja.pJ.link}),Wo(E.monospace,{tag:Ja.pJ.monospace}),Wo(E.strikethrough,{tag:Ja.pJ.strikethrough}),Wo(E.inserted,{tag:Ja.pJ.inserted}),Wo(E.deleted,{tag:Ja.pJ.deleted}),Wo(E.changed,{tag:Ja.pJ.changed}),Wo(E.invalid,{tag:Ja.pJ.invalid}),Wo(E.meta,{tag:Ja.pJ.meta}),Wo(E.documentMeta,{tag:Ja.pJ.documentMeta}),Wo(E.annotation,{tag:Ja.pJ.annotation}),Wo(E.processingInstruction,{tag:Ja.pJ.processingInstruction})].flat()});return(0,Ln.jsxs)(p.Fragment,{children:[(0,Ln.jsxs)(qo,{children:[(0,Ln.jsx)(Oo,{theme:x,onChange:function(e){return R(e)}}),(0,Ln.jsx)(Uo,{children:"Editor"}),Object.keys($).map((function(e,t){return(0,Ln.jsx)(po,{color:$[e],onChange:function(t){return w((0,ua.Z)((0,ua.Z)({},$),{},(0,g.Z)({},e,t.target.value)))},children:e},t)})),(0,Ln.jsx)(Uo,{children:"Syntax Highlighting"}),Object.keys(E).map((function(e,t){return(0,Ln.jsx)(po,{color:E[e],onChange:function(t){return k((0,ua.Z)((0,ua.Z)({},E),{},(0,g.Z)({},e,t.target.value)))},children:e},t)}))]}),(0,Ln.jsxs)(Io,{children:["single"===n&&(0,Ln.jsx)(ya.default,{readOnly:"code"===m,theme:X,extensions:[s,Ia],value:"code"===m?ao((0,ua.Z)((0,ua.Z)((0,ua.Z)({},$),E),{},{dark:x})):l,height:"100% !important",style:{minHeight:"100%"}}),(0,Ln.jsxs)(ho,{value:n,onChange:function(t){return e("/editor/theme/".concat(t.target.value))},children:[(0,Ln.jsx)("option",{value:"single",children:"Single language"}),(0,Ln.jsx)("option",{value:"multiple",children:"Multiple languages"})]}),"single"===n&&(0,Ln.jsx)(mo,{style:{top:40},styles:(0,ua.Z)((0,ua.Z)((0,ua.Z)({},$),E),{},{dark:x}),onChange:function(e,t,r){y(t),O(e||""),d(r||[])}}),"multiple"===n&&(0,Ln.jsx)(Fo,{theme:X,style:{padding:"30px 30px",maxWidth:860}})]})]})}}]},{path:"theme",label:"Theme",Component:da,children:[{index:!0,element:(0,Ln.jsx)(_t,{to:"home",replace:!0})},{path:"all",element:(0,Ln.jsx)(_t,{to:"/theme/home",replace:!0})},{path:"home",label:"Home",Component:function(){return(0,Ln.jsx)(Ma,{children:(0,Ln.jsx)(Ns,{children:Object.keys(Us).map((function(e,t){var r=(function(){var e;return null===(e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))||void 0===e?void 0:e.map((function(e){return e.toLowerCase()})).join(",").split(",")}(e)||[]).join("-").replace(/-light$/,"/light").replace(/-dark$/,"/dark");return(0,Ln.jsx)(Lt,{to:"/theme/data/".concat(r),children:(0,Ln.jsxs)(Zs,{children:[(0,Ln.jsx)(Ys,{children:Ws(e)}),(0,Ln.jsx)(Vs,{value:"import React, {useState} from 'react';\n\n// My favorite component\nconst Counter = () => {\n const [value, setValue] = useState(0);\n\n return {value};\n};",height:"165px !important",theme:Us[e],extensions:[Ia,Ua.RI.jsx()]})]})},t)}))})})}},{path:"data",element:(0,Ln.jsx)(_t,{to:"sublime",replace:!0})},{path:"doc",label:"Document",element:(0,Ln.jsx)(km,{preview:"document",themePkg:"@uiw/codemirror-themes",path:function(){return r.e(1811).then(r.bind(r,51811))}})},{path:"data/abcdef",label:"Abcdef",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-abcdef",path:function(){return r.e(2578).then(r.bind(r,22578))}})},{path:"data/androidstudio",label:"Android Studio",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-androidstudio",path:function(){return r.e(6783).then(r.bind(r,46783))}})},{path:"data/atomone",label:"Atomone",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-atomone",path:function(){return r.e(1353).then(r.bind(r,31353))}})},{path:"data/aura",label:"Aura",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-aura",path:function(){return r.e(3175).then(r.bind(r,3175))}})},{path:"data/bbedit",label:"bbedit",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-bbedit",path:function(){return r.e(2224).then(r.bind(r,12224))}})},{path:"data/bespin",label:"bespin",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-bespin",path:function(){return r.e(9482).then(r.bind(r,9482))}})},{path:"data/dracula",label:"dracula",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-dracula",path:function(){return r.e(8282).then(r.bind(r,18282))}})},{path:"data/darcula",label:"darcula",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-darcula",path:function(){return r.e(2648).then(r.bind(r,42648))}})},{path:"data/duotone/light",label:"Duotone Light",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-duotone",mode:"light",path:function(){return r.e(6499).then(r.bind(r,6499))}})},{path:"data/duotone/dark",label:"Duotone Dark",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-duotone",mode:"dark",path:function(){return r.e(6499).then(r.bind(r,6499))}})},{path:"data/eclipse",label:"Eclipse",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-eclipse",path:function(){return r.e(8313).then(r.bind(r,68313))}})},{path:"data/github/light",label:"Github Light",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-github",mode:"light",path:function(){return r.e(2277).then(r.bind(r,92277))}})},{path:"data/github/dark",label:"Github Dark",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-github",mode:"dark",path:function(){return r.e(2277).then(r.bind(r,92277))}})},{path:"data/gruvbox-dark",element:(0,Ln.jsx)(_t,{to:"/theme/data/gruvbox/dark",replace:!0})},{path:"data/gruvbox/dark",label:"Gruvbox Dark",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-gruvbox-dark",mode:"dark",path:function(){return r.e(6829).then(r.bind(r,96829))}})},{path:"data/gruvbox/light",label:"Gruvbox Light",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-gruvbox-dark",mode:"light",path:function(){return r.e(6829).then(r.bind(r,96829))}})},{path:"data/material/light",label:"Material Light",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-material",mode:"light",path:function(){return r.e(796).then(r.bind(r,90796))}})},{path:"data/material/dark",label:"Material Dark",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-material",mode:"dark",path:function(){return r.e(796).then(r.bind(r,90796))}})},{path:"data/noctis-lilac",label:"noctis lilac",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-noctis-lilac",path:function(){return r.e(622).then(r.bind(r,90622))}})},{path:"data/nord",label:"nord",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-nord",path:function(){return r.e(2607).then(r.bind(r,12607))}})},{path:"data/okaidia",label:"okaidia",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-okaidia",path:function(){return r.e(5113).then(r.bind(r,55113))}})},{path:"data/solarized/light",label:"solarized light",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-solarized",mode:"light",path:function(){return r.e(4724).then(r.bind(r,34724))}})},{path:"data/solarized/dark",label:"solarized dark",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-solarized",mode:"dark",path:function(){return r.e(4724).then(r.bind(r,34724))}})},{path:"data/sublime",label:"sublime",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-sublime",path:function(){return r.e(4873).then(r.bind(r,4873))}})},{path:"data/tokyo-night",label:"tokyo night",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-tokyo-night",path:function(){return r.e(5123).then(r.bind(r,65123))}})},{path:"data/tokyo-night-storm",label:"tokyo night storm",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-tokyo-night-storm",path:function(){return r.e(5520).then(r.bind(r,5520))}})},{path:"data/tokyo-night-day",label:"tokyo night day",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-tokyo-night-day",path:function(){return r.e(6565).then(r.bind(r,36565))}})},{path:"data/vscode",element:(0,Ln.jsx)(_t,{to:"dark",replace:!0})},{path:"data/vscode/dark",label:"VS Code",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-vscode",mode:"dark",path:function(){return r.e(6450).then(r.bind(r,66450))}})},{path:"data/xcode/light",label:"Xcode Light",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-xcode",mode:"light",path:function(){return r.e(9965).then(r.bind(r,19965))}})},{path:"data/xcode/dark",label:"Xcode Dark",element:(0,Ln.jsx)(km,{themePkg:"@uiw/codemirror-theme-xcode",mode:"dark",path:function(){return r.e(9965).then(r.bind(r,19965))}})},{path:"editor",element:(0,Ln.jsx)(_t,{to:"single",replace:!0})}]},{path:"merge",label:"Merge",Component:da,children:[{index:!0,element:(0,Ln.jsx)(_t,{to:"document",replace:!0})},{path:"document",label:"Document",element:(0,Ln.jsx)(km,{path:function(){return r.e(5751).then(r.bind(r,5751))},children:(0,Ln.jsx)(Ig,{})})},{path:"onchange",label:"onChange Example",element:(0,Ln.jsx)(km,{path:function(){return r.e(5670).then(r.bind(r,95670))}})}]},{path:"examples",Component:da,children:[{path:"431",label:"How to remove all syntax highlighting?",Component:function(){return(0,Ln.jsx)(p.Fragment,{children:(0,Ln.jsx)(ya.default,{value:"console.log('hello')",theme:"none",height:"400px !important",width:"100%",style:{margin:"0 0 23px 0",flex:1},extensions:[Ua.RI.markdown()]})})}},{path:"refs",label:"Refs Example",lazy:function(){return r.e(3392).then(r.bind(r,83392))}}]}]}],jm=["children","style"],Dm={display:"flex",alignItems:"center",justifyContent:"center",gap:"1rem",left:0,right:0,top:0,bottom:0,position:"absolute",zIndex:9999},Cm=function(e){var t=e.children,r=e.style,n=la(e,jm);return(0,Ln.jsxs)("div",(0,ua.Z)((0,ua.Z)({},n),{},{style:(0,ua.Z)((0,ua.Z)({},Dm),r),children:[(0,Ln.jsxs)("svg",{width:"25",height:"30",viewBox:"0 0 135 140",fill:"currentColor",children:[(0,Ln.jsxs)("rect",{y:"10",width:"15",height:"120",rx:"6",children:[(0,Ln.jsx)("animate",{attributeName:"height",begin:"0.5s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}),(0,Ln.jsx)("animate",{attributeName:"y",begin:"0.5s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"})]}),(0,Ln.jsxs)("rect",{x:"30",y:"10",width:"15",height:"120",rx:"6",children:[(0,Ln.jsx)("animate",{attributeName:"height",begin:"0.25s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}),(0,Ln.jsx)("animate",{attributeName:"y",begin:"0.25s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"})]}),(0,Ln.jsxs)("rect",{x:"60",width:"15",height:"140",rx:"6",children:[(0,Ln.jsx)("animate",{attributeName:"height",begin:"0s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}),(0,Ln.jsx)("animate",{attributeName:"y",begin:"0s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"})]}),(0,Ln.jsxs)("rect",{x:"90",y:"10",width:"15",height:"120",rx:"6",children:[(0,Ln.jsx)("animate",{attributeName:"height",begin:"0.25s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}),(0,Ln.jsx)("animate",{attributeName:"y",begin:"0.25s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"})]}),(0,Ln.jsxs)("rect",{x:"120",y:"10",width:"15",height:"120",rx:"6",children:[(0,Ln.jsx)("animate",{attributeName:"height",begin:"0.5s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}),(0,Ln.jsx)("animate",{attributeName:"y",begin:"0.5s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"})]})]}),(0,Ln.jsx)("div",{children:t||"\u6b63\u5728\u52a0\u8f7d\u4e2d..."})]}))},Am=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;nt.length?e:t})).length,x=new h.Jq((function(e){if(!m.includes(e.next)){for(var t="",r=0;r-1&&10!==e.next;){if(58===e.next)return;if(40===e.next||91===e.next||123===e.next)return r>0?void e.acceptToken(t.context.lineType):void 0;if((41===e.next||93===e.next||125===e.next)&&r>0)return void e.acceptToken(t.context.lineType);e.advance(),r++}e.acceptToken(t.context.lineType)})),w=new h.Jq((function(e,t){var r=e.peek(-1);if(10==r||13==r){for(;;){if(32==e.next);else if(9!=e.next)break;e.advance()}10!=e.next&&13!=e.next&&35!=e.next&&e.acceptToken(30)}})),P={lineType:1},T=new h.IK({start:P,shift:function(e,t,r,n){if(30===t){var a=function(e){for(var t=0,r=0;r0&&e.acceptToken(63);break}if(34===n){r>0?e.acceptToken(63):e.acceptToken(65,1);break}if(123===n&&t){1==r?e.acceptToken(64,1):e.acceptToken(63,-1);break}92===n&&(e.advance(),e.acceptToken(66,1)),t=36===n,e.advance()}})),te=new h.Jq((function(e){for(var t=!1,r=!1,n=0;;n++){var a=e.next;if(a<0){n>0&&e.acceptToken(67);break}if(39===a&&r){n>1?e.acceptToken(67,-1):e.acceptToken(69,1);break}if(123===a&&t){1==n?e.acceptToken(68,1):e.acceptToken(67,-1);break}92===a&&(e.advance(),e.acceptToken(70,1)),t=36===a,r=39===a,e.advance()}})),re={__proto__:null,assert:22,with:26,let:30,inherit:42,in:48,if:52,then:54,else:56,builtins:70,null:214,true:216,false:216,rec:100,or:108},ne=h.WQ.deserialize({version:14,states:"7QO]QSOOO!sQWO'#DyO#XQ`O'#EjO&QQSO'#C`O&YQTO'#CnO'lQWO'#EWO(VQSO'#C|O(VQSO'#C|OOQO'#DQ'#DQOOQO'#DT'#DTO)dQUO'#DUO*yQSO'#DcOOQO'#Ej'#EjO,XQ`O'#EiOOQO'#Ei'#EiO-wQ`O'#EXOOQO'#Eh'#EhOOQO'#EX'#EXOOQO'#EW'#EWOOQO'#Dw'#DwO]QSO'#CfO]QSO'#ChO/dQSO'#D^O]QSO'#CuO]QSO'#D[O/xQSO'#D_QOQSOOO/}QSO'#CdO0`Q`O,5:eO3XQSO,5:eO3aQSO,5:eO4sQSO'#EOOOQO'#Cm'#CmOOQO'#Df'#DfO4}QSO,59wO]QSO'#CpO5`QSO'#ClO5eQSO'#EUO]QSO,58zO5sQSO,58zO5xQSO,58zOOQP'#EQ'#EQOOQP'#Dg'#DgO5}QTO,59YOOQO,59Y,59YO]QSO'#CoO6]QSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO6|QWO,59hO8VQSO'#D]O/xQSO'#D^OOQO,59h,59hOOQQ'#En'#EnOOQQ'#Dj'#DjO8hQUO,59pOOQO,59p,59pO]QSO'#DVOOQO'#Dk'#DkO8vQSO,59}OOQO,59},59}O8}QSO'#EiO6]QSO,59jOOQO,59i,59iO9XQSO,59QO9^QSO,59SO9cQSO,59UO]QSO,59UOOQO,59x,59xO9tQSO,59aO9yQSO,59vOOQO,59y,59yO:OQSO'#DhO;hQSO,5:jO]QSO,59OO;rQWO1G0PO;zQSO1G0POOQO1G0P1G0POOQO-E7d-E7dOOQO1G/c1G/cOqAN>qO!$ZQSO<}AN>}O!$iQSO,59jO)rQSO7+$p",stateData:"!$x~O!jOSPOSQOS~OTQOUPOZdO]eO_fOfhOjgOs[Ou[Ov[Oz[O{[O|[O}[O!SiO!UZO!sSO#QVO#ZUO#_WO#`XO#aYO~OTkOVlOXnOeuO!sSO!usO~O!lvO!pwOT#^XU#^X_#^Xf#^Xn#^Xo#^Xs#^Xu#^Xv#^Xz#^X{#^X|#^X}#^X!S#^X!U#^X!`#^X!n#^X!s#^X!v#^X!|#^X!}#^X#O#^X#P#^X#Q#^X#R#^X#S#^X#T#^X#U#^X#V#^X#W#^X#X#^X#Y#^X#_#^X#`#^X#a#^X!q#^Xk#^Xg#^XV#^X!o#^Xl#^X~O!lvO!pxO~O!ayO!b}O!c|O!dyO~On!TOo!VO!n!OO!|!PO!}!PO#O!QO#P!RO#Q!SO#R!TO#S!UO#T!WO#U!XO#V!YO#W!ZO#X![O#Y!]O~O!`!zX!q!zXk!zXg!zXV!zX!o!zXl!zX~P&hOT[OU!_O_!`OfhOs[Ou[Ov[Oz[O{[O|[O}[O!SiO!UZO!sSO#QVO#ZUO#_WO#`XO#aYO~O!e!bO!f!fO!g!eO!h!bO~OT[OU!_O_!`OfhOs[Ou[Ov[Oz[O{[O|[O}[O!SiO!UZO!sSO#_WO#`XO#aYO~O!T!iO~P)rOT#]XU#]X_#]Xf#]Xs#]Xu#]Xv#]Xz#]X{#]X|#]X}#]X!S#]X!U#]X!s#]X#_#]X#`#]X#a#]X~O!v!kOn#]Xo#]X!`#]X!n#]X!|#]X!}#]X#O#]X#P#]X#Q#]X#R#]X#S#]X#T#]X#U#]X#V#]X#W#]X#X#]X#Y#]X!q#]Xk#]Xg#]XV#]X!o#]Xl#]X~P+QOn!{Xo!{X!`!{X!n!{X!|!{X!}!{X#O!{X#P!{X#Q!{X#R!{X#S!{X#T!{X#U!{X#V!{X#W!{X#X!{X#Y!{X!q!{Xk!{Xg!{XV!{X!o!{Xl!{X~P)rOToOU!_OeuOh!pO!sSO!usO~OU!_O~O!n!wO!v!uOVWX!oWX!w!rX~OT!PaU!Pa_!Paf!Pan!Pao!Pas!Pau!Pav!Paz!Pa{!Pa|!Pa}!Pa!S!Pa!U!Pa!`!Pa!l!ma!n!Pa!p!ma!s!Pa!v!Pa!|!Pa!}!Pa#O!Pa#P!Pa#Q!Pa#R!Pa#S!Pa#T!Pa#U!Pa#V!Pa#W!Pa#X!Pa#Y!Pa#_!Pa#`!Pa#a!Pa!q!Pak!Pag!PaV!Pa!o!Pal!Pa~OV!zO!o!xO~OV!zO~O!v!uOT!rXU!rX_!rXf!rXs!rXu!rXv!rXz!rX{!rX|!rX}!rX!S!rX!U!rX!W!rX!s!rX#_!rX#`!rX#a!rX~O!w!rX!T!rX~P3fOToOV!|OeuO!sSO!usO~O!w#OO~OT#POf#RO!sSO!usO~OU#TO~OT#UO~O!ayO!b}O!c#WO!dyO~OT#YO!sSO!usO~O!n!OO!|!PO!}!PO#O!QO#P!RO#Q!SO~Onpaopa!`pa#Rpa#Spa#Tpa#Upa#Vpa#Wpa#Xpa#Ypa!qpakpagpaVpa!opalpa~P6hOToOV#iOeuO!sSO!usO~O!e!bO!f!fO!g#kO!h!bO~O!T#nO~P)rO!v$mO!T#]X~P+QO!q#pO~O!q#qO~OToOeuOh#rO!sSO!usO~Ok#tO~Og#uO~OT#vO!sSO!usO~O!v!uOT!raU!ra_!raf!ras!rau!rav!raz!ra{!ra|!ra}!ra!S!ra!U!ra!W!ra!s!ra#_!ra#`!ra#a!ra~O!w!ra!T!ra~P:ZOT#yOX#{O~OV$OO!o#|O~OV$PO~OT#PO!q$SO!sSO!usO~OT#yOV$UOXnO~O!l$VO~OV$WO~On!rXo!rX!`!rX!n!rX!|!rX!}!rX#O!rX#P!rX#Q!rX#R!rX#S!rX#T!rX#U!rX#V!rX#W!rX#X!rX#Y!rX!q!rXk!rXg!rXV!rX!o!rXl!rX~P3fO!n!OO!|!POnmiomi!`mi#Omi#Pmi#Qmi#Rmi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~O!}mi~P>iO!}!PO~P>iO!n!OO!|!PO!}!PO#O!QOnmiomi!`mi#Qmi#Rmi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~O#Pmi~P@_O#P!RO~P@_O#R!TOnmiomi!`mi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TO#R!TOomi!`mi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TO#R!TO#S!UOomi!`mi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO!`mi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO!`mi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO#U!XO!`mi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO#U!XO#V!YO!`mi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO#U!XO#V!YO#W!ZO!`mi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hO!`mi!qmikmigmiVmi!omilmi~P&hOV$YO~OTriUri_rifrisriurivrizri{ri|ri}ri!Sri!Uri!sri#_ri#`ri#ari~O!W$[Onriori!`ri!nri!|ri!}ri#Ori#Pri#Qri#Rri#Sri#Tri#Uri#Vri#Wri#Xri#Yri!qrikrigriVri!orilri~PL_O!n!wOVWX!oWX~OV$aO~OT#yOX$bO~O!q$dO~Og$eO~On!rao!ra!`!ra!n!ra!|!ra!}!ra#O!ra#P!ra#Q!ra#R!ra#S!ra#T!ra#U!ra#V!ra#W!ra#X!ra#Y!ra!q!rak!rag!raV!ra!o!ral!ra~P:ZO!W$nO!Tri~PL_Ol$hO~OV$iO~OT#yO~OT#PO!sSO!usO~OT#PO!q$lO!sSO!usO~OToO!sSO!usO~Oz!v!v~",goto:"2g#cPPPP#dPPP#yP#dP#dP#dP$S$Z$k%{%fPPPP&PPPP&fPP&f'[(QP({PP({({)vPPPP({)z({({PPP({P*|+S+_+e+p+z,QPPPPPPPPPPP,WP-cPPPP-{P.VPPP$S$S#d.ZPPPPPPPPPPPPPP/o0e1fPPP2cwcOdeghsv}!f!p!w#O#R#p#q#r#t$V$hSmP#TV#z!x#|$cZqPfr!_!oYtPfr!_!oQ#Z!OQ#o!kR$Z$m!p[OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$n[oPfr!_!o$mW#Pu#Q$e$jS#Y!O!kR#v!uTyS{wbOdeghsv}!f!p!w#O#R#p#q#r#t$V$h!gaOUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$h!g`OUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$h!q^OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$n!q[OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$nT!bY!d!p[OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$nS!qf!`R!tiQ!ymR#}!ySrP!_Q!ofT!{r!oQ{SR#V{S!vkoS#w!v$XR$X#YQ#QuS$R#Q$jR$j$eQ!dYR#j!dQ!hZR#m!hQjOQ!mdQ!neQ!rgQ!shQ!}sQ#SvQ#X}Q#l!fQ#s!pQ#x!wQ$Q#OQ$T#RQ$]#pQ$^#qQ$_#rQ$`#tQ$f$VR$k$hvROdeghsv}!f!p!w#O#R#p#q#r#t$V$hR#UwapPfr!O!_!k!o$mTzS{vTOdeghsv}!f!p!w#O#R#p#q#r#t$V$hQ!^UQ!aVQ#[!PQ#]!QQ#^!RQ#_!SQ#`!TQ#a!UQ#b!VQ#c!WQ#d!XQ#e!YQ#f!ZQ#g![R#h!]!g_OUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$h!f`OUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$hS!gZ!hQ!l_T$g$[$n!j]OUV_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$[$hV!jZ!h$nT!cY!d",nodeNames:"\u26a0 LineComment BlockComment Program Function Identifier { } Formal Ellipses Assert assert With with Let let Bind AttrPath String Interpolation Interpolation inherit ( ) in IfExpr if then else BinaryExpr < > UnaryExpr App Select builtins Null Integer Float Boolean IndentedString Interpolation Path HPath SPath URI Parenthesized AttrSet LetAttrSet RecAttrSet rec ] [ List or",maxTerm:110,nodeProps:[["closedBy",6,"}",22,")",52,"]"],["openedBy",7,"{",23,"(",51,"["]],skippedNodes:[0,1,2],repeatNodeCount:7,tokenData:">P~RtXY#cYZ#c]^#cpq#cqr#trs$Rst$Wtu$ovw$zwx%Vxy%byz%gz{%l{|%q|})]}!O)b!O!P*X!P!Q.r!Q!R0l!R![2e![!]3S!]!^3X!^!_3^!_!`5_!`!a5l!a!b5y!b!c6O!c!}6T!}#O;g#P#Q;l#R#S:u#T#o6T#o#p;q#p#q;v#q#r=65&&a<=90||95==a||a>=97&&a<=122||a>=161;)i+=String.fromCharCode(n),n=e.peek(++t);return he=e,ge=r,fe=i?i.toLowerCase():n==ye||n==ve?void 0:null}var ye=63,ve=33;function be(e,t){this.name=e,this.parent=t,this.hash=t?t.hash:0;for(var r=0;r-1?new be(me(n,1)||"",e):e},reduce:function(e,t){return 67==t&&e?e.parent:e},reuse:function(e,t,r,n){var a=t.type.id;return 4==a||118==a?new be(me(n,1)||"",e):e},hash:function(e){return e?e.hash:0},strict:!1}),Se=new h.Jq((function(e,t){if(60==e.next){e.advance();var r=47==e.next;r&&e.advance();var n=me(e,0);if(void 0!==n){if(!n)return e.acceptToken(r?12:4);var a=t.context?t.context.name:null;if(r){if(n==a)return e.acceptToken(9);if(a&&le[a])return e.acceptToken(148,-2);for(var i=t.context;i;i=i.parent)if(i.name==n)return;e.acceptToken(11)}else{if("script"==n)return e.acceptToken(5);if("style"==n)return e.acceptToken(6);if("textarea"==n)return e.acceptToken(7);if(ce.hasOwnProperty(n))return e.acceptToken(8);a&&pe[a]&&pe[a][n]?e.acceptToken(148,-1):e.acceptToken(4)}}}else e.next<0&&t.context&&e.acceptToken(148)}),{contextual:!0});function Qe(e,t,r){var n=2+e.length;return new h.Jq((function(a){for(var i=0,s=0,o=0;;o++){if(a.next<0){o&&a.acceptToken(t);break}if(0==i&&60==a.next||1==i&&47==a.next||i>=2&&is?a.acceptToken(t,-s):a.acceptToken(r,-(s-2));break}if((10==a.next||13==a.next)&&o){a.acceptToken(t,1);break}i=s=0}else s++;a.advance()}}))}var $e=Qe("script",145,1),we=Qe("style",146,2),Pe=Qe("textarea",147,3),Te=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Ee=125,ke=[58,35,64,47],Xe=new h.Jq((function(e){for(var t=0,r=0;;r++){if(e.next<0){r&&e.acceptToken(149);break}if(45==e.next)t++;else{if(62==e.next&&t>=2){r>3&&e.acceptToken(149,-2);break}t=0}e.advance()}}));function je(e){var t=!1,r=null,n=!1;return function(){return t?n?(n=!1,!0):92===e.next?(n=!0,!0):"double"===r&&34===e.next||"single"===r&&39===e.next?(t=!1,r=null,!0):"template"!==r||96!==e.next||(t=!1,r=null,!0):34===e.next?(t=!0,r="double",!0):39===e.next?(t=!0,r="single",!0):96===e.next&&(t=!0,r="template",!0)}}function De(e){var t=!1,r=!1;return function(){return t?10!==e.next||(t=!1,!0):r?42!==e.next||47!==e.peek(1)||(r=!1,!0):47===e.next&&47===e.peek(1)?(t=!0,!0):47===e.next&&42===e.peek(1)&&(r=!0,!0)}}var Ce=new h.Jq((function(e){if(!ke.includes(e.next))for(var t=De(e),r=je(e),n=[],a=function(e){var t=n.lastIndexOf(e);if(-1!==t)for(;n.length>t;)n.pop()},i=0;;i++){if(e.next<0){i>0&&e.acceptToken(13);break}if(t()||r())e.advance();else{if(0===n.length&&(e.next===Ee||41===e.next||93===e.next)){e.acceptToken(13);break}switch(e.next){case 40:n.push("(");break;case 41:a("(");break;case 91:n.push("[");break;case 93:a("[");break;case 123:n.push("{");break;case Ee:a("{")}e.advance()}}})),Ae=new h.Jq((function(e){if(!ke.includes(e.peek(0)))for(var t=De(e),r=je(e),n=[],a=function(e){var t=n.lastIndexOf(e);if(-1!==t)for(;n.length>t;)n.pop()},i=0;;i++){if(e.next<0){i>0&&e.acceptToken(14);break}if(t()||r())e.advance();else{if(0===n.length&&(e.next===Ee||41===e.next||93===e.next||44===e.next)){e.acceptToken(14);break}switch(e.next){case 40:n.push("(");break;case 41:a("(");break;case 91:n.push("[");break;case 93:a("[");break;case 123:n.push("{");break;case Ee:a("{")}if(0!==i&&0===n.length&&Te.includes(e.next)){e.acceptToken(14);break}e.advance()}}})),_e=(0,g.Gv)({"Text RawText":g.pJ.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":g.pJ.angleBracket,TagName:g.pJ.tagName,"MismatchedCloseTag/TagName":[g.pJ.tagName,g.pJ.invalid],AttributeName:g.pJ.attributeName,UnquotedAttributeValue:g.pJ.attributeValue,"DoubleQuote SingleQuote AttributeValueContent":g.pJ.attributeValue,Is:g.pJ.definitionOperator,"EntityReference CharacterReference":g.pJ.character,Comment:g.pJ.blockComment,ProcessingInst:g.pJ.processingInstruction,DoctypeDecl:g.pJ.documentMeta,"{ }":g.pJ.bracket,"[ ]":g.pJ.squareBracket,"( )":g.pJ.paren,"| , :":g.pJ.punctuation,"...":g.pJ.derefOperator,ComponentName:g.pJ.className,SvelteElementNamespace:g.pJ.namespace,SvelteElementType:g.pJ.tagName,StyleAttributeName:g.pJ.propertyName,BlockType:g.pJ.controlKeyword,BlockPrefix:g.pJ.typeOperator,"UnknownBlock/BlockType":g.pJ.invalid,UnknownBlockContent:g.pJ.invalid,"if then catch":g.pJ.controlKeyword,as:g.pJ.definitionOperator,Variable:g.pJ.variableName,Modifier:g.pJ.modifier,DirectlyInterpolatedAttributeValue:g.pJ.attributeValue,"DirectiveOn/DirectiveName":g.pJ.controlKeyword,"DirectiveOn/DirectiveTarget":g.pJ.typeName,"DirectiveUse/DirectiveName":g.pJ.controlKeyword,"DirectiveUse/DirectiveTarget":g.pJ.function(g.pJ.variableName),"DirectiveBind/DirectiveName":g.pJ.controlKeyword,"DirectiveBind/DirectiveTarget":g.pJ.variableName,"DirectiveLet/DirectiveName":g.pJ.definitionKeyword,"DirectiveLet/DirectiveTarget":g.pJ.definition(g.pJ.variableName),"DirectiveTransition/DirectiveName":g.pJ.operatorKeyword,"DirectiveTransition/DirectiveTarget":g.pJ.function(g.pJ.variableName),"DirectiveIn/DirectiveName":g.pJ.operatorKeyword,"DirectiveIn/DirectiveTarget":g.pJ.function(g.pJ.variableName),"DirectiveOut/DirectiveName":g.pJ.operatorKeyword,"DirectiveOut/DirectiveTarget":g.pJ.function(g.pJ.variableName),"DirectiveAnimate/DirectiveName":g.pJ.operatorKeyword,"DirectiveAnimate/DirectiveTarget":g.pJ.function(g.pJ.variableName),"DirectiveClass/DirectiveName":g.pJ.attributeName,"DirectiveClass/DirectiveTarget":g.pJ.variableName,"DirectiveStyle/DirectiveName":g.pJ.attributeName,"DirectiveStyle/DirectiveTarget":g.pJ.propertyName}),Fe={__proto__:null,"#":41,":":51,"/":59,"@":109},qe={__proto__:null,if:44,else:52,each:64,await:82,then:90,catch:94,key:102,html:110,debug:114,const:118},Ie={__proto__:null,if:54,as:66,then:84,catch:86},Ue={__proto__:null,on:313,bind:317,let:319,class:321,style:323,use:325,transition:327,in:329,out:331,animate:333},We={__proto__:null,svelte:243},Ne=h.WQ.deserialize({version:14,states:"DxQVO#|OOO!ZO#|O'#ClO#[O#|O'#CzO$]O#|O'#DTO%^O#|O'#D_O&_Q'[O'#DjO&mQ&jO'#DrO&rQ&jO'#EpO&wQ&jO'#EsO&|Q&jO'#EvO'XQ&jO'#E|O'^OXO'#DqO'iOYO'#DqO'tO[O'#DqO)TO#|O'#DqOOOW'#Dq'#DqO)[O&zO'#FOO&|Q&jO'#FQO&|Q&jO'#FROOOW'#Fj'#FjOOOW'#FT'#FTQVO#|OOOOOW'#FU'#FUO!ZO#|O,59WOOOW,59W,59WO)uQ'[O'#DjO#[O#|O,59fOOOW,59f,59fO)|Q'[O'#DjOOOW'#FV'#FVO$]O#|O,59oOOOW,59o,59oO*fQ'[O'#DjOOOW'#FW'#FWO%^O#|O,59yOOOW,59y,59yO*mQ'[O'#DjO+OQ&jO,5:UO+TQ,UO,5:VO+YQ,UO,59XO+hQ,UO,59}O,nQ7[O,5:^O,uQ7[O,5;[O,|Q7[O,5;_O-TO,UO'#ExOOQO'#F|'#F|O-YQ7[O,5;bO-dQ7[O,5;hOOOX'#F^'#F^O-kOXO'#EnO-vOXO,5:]OOOY'#F_'#F_O.OOYO'#EqO.ZOYO,5:]OOO['#F`'#F`O.cO[O'#EtO.nO[O,5:]O.vO#|O,5:]O&|Q&jO'#E{OOOW,5:],5:]OOO`'#Fa'#FaO.}O&zO,5;jOOOW,5;j,5;jO/VQ,UO,5;lO/[Q,UO,5;mOOOW-E9R-E9ROOOW-E9S-E9SOOOW1G.r1G.rO/aQ,UO,59`O/fQ,UO,59dOOOW1G/Q1G/QO/kQ,UO,59nOOOW-E9T-E9TOOOW1G/Z1G/ZO/pQ,UO,59tO/xQ,UO,59xOOOW-E9U-E9UOOOW1G/e1G/eO/}Q,UO,59|OOOW1G/p1G/pO0SQMhO1G/qO0[Q'[O1G.sO0aQ'|O1G/RO0fQ'|O1G/[O0kQ'[O1G/fO0pQ'[O1G/iO0uQ!LQO1G/lO0zQ'[O1G/nO1PQ$ISO'#DtOOOO'#Dz'#DzO1[O,UO'#DyOOOO'#EO'#EOO1aO,UO'#D}OOOO'#EQ'#EQO1fO,UO'#EPOOOO'#ES'#ESO1kO,UO'#EROOOO'#EU'#EUO1pO,UO'#ETOOOO'#EW'#EWO1uO,UO'#EVOOOO'#EY'#EYO1zO,UO'#EXOOOO'#E['#E[O2PO,UO'#EZOOOO'#E^'#E^O2UO,UO'#E]OOOO'#E`'#E`O2ZO,UO'#E_O2`Q7[O'#DxO3gQ7[O'#EjO4kQ7[O'#ElOOQO'#Fl'#FlOOQO'#FY'#FYO5rQ7[O1G/xOOOX1G/x1G/xOOQO'#Fm'#FmO5yQ7[O1G0vOOOY1G0v1G0vO6QQ7[O1G0yOOO[1G0y1G0yO6XO(CWO,5;dO6^Q7[O1G0|OOOW1G0|1G0|OOOW1G1S1G1SO6hQ7[O1G1SOOOX-E9[-E9[O6oQ&jO'#EoOOOW1G/w1G/wOOOY-E9]-E9]O6tQ&jO'#ErOOO[-E9^-E9^O6yQ&jO'#EuO7OQ,UO,5;gOOO`-E9_-E9_OOOW1G1U1G1UOOOW1G1W1G1WOOOW1G1X1G1XP)dQ'[O'#DjO7TQ$ISO1G.zO7]Q&jO1G/OO7bQ&jO1G/YP*TQ'[O'#DjO7gQ!LQO1G/`O7oQ!LQO1G/bO7wQ&jO1G/dO7|Q&jO1G/hOOOW7+%]7+%]O8RQ&jO7+%]O8WQ&jO7+$_O8]Q$ISO7+$mO8bQ$ISO7+$vO8mQ&jO7+%QO8rQ&jO7+%TO8wQ&jO7+%WO9PQ&jO7+%YOOQO'#Du'#DuOOQO,5:`,5:`O9UQ&jO,5:`O9ZQ'[O,5:bO9`O07`O,5:eO9eO07`O,5:iO9jO07`O,5:kO9oO07`O,5:mO9tO07`O,5:oO9yO07`O,5:qO:OO07`O,5:sO:TO07`O,5:uO:YO07`O,5:wO:_O07`O,5:yO:dQ?MpO'#FZO:iQ7[O,5:dO;pQ!0LbO,5:dOSQ'[O7+$fOOOW7+$j7+$jOOOW7+$t7+$tOOOW7+$z7+$zO>XQ&jO7+$zOOOW7+$|7+$|O>^Q&jO7+$|OOOW7+%O7+%OOOOW7+%S7+%SOOOW<cQ'|O<hQ'|O<mQ!LQO'#FXO>rQ&jO<zQ&jO1G/|OOQO1G0P1G0POOQO1G0T1G0TOOQO1G0V1G0VOOQO1G0X1G0XOOQO1G0Z1G0ZOOQO1G0]1G0]OOQO1G0_1G0_OOQO1G0a1G0aOOQO1G0c1G0cOOQO1G0e1G0eOOQO,5;u,5;uOOQO-E9X-E9XO?PQ!0LbO1G0OO?_Q'[O'#DjOOQO'#Ed'#EdO?uO#@ItO'#EdO@_O&2DjO'#EdOOQO1G0O1G0OOOQO1G0p1G0pO@fQ!0LbO1G0rOOQO1G0r1G0rOOOW1G0u1G0uOOOW1G0x1G0xOOOW1G0{1G0{O@tQ&jO<^AN>^OOQO7+%h7+%hOOQO7+%j7+%jOOOO'#Fz'#FzOOOO'#F['#F[OAZO#@ItO'#EfOOQO,5;O,5;OOAbO&jO,5;OOOOO'#F]'#F]OAgO&2DjO'#EhOAnO&jO,5;OOOQO7+&^7+&^OOOWAN=lAN=lOOOWG23_G23_OAsQ'[OG23_OAxQ!LQOG23_OOOWG23hG23hOOOO-E9Y-E9YOOQO1G0j1G0jOOOO-E9Z-E9ZOBTQ&jOLD(yOOOWLD(yLD(yOBYQ'[OLD(yOB_Q&jOLD(yOBgQ&jO!$'LeOBlQ&jO!$'LeOOOW!$'Le!$'LeOBqQ'[O!$'LeOOOW!)9BP!)9BPOBvQ&jO!)9BPOB{Q&jO!)9BPOOOW!.K7k!.K7kOCQQ&jO!.K7kOOOW!4/-V!4/-V",stateData:"Cd~O$]OS~OSXOTUOUVOVWOWYOYbOZaO[cObTO!acO!bcO!ccO!dcO#scO#vdO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cObiO!acO!bcO!ccO!dcO#scO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cOblO!acO!bcO!ccO!dcO#scO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cObpO!acO!bcO!ccO!dcO#scO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cObtO!acO!bcO!ccO!dcO#scO$q`O~O]uOcvOdwO!WxO~O!gyO~O!gzO~O!g{O~O!g}O#k}O#m|O~O!g!PO~O$V!QOP#bP$Y#bP~O$W!TOQ#eP$Y#eP~O$X!WOR#hP$Y#hP~OSXOTUOUVOVWOWYOX![OYbOZaO[cObTO!acO!bcO!ccO!dcO#scO$q`O~O$Y!]O~P(PO$Z!^O$r!`O~O]uOcvOdwOi!fO!WxO~Om!gO~P)dOm!iO~P)dO]uOcvOdwOi!lO!WxO~Om!mO~P*TO]uOcvOdwOm!pO!WxO~Og!qO~Oe!rO~Of!sOp!tOy!uO!T!vO~O!X!wO!Z!xO!]!yO~Ob!zO!o#cO#_#bO$b!{O$d!}O$e#PO$f#RO$g#TO$h#VO$i#XO$j#ZO$k#]O$l#_O~O#a#gO~P+sO#a#jO~P+sO#a#lO~P+sO$c#mO~O#a#oO#q#pO~P+sO#a#pO~P+sO$V!QOP#bX$Y#bX~OP#sO$Y#tO~O$W!TOQ#eX$Y#eX~OQ#vO$Y#tO~O$X!WOR#hX$Y#hX~OR#xO$Y#tO~O$Y#tO~P(PO$Z!^O$r#{O~O#a#|O~O#a#}O~Oj$PO~Of$QO~Op$RO~O}$TO!P$UO~Oy$VO~O!T$WO~Og$XO!`$YO~O]$ZO~O^$[O~O^$]O~O]$^O~O]$_O~Ou$`O~O]$aO~Og$cO!k$eO$_$bO~O$c$fO~O$c$gO~O$c$hO~O$c$iO~O$c$jO~O$c$kO~O$c$lO~O$c$mO~O$c$nO~O$c$oO~O#T$pO#V$rOb!lX!o!lX#_!lX#a!lX$b!lX$d!lX$e!lX$f!lX$g!lX$h!lX$i!lX$j!lX$k!lX$l!lX#q!lX~O#V$sOb#^X!o#^X#_#^X#a#^X$b#^X$d#^X$e#^X$f#^X$g#^X$h#^X$i#^X$j#^X$k#^X$l#^X#q#^X~O#T$pO#V$uOb#`X!o#`X#_#`X#a#`X$b#`X$d#`X$e#`X$f#`X$g#`X$h#`X$i#`X$j#`X$k#`X$l#`X#q#`X~O#a$wO~P+sO#a$xO~P+sO#a$yO~P+sO#n$zO~O#a${O#q$|O~P+sO#a$|O~P+sO!g$}O~O!g%OO~O!g%PO~O#a%QO~Og%ROk%SO~Og%TO~Og%UO~Og%VOu%WO~Og%XOu%YO~Og%ZO~Og%[O~Og%]O~Og%^O~Oq%_O~Og%`Oz%aO{%aO~Og%bO~Og%cO~Og%fOt%dO~Og%gO~Og%hO~O]%iO~O!p%jO~O!p%kO~O!p%lO~O!p%mO~O!p%nO~O!p%oO~O!p%pO~O!p%qO~O!p%rO~O!p%sO~O#U%tO~O#T$pO#V%vOb!la!o!la#_!la#a!la$b!la$d!la$e!la$f!la$g!la$h!la$i!la$j!la$k!la$l!la#q!la~Ob%wO#X%yO#Z%zO#]%{O~Ob%wO#X%yO#Z%zO#]%|O~O#T$pO#V%}Ob#`a!o#`a#_#`a#a#`a$b#`a$d#`a$e#`a$f#`a$g#`a$h#`a$i#`a$j#`a$k#`a$l#`a#q#`a~Ob%wO#X%yO#Z%zO#]&OO~O#a&PO~O#a&QO~O#a&RO~O]&SO~Og&TO~Og&UO~O^&VO~O^&WO~Ou&XO~Og&ZOt%dO~Og&[O~Ob%wO#X%yO#Z%zO#]&]O~O]uO~Ob%wO!b&^O!c&^O!d&^O$m&_O~O#X&aO~P?dOb%wO!b&^O!c&^O!d&^O$o&cO~O#Z&aO~P?|Ob%wO#X%yO#Z%zO#]&fO~Og&gO~Og&hOr&iOt&jO~Og&kO~O#X#YX~P?dO#X&mO~O#Z#[X~P?|O#Z&mO~O]&oO~Og&pOr&qOu&rO~Os&sO~O]&tO~Og&uOr&vO~Og&wO~Os&xO~O]&yO~Og&zO~Os&{O~Og&|O~O!`$]#q$q#s#v!c!b#_!o!d#a~",goto:"1T$qPPPPPPPPPPPPPPPP$r%QPPPPPP%`PPP%fP$r%lPPPPPP%z$r&QPPP&`P&`P&d$r&jP&x$rPP$rP$rP'O$rPPPPP$r'kP'y(V'yP'y(Y(fPP(Y(r(Y)O(Y)[(Y)h(Y)t(Y*Q(Y*^(Y*j(Y*vPPP+SP+cP+fP'yP'yP+i+l+o+},Q,T,c,f,iP,wPP,}-TP$rP$r$rP-c-i-s-y.T.Z.q.{/R/X/_/e/kPPPPPPPP/qP0V0cPPPPPPPPPPPP0oP0wicOPQRS^egjnr!ZiPOPQRS^egjnr!ZXfPQgjQhPR!egiQOPQRS^egjnr!ZQkQR!hjiROPQRS^egjnr!ZTmRnQoRR!kniSOPQRS^egjnr!ZQsSR!orhcOPQRS^egjnr!ZY%x$r$s$u%v%}X&^%y%z&`&diZOPQRS^egjnr!Ze#dyz{!O!P#f#i#k#n#qR$d!ze#hyz{!O!P#f#i#k#n#qe!|yz{!O!P#f#i#k#n#qe#Oyz{!O!P#f#i#k#n#qe#Qyz{!O!P#f#i#k#n#qe#Syz{!O!P#f#i#k#n#qe#Uyz{!O!P#f#i#k#n#qe#Wyz{!O!P#f#i#k#n#qe#Yyz{!O!P#f#i#k#n#qe#[yz{!O!P#f#i#k#n#qe#^yz{!O!P#f#i#k#n#qe#`yz{!O!P#f#i#k#n#qQ%{$rQ%|$sQ&O$uQ&]%vR&f%}R&b%yR&e%zR!SZR#t!Si[OPQRS^egjnr!ZR!V[R#t!Vi]OPQRS^egjnr!ZR!Y]R#t!Yi^OPQRS^egjnr!ZX}Xab![Q!]^R#t!Zi_OPQRS^egjnr!ZQeOR!ceQgPQjQT!dgjQnRR!jnQrSQ!Z^T!nr!ZQ%e$`R&Y%eQ#fyQ#izQ#k{Q#n!OQ#q!PZ$v#f#i#k#n#qQ$q#aQ$t#cT%u$q$tQ&`%yR&l&`Q&d%zR&n&dQ!RZR#r!RQ!U[R#u!UQ!X]R#w!XQ!_`R#z!_SdOeWfPQgjSmRnXqS^r!Ze#eyz{!O!P#f#i#k#n#qe#ayz{!O!P#f#i#k#n#qS&_%y&`T&c%z&dQ!OXQ!aaQ!bbR#y![",nodeNames:"\u26a0 StartCloseTag StartCloseTag StartCloseTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag LongExpression ShortExpression Document IfBlock IfBlockOpen { BlockPrefix BlockPrefix BlockType BlockType } ElseBlock BlockPrefix BlockType if IfBlockClose BlockPrefix EachBlock EachBlockOpen BlockType as ( ) , Variable EachBlockClose AwaitBlock AwaitBlockOpen BlockType then catch ThenBlock BlockType CatchBlock BlockType AwaitBlockClose KeyBlock KeyBlockOpen BlockType KeyBlockClose RawHTMLBlock BlockPrefix BlockType DebugBlock BlockType ConstBlock BlockType Interpolation UnknownBlock UnknownBlockContent Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName DirectlyInterpolatedAttribute DirectlyInterpolatedAttributeValue SpreadInterpolatedAttribute ... Directive DirectiveOn DirectiveName AttributeName DirectiveTarget DirectiveBind DirectiveName DirectiveLet DirectiveName DirectiveClass DirectiveName DirectiveStyle DirectiveName DirectiveUse DirectiveName DirectiveTransition DirectiveName DirectiveIn DirectiveName DirectiveOut DirectiveName DirectiveAnimate DirectiveName | Modifier Is AttributeValue DoubleQuote AttributeValueContent SingleQuote AttributeValueContent UnquotedAttributeValue StyleAttribute StyleAttributeName Attribute EndTag ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag ComponentName SvelteElementName SvelteElementNamespace SvelteElementType CloseTag SelfClosingTag SelfClosingEndTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:172,context:Re,nodeProps:[["closedBy",-10,1,2,3,5,6,7,8,9,10,11,"EndTag",4,"EndTag SelfClosingEndTag",17,"IfBlockClose",18,"}",31,"EachBlockClose",34,"(",40,"AwaitBlockClose",48,"AwaitBlockOpen",50,"KeyBlockClose",-4,68,112,115,118,"CloseTag",101,'"',103,"'"],["group",-10,12,60,64,65,66,67,126,127,128,129,"Entity",-4,16,30,39,49,"Block Entity",-4,17,31,40,50,"BlockOpen",-3,24,44,46,"BlockInline",-4,28,38,48,52,"BlockClose",-4,53,56,58,61,"BlockInline Entity",63,"Entity TextContent",-3,110,113,116,"TextContent Entity"],["openedBy",23,"{",28,"IfBlockOpen",35,")",38,"EachBlockOpen",52,"KeyBlockOpen",101,'"',103,"'",109,"StartTag StartCloseTag",-4,111,114,117,123,"OpenTag",125,"StartTag"]],propSources:[_e],skippedNodes:[0],repeatNodeCount:13,tokenData:"&8h$IRR!dOX%aXY/TYZ/TZ[%a[]1{]^/T^p%apq/Tqr2yrsEastF_tuHxuv2yvw!)[wx#,nxy#-lyz#0Vz|2y|}#2p}!O#5Z!O!P#Kk!P!Q$%S!Q![2y![!]$'{!]!^2y!^!_$)u!_!`%'{!`!a%({!a!b2y!b!cF_!c!}%){!}#R2y#R#S%AU#S#T&%m#T#o&'m#o#p&1P#p#q&1d#q#r&3[#r#s2y#s$f%a$f$g2y$g%WHx%W%o%AU%o%pHx%p&a%AU&a&bHx&b1p%AU1p4UHx4U4d%AU4d4eHx4e$IS%AU$IS$I`Hx$I`$Ib%AU$Ib$KhHx$Kh%#t%AU%#t&/xHx&/x&Et%AU&Et&FVHx&FV;'S%AU;'S;:j&5p;:j;=`&5v<%l?&rHx?&r?Ah%AU?Ah?BY&5|?BY?Mn%AU?MnO&5|$3X%ng!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'V7m'`g!aP#]7[!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'Va)OZ!aP!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w`)vS!``O#q)q#r;'S)q;'S;=`*S<%lO)q`*VP;=`<%l)qP*_U!aPOv*Yw!^*Y!_#o*Y#p;'S*Y;'S;=`*q<%lO*YP*tP;=`<%l*Ya*zP;=`<%l(w7l+Uc#]7[!``OX*}XZ)qZ[*}[^)q^p*}pq)qqr*}rs)qsw*}wx)qx!^*}!^!a)q!a#S*}#S#T)q#T#q*}#q#r,a#r;'S*};'S;=`-[<%lO*}7[,fY#]7[OX,aZ[,a^p,aqr,asw,ax!^,a!a#S,a#T;'S,a;'S;=`-U<%lO,a7[-XP;=`<%l,a7l-_P;=`<%l*}7]-id!aP#]7[OX-bXZ*YZ[-b[^*Y^p-bpq*Yqr-brs*Ysv-bvw,awx*Yx!^-b!_!a*Y!a#S-b#S#T*Y#T#o-b#o#p,a#p;'S-b;'S;=`.w<%lO-b7].zP;=`<%l-b7m/QP;=`<%l'V$@q/bb!aP$mMh$o!LQ!``$]EUOX(wXY0jYZ0jZ](w]^0j^p(wpq0jqv(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(wEV0sb!aP!``$]EUOX(wXY0jYZ0jZ](w]^0j^p(wpq0jqv(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w#J{2WZ!aP$mMh$o!LQ!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$DR3^p!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VHg5qp!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VHf8Sn!p&j#U,U#]7[!``!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr7urs)qsw7uwx)qx!P7u!P!Q*}!Q![7u![!]*}!]!^7u!^!_:Q!_!a)q!a#S7u#S#T:Q#T#o7u#o#q*}#q#rs<%l?Ah7u?Ah?BY*}?BY?Mn7u?MnO*}2Y:]f!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`m<%l?AhpP;=`<%lvP;=`<%l7u2Z?Wi!p&j#U,U!aP!``!oWOq(wqr>yrs(wsv>yvw:Qwx(wx!P>y!P!Q(w!Q![>y![!](w!]!^>y!^!_:Q!_!a(w!a#o>y#o#p)q#p#q(w#q#r@u#r#s>y#s$f(w$f;'S>y;'S;=`Bo<%l?Ah>y?Ah?BY(w?BY?Mn>y?MnO(w1yAQg!p&j#U,U!aP!oWOq*Yqr@urs*Ysv@uvw;qwx*Yx!P@u!P!Q*Y!Q![@u![!]*Y!]!^@u!^!_;q!_!a*Y!a#o@u#p#q*Y#q#s@u#s$f*Y$f;'S@u;'S;=`Bi<%l?Ah@u?Ah?BY*Y?BY?Mn@u?MnO*Y1yBlP;=`<%l@u2ZBrP;=`<%l>yHVCSo!p&j#U,U!aP#]7[!oWOX-bXZ*YZ[-b[^*Y^p-bpq*YqrBurs*YsvBuvwy#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$FZIcweS!p&j#U,U!aP#]7[up$mMh$o!LQ$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx!O5b!O!PN|!P!Q'V!Q![K|![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}K|!}#R5b#R#SK|#S#T>y#T#oK|#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g;'SK|;'S;=`!&h<%l?AhK|?Ah?BY!&n?BY?MnK|?MnO!&nJoLcweS!p&j#U,U!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx!O5b!O!PN|!P!Q'V!Q![K|![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}K|!}#R5b#R#SK|#S#T>y#T#oK|#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g;'SK|;'S;=`!&h<%l?AhK|?Ah?BY!&n?BY?MnK|?MnO!&nIX! _w!p&j#U,U!aP#]7[up!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuN|uv5bvw7uwx(wx!O5b!O!PN|!P!Q'V!Q![N|![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}N|!}#R5b#R#SN|#S#T>y#T#oN|#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g;'SN|;'S;=`!#x<%l?AhN|?Ah?BY!$O?BY?MnN|?MnO!$OIX!#{P;=`<%lN|8_!$Zq!aP#]7[up!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wst'Vtu!$Ouv'Vvw*}wx(wx!O'V!O!P!$O!P!Q'V!Q![!$O![!^'V!^!_)q!_!a(w!a!c'V!c!}!$O!}#R'V#R#S!$O#S#T(w#T#o!$O#o#p*}#p#q'V#q#r-b#r$g'V$g;'S!$O;'S;=`!&b<%lO!$O8_!&eP;=`<%l!$OJo!&kP;=`<%lK|9u!&}qeS!aP#]7[up$_!b!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wst'Vtu!&nuv'Vvw*}wx(wx!O'V!O!P!$O!P!Q'V!Q![!&n![!^'V!^!_)q!_!a(w!a!c'V!c!}!&n!}#R'V#R#S!&n#S#T(w#T#o!&n#o#p*}#p#q'V#q#r-b#r$g'V$g;'S!&n;'S;=`!)U<%lO!&n9u!)XP;=`<%l!&n$DR!)ko!p&j#U,U#]7[!``!oW!d#JkOX!+lXZ!-UZ[!+l[^!-U^p!+lpq)qqr!3Qrs!-Ust!B^tw!3Qwx!-Ux!P!3Q!P!Q!+l!Q![!3Q![!]!+l!]!^7u!^!_!7m!_!a!-U!a#S!3Q#S#T!7m#T#o!3Q#o#q!+l#q#r!>U#r#s!3Q#s$f!+l$f;'S!3Q;'S;=`!BW<%l?Ah!3Q?Ah?BY!+l?BY?Mn!3Q?MnO!+l$3X!+se#]7[!``OX!+lXZ!-UZ[!+l[^!-U^p!+lpq)qqr!+lrs!-Ust*}tw!+lwx!-Ux!]!+l!]!^!/[!^!a!-U!a#S!+l#S#T!-U#T#q!+l#q#r!0p#r;'S!+l;'S;=`!2z<%lO!+l#J{!-ZZ!``Op!-Upq)qqs!-Ust)qt!]!-U!]!^!-|!^#q!-U#q#r!.a#r;'S!-U;'S;=`!/U<%lO!-U#J{!.TS!``!b#JkO#q)q#r;'S)q;'S;=`*S<%lO)q#Jk!.dVOp!.aqs!.at!]!.a!]!^!.y!^;'S!.a;'S;=`!/O<%lO!.a#Jk!/OO!b#Jk#Jk!/RP;=`<%l!.a#J{!/XP;=`<%l!-U$3X!/ec#]7[!``!b#JkOX*}XZ)qZ[*}[^)q^p*}pq)qqr*}rs)qsw*}wx)qx!^*}!^!a)q!a#S*}#S#T)q#T#q*}#q#r,a#r;'S*};'S;=`-[<%lO*}$2w!0ub#]7[OX!0pXZ!.aZ[!0p[^!.a^p!0pqr!0prs!.ast,atw!0pwx!.ax!]!0p!]!^!1}!^!a!.a!a#S!0p#S#T!.a#T;'S!0p;'S;=`!2t<%lO!0p$2w!2UY#]7[!b#JkOX,aZ[,a^p,aqr,asw,ax!^,a!a#S,a#T;'S,a;'S;=`-U<%lO,a$2w!2wP;=`<%l!0p$3X!2}P;=`<%l!+l$DR!3_o!p&j#U,U#]7[!``!oWOX!+lXZ!-UZ[!+l[^!-U^p!+lpq)qqr!3Qrs!-Ust7utw!3Qwx!-Ux!P!3Q!P!Q!+l!Q![!3Q![!]!+l!]!^!5`!^!_!7m!_!a!-U!a#S!3Q#S#T!7m#T#o!3Q#o#q!+l#q#r!>U#r#s!3Q#s$f!+l$f;'S!3Q;'S;=`!BW<%l?Ah!3Q?Ah?BY!+l?BY?Mn!3Q?MnO!+l$DR!5on!p&j#U,U#]7[!``!b#Jk!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr7urs)qsw7uwx)qx!P7u!P!Q*}!Q![7u![!]*}!]!^7u!^!_:Q!_!a)q!a#S7u#S#T:Q#T#o7u#o#q*}#q#rs<%l?Ah7u?Ah?BY*}?BY?Mn7u?MnO*}$-u!7xi!p&j#U,U!``!oWOp!-Upq)qqr!7mrs!-Ust:Qtw!7mwx!-Ux!P!7m!P!Q!-U!Q![!7m![!]!-U!]!^!9g!^!_!7m!_!a!-U!a#o!7m#o#q!-U#q#r!;Y#r#s!7m#s$f!-U$f;'S!7m;'S;=`!>O<%l?Ah!7m?Ah?BY!-U?BY?Mn!7m?MnO!-U$-u!9tf!p&j#U,U!``!b#Jk!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`RP;=`<%l!7m$Cq!>am!p&j#U,U#]7[!oWOX!0pXZ!.aZ[!0p[^!.a^p!0pqr!>Urs!.astUwx!.ax!P!>U!P!Q!0p!Q![!>U![!]!0p!]!^!@[!^!_!;Y!_!a!.a!a#S!>U#S#T!;Y#T#o!>U#o#q!0p#q#s!>U#s$f!0p$f;'S!>U;'S;=`!BQ<%l?Ah!>U?Ah?BY!0p?BY?Mn!>U?MnO!0p$Cq!@ig!p&j#U,U#]7[!b#Jk!oWOX,aZ[,a^p,aqrm<%l?AhU$DR!BZP;=`<%l!3Q$DR!Bkn!p&j#U,U#]7[!``!oWOX!DiXZ!FOZ[!Di[^!FO^p!Dipq)qqr!Knrs!FOsw!Knwx!FOx!P!Kn!P!Q!Di!Q![!Kn![!]!Di!]!^7u!^!_#!W!_!a!FO!a#S!Kn#S#T#!W#T#o!Kn#o#q!Di#q#r#(i#r#s!Kn#s$f!Di$f;'S!Kn;'S;=`#,h<%l?Ah!Kn?Ah?BY!Di?BY?Mn!Kn?MnO!Di$3X!Dpd#]7[!``OX!DiXZ!FOZ[!Di[^!FO^p!Dipq)qqr!Dirs!FOsw!Diwx!FOx!]!Di!]!^!G{!^!a!FO!a#S!Di#S#T!FO#T#q!Di#q#r!Ia#r;'S!Di;'S;=`!Kh<%lO!Di#J{!FTX!``Op!FOpq)qq!]!FO!]!^!Fp!^#q!FO#q#r!GT#r;'S!FO;'S;=`!Gu<%lO!FO#J{!FwS!``!c#JkO#q)q#r;'S)q;'S;=`*S<%lO)q#Jk!GWUOp!GTq!]!GT!]!^!Gj!^;'S!GT;'S;=`!Go<%lO!GT#Jk!GoO!c#Jk#Jk!GrP;=`<%l!GT#J{!GxP;=`<%l!FO$3X!HUc#]7[!``!c#JkOX*}XZ)qZ[*}[^)q^p*}pq)qqr*}rs)qsw*}wx)qx!^*}!^!a)q!a#S*}#S#T)q#T#q*}#q#r,a#r;'S*};'S;=`-[<%lO*}$2w!Ifa#]7[OX!IaXZ!GTZ[!Ia[^!GT^p!Iaqr!Iars!GTsw!Iawx!GTx!]!Ia!]!^!Jk!^!a!GT!a#S!Ia#S#T!GT#T;'S!Ia;'S;=`!Kb<%lO!Ia$2w!JrY#]7[!c#JkOX,aZ[,a^p,aqr,asw,ax!^,a!a#S,a#T;'S,a;'S;=`-U<%lO,a$2w!KeP;=`<%l!Ia$3X!KkP;=`<%l!Di$DR!K{n!p&j#U,U#]7[!``!oWOX!DiXZ!FOZ[!Di[^!FO^p!Dipq)qqr!Knrs!FOsw!Knwx!FOx!P!Kn!P!Q!Di!Q![!Kn![!]!Di!]!^!My!^!_#!W!_!a!FO!a#S!Kn#S#T#!W#T#o!Kn#o#q!Di#q#r#(i#r#s!Kn#s$f!Di$f;'S!Kn;'S;=`#,h<%l?Ah!Kn?Ah?BY!Di?BY?Mn!Kn?MnO!Di$DR!NYn!p&j#U,U#]7[!``!c#Jk!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr7urs)qsw7uwx)qx!P7u!P!Q*}!Q![7u![!]*}!]!^7u!^!_:Q!_!a)q!a#S7u#S#T:Q#T#o7u#o#q*}#q#rs<%l?Ah7u?Ah?BY*}?BY?Mn7u?MnO*}$-u#!ch!p&j#U,U!``!oWOp!FOpq)qqr#!Wrs!FOsw#!Wwx!FOx!P#!W!P!Q!FO!Q![#!W![!]!FO!]!^##}!^!_#!W!_!a!FO!a#o#!W#o#q!FO#q#r#%p#r#s#!W#s$f!FO$f;'S#!W;'S;=`#(c<%l?Ah#!W?Ah?BY!FO?BY?Mn#!W?MnO!FO$-u#$[f!p&j#U,U!``!c#Jk!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`m<%l?Ahy#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$DT#0lpsQ!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$DT#3VptQ!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$DT#5nr!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx}5b}!O#7x!O!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VHi#8Xq!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr#:`rs(wsv#:`vw#y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VIy#Nfq!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!O5b!O!P$!m!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VIy$#Op!k!b!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$3g$%chcQ!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!`(w!`!a$&}!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'Vm$'YZ!aP!``#qW#a[Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$3_$(^g$cScQ!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'V$-u$*Ug!p&j#U,U$mMh$o!LQ!``!oWOq)qqr$+mrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!b$LZ!b#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=``!a#o$`!a#q$=t#q#r$>s#r;'S$=t;'S;=`$?b<%lO$=ta$>gS!``#vPO#q)q#r;'S)q;'S;=`*S<%lO)qP$>vTO!`$>s!`!a$?V!a;'S$>s;'S;=`$?[<%lO$>sP$?[O#vPP$?_P;=`<%l$>sa$?eP;=`<%l$=t1y$?qf!p&j#U,U!oWOq$>sqr$?hrs$>ssw$?hwx$>sx!P$?h!P!Q$>s!Q![$?h![!]$>s!]!_$?h!_!`$>s!`!a$?V!a#o$?h#o#q$>s#q#s$?h#s$f$>s$f;'S$?h;'S;=`$AV<%l?Ah$?h?Ah?BY$>s?BY?Mn$?h?MnO$>s1y$AYP;=`<%l$?h2Z$A`P;=`<%l$y#T#o%y#T#o%.o#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$}5b$}%O%.o%O%W5b%W%o%.o%o%p5b%p&a%.o&a&b5b&b1p%.o1p4U%.o4U4d%.o4d4e5b4e$IS%.o$IS$I`5b$I`$Ib%.o$Ib$Je5b$Je$Jg%.o$Jg$Kh5b$Kh%#t%.o%#t&/x5b&/x&Et%.o&Et&FV5b&FV;'S%.o;'S;:j%2|;:j;=`EZ<%l?&r5b?&r?Ah%.o?Ah?BY'V?BY?Mn%.o?MnO'VHi%3PP;=`<%l%.oIZ%3g!a#kQ!p&j#U,U!aP#]7[up!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuN|uv5bvw7uwx(wx}5b}!O%.o!O!P%3S!P!Q'V!Q![%3S![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%3S!}#R5b#R#S%3S#S#T>y#T#o%3S#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}N|$}%O%3S%O%WN|%W%o%3S%o%pN|%p&a%3S&a&bN|&b1p%3S1p4U%3S4U4d%3S4d4eN|4e$IS%3S$IS$I`N|$I`$Ib%3S$Ib$JeN|$Je$Jg%3S$Jg$KhN|$Kh%#t%3S%#t&/xN|&/x&Et%3S&Et&FVN|&FV;'S%3S;'S;:j%7l;:j;=`!#x<%l?&rN|?&r?Ah%3S?Ah?BY!$O?BY?Mn%3S?MnO!$OIZ%7oP;=`<%l%3SJq%8Z!aeS#kQ!p&j#U,U!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%.o!O!P%3S!P!Q'V!Q![%7r![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%7r!}#R5b#R#S%7r#S#T>y#T#o%7r#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%7r%O%WK|%W%o%7r%o%pK|%p&a%7r&a&bK|&b1p%7r1p4U%7r4U4d%7r4d4eK|4e$IS%7r$IS$I`K|$I`$Ib%7r$Ib$JeK|$Je$Jg%7r$Jg$KhK|$Kh%#t%7r%#t&/xK|&/x&Et%7r&Et&FVK|&FV;'S%7r;'S;:j%<`;:j;=`!&h<%l?&rK|?&r?Ah%7r?Ah?BY!&n?BY?Mn%7r?MnO!&nJq%y#T#o%y#T#o%Ny#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&nHi%FX!^!p&j#U,U!gQ!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx}5b}!O%Ev!O!P%Ev!P!Q'V!Q![%Ev![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%Ev!}#R5b#R#S%Ev#S#T>y#T#o%Ev#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$}5b$}%O%Ev%O%W5b%W%o%Ev%o%p5b%p&a%Ev&a&b5b&b1p%Ev1p4U%Ev4U4d%Ev4d4e5b4e$IS%Ev$IS$I`5b$I`$Ib%Ev$Ib$Je5b$Je$Jg%Ev$Jg$Kh5b$Kh%#t%Ev%#t&/x5b&/x&Et%Ev&Et&FV5b&FV;'S%Ev;'S;:j%JT;:j;=`EZ<%l?&r5b?&r?Ah%Ev?Ah?BY'V?BY?Mn%Ev?MnO'VHi%JWP;=`<%l%EvIZ%Jn!a!p&j#U,U!gQ!aP#]7[up!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuN|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%JZ![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%JZ!}#R5b#R#S%JZ#S#T>y#T#o%JZ#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}N|$}%O%JZ%O%WN|%W%o%JZ%o%pN|%p&a%JZ&a&bN|&b1p%JZ1p4U%JZ4U4d%JZ4d4eN|4e$IS%JZ$IS$I`N|$I`$Ib%JZ$Ib$JeN|$Je$Jg%JZ$Jg$KhN|$Kh%#t%JZ%#t&/xN|&/x&Et%JZ&Et&FVN|&FV;'S%JZ;'S;:j%Ns;:j;=`!#x<%l?&rN|?&r?Ah%JZ?Ah?BY!$O?BY?Mn%JZ?MnO!$OIZ%NvP;=`<%l%JZJq& b!aeS!p&j#U,U!gQ!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%Ny!}#R5b#R#S%Ny#S#T>y#T#o%Ny#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&nJq&%jP;=`<%l%Ny$-u&&Oi!p&j#U,U!aP$mMh$o!LQ!``!oWOq(wqr>yrs(wsv>yvw:Qwx(wx!P>y!P!Q(w!Q![>y![!](w!]!^>y!^!_:Q!_!a(w!a#o>y#o#p)q#p#q(w#q#r@u#r#s>y#s$f(w$f;'S>y;'S;=`Bo<%l?Ah>y?Ah?BY(w?BY?Mn>y?MnO(w$IR&([!aeS!p&j#U,U#n#t!gQ!aP#]7[up$mMh$o!LQ$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}&,a!}#R5b#R#S%Ny#S#T>y#T#o&,a#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&nMg&,z!aeS!p&j#U,U#n#t!gQ!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}&,a!}#R5b#R#S%Ny#S#T>y#T#o&,a#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&n$3a&1WSb$3P!``O#q)q#r;'S)q;'S;=`*S<%lO)q$3a&1sg#TW!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'V$FX&3oog#f!p&j#U,U!aP#]7[$mMh$o!LQ!oWOX-bXZ*YZ[-b[^*Y^p-bpq*YqrBurs*YsvBuvw2&&void 0!==arguments[2]?arguments[2]:e.length;if(!t)return"";var n=t.firstChild,a=n&&(n.getChild("TagName")||n.getChild("ComponentName")||n.getChild("SvelteElementName"));return a?e.sliceString(a.from,Math.min(a.to,r)):""}var Me=de.tk.inputHandler.of((function(e,t,r,n){if(e.composing||e.state.readOnly||t!=r||">"!=n&&"/"!=n||!ze.isActiveAt(e.state,t,-1))return!1;var i=e.state,s=i.changeByRange((function(t){var r,s,o,d,u=t.head,c=(0,a.qz)(i).resolveInner(u,-1);if("TagName"!==c.name&&"ComponentName"!==c.name&&"SvelteElementName"!==c.name&&"StartTag"!==c.name||(c=c.parent),">"===n&&"OpenTag"===c.name){if("CloseTag"!=(null===(s=null===(r=c.parent)||void 0===r?void 0:r.lastChild)||void 0===s?void 0:s.name)&&(d=Le(i.doc,c.parent,u))){var l=">"===e.state.doc.sliceString(u,u+1),p="".concat(l?"":">","");return{range:ue.jT.cursor(u+1),changes:{from:u+(l?1:0),insert:p}}}}else if("/"===n&&"OpenTag"===c.name){var O=c.parent,f=null===O||void 0===O?void 0:O.parent;if(O.from==u-1&&"CloseTag"!=(null===(o=f.lastChild)||void 0===o?void 0:o.name)&&(d=Le(i.doc,f,u))){var h=">"===e.state.doc.sliceString(u,u+1),g="/".concat(d).concat(h?"":">"),m=u+g.length+(h?1:0);return{range:ue.jT.cursor(m),changes:{from:u,insert:g}}}}return{range:t}}));return!s.changes.empty&&(e.dispatch(s,{userEvent:"input.type",scrollIntoView:!0}),!0)})),Je=296,He=299,Ke=123,et=125,tt=new h.Jq((function(e){for(var t=0;;t++)switch(e.next){case-1:return void(t>0&&e.acceptToken(Je));case 34:return void(t>0?e.acceptToken(Je):e.acceptToken(298,1));case Ke:return void(e.peek(1)===Ke?e.acceptToken(Je,2):e.acceptToken(297));case et:return void(e.peek(1)===et&&e.acceptToken(Je,2));case 92:var r=e.peek(1);if(r===Ke||r===et)return;e.advance();default:e.advance()}})),rt=new h.Jq((function(e){for(var t=0;;t++)switch(e.next){case-1:return void(t>0&&e.acceptToken(He));case 34:return void(34===e.peek(1)?e.acceptToken(He,2):t>0?e.acceptToken(He):e.acceptToken(301,1));case Ke:return void(e.peek(1)===Ke?e.acceptToken(He,2):e.acceptToken(300));case et:return void(e.peek(1)===et&&e.acceptToken(He,2));default:e.advance()}})),nt={__proto__:null,extern:10,alias:12,using:16,void:626,sbyte:626,byte:626,short:626,ushort:626,int:626,uint:626,long:626,ulong:626,nint:626,nuint:626,char:626,float:626,double:626,bool:626,decimal:626,string:626,object:626,dynamic:626,global:54,static:56,namespace:58,true:662,false:662,null:664,await:112,throw:114,ref:140,in:158,out:160,scoped:162,var:164,this:168,base:170,new:174,typeof:190,sizeof:194,checked:198,unchecked:202,default:204,nameof:206,switch:210,_:215,not:231,and:233,or:235,when:246,with:250,async:252,delegate:254,readonly:264,const:272,unsafe:278,params:283,where:284,class:286,struct:288,notnull:290,unmanaged:292,if:294,else:296,case:300,while:302,do:304,for:306,foreach:310,break:314,continue:316,goto:318,return:320,try:322,catch:324,finally:328,lock:330,yield:334,fixed:336,stackalloc:342,as:364,is:366,from:387,let:389,join:391,on:393,equals:395,into:397,orderby:399,ascending:401,descending:403,select:405,group:407,by:409,public:412,protected:414,internal:416,private:418,virtual:420,sealed:422,override:424,abstract:426,volatile:428,partial:430,required:432,file:435,get:442,set:444,init:446,event:448,add:453,remove:455,operator:458,implicit:464,explicit:466,interface:470,record:476,enum:478},at=h.WQ.deserialize({version:14,states:"&E`O#`QSOOOOQO'#Hh'#HhO#gQSO'#IyOOQO'#Hi'#HiO%kQSO'#IyO%rQSO'#NiOOQO'#If'#IfO'fQSO'#NiOOQO'#J['#J[OOQO'#JX'#JXOOQO'#Ho'#HoO*|QSO'#IyQOQSOOO+TQSO'#MaO,wQSO'#I|O-PQSO'#I|O,zQSO'#JYO-UQSO'#C}OOQO'#Ma'#MaO-ZQSO'#NiO,zQSO'#NkOOQO'#Hq'#HqO,zQSO'#J]O,zQSO'#NYO,zQSO'#N^O-cQSO'#NqOOQO-E;f-E;fO-nQSO,5?eO-uQSO,5?eOOQO-E;g-E;gOOQO-E;o-E;oO-|QSO,5DTO/mQSO,5DTO,zQSO,5DVO,zQSO,5?wO,zQSO,5CtO,zQSO,5CxO-cQSO,5D]OOQO-E[,5>[OOQO-E;n-E;nO!6sQSO,59hO!6zQSO,59hOOQO,59h,59hO!7RQSO,59hOOQO7+*z7+*zO!7YQSO7+$oOOQO,5?P,5?POOQO-EWQSO'#DeO!>hQSO'#DZOOQO'#DZ'#DZO!AnQSO'#JaO!DqQSO'#JaO!FuQSO'#JiOOQO'#Ji'#JiO!GPQTO'#DXO!G[QUO'#DuOOQO'#Jg'#JgOOQO'#Jc'#JcO!GgQSO'#JbOOQO'#Jb'#JbO#!PQSOOO#'RQSO'#GbOOQO'#MQ'#MQOOQO'#MP'#MPO#(nQSO'#GcO#(sQSO'#GcOOQO'#Ja'#JaO!>hQSO'#J`O#({QSO'#J`OOQO,59k,59kO#)QQSO,59kO!>hQSO'#DdO#)VQSO'#DZO!>hQSO'#DZOOQO'#Dy'#DyO#*sQSO'#JxO#*{QSO'#L}O#+ZQSO'#KpO#+iQSO'#GcO#+tQSO'#MTO#,PQSO'#JaO#/QQSO'#JaO#0WQSO'#JvO#0`QSO'#EUO#0qQSO'#KpO#0yQSO'#JcO#1OQSO'#JcO#1TQSO'#JcO#1YQSO'#JcOOQO7+$o7+$oOOQO'#LV'#LVO#(vQSO'#LUO-cQSO'#LUOOQO,5;x,5;xO#1_QSO,5;xO#2RQSO'#LUOOQO'#LW'#LWO#2nQSO'#LVO-cQSO'#LUO#2YQSO'#LVOOQO-ERO#6vQSO,5>QOOQO7+*}7+*}O#7OQSO'#MbOIcQSO7+*}O#7ZQSO'#MwO#7qQSO'#MwOOQO'#NZ'#NZOOQO'#Ii'#IiO#8_QSO,5=zOOQO,5=z,5=zO-cQSO'#N[OOQO7+.z7+.zOLQQSO7+.zO#8fQSO'#NeOOQO'#Nc'#NcOOQO'#Il'#IlO#8zQSO,5=|OOQO,5=|,5=|O#9RQSO'#NeO-cQSO'#NgO#9ZQSO'#NeO!#qQSO'#NaO#9iQSO'#N`OOQO'#Nb'#NbOOQO'#Na'#NaO,zQSO'#NaO#9qQSO,5CyOOQO7+/O7+/OO!!|QSO7+/OOOQO'#Hl'#HlO#9vQSO,5?pOOQO,5?p,5?pOOQO-E;i-E;iOOQO1G5W1G5WOOQO-E;k-E;kOOQO'#Cl'#ClO#:OQSO,5?oO-cQSO1G.tOOQO1G.q1G.qO#:WQSO7+/cO!(oQSO7+/cO#:`QSO<=$uOOQO<=$u<=$uO#:qQSO<=$uO#:`QSO<=$uO#:yQSO<=$uO#=`QSO<=$uO#=kQSO<=$uOOQO<=$w<=$wOI^QSO<=$wOIcQSO<hQSO'#JmO#HdQSO'#KrO#HlQSO,5;lO#HqQSO'#MRO#H|QSO,5:fO-cQSO'#KsOOQO'#Kq'#KqO#IRQSO,5=OO$#vQSO'#CeOOQO,59u,59uO$$^QSO'#DrOOQO'#Jk'#JkO$$cQSO,5@UO$$mQSO'#D|O$%QQSO,5@`O$%VQSO,5BhO$%[QSO,5@xO$%aQSO,5AZOOQO,5?},5?}OOQO,5@b,5@bO#0ZQSO,5@bO?rQSO,5?zOOQP'#Jh'#JhO!>hQSO'#JhOOQP'#Hr'#HrO$%fQTO,59sOOQO,59s,59sOOQQ'#Jl'#JlO!>hQSO'#JlOOQQ'#Ht'#HtO$%qQUO,5:aOOQO,5:a,5:aO$%|QSO,5@cO$$pQSO'#ERO$&RQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5?zOOQO1G/V1G/VOOQO,5:O,5:OO$-mQSO'#CeO$-tQSO'#CuO$1eQSO,59uO!;^QSO'#JnO$$yQSO'#DzO$4SQSO'#KpO$4XQSO,59uO$%VQSO,5@dOOQO,5@d,5@dO$5tQSO'#JzO$6VQSO'#GPO$6aQSO,5BiO$6fQSO,5BiO$7SQSO'#CeO$,xQSO'#FQO#(sQSO,5<}O#0qQSO,5A[O$7rQSO,5BoO$7yQSO,5BoOOQO'#MW'#MWOOQO'#MV'#MVO#,PQSO'#MUOOQO'#M]'#M]O$:bQSO'#MUO$;RQSO'#MXO$;WQSO'#MYO!>hQSO'#M^OOQO,5?{,5?{O$;cQSO'#MWO!>hQSO'#MWO!>hQSO'#M]O-cQSO'#EbO$$mQSO'#D|O$?iQSO'#E]OOQO'#KU'#KUO$?pQSO,5:pO$ExQSO,5:pO$FTQSO,5hQSO'#EdO$JwQSO'#EhO$KVQSO,5ApO#(vQSO,5ApOOQO1G1d1G1dO-cQSO,5ApO-cQSO,5ApOOQO,5Aq,5AqO$KeQSO,5AqO$KyQSO,5ApO$LOQSO,5CpO$LTQSO,5CcO-cQSO,5COO#4qQSO,5CPO-cQSO,5C_O#4bQSO,5CcO,zQSO,5CrO#4yQSO,5CQO#5XQSO,5CoOOQO'#M}'#M}O$LqQSO,5ChO$L|QSO,5CPO$MXQSO'#NRO$MrQSO'#HQO$MyQSO'#M{OOQO,5Cc,5CcOOQO'#M{'#M{O$NTQSO,5CrOOQO-EhQSO'#NXOOQO'#NX'#NXOOQO,5Co,5CoO%#YQSO1G7_O%#aQSO1G9pO,zQSO'#ImO%#aQSO1G9pO%#lQSO,5AoO%#lQSO,5AoOFXQSO'#I[OOQO1G7Y1G7YO%#tQSO,5DZO!>hQSO,5DZO#6UQSO'#InO%$PQSO,5DYO%$XQSO1G3mOOQO1G3l1G3lO%$^QSO,5B|O,zQSO'#IgO%$iQSO,5CcO-cQSO,5CvOOQO-EY,5>YOOQO-E;l-E;lOOQO7+$n7+$nO%1lQSO7+$nOOQOAN=uAN=uO%1sQSO'#ClOOQO1G5t1G5tO#0WQSO,5@ZO%:cQSO'#CeO%:vQSO'#ClOOQO1G/k1G/kO%;XQSO,5A_O$$yQSO'#HuO%;dQSO,5@XO%;lQSO,5@XO$FYQSO'#IUO%;vQSO,5A^OOQO1G1W1G1WO#(vQSO'#IcO%hQSO1G5pO%=sQSO'#JrOOQO'#Jq'#JqO%>QQSO'#JqO%>bQSO'#JpOOQO,5:h,5:hO!>hQSO'#JrO%>mQSO'#JrO%?OQSO,5:hO#GfQSO1G5zO%?TQSO1G5zO%GmQSO'#JyOOQO1G8S1G8SO&#aQSO'#EjOOQO1G6d1G6dO&#kQSO'#EWOOQO'#J|'#J|OOQO1G6u1G6uOOQO1G5|1G5|OOQO1G5f1G5fO&#vQSO,5@SOOQP-E;p-E;pOOQO1G/_1G/_O&$TQSO,5@WOOQQ-E;r-E;rOOQO1G/{1G/{O&$bQSO1G5}O&,zQSO,5:mOOQO,5qQSO'#MSOOQO1G2i1G2iOOQO'#MS'#MSO#(vQSO'#KsO'@^QSO'#MRO$,nQSO1G2iO?rQSO1G5fO'@fQSO1G5fOOQO1G6O1G6OOOQO,5@f,5@fOOQO,5hQSO'#GOOOQO1G8T1G8TO!>hQSO'#GQO#HQQSO,59YO'@tQSO1G2iOOQO1G6v1G6vO#0tQSO1G6vO$;cQSO1G8ZO'@yQSO1G8ZOOQO,5Bq,5BqO'CbQSO,5BpOOQO,5Bp,5BpO'DRQSO'#M_O'DWQSO,5BsO'D]QSO,5BtO'DdQSO,5BtO'DiQSO,5BxO'FWQSO,5BrO'FqQSO'#MZOOQO,5Br,5BrO'F{QSO,5BwO'HhQSO,5:|O'HmQSO,59YO'IpQSO'#CeO'JoQSO'#JnOOQO'#KX'#KXO'KkQSO'#KXO'KuQSO'#KWO'K}QSO,5:wO'LSQSO,5:xO'L[QSO'#EWOOQO'#J{'#J{OOQO1G0[1G0[O'LoQSO'#JUO'L|QSO1G2XO'MUQSO1G0[O((`QSO1G2XO()iQSO'#FVOOQO'#K}'#K}OOQO1G2X1G2XO()vQSO'#CeO$$yQSO'#DeO(,jQSO'#LaO(,tQSO'#JjOOQO'#Kx'#KxO(-lQSO'#LRO(.WQSO'#F[OOQO'#Kw'#KwOOQO'#L`'#L`O(.`QSO'#L`OOQO'#Lb'#LbOOQO'#Lg'#LgOOQO'#Ln'#LnOOQO'#L_'#L_OOQO'#Ku'#KuOOQO'#IV'#IVO(/cQSO,5;nOOQO,5;n,5;nO#)VQSO'#DZO(/jQSO'#DZO(/tQSO'#FTO',gQSO'#FTO(0SQSO'#FTO-cQSO'#FXO(0XQSO'#IZOOQO'#IZ'#IZO#1TQSO'#LcO#1TQSO'#LhO(0vQSO'#LiO(4_QSO'#LjO(4dQSO'#LmO(4iQSO'#DZO(4sQSO'#LoO(5OQSO'#LpO#1TQSO'#LuO(5]QSO'#LvO(5bQSO'#LxO(5jQSO'#LyO(5oQSO'#L_O#0WQSO'#JvO(5tQSO'#KyO(6[QSO'#KyO(6iQSO'#KxO#1TQSO'#LdO(6}QSO'#LnO#0tQSO'#LrO#1TQSO'#L_O(7SQSO,5:zO(7hQSO,5:zO(7mQSO,5;OO(7tQSO'#CeOOQO'#K]'#K]O(8SQSO'#K[O(8[QSO,5;SOBhQSO1G7[O!>hQSO1G7[O(8aQSO1G7[O#(vQSO1G7[O$KyQSO1G7[OOQO1G7]1G7]O(8oQSO1G7[O(8wQSO'#NVOOQO1G9[1G9[O-cQSO1G8jO$L|QSO1G8kO-cQSO1G8yO#4bQSO1G8}O$LqQSO1G9SO,zQSO1G9^O#4yQSO1G8lO#5XQSO1G9ZO#6XQSO1G8jO(9PQSO1G8kO%!WQSO1G8pO%!eQSO1G8yOOQO1G8}1G8}O(9UQSO1G9^O#4yQSO1G8lOOQO1G8l1G8lOOQO1G9Z1G9ZOOQO1G9S1G9SO(9ZQSO,5CjO-cQSO,5CmO(;PQSO'#MoO(;WQSO'#MnO(;_QSO'#MnO(;sQSO,5=lO(;xQSO'#MpO(hQSO,5CgO(<{QSO1G9^O(=QQSO'#LQO(=VQSO'#LPO(=_QSO1G8jO(=dQSO'#MiOOQO,5CS,5CSO% tQSO,5CSOOQO,5CV,5CVOOQO,5Ce,5CeO(=lQSO,5AgO!(bQSO'#IXO(=yQSO,5AfOOQO1G8k1G8kO(>UQSO'#MmO(>`QSO'#MmOOQO1G8p1G8pOBhQSO'#HYOOQO1G9O1G9OOOQO1G8m1G8mO(AvQSO'#CeO(CcQSO'#MkO(CnQSO'#MkOOQO1G8y1G8yO(CsQSO1G8yO(CxQSO,5CnO!>hQSO,5CnO(DPQSO,5CsO(DWQSO'#LZOOQO'#LY'#LYO(DoQSO'#L[OOQO'#L['#L[O(EZQSO'#LYOOQO7+,y7+,yO(ErQSO'#L]OOQO-EvOOQO,5>v,5>vO!>hQSO1G9uO(F[QSO1G9uOOQO,5?Y,5?YOOQO-EUOOQO-E;h-E;hOOQO<TOOQOG2>TG2>TO)#yQSOG2>TOOQO<aO!>hQSO,5>aOOQO-E;s-E;sO)$]QSO1G5sOOQO,5>p,5>pOOQO-E},5>}OOQO-EhQSO7+'uO'+]QSO'#EwO)BfQSO,5AVO)BmQSO'#H}O)BrQSO,5@}O)K_QSO'#KjO)KgQSO'#EoO)KlQSO'#KiOOQO,5;Y,5;YO)KtQSO,5;YOOQO'#Kf'#KfOOQO,5AO,5AOO'!^QSO,5AOOOQO,5;[,5;[OOQO,5;b,5;bO)K|QSO'#KnO)LWQSO'#KmO)L`QSO'#KmOOQO,5;e,5;eO)LnQSO,5;eO)LvQSO'#CeO)MaQSO,59YO)MoQSO'#KlO&!VQSO'#KlO)M}QSO,5;cO)NSQSO'#ElOOQO'#Ke'#KeOOQO,5;^,5;^O$+dQSO,5;^O$+dQSO,5;^OOQO,5AV,5AVO)NbQSO,5AVOOQO,5;d,5;dOOQO,5A_,5A_OOQO7+(T7+(TOOQO7++Q7++QO)NiQSO7++QOOQO1G2V1G2VO)NnQSO,5hQSO1G8`O* rQSO1G8`O!>hQSO1G8dOOQO'#M['#M[O* wQSO,5BuOOQO1G0h1G0hO*!cQSO,5@sO*!mQSO,5@`O$={QSO'#H{O*!rQSO,5@rOOQO1G0c1G0cO*!zQSO1G0dO*#PQSO'#CeO*%wQSO'#JiO*&RQSO'#KRO*&ZQSO'#E[OOQO'#KS'#KSO*&eQSO,5:uO!>hQSO'#KSO*&mQSO,5nQSO'#FnO(0vQSO,5BXO*?PQSO,59uO(4dQSO,5BXO*?^QSO,5BZO!>hQSO,5BZO*?cQSO,5B[OOQO,5B[,5B[O!>hQSO,5B[O(0vQSO,5BaO*?jQSO'#FxO(0vQSO,5BbO!>hQSO,5BdO*?}QSO,5BdO-cQSO'#F{O(0vQSO,5BeO*@SQSO,5AeOOQO,5Ae,5AeO(5yQSO'#KyOOQO,5Ad,5AdO*@eQSO,5BOOOQO,5BY,5BYO*@jQSO,5B^O,zQSO'#JWO,zQSO,59aO*@rQSO'#KZO*ATQSO'#KYO*AcQSO1G0fOOQO1G0f1G0fOOQO1G0j1G0jO$%VQSO'#H|O*AhQSO,5@vOOQO1G0n1G0nOOQO7+,v7+,vO*ApQSO7+,vOBhQSO7+,vO!>hQSO7+,vO*A}QSO7+,vO(8oQSO7+,vO#0ZQSO,5CqO#6XQSO7+.UO*B]QSO7+.VO%!WQSO7+.[O%!eQSO7+.eOOQO7+.i7+.iOOQO7+.n7+.nO*BbQSO7+.xO#4yQSO7+.WOOQO7+.W7+.WOOQO7+.u7+.uO*BgQSO7+.UOOQO7+.V7+.VOOQO7+.[7+.[OOQO7+.e7+.eO(CsQSO7+.eO*BlQSO7+.xO*BqQSO1G9WO*ByQSO1G9UO*COQSO1G9UO*CTQSO1G9WO*COQSO1G9XO$LqQSO,5CZO*CYQSO,5CZO$LqQSO,5C]O(:kQSO'#MqOOQO,5CY,5CYO(:wQSO'#MqO*CeQSO'#MoO*CqQSO'#MoOOQO1G3W1G3WOOQO,5C[,5C[OOQO,5CZ,5CZOOQO,5C],5C]OOQO1G9R1G9RO*CvQSO1G9RO#5XQSO7+.xO!>hQSO,5AlO#6XQSO'#IYO*C}QSO,5AkOOQO7+.U7+.UO*DVQSO'#CeO*DkQSO,5CTO*DsQSO,5CTOOQO,5CW,5CWOOQO,5Cf,5CfOOQO1G8n1G8nOOQO1G8q1G8qOOQO1G9P1G9PO*D{QSO'#K|OOQO'#K|'#K|OOQO1G7R1G7RO()lQSO1G7ROOQO,5>s,5>sOOQO-EhQSO,5CXO()lQSO'#MrOOQO,5CX,5CXO*EaQSO,5=tO*EfQSO'#MlO(CnQSO,5CVO*EkQSO'#HVOOQO1G9Y1G9YO*EvQSO1G9YOOQO1G9_1G9_O%!tQSO'#I^O*E}QSO,5AuOOQO,5Av,5AvO*FfQSO,5AtO*FkQSO,5AwOOQO1G4b1G4bO*FpQSO7+/aO%%VQSO7+.|O*FzQSO7+.|OOQO7+.|7+.|O*GPQSO,5CwOOQO7+/V7+/VO%%}QSO7+/YO*GXQSO7+/UO!(oQSO7+/UO*GaQSO7+/XO%&SQSO7+/UO%%}QSO7+/VO%!`QSO7+/YO%&[QSO7+/XO*GfQSO'#NfO*GqQSO,5=}O*GvQSO'#NfO*G{QSO'#NfOOQO7+/Y7+/YO*GXQSO7+/UOOQO7+/U7+/UOOQO7+/X7+/XOOQO1G3p1G3pOOQOLD3gLD3gO*HQQSOLD3gO*JgQSOLD3gO*JoQSOLD3gO*JzQSOLD/ZOOQOLD/ZLD/ZOIcQSOLD/ZO*MaQSOLD3WOOQOLD3WLD3WOLQQSOLD3WO+ vQSOLD3[OOQOLD3[LD3[O!!|QSOLD3[OOQOLD3oLD3oO+$]QSOLD3oOOQO7++a7++aO+$eQSO1G3{OOQO,5>b,5>bOOQO-E;t-E;tOOQO1G5x1G5xO!(bQSO1G5xO+$oQSO<= QOOQO,5@a,5@aOOQO-E;u-E;uO!>hQSO,5@{O+-XQSO,5@{O&!VQSO'#ITO+/aQSO,5@zOOQO1G0p1G0pO+/iQSO1G0pO+/nQSO,5@jO+/{QSO'#HxO+0TQSO,5@iO+0]QSO1G0`OOQO1G0^1G0^OOQO'#Hs'#HsO+0bQSO7++YO+0jQSO7++YO+0rQSO7++^O+0zQSO7++^O+1SQSO<i,5>iOOQO-E;{-E;{O!(bQSO'#IPO+;[QSO,5AUO&!VQSO,5;ZO!(bQSO'#IQO+;dQSO,5ATOOQO1G0t1G0tO+;lQSO1G0tOOQO1G6j1G6jO+;qQSO,5AYO'+UQSO'#ISO+hQSO'#IbO+@yQSO,5BjOOQO1G2W1G2WOOQO<hQSO7+-zO+BaQSO7+.OO+C|QSO1G8aO!>hQSO'#IdO+DhQSO1G6_O!>hQSO1G6_O+DrQSO1G5zOOQO,5>g,5>gOOQO-E;y-E;yOOQO7+&O7+&OO+DwQSO'#HzO+EUQSO,5@mO+E^QSO'#KTO+EhQSO,5:vO!>hQSO'#KTOOQO1G0a1G0aO+EmQSO1G0aO+ErQSO,5@nOOQO1G2Y1G2YOOQO<hQSO,5AxOOQO1G7w1G7wOOQO1G1Z1G1ZO+HUQSO1G1ZO+J^QSO1G7XO!(oQSO1G7XOOQO1G1_1G1_O+JiQSO1G7iOOQO1G7n1G7nO+NpQSO,5:PO#1TQSO1G7oO+N{QSO'#LlOOQO'#Lk'#LkO, WQSO,5hQSO'#DZOOQO1G7p1G7pO',gQSO,5h,5>hOOQO-E;z-E;zOBhQSO<=!bOOQO<=!b<=!bO,,mQSO<=!bO!>hQSO<=!bOOQO1G9]1G9]O,,zQSO<=#pOOQO<=#q<=#qOOQO<=#v<=#vOOQO<=$P<=$PO(CsQSO<=$PO,-PQSO<=$dOOQO<=#r<=#rOOQO<=#p<=#pO#5XQSO<=$dO#1dQSO'#H]OOQO7+.r7+.rO#1dQSO'#H[OOQO7+.p7+.pO#1dQSO'#H[OOQO7+.s7+.sOOQO1G8u1G8uO$LqQSO1G8uO$LqQSO1G8wOOQO1G8w1G8wO*C]QSO,5C]O,-UQSO,5CZOOQO7+.m7+.mOOQO<=$d<=$dO,-ZQSO1G7WOOQO,5>t,5>tOOQO-Ex,5>xOOQO-E<[-E<[OOQO1G7`1G7`OOQO1G7c1G7cO,.vQSO<=$hOOQO<=$h<=$hO,.{QSO1G9cO,/TQSO'#IjOOQO<=$t<=$tO,/YQSO<=$pOOQO<=$p<=$pO,/YQSO<=$pOOQO<=$s<=$sO!(oQSO<=$pOOQO<=$q<=$qO%%}QSO<=$tO,/bQSO<=$sO,/gQSO,5DQO,/lQSO,5DQOOQO1G3i1G3iO,/qQSO,5DQO,/|QSO,5DQOOQO!$()R!$()RO,0XQSO!$()RO,2nQSO!$()ROOQO!$($u!$($uO,2vQSO!$($uOOQO!$((r!$((rO,5]QSO!$((rOOQO!$((v!$((vO,7rQSO!$((vOOQO!$()Z!$()ZOOQO7++d7++dO,:XQSO1G6gO,;yQSO1G6gOOQO,5>o,5>oOOQO-Ed,5>dOOQO-E;v-E;vOOQO7+%z7+%zOOQO-E;q-E;qOOQP<k,5>kOOQO-E;}-E;}O,l,5>lOOQO-En,5>nO,nOOQO-EmO&!VQSO,5>mOOQO-EhQSO,5BzO,=rQSO,5>|OOQO-E<`-E<`O!>hQSO<=#fO,>PQSO<=#fOOQO-EWQSO7++yO,?VQSO'#ClOOQO7++y7++yOOQO,5>f,5>fOOQO-E;x-E;xO,?dQSO'#HyO,?nQSO,5@oOOQO1G0b1G0bO,?vQSO,5@oOOQO7+%{7+%{O,@QQSO,5>rOOQO,5>r,5>rOOQO-EhQSO7+,ROOQO7++p7++pO-!bQSOAND`O-!jQSOANDdO-!rQSO1G4XOOQO,5>j,5>jOOQO-E;|-E;|O-#QQSO1G8fO-#XQSOANGQO!>hQSOANGQOOQO1G4j1G4jO-#`QSO,5>eO!>hQSO,5>eOOQO-E;w-E;wO-#jQSO1G6ZO-#rQSO<=!_O-#rQSO<=!_O!(oQSO<=!_OOQO7+-O7+-OOOQO,5:p,5:pOOQO<=!o<=!oOOQO<=!u<=!uOOQO,5>y,5>yOOQO-E<]-E<]OOQO7+'^7+'^O-#}QSO7+'^O-$SQSO7+'^O-&UQSO7+'^O!>hQSO7+'`O-&]QSO7+'`O!>hQSO,5BgO,!bQSO'#IaO-&bQSO,5BfOOQO7+'m7+'mOOQO1G1m1G1mO-&jQSO,5BPO-&xQSO,5BPP,'PQSO'#LtOOQO1G7y1G7yO-*lQSO,5hQSO<{,5>{OOQO-E<_-E<_O-/OQSO1G7kO!>hQSO1G7kO-2rQSO'#LfO&!VQSO'#LfO-6fQSO'#LfOOQO1G7k1G7kOOQO1G1{1G1{O-6nQSO1G1{O#0tQSO7+-fOOQO7+-f7+-fOOQOLD1SLD1SO-6sQSO1G9VO#(vQSO1G9VO!>hQSO1G9VO-7OQSO7+(}OOQOLD3bLD3bO-7TQSO<=$rOOQO<=$r<=$rOOQO<=#l<=#lO-7YQSOLD2WO$;cQSOLD2WO-7vQSOG2;eOOQOAN@dAN@dO-8RQSOAN@dOOQOAN@fAN@fO-8WQSOAN@fOOQO7+-V7+-VO-8_QSO7+-VOOQO,5BQ,5BQO-8fQSO,5BQO-8tQSO,5BQOOQO7+'g7+'gOOQO<=#Q<=#QO!>hQSO7+.qO-8{QSO7+.qO-9WQSO7+.qOOQO<hQSO1G7lO-AkQSO1G7lO-ArQSO<=$]O!>hQSO<=$]OOQO!)9K^!)9K^O-A|QSO!)9K^OOQOANF]ANF]OOQO7+-W7+-WO-BRQSO7+-WO-BYQSOANGwOOQO!.K@x!.K@xO-BdQSO<=!rOOQOANF^ANF^O8gQSO'#JQO8gQSO'#JQO-FWQSO,5?lO!>hQSO'#DZO-LwQSO'#GbO.#PQSO'#GbO.&^QSO'#GbO$;cQSO'#DdO+HUQSO'#DdO!>hQSO'#DdO.)kQSO'#DdO$;cQSO'#DZO+HUQSO'#DZO.)kQSO'#DZO.+sQSO'#JaO$;cQSO'#DZO+HUQSO'#DZO.)kQSO'#DZO#0`QSO'#EUO.0oQSO'#CeO.0vQSO'#CeO.3kQSO,5@UO.3rQSO,5@UO.5}QSO,5@UO.8YQSO,5@UO.:eQSO,5nQSO1G2ZO0C]QSO1G2ZO0CgQSO1G2ZO0CqQSO1G2ZO0C{QSO1G2ZO0DVQSO1G2ZO0F|QSO1G2ZO0MSQSO1G2ZO1 gQSO1G2ZO1&UQSO1G2ZO1&`QSO1G2ZO1&jQSO1G2ZO1&tQSO1G2ZO1'OQSO1G2ZO1)xQSO1G2ZO10OQSO1G2ZO12cQSO1G2ZO17QQSO1G2ZO17XQSO1G2ZO17`QSO1G2ZO17gQSO1G2ZO17nQSO1G2ZO1:eQSO1G2ZO1@kQSO1G2ZO1COQSO1G2ZO1GmQSO1G2ZO1GtQSO1G2ZO1G{QSO1G2ZO1HSQSO1G2ZO1HZQSO1G2ZO1IuQSO1G2ZO2 xQSO1G2ZO2$rQSO1G2ZO2(zQSO1G2ZO2*aQSO'#CeO2+WQSO'#CeO21hQSO'#CeO&!VQSO'#EpO26aQSO'#EpO27ZQSO'#EpO&!VQSO'#ErO26aQSO'#ErO27ZQSO'#ErO28TQSO'#MSO29dQSO'#MSO2>SQSO'#MSO2?PQSO'#MSO/!UQSO1G2iO/!]QSO1G2iO/$hQSO1G2iO/&sQSO1G2iO2BWQSO,5BwO2CgQSO,5BwO2HVQSO,5BwO2K^QSO,5BwO3!OQSO1G2XO3#bQSO1G2XO3&PQSO,5AgO3(_QSO,5AgO3*mQSO7++[O3+|QSO7++[O30lQSO7++[O31iQSO7++[O$;cQSO7+'uO+HUQSO7+'uO+-XQSO7+'uO.)kQSO7+'uO&!VQSO,5;^O26aQSO,5;^O27ZQSO,5;^O&!VQSO,5;^O26aQSO,5;^O27ZQSO,5;^O/!UQSO7+(TO/!]QSO7+(TO/$hQSO7+(TO/&sQSO7+(TO34pQSO,5ByO35XQSO,5ByO35pQSO,5ByO36XQSO,5ByO$;cQSO1G8dO+HUQSO1G8dO.)kQSO1G8dO+-XQSO1G8dP3:eQSO7+'sO3;wQSO7+'sO+HUQSO,5AlO3>fQSO'#K|O3@wQSO'#K|O3DqQSO1G7RO3F|QSO1G7RO3IXQSO<hQSO1G1ZO48aQSO1G7WO4dQSO'#JaO4AtQSO'#JaO4CaQSO'#JaO4GTQSO'#JaO4ISQSO'#JaO4LsQSO'#JaO4N`QSO'#JaO5$VQSO'#GbO5(YQSO'#GcO5(_QSO'#GcO5(dQSO'#GcO5(iQSO'#GcO+-XQSO'#DdO5(nQSO'#DZO+-XQSO'#DZO34pQSO'#JaO35XQSO'#JaO35pQSO'#JaO36XQSO'#JaO5)zQSO,5@YO27ZQSO,5hQSO,5hQSO,5hQSO,5hQSO,5VQSO'#MUO5AyQSO'#MUO5BTQSO'#MUO!>hQSO'#M^O!>hQSO'#M^O!>hQSO'#M^O!>hQSO'#M^O5EjQSO'#KzO5F|QSO'#KzO5LaQSO,5BpO5L}QSO,5BpO6!qQSO,5BpO6!{QSO,5BpO6%aQSO'#FTO',gQSO'#FTO6%oQSO'#LPO6)vQSO'#DZ",stateData:"6+S~O'kOS'lOSPOSQOSROS~OT]OW^OcaOk_OlbOm`O!hbO!ybO#rbO#siO#xbO$PbO$TfO$UgO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&ThO&WcO&XdO~O'c'mP~PcO'c'mX~PcOTbOW^OcaOk_OlbOm`O!hbO!ybO#rbO#siO#xbO$PbO$TfO$UgO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&ThO&WcO&XdO~O'c'mX~P#nOTbOcaOlbO!hbO!ybO#rbO#suO#xbO$PbO$TrO$UsO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&TtO&WpO&XqO~OTbOlbO!hbO!ybO#rbO#suO#xbO$PbO$TrO$UsO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&TtO&WpO&XqO~OTbOcaOlbOm`O!hbO!ybO#rbO#siO#xbO$PbO$TfO$UgO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&ThO&WcO&XdO~O'c'mX~P)VOUxOT+TXl+TX!h+TX!y+TX#r+TX#s+TX#x+TX$P+TX$T+TX$U+TX%f+TX%g+TX%h+TX%i+TX%j+TX%k+TX%l+TX%m+TX%n+TX%o+TX%p+TX%q+TX&T+TX&W+TX&X+TX~Ol}O'oyO~OW!OO~O'o!RO~O$U!XO'oyO~O^!`O'oyO'u!^O~O'c'ma~P#nO'c'ma~P)VOTbOlbO!hbO!ybO#rbO#s!jO#xbO$PbO$T!gO$U!hO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&T!iO&W!eO&X!fO~O$U!lO'oyO~O'o!rO~OY!xOZ!wOh!sOj!tOV'qX~Oh!sOV'qX^'qXa'qXd'qXc'qXe'qXf'qXo'qX$S'qXr'qX#p'qX~OV!yO~Ol!xO'oyO~Oh!{OT'}XV'}Xc'}Xl'}Xm'}Xo'}X!h'}X!y'}X#r'}X#s'}X#x'}X$P'}X$T'}X$U'}X%f'}X%g'}X%h'}X%i'}X%j'}X%k'}X%l'}X%m'}X%n'}X%o'}X%p'}X%q'}X&T'}X&W'}X&X'}X'c'}Xn'}X~OV#OOo!}OT'|ac'|al'|am'|a!h'|a!y'|a#r'|a#s'|a#x'|a$P'|a$T'|a$U'|a%f'|a%g'|a%h'|a%i'|a%j'|a%k'|a%l'|a%m'|a%n'|a%o'|a%p'|a%q'|a&T'|a&W'|a&X'|a'c'|an'|a~Or#QOZXX^XXaXXdXXhXXjXX~OZ!wOj!tO~P0]Oa#ROd(QX~O^#TOa(RXd(RX~Oa#WOd#VO~OZ#bO^#XOo#[Or#^O$S#]O~OV#_O~P6yOo#fOr#eO~OZ#bOo#[Or#lO$S#]O~OZ#bOo#oOr#qO$S#]O~OZ#uOo#tOr#wO$S#]O~Oc#yOe#|Of$OO~OUxO~O'c'mi~P)VO$U$UO'oyO~OV$]O~P6yOZ#bOo#[Or$fO$S#]O~OZ#bOo#oOr$jO$S#]O~OZ#uOo#tOr$nO$S#]O~OV$qO~Oh!sOV'qa^'qaa'qad'qac'qae'qaf'qao'qa$S'qar'qa#p'qa~OV$xO~Oh!{OT'}aV'}ac'}al'}am'}ao'}a!h'}a!y'}a#r'}a#s'}a#x'}a$P'}a$T'}a$U'}a%f'}a%g'}a%h'}a%i'}a%j'}a%k'}a%l'}a%m'}a%n'}a%o'}a%p'}a%q'}a&T'}a&W'}a&X'}a'c'}an'}a~On$}O~PcOV%POT'|ic'|il'|im'|i!h'|i!y'|i#r'|i#s'|i#x'|i$P'|i$T'|i$U'|i%f'|i%g'|i%h'|i%i'|i%j'|i%k'|i%l'|i%m'|i%n'|i%o'|i%p'|i%q'|i&T'|i&W'|i&X'|i'c'|in'|i~Oa#ROd(Qa~O^%ZOe%[Ol%zOv%YOw%YOx%YOy%YO|%bO!O%[O!P%[O!Q%[O!R%[O!S%[O!T%[O!U%tO!V%tO!Y%[O!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#n%iO#r%yO#s&QO$q%xO%X%{O'o%TO'u!^O(X%WO(Y%XO~O]%qO~P?rOd&VO~O^!`OcaO!h&^O!q&^O!r&^O!s&aO!v&_O$R&`O'oyO'u!^O~O]&ZO~PBhOV$]O^#XOo#[Or#^O$S#]O~OTbO^!`OcaOlbO!R&gO!hbO!ybO#rbO#siO#xbO#|&lO$PbO$TfO$UgO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO%x&nO&ThO&WcO&XdO'oyO'u!^O~On&kO~PCrOV$]Oo#[O~OcaO'oyO~OV$]OT,]ic,]il,]im,]i!h,]i!y,]i#r,]i#s,]i#x,]i$P,]i$T,]i$U,]i%f,]i%g,]i%h,]i%i,]i%j,]i%k,]i%l,]i%m,]i%n,]i%o,]i%p,]i%q,]i&T,]i&W,]i&X,]i'c,]in,]i^,]i!R,]i#|,]i%x,]i'o,]i'u,]i$n,]i~OV$]Oo#[Or#^O~OcaO'o&wOa,dP~Oo#fO~Oo#[O$S#]O~OV&}OT(Pic(Pil(Pim(Pi!h(Pi!y(Pi#r(Pi#s(Pi#x(Pi$P(Pi$T(Pi$U(Pi%f(Pi%g(Pi%h(Pi%i(Pi%j(Pi%k(Pi%l(Pi%m(Pi%n(Pi%o(Pi%p(Pi%q(Pi&T(Pi&W(Pi&X(Pi'c(Pin(Pi^(Pi!R(Pi#|(Pi%x(Pi'o(Pi'u(Pi$n(Pi~Oo#oO$S#]O~OTbO^!`OcaOlbO!hbO!ybO#rbO#siO#xbO#|&lO$PbO$TfO$UgO$n'WO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO%x&nO&ThO&WcO&XdO'oyO'u!^O~On'VO~PLYOV'XOT+|ic+|il+|im+|i!h+|i!y+|i#r+|i#s+|i#x+|i$P+|i$T+|i$U+|i%f+|i%g+|i%h+|i%i+|i%j+|i%k+|i%l+|i%m+|i%n+|i%o+|i%p+|i%q+|i&T+|i&W+|i&X+|i'c+|in+|i^+|i!R+|i#|+|i%x+|i'o+|i'u+|i$n+|i~Oo#tO$S#]O~O^!`OcaO!y'bO%x'aO'oyO'u!^O~On'_O~P!#UOcaO!q'eO!r'eO'oyO~OV'iOT,Qic,Qil,Qim,Qi!h,Qi!y,Qi#r,Qi#s,Qi#x,Qi$P,Qi$T,Qi$U,Qi%f,Qi%g,Qi%h,Qi%i,Qi%j,Qi%k,Qi%l,Qi%m,Qi%n,Qi%o,Qi%p,Qi%q,Qi&T,Qi&W,Qi&X,Qi'c,Qin,Qi^,Qi!R,Qi#|,Qi%x,Qi'o,Qi'u,Qi$n,Qi~Oa'kOd'mO~Oc#yO'o'taa'tag'ta^'ta!v'ta]'tao'ta~Oe#|Of$OO%}'ta#_'ta~P!&nOe#|O'o'yXa'yXg'yX^'yX!v'yX]'yXc'yXo'yX%}'yX#_'yX~Oa'sO'o'qO~O]'tO~OZ#uO^#XO~OV'xO~P6yOZ#bOo#[Or(SO$S#]O~OZ#bOo#oOr(WO$S#]O~OZ#uOo#tOr([O$S#]O~OV'xO^#XOo#[Or#^O$S#]O~OV'xOo#[O~OV'xOT,]qc,]ql,]qm,]q!h,]q!y,]q#r,]q#s,]q#x,]q$P,]q$T,]q$U,]q%f,]q%g,]q%h,]q%i,]q%j,]q%k,]q%l,]q%m,]q%n,]q%o,]q%p,]q%q,]q&T,]q&W,]q&X,]q'c,]qn,]q^,]q!R,]q#|,]q%x,]q'o,]q'u,]q$n,]q~OV'xOo#[Or#^O~OV(_OT(Pqc(Pql(Pqm(Pq!h(Pq!y(Pq#r(Pq#s(Pq#x(Pq$P(Pq$T(Pq$U(Pq%f(Pq%g(Pq%h(Pq%i(Pq%j(Pq%k(Pq%l(Pq%m(Pq%n(Pq%o(Pq%p(Pq%q(Pq&T(Pq&W(Pq&X(Pq'c(Pqn(Pq^(Pq!R(Pq#|(Pq%x(Pq'o(Pq'u(Pq$n(Pq~OV(aOT+|qc+|ql+|qm+|q!h+|q!y+|q#r+|q#s+|q#x+|q$P+|q$T+|q$U+|q%f+|q%g+|q%h+|q%i+|q%j+|q%k+|q%l+|q%m+|q%n+|q%o+|q%p+|q%q+|q&T+|q&W+|q&X+|q'c+|qn+|q^+|q!R+|q#|+|q%x+|q'o+|q'u+|q$n+|q~OV(cOT,Qqc,Qql,Qqm,Qq!h,Qq!y,Qq#r,Qq#s,Qq#x,Qq$P,Qq$T,Qq$U,Qq%f,Qq%g,Qq%h,Qq%i,Qq%j,Qq%k,Qq%l,Qq%m,Qq%n,Qq%o,Qq%p,Qq%q,Qq&T,Qq&W,Qq&X,Qq'c,Qqn,Qq^,Qq!R,Qq#|,Qq%x,Qq'o,Qq'u,Qq$n,Qq~OZ!wOh!sOV'za^'zaa'zad'zac'zae'zaf'zao'za$S'zar'za#p'za~OZ!wOViihii^iiaiidiiciieiifiioii$Sii]iirii#pii~Oa(jOg'sX]'sX~Og(lO~OV(mO~On(oO~PcOn(oO~P#nOn(oO~P)VOa(rOd(qO~Or(sOY!lXZXXZ!lXZ!oX]!lX^!lX^!oXa!lXcXXc!lXeXXe!lXfXXf!lXg!lXhXXh!lXjXX!O!lX!P!lX!Q!lX!S!lX!T!lX!U!lX!V!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!e!lX!g!lX#]!lX#e!lX#n!lX#p#uX#q!lX$p!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lX~OY%eX~P!7bOc#yOe#|Of$OOh(tO~Oh(vOc'qXe'qXf'qX~O^%ZOe%[Ol%zOv%YOw%YOx%YOy%YO|%bO!O%[O!P%[O!Q%[O!R%[O!S%[O!T%[O!U%tO!V%tO!Y%[O!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#n%iO#r%yO#s&QO$q%xO%X%{O'u!^O(X%WO(Y%XO~O!h)PO!r)PO'o(wO])eP~P!;qO'o)SO~P!;qOY)VOZ!wO^)XOf)YOg)UOh(tO!Q)^O!U)^O!V)^O![)VO!])VO!^)VO!_)VO!`)VO!a)VO!b)VO!c)VO!d)VO!g)VO#])[O#q)]O$p)ZOa(TXe(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TXn(TX%^(TXV(TX~O](TXr(TXd(TX%d(TX%`(TX%a(TX%[(TX%](TX~P!>oOY)VOg)UO![)VO!])VO!^)VO!_)VO!`)VO!a)VO!b)VO!c)VO!d)VO!g)VOZ(TXa(TXe(TXf(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TXn(TX%^(TXV(TX~O](TXr(TXd(TX%d(TX%`(TX%a(TX%[(TX%](TX~P!B[OZ(]Xe(]Xf(]Xg(]X!O(]X!P(]X!S(]X!T(]X!e(]X#e(]X#n(]X$x(]X$y(]X$z(]X$|(]X$}(]X%O(]X%P(]X%Q(]X%R(]X%S(]X%T(]X~Oa)aO](SX~P!E_O'd)bO'e)cO'f)fO~O'g)gO'h)hO'i)kO~Oc)mOf)lOY(UXZ(UX](UX^(UXa(UXe(UXg(UXh(UX!O(UX!P(UX!Q(UX!S(UX!T(UX!U(UX!V(UX![(UX!](UX!^(UX!_(UX!`(UX!a(UX!b(UX!c(UX!d(UX!e(UX!g(UX#](UX#e(UX#n(UX#q(UX$p(UX$x(UX$y(UX$z(UX$|(UX$}(UX%O(UX%P(UX%Q(UX%R(UX%S(UX%T(UXn(UXr(UXd(UX%d(UX$S(UX%X(UX%Y(UX%Z(UX%_(UX%b(UX%c(UX%`(UX%a(UX%^(UXV(UX%[(UXT(UXl(UX!R(UX!h(UX!y(UX#r(UX#s(UX#x(UX#|(UX$P(UX$T(UX$U(UX%f(UX%g(UX%h(UX%i(UX%j(UX%k(UX%l(UX%m(UX%n(UX%o(UX%p(UX%q(UX%x(UX&T(UX&W(UX&X(UX'o(UX'u(UX$n(UX#p(UXW(UXo(UXv(UXw(UXx(UXy(UX|(UX!Y(UX!Z(UX!j(UX!k(UX!s(UX!t(UX!v(UX!w(UX#R(UX#T(UX#V(UX#X(UX#Y(UX#Z(UX$X(UX$](UX$^(UX$_(UX$a(UX$c(UX$d(UX$e(UX$f(UX$g(UX$k(UX$m(UX$q(UX(X(UX(Y(UX%](UX$[(UX~OZ)rOe)oOf)zOg)nO!O)pO!P)pO!S)tO!T)uO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O%O)sO%P)sO%Q)vO%R)wO%S)xO%T)yO~O^%ZOv%YOw%YOx%YOy%YO|%bO!U%tO!V%tO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#s&QO$q%xO'o)SO'u!^O(X%WO(Y%XOZ%UXf%UXg%UX!e%UX#e%UX#n%UX$x%UX$y%UX$z%UX$|%UX$}%UX%O%UX%P%UX%Q%UX%R%UX%S%UX%T%UXY%UX![%UX!]%UX!^%UX!_%UX!`%UX!a%UX!b%UX!c%UX!d%UX!g%UX%^%UX~Oe%[Ol%zO!O%[O!P%[O!Q%[O!R%[O!S%[O!T%[O!Y%[O!Z%uO#r%yO%X%{O]%UXa%UXn%UXr%UXd%UX%d%UX%`%UX%a%UXV%UX%[%UX%]%UX~P##gO#p*PO~O^*RO'o*QO~OY*UO~O]*VO~O^*]Ov%YOw%YOx%YOy%YO|%bO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O(X%WO(Y%XO~Oc)mOh*`O~O^!`Oc*cO'oyO'u!^O~O^*gO#s*iO'o*fO'u!^O~O^*gO'o*fO'u!^O~O^!`O'o*jO'u!^O~O$S*uO%X%{O%Y*qO%Z*rO%_*vO%b*wO%c*sO~O^*xOZ(TXa(TXe(TXf(TXg(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TXY(TX![(TX!](TX!^(TX!_(TX!`(TX!a(TX!b(TX!c(TX!d(TX!g(TXn(TX%^(TXV(TX~O](TXr(TXd(TX%d(TX$S(TX%X(TX%Y(TX%Z(TX%_(TX%b(TX%c(TX%`(TX%a(TX%[(TX#p(TX%](TX~P#,hOZ!wO^)XO~O^*yOc#yOo*zO'oyO'u!^O~O^+POo+QO~O^+TO~O^*xO~O^+UO~O^+VO~O]+YO~O^!`OcaO!h&^O!q&^O!r&^O!s&aO!v&_O'oyO'u!^O~O$R+[O~P#1dO!h&^O!q&^O!r&^O^)yX'o)yX'u)yX~O!s+^O~P#2YOZ!wO^#XOh!sOj!tOc'qXe'qXf'qX~O^!`O!R+fO#|+bO%x+dO'oyO'u!^O~P%rO^!`O!R+fO#|+bO%x+dO&Q+lO&R+lO'oyO'u!^O~P'fOo+mO#p+nO~On+sO~PCrO!v,OO'o+uO~OV,UOo+QO#p,TO$S#]O~OV,XOo+QO#p,WO~Or,ZO~O^)XOa,]OV,^ao,^a~Oa,aOg)wX~Og,bO~OcaO'o&wO~OY,dOa,cXn,cX~Oa,eOn,bX~Oa,gO~On,hOa,dX~Oa,jOo+UX$S+UX~O^!`O#|+bO$n,lO%x+dO'oyO'u!^O~P%rO^!`O#|+bO$n,lO%x+dO&Q+lO&R+lO'oyO'u!^O~P'fOn,nO~PLYO^!`OcaO!y,rO%x,qO'oyO'u!^O~On,tO~P!#UO!v,wO'o,uO~O^!`O%x,qO'oyO'u!^O~Oa,|Og,SX~Og-OO~Oa'kOd-QO~Oa-RO]'wa~OV-VO$S#]O~OV-WO^#XOo#[Or#^O$S#]O~OV-WOo#[O~OV-WOT,]yc,]yl,]ym,]y!h,]y!y,]y#r,]y#s,]y#x,]y$P,]y$T,]y$U,]y%f,]y%g,]y%h,]y%i,]y%j,]y%k,]y%l,]y%m,]y%n,]y%o,]y%p,]y%q,]y&T,]y&W,]y&X,]y'c,]yn,]y^,]y!R,]y#|,]y%x,]y'o,]y'u,]y$n,]y~OV-WOo#[Or#^O~OV-WO~P6yOV-`OT(Pyc(Pyl(Pym(Py!h(Py!y(Py#r(Py#s(Py#x(Py$P(Py$T(Py$U(Py%f(Py%g(Py%h(Py%i(Py%j(Py%k(Py%l(Py%m(Py%n(Py%o(Py%p(Py%q(Py&T(Py&W(Py&X(Py'c(Pyn(Py^(Py!R(Py#|(Py%x(Py'o(Py'u(Py$n(Py~Oo#[Or-cO$S#]O~OV-eOT+|yc+|yl+|ym+|y!h+|y!y+|y#r+|y#s+|y#x+|y$P+|y$T+|y$U+|y%f+|y%g+|y%h+|y%i+|y%j+|y%k+|y%l+|y%m+|y%n+|y%o+|y%p+|y%q+|y&T+|y&W+|y&X+|y'c+|yn+|y^+|y!R+|y#|+|y%x+|y'o+|y'u+|y$n+|y~Oo#oOr-hO$S#]O~OV-jOT,Qyc,Qyl,Qym,Qy!h,Qy!y,Qy#r,Qy#s,Qy#x,Qy$P,Qy$T,Qy$U,Qy%f,Qy%g,Qy%h,Qy%i,Qy%j,Qy%k,Qy%l,Qy%m,Qy%n,Qy%o,Qy%p,Qy%q,Qy&T,Qy&W,Qy&X,Qy'c,Qyn,Qy^,Qy!R,Qy#|,Qy%x,Qy'o,Qy'u,Qy$n,Qy~Oo#tOr-mO$S#]O~OV-qO$S#]O~Oh!sOV'zi^'zia'zid'zic'zie'zif'zio'zi$S'zir'zi#p'zi~Oa(jOg'sa]'sa~On-uO~P#nOn-uO~P)VOd-wO~O'o-xO~O'o-{O~O]#uXa#uX~P!7bO]-}O^*ROa'sO'o-|O~Oa.PO](aX~P#!POa.SO])fX~O].UO~Oa.VO]*uX#p*tX~O].XO~O].ZO~OY!lXZ!lXZ!oX]!lX^!lX^!oXa!lXc!lXe!lXf!lXg!lXh!lXjXX!O!lX!P!lX!Q!lX!S!lX!T!lX!U!lX!V!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!e!lX!g!lX#]!lX#e!lX#n!lX#q!lX$p!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lXn!lXr!lXd!lX%d!lX$S!lX%X!lX%Y!lX%Z!lX%_!lX%b!lX%c!lX%`!lX%a!lX%^!lXV!lX%[!lXT!lXl!lX!R!lX!h!lX!y!lX#r!lX#s!lX#x!lX#|!lX$P!lX$T!lX$U!lX%f!lX%g!lX%h!lX%i!lX%j!lX%k!lX%l!lX%m!lX%n!lX%o!lX%p!lX%q!lX%x!lX&T!lX&W!lX&X!lX'o!lX'u!lX$n!lXW!lXo!lXv!lXw!lXx!lXy!lX|!lX!Y!lX!Z!lX!j!lX!k!lX!s!lX!t!lX!v!lX!w!lX#R!lX#T!lX#V!lX#X!lX#Y!lX#Z!lX$X!lX$]!lX$^!lX$_!lX$a!lX$c!lX$d!lX$e!lX$f!lX$g!lX$k!lX$m!lX$q!lX(X!lX(Y!lX%]!lX$[!lX~OZXXcXXeXXfXXhXX#p#uX~P#IWO!e.[O~O!h.^O'o)SO~P!;qO].cO!h.dO!q.dO!r.eO'oFuO~P!;qOh.gO~O'o.iO~Oo.kO~Oo.mO~O'd)bO'e)cO'f.tO~O'g)gO'h)hO'i.wO~Oc)mO~Og.zO'o)SO~P!;qO^%ZOv%YOw%YOx%YOy%YO|%bO!U%tO!V%tO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#s&QO$q%xO'o)SO'u!^O(X%WO(Y%XOZ%Uaf%Uag%Ua!e%Ua#e%Ua#n%Ua$x%Ua$y%Ua$z%Ua$|%Ua$}%Ua%O%Ua%P%Ua%Q%Ua%R%Ua%S%Ua%T%UaY%Ua![%Ua!]%Ua!^%Ua!_%Ua!`%Ua!a%Ua!b%Ua!c%Ua!d%Ua!g%Ua%^%Ua~Oe%[Ol%zO!O%[O!P%[O!Q%[O!R%[O!S%[O!T%[O!Y%[O!Z%uO#r%yO%X%{O]%Uaa%Uan%Uar%Uad%Ua%d%Ua%`%Ua%a%UaV%Ua%[%Ua%]%Ua~P$&]OZ/`O^/dOc/bOg/`Oo/^Ov%YOw%YOx%YOy%YO!e/`O!t/fO#_/cO#e/`O#g/gO'o/ZO'u!^O(X%WO(Y%XO~Oo+QO'o)SO~P!;qO^!`O!h)PO!r)PO'o*fO'u!^O])eP~O#p/pO~Oa/qO](Sa~P!E_O#p!lX~P#IWOj!tO~OZ!wO^)XOf)YOh(tO#q)]O$p)ZOY}aa}ae}ag}a!O}a!P}a!S}a!T}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!e}a!g}a#e}a#n}a$x}a$y}a$z}a$|}a$}}a%O}a%P}a%Q}a%R}a%S}a%T}an}a%^}aV}aT}al}a!R}a!h}a!y}a#r}a#s}a#x}a#|}a$P}a'o}a'u}a$n}a~O!Q)^O!U)^O!V)^O#])[O]}ar}ad}a%d}a$S}a%X}a%Y}a%Z}a%_}a%b}a%c}a%`}a%a}a%[}ac}a$T}a$U}a%f}a%g}a%h}a%i}a%j}a%k}a%l}a%m}a%n}a%o}a%p}a%q}a%x}a&T}a&W}a&X}a#p}a%]}a~P$-yO#s*iO~OY}a]}aa}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}an}ar}ad}a%d}a%`}a%a}a%^}aV}a%[}a%]}a~P#!POe#|Of$OOc(nX^(nXo(nX~Od/uO'o)SO~P!;qOc/wO~Oo/yO~OZXXcXXeXXfXXhXXjXX#p#uX~O]#uXa#uX~P$6kOZXXcXXeXXfXXhXXjXX~O!q0OO~P$7^O'o0PO~OZ*xXa*xXe*xXf*xXg*xX!O*xX!P*xX!S*xX!T*xX!e*xX#e*xX#n*xX$x*xX$y*xX$z*xX$|*xX$}*xX%O*xX%P*xX%Q*xX%R*xX%S*xX%T*xXY*xX![*xX!]*xX!^*xX!_*xX!`*xX!a*xX!b*xX!c*xX!d*xX!g*xXn*xXV*xX~O%^0TO]*xXr*xXd*xX%d*xX%`*xX%a*xX%[*xX%]*xX~P$8OO'o0UO~O^!`O'o0VO'u!^O~O^%ZOeFqOlLqOv%YOw%YOx%YOy%YO|%bO!OFqO!PFqO!QFqO!RFqO!SFqO!TFqO!U%tO!V%tO!YFqO!ZFmO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nFfO#rLmO#s&QO$q%xO%X%{O'o)SO'u!^O(X%WO(Y%XO~O^*]Ov%YOw%YOx%YOy%YO|%bO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o0`O'u!^O(X%WO(Y%XO~On(yP~P$={Oo0gOY!xaZ!xa]!xa^!xaa!xac!xae!xaf!xag!xah!xa!O!xa!P!xa!Q!xa!S!xa!T!xa!U!xa!V!xa![!xa!]!xa!^!xa!_!xa!`!xa!a!xa!b!xa!c!xa!d!xa!e!xa!g!xa#]!xa#e!xa#n!xa#q!xa$p!xa$x!xa$y!xa$z!xa$|!xa$}!xa%O!xa%P!xa%Q!xa%R!xa%S!xa%T!xan!xar!xad!xa%d!xa$S!xa%X!xa%Y!xa%Z!xa%_!xa%b!xa%c!xa%`!xa%a!xa%^!xaV!xa%[!xaT!xal!xa!R!xa!h!xa!y!xa#r!xa#s!xa#x!xa#|!xa$P!xa$T!xa$U!xa%f!xa%g!xa%h!xa%i!xa%j!xa%k!xa%l!xa%m!xa%n!xa%o!xa%p!xa%q!xa%x!xa&T!xa&W!xa&X!xa'o!xa'u!xa$n!xa#p!xa%]!xa~O^)XOc0jOo0gO~Oo0nO~O^!`O!h)PO!r)PO'oyO'u!^O~O])eP~P$FYOT1[OV1OOW1fO^0rOeFeOl1[Oo+QOv%YOw%YOx%YOy%YO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#Y&SO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^O(X%WO(Y%XO~On1SO~P$FrO!v1vO!w1vO'o1uO'u!^O~OY1zOa1yO])xad)xa~O!h&^O!q&^O!r&^O^)ya'o)ya'u)ya~Oc#yO~Or2QO~O^!`O!R2XO#|2SO%x2UO&Q+lO&R+lO'oyO'u!^O~P-|OV,UOo+QO#p,TO~O!v,OO%}2fO'o+uO~O%}2gO~OcaO%g2lO%h2mO%i2mO%v2pO%w2pO~O%u2nO~P$M^O!h2rO'o)SO~P!;qO^2sO~OV`XY`XZXXZ!oX^!oXa`XhXX~OjXXo%sX#p%sX~P$NYOZ!wOh2wOj!tO~OY2|OV)oXa)oX])oX~Oa2}OV)nX])nX~Oh2wO~OZ#bO^+[X~OV3PO~Oo+mO#p3QO~Oc3TO~O'o3WO~O!h3^O'o)SO~P!;qO#Y3cO$T3bO$U3cO$V3cO$W3cO'oyO~O!y3fO~P%!tOa,]OV,^io,^i~Oa,aOg)wa~OY3nOa,can,ca~Oa,eOn,ba~On3rO~Oa,jOo+Ua$S+Ua~O^!`O#|2SO$n3uO%x2UO&Q+lO&R+lO'oyO'u!^O~P-|O'o3xO~O!v3zO'o,uO~O^!`O%x4OO'oyO'u!^O~OZ!oX^!oXo%sX~Oo4PO~OZ#bO^#XO~O'o4UO~Oa,|Og,Sa~Oa-RO]'wi~O]4]O~OV4^Oo#[O~OV4^OT,]!Rc,]!Rl,]!Rm,]!R!h,]!R!y,]!R#r,]!R#s,]!R#x,]!R$P,]!R$T,]!R$U,]!R%f,]!R%g,]!R%h,]!R%i,]!R%j,]!R%k,]!R%l,]!R%m,]!R%n,]!R%o,]!R%p,]!R%q,]!R&T,]!R&W,]!R&X,]!R'c,]!Rn,]!R^,]!R!R,]!R#|,]!R%x,]!R'o,]!R'u,]!R$n,]!R~OV4^Oo#[Or#^O~OV4^O^#XOo#[Or#^O$S#]O~OV4cOT(P!Rc(P!Rl(P!Rm(P!R!h(P!R!y(P!R#r(P!R#s(P!R#x(P!R$P(P!R$T(P!R$U(P!R%f(P!R%g(P!R%h(P!R%i(P!R%j(P!R%k(P!R%l(P!R%m(P!R%n(P!R%o(P!R%p(P!R%q(P!R&T(P!R&W(P!R&X(P!R'c(P!Rn(P!R^(P!R!R(P!R#|(P!R%x(P!R'o(P!R'u(P!R$n(P!R~OV4gOT+|!Rc+|!Rl+|!Rm+|!R!h+|!R!y+|!R#r+|!R#s+|!R#x+|!R$P+|!R$T+|!R$U+|!R%f+|!R%g+|!R%h+|!R%i+|!R%j+|!R%k+|!R%l+|!R%m+|!R%n+|!R%o+|!R%p+|!R%q+|!R&T+|!R&W+|!R&X+|!R'c+|!Rn+|!R^+|!R!R+|!R#|+|!R%x+|!R'o+|!R'u+|!R$n+|!R~OV4kOT,Q!Rc,Q!Rl,Q!Rm,Q!R!h,Q!R!y,Q!R#r,Q!R#s,Q!R#x,Q!R$P,Q!R$T,Q!R$U,Q!R%f,Q!R%g,Q!R%h,Q!R%i,Q!R%j,Q!R%k,Q!R%l,Q!R%m,Q!R%n,Q!R%o,Q!R%p,Q!R%q,Q!R&T,Q!R&W,Q!R&X,Q!R'c,Q!Rn,Q!R^,Q!R!R,Q!R#|,Q!R%x,Q!R'o,Q!R'u,Q!R$n,Q!R~OV4pO$S#]O~On4rO~P)VOY`XZ`XZ!oX]`X^`X^!oXa`Xc`Xe`Xf`Xg`Xh`X!O`X!P`X!Q`X!S`X!T`X!U`X!V`X![`X!]`X!^`X!_`X!``X!a`X!b`X!c`X!d`X!e`X!g`X#]`X#e`X#n`X#q`X$p`X$x`X$y`X$z`X$|`X$}`X%O`X%P`X%Q`X%R`X%S`X%T`Xn`Xr`Xd`X%d`X$S`X%X`X%Y`X%Z`X%_`X%b`X%c`X%``X%a`X%^`XV`X%[`XT`Xl`X!R`X!h`X!y`X#r`X#s`X#x`X#|`X$P`X$T`X$U`X%f`X%g`X%h`X%i`X%j`X%k`X%l`X%m`X%n`X%o`X%p`X%q`X%x`X&T`X&W`X&X`X'o`X'u`X$n`X#p`XW`Xo`Xv`Xw`Xx`Xy`X|`X!Y`X!Z`X!j`X!k`X!s`X!t`X!v`X!w`X#R`X#T`X#V`X#X`X#Y`X#Z`X$X`X$]`X$^`X$_`X$a`X$c`X$d`X$e`X$f`X$g`X$k`X$m`X$q`X(X`X(Y`X%]`X$[`X~OZXXcXXeXXfXXhXX~P%1sO]`X]#uXa`Xa#uX#p#uX~O])gaa)ga#p*tX~Oa.PO](aa~Oa.PO](aa~P#!POa.SO])fa~Oa.VO]*ua~O](^ia(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^in(^ir(^id(^i%d(^i%`(^i%a(^i%^(^iV(^i%[(^i%](^i~P#!PO](fXa(fXd(fX~P#!PO!h.dO!q.dO!r.eO'o)SO~P!;qOa5QO](dXd(dX~O^!`O!s5XO!t5UO'o5TO'u!^O~O]5YO~OZ!wOY(hi](hi^(hia(hic(hie(hif(hig(hih(hi!O(hi!P(hi!Q(hi!S(hi!T(hi!U(hi!V(hi![(hi!](hi!^(hi!_(hi!`(hi!a(hi!b(hi!c(hi!d(hi!e(hi!g(hi#](hi#e(hi#n(hi#q(hi$p(hi$x(hi$y(hi$z(hi$|(hi$}(hi%O(hi%P(hi%Q(hi%R(hi%S(hi%T(hin(hir(hid(hi%d(hi$S(hi%X(hi%Y(hi%Z(hi%_(hi%b(hi%c(hi%`(hi%a(hi%^(hiV(hi%[(hiT(hil(hi!R(hi!h(hi!y(hi#r(hi#s(hi#x(hi#|(hi$P(hi$T(hi$U(hi%f(hi%g(hi%h(hi%i(hi%j(hi%k(hi%l(hi%m(hi%n(hi%o(hi%p(hi%q(hi%x(hi&T(hi&W(hi&X(hi'o(hi'u(hi$n(hi#p(hiW(hio(hiv(hiw(hix(hiy(hi|(hi!Y(hi!Z(hi!j(hi!k(hi!s(hi!t(hi!v(hi!w(hi#R(hi#T(hi#V(hi#X(hi#Y(hi#Z(hi$X(hi$](hi$^(hi$_(hi$a(hi$c(hi$d(hi$e(hi$f(hi$g(hi$k(hi$m(hi$q(hi(X(hi(Y(hi%](hi$[(hi~OZ!wOY(mX](mX^(mXa(mXc(mXe(mXf(mXg(mXh(mX!O(mX!P(mX!Q(mX!S(mX!T(mX!U(mX!V(mX![(mX!](mX!^(mX!_(mX!`(mX!a(mX!b(mX!c(mX!d(mX!e(mX!g(mX#](mX#e(mX#n(mX#q(mX$p(mX$x(mX$y(mX$z(mX$|(mX$}(mX%O(mX%P(mX%Q(mX%R(mX%S(mX%T(mXn(mXr(mXd(mX%d(mX$S(mX%X(mX%Y(mX%Z(mX%_(mX%b(mX%c(mX%`(mX%a(mX%^(mXV(mX%[(mXT(mXl(mX!R(mX!h(mX!y(mX#r(mX#s(mX#x(mX#|(mX$P(mX$T(mX$U(mX%f(mX%g(mX%h(mX%i(mX%j(mX%k(mX%l(mX%m(mX%n(mX%o(mX%p(mX%q(mX%x(mX&T(mX&W(mX&X(mX'o(mX'u(mX$n(mX#p(mXW(mXo(mXv(mXw(mXx(mXy(mX|(mX!Y(mX!Z(mX!j(mX!k(mX!s(mX!t(mX!v(mX!w(mX#R(mX#T(mX#V(mX#X(mX#Y(mX#Z(mX$X(mX$](mX$^(mX$_(mX$a(mX$c(mX$d(mX$e(mX$f(mX$g(mX$k(mX$m(mX$q(mX(X(mX(Y(mX%](mX$[(mX~OZIoO^/dOc/bOgIoOo/^Ov%YOw%YOx%YOy%YO!eIoO!t/fO#_/cO#eIoO#gIrO'oIlO'u!^O(X%WO(Y%XO~Oa)RPn)RP~P&!VOc)mO'o5fOa(tP~Oa5mOn5kOr5lO~P#!POa5pOn5nOr5oO~P#!POZ!wOh5[OY(ki](ki^(kia(kic(kie(kif(kig(ki!O(ki!P(ki!Q(ki!S(ki!T(ki!U(ki!V(ki![(ki!](ki!^(ki!_(ki!`(ki!a(ki!b(ki!c(ki!d(ki!e(ki!g(ki#](ki#e(ki#n(ki#q(ki$p(ki$x(ki$y(ki$z(ki$|(ki$}(ki%O(ki%P(ki%Q(ki%R(ki%S(ki%T(kin(kir(kid(ki%d(ki$S(ki%X(ki%Y(ki%Z(ki%_(ki%b(ki%c(ki%`(ki%a(ki%^(kiV(ki%[(kiT(kil(ki!R(ki!h(ki!y(ki#r(ki#s(ki#x(ki#|(ki$P(ki$T(ki$U(ki%f(ki%g(ki%h(ki%i(ki%j(ki%k(ki%l(ki%m(ki%n(ki%o(ki%p(ki%q(ki%x(ki&T(ki&W(ki&X(ki'o(ki'u(ki$n(ki#p(kiW(kio(kiv(kiw(kix(kiy(ki|(ki!Y(ki!Z(ki!j(ki!k(ki!s(ki!t(ki!v(ki!w(ki#R(ki#T(ki#V(ki#X(ki#Y(ki#Z(ki$X(ki$](ki$^(ki$_(ki$a(ki$c(ki$d(ki$e(ki$f(ki$g(ki$k(ki$m(ki$q(ki(X(ki(Y(ki%](ki$[(ki~Od5rO~Oe)oO!O)pO!P)pO#n){O$x)oO$y)oOZ$wi]$wia$wif$wi!S$wi!T$wi!e$wi#e$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~Og)nO$z)qO~P&-POZ$wi]$wia$wie$wif$wig$wi!O$wi!P$wi!S$wi!T$wi!e$wi#e$wi$x$wi$y$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O#n){O~P&0SOe)oO#n){O$x)oO$y)oOZ$wi]$wia$wif$wig$wi!S$wi!T$wi!e$wi#e$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O!O$wi!P$wi~P&3VOg$wi$z$wi~P&-POZ)rOe)oOg)nO!O)pO!P)pO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O]$wia$wif$wi!S$wi!T$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O%O$wi%P$wi~P&6dO%O)sO%P)sO~P&6dOZ)rOe)oOg)nO!O)pO!P)pO!S)tO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O%O)sO%P)sO]$wia$wif$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O!T$wi~P&9qO!T)uO~P&9qOZ)rOe)oOg)nO!O)pO!P)pO!S)tO!T)uO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O%O)sO%P)sO%Q)vO]$wia$wif$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O%R$wi~P&<{O%R)wO~P&<{O]$wia$wif$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~OZ)rOe)oOg)nO!O)pO!P)pO!S)tO!T)uO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O%O)sO%P)sO%Q)vO%R)wO%S)xO%T)yO~P&@VOr5sO~P#!POZ!lX]!lX^XXa!lXe!lXf!lXg!lXh!lX!O!lX!P!lX!S!lX!T!lX!e!lX#e!lX#h!lX#i!lX#n!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lXY!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!g!lXn!lXr!lXd!lX%d!lX$S!lX%X!lX%Y!lX%Z!lX%_!lX%b!lX%c!lX%`!lX%a!lX%^!lXV!lX%[!lX#p!lX%]!lX~P$7^O^5tOc#yOe#|Of$OO~Oh5vOZ)VX])VXa)VXe)VXf)VXg)VX!O)VX!P)VX!S)VX!T)VX!e)VX#e)VX#h)VX#i)VX#n)VX$x)VX$y)VX$z)VX$|)VX$})VX%O)VX%P)VX%Q)VX%R)VX%S)VX%T)VXY)VX![)VX!])VX!^)VX!_)VX!`)VX!a)VX!b)VX!c)VX!d)VX!g)VX#o)VX#p)VXd)VXn)VXr)VX%d)VX$S)VX%X)VX%Y)VX%Z)VX%_)VX%b)VX%c)VX%`)VX%a)VX%^)VXV)VX%[)VXT)VX^)VXc)VXl)VX!R)VX!h)VX!y)VX#r)VX#s)VX#x)VX#|)VX$P)VX$T)VX$U)VX%f)VX%g)VX%h)VX%i)VX%j)VX%k)VX%l)VX%m)VX%n)VX%o)VX%p)VX%q)VX%x)VX&T)VX&W)VX&X)VX'o)VX'u)VX$n)VXW)VXo)VXv)VXw)VXx)VXy)VX|)VX!Q)VX!U)VX!V)VX!Y)VX!Z)VX!j)VX!k)VX!s)VX!t)VX!v)VX!w)VX#R)VX#T)VX#V)VX#X)VX#Y)VX#Z)VX#])VX$X)VX$])VX$^)VX$_)VX$a)VX$c)VX$d)VX$e)VX$f)VX$g)VX$k)VX$m)VX$q)VX(X)VX(Y)VX%])VX$[)VX~On5{O'o'qO~Oo/^O#_5}O'o'qO~O#_5}O'o'qOZ#jX]#jXa#jXe#jXf#jXg#jX!O#jX!P#jX!S#jX!T#jX!e#jX#e#jX#h#jX#i#jX#n#jX$x#jX$y#jX$z#jX$|#jX$}#jX%O#jX%P#jX%Q#jX%R#jX%S#jX%T#jXY#jX![#jX!]#jX!^#jX!_#jX!`#jX!a#jX!b#jX!c#jX!d#jX!g#jX#o#jX#p#jXd#jXn#jXr#jX%d#jX$S#jX%X#jX%Y#jX%Z#jX%_#jX%b#jX%c#jX%`#jX%a#jX%^#jXV#jX%[#jXT#jX^#jXc#jXl#jX!R#jX!h#jX!y#jX#r#jX#s#jX#x#jX#|#jX$P#jX$T#jX$U#jX%f#jX%g#jX%h#jX%i#jX%j#jX%k#jX%l#jX%m#jX%n#jX%o#jX%p#jX%q#jX%x#jX&T#jX&W#jX&X#jX'u#jX$n#jXW#jXo#jXv#jXw#jXx#jXy#jX|#jX!Q#jX!U#jX!V#jX!Y#jX!Z#jX!j#jX!k#jX!s#jX!t#jX!v#jX!w#jX#R#jX#T#jX#V#jX#X#jX#Y#jX#Z#jX#]#jX$X#jX$]#jX$^#jX$_#jX$a#jX$c#jX$d#jX$e#jX$f#jX$g#jX$k#jX$m#jX$q#jX(X#jX(Y#jX%]#jX$[#jX~Od6VO#n6SO~P&!VOZIoO^/dOc/bOgIoOo/^Ov%YOw%YOx%YOy%YO!eIoO!t/fO#_/cO#eIoO#gIrO'o6XO'u!^O(X%WO(Y%XO~O^6^O#_5}O'o'qO~O#h6aO#i6bO#n$wi$S$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wi#p$wi~P&0SOo/^O#_5}O'o'qOZ)_X])_Xa)_Xe)_Xf)_Xg)_X!O)_X!P)_X!S)_X!T)_X!e)_X#e)_X#h)_X#i)_X#n)_X$x)_X$y)_X$z)_X$|)_X$})_X%O)_X%P)_X%Q)_X%R)_X%S)_X%T)_XY)_X![)_X!])_X!^)_X!_)_X!`)_X!a)_X!b)_X!c)_X!d)_X!g)_X#o)_X#p)_Xd)_Xn)_Xr)_X%d)_X$S)_X%X)_X%Y)_X%Z)_X%_)_X%b)_X%c)_X%`)_X%a)_X%^)_XV)_X%[)_XT)_X^)_Xc)_Xl)_X!R)_X!h)_X!y)_X#r)_X#s)_X#x)_X#|)_X$P)_X$T)_X$U)_X%f)_X%g)_X%h)_X%i)_X%j)_X%k)_X%l)_X%m)_X%n)_X%o)_X%p)_X%q)_X%x)_X&T)_X&W)_X&X)_X'u)_X$n)_XW)_Xv)_Xw)_Xx)_Xy)_X|)_X!Q)_X!U)_X!V)_X!Y)_X!Z)_X!j)_X!k)_X!s)_X!t)_X!v)_X!w)_X#R)_X#T)_X#V)_X#X)_X#Y)_X#Z)_X#])_X$X)_X$])_X$^)_X$_)_X$a)_X$c)_X$d)_X$e)_X$f)_X$g)_X$k)_X$m)_X$q)_X(X)_X(Y)_X%])_X$[)_X~O#_5}O'o'qOZ#lX]#lXa#lXe#lXf#lXg#lX!O#lX!P#lX!S#lX!T#lX!e#lX#e#lX#h#lX#i#lX#n#lX$x#lX$y#lX$z#lX$|#lX$}#lX%O#lX%P#lX%Q#lX%R#lX%S#lX%T#lXY#lX![#lX!]#lX!^#lX!_#lX!`#lX!a#lX!b#lX!c#lX!d#lX!g#lX#o#lX#p#lXd#lXn#lXr#lX%d#lX$S#lX%X#lX%Y#lX%Z#lX%_#lX%b#lX%c#lX%`#lX%a#lX%^#lXV#lX%[#lXT#lX^#lXc#lXl#lX!R#lX!h#lX!y#lX#r#lX#s#lX#x#lX#|#lX$P#lX$T#lX$U#lX%f#lX%g#lX%h#lX%i#lX%j#lX%k#lX%l#lX%m#lX%n#lX%o#lX%p#lX%q#lX%x#lX&T#lX&W#lX&X#lX'u#lX$n#lXW#lXo#lXv#lXw#lXx#lXy#lX|#lX!Q#lX!U#lX!V#lX!Y#lX!Z#lX!j#lX!k#lX!s#lX!t#lX!v#lX!w#lX#R#lX#T#lX#V#lX#X#lX#Y#lX#Z#lX#]#lX$X#lX$]#lX$^#lX$_#lX$a#lX$c#lX$d#lX$e#lX$f#lX$g#lX$k#lX$m#lX$q#lX(X#lX(Y#lX%]#lX$[#lX~O]*vXa*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vXn*vXr*vXd*vX%d*vX%`*vX%a*vX%^*vXV*vX%[*vX%]*vX~P#!POa.VO]*uX~Oa6iO~P!E_Od6jO~P#!PO#p6nO~O!q6qO~OZ*xaa*xae*xaf*xag*xa!O*xa!P*xa!S*xa!T*xa!e*xa#e*xa#n*xa$x*xa$y*xa$z*xa$|*xa$}*xa%O*xa%P*xa%Q*xa%R*xa%S*xa%T*xaY*xa![*xa!]*xa!^*xa!_*xa!`*xa!a*xa!b*xa!c*xa!d*xa!g*xan*xaV*xa~O%^0TO]*xar*xad*xa%d*xa%`*xa%a*xa%[*xa%]*xa~P'AOO'o6sO~OY6tO~O!q6uO~P$7^O'o6vO~O%d6wO~P#!POZG]OeGPOfLvOgF{O!OGTO!PGTO!SGeO!TGiO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}O%OGaO%PGaO%QGmO%RGqO%SGuO%TGyO~O$S*za%X*za%Y*za%Z*za%_*za%b*za%c*za~P'DpO%`6xO%a6xO~P#!PO]+Paa+Pa%^+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pan+Par+Pad+Pa%d+Pa%`+Pa%a+PaV+Pa%[+Pa%]+Pa~P#!PO]6zO~O^*ROa'sO'oHeO~O^!lX^!oXc!lXf!lXh!lXjXX!Q!lX!U!lX!V!lX#]!lX#q!lX$p!lX~OY6{OZ!wOa(mXn(mX~P'HxOZ!wO^)XOh(tO!Q)^O!U)^O!V)^O#])[O#q)]O$p)ZO~Of6|O~P'JQOZ(VX^(VXc(VXf(VXh(VX!Q(VX!U(VX!V(VX#](VX#q(VX$p(VX~Oa({Xn({X~P'JvOa6}On(zX~On7PO~Oa7QOn(yX~Oc)mOo7UO!h7XO'o7ROa(tP~P!;qOa'kOd'mO'o)SO~P!;qOc#yOo0nO~Oo0gOY!xiZ!xi]!xi^!xia!xic!xie!xif!xig!xih!xi!O!xi!P!xi!Q!xi!S!xi!T!xi!U!xi!V!xi![!xi!]!xi!^!xi!_!xi!`!xi!a!xi!b!xi!c!xi!d!xi!e!xi!g!xi#]!xi#e!xi#n!xi#q!xi$p!xi$x!xi$y!xi$z!xi$|!xi$}!xi%O!xi%P!xi%Q!xi%R!xi%S!xi%T!xin!xir!xid!xi%d!xi$S!xi%X!xi%Y!xi%Z!xi%_!xi%b!xi%c!xi%`!xi%a!xi%^!xiV!xi%[!xiT!xil!xi!R!xi!h!xi!y!xi#r!xi#s!xi#x!xi#|!xi$P!xi$T!xi$U!xi%f!xi%g!xi%h!xi%i!xi%j!xi%k!xi%l!xi%m!xi%n!xi%o!xi%p!xi%q!xi%x!xi&T!xi&W!xi&X!xi'o!xi'u!xi$n!xi#p!xi%]!xi~Oc#yOY$uiZ$ui^$uia$uie$uif$uig$uih$ui!O$ui!P$ui!Q$ui!S$ui!T$ui!U$ui!V$ui![$ui!]$ui!^$ui!_$ui!`$ui!a$ui!b$ui!c$ui!d$ui!e$ui!g$ui#]$ui#e$ui#n$ui#q$ui$p$ui$x$ui$y$ui$z$ui$|$ui$}$ui%O$ui%P$ui%Q$ui%R$ui%S$ui%T$uin$ui%^$uiV$ui~Oo0nO]$uir$uid$ui%d$ui$S$ui%X$ui%Y$ui%Z$ui%_$ui%b$ui%c$ui%`$ui%a$ui%[$ui#p$ui%]$ui~P(%^On7`Oo0nO'o)SO~P!;qOr7bOY!lXZXXZ!lXZ!oXcXXeXXfXXg!lXhXX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!g!lX~P'HxOY)VOZ!wO^)XOf)YOg)UOh(tO!Q)^O![)VO!])VO!^)VO!_)VO!`)VO!a)VO!b)VO!c)VO!d)VO!g)VO#])[O#q)]O$p)ZO~O!U7fO!V7fO~P(+YOY)VOg)UO![)VO!])VO!^)VO!_)VO!`)VO!a)VO!b)VO!c)VO!d)VO!g)VO~OT1[O^!`Ol1[O!h7kO#r1[O$P1[O'oyO'u!^O~Oo+QO#p7lO~OV*SXY(VXg(VX![(VX!](VX!^(VX!_(VX!`(VX!a(VX!b(VX!c(VX!d(VX!g(VXa*SX]*SX~P'JvOn7pO~P$FrOV7tO'o)SO~P!;qO^!`O!t7uO'oyO'u!^O~O'oHcO~O#s*iOT&}X^&}Xl&}X!h&}X#r&}X$P&}X'o&}X'u&}X~OV1OOW1fO^8OOeFeOo+QOv%YOw%YOx%YOy%YO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#Y&SO#Z&UO#]1nO#r*^O#s&QO$P8QO$X1]O$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o*XO'u!^O(X%WO(Y%XO~O^8RO~O^8TO~O$a8WO'o)SO~P!;qO#Y8XO$[8YO'o8XO~OV8[O!h8]O'o)SO~P!;qO^8_O~O$c8bO$f8aO~O^8cO~OV7{O~O!h8eO~O#x8fO^)mX!t)mX'o)mX'u)mX~O^!`O'oyO'u!^O~P(5yO!h8gO#x1kO^)lX!t)lX'o)lX'u)lX~OV8jO~OZ8nOh8lOj8mOc'qXe'qXf'qX~O]8qO~O]8rO~P#!POZ!wO](mXh(mXjXX~Oh8sO])OX~O]8uO~OY8yOa8xO])xid)xi~Oc#yO'o*QO~O!v8|O!w8|O~OV9YO~O^9^O~OZ9bOe9bOg9_O!O9`O!P9`O!Q9aO!R9aO!S9bO!T9bO!U9aO!V9aO!e9bO#e9bO$x9bO$y9bO$z9bO%O9bO%P9bO%Q9bO(X%WO~OcaO%g2lO%h2mO%i2mO%v9fO%w9fO~O%u9dO~P(:kOn+bX~P$M^OcaO%g2lO%h2mO%i2mO%u2nOn+bX~On9lO~O%h9mO%i9mO%u+dX%v+dX%w+dX~O%g9mO%u+dX%v+dX%w+dX~O%u9dO%v9fO%w9fO~OV9pO~P#!PO]9rO~OY9sO~Oa9tOV)sX~OV9vO~O!v9{O'o9wO~Oo0nO!h:SO'o)SO~P!;qOa2}OV)na])na~O!h:WO'o)SO~P!;qOY:XOT+aX^+aXc+aXl+aXn+aX!R+aX!h+aX!y+aX#r+aX#s+aX#x+aX#|+aX$P+aX$T+aX$U+aX%f+aX%g+aX%h+aX%i+aX%j+aX%k+aX%l+aX%m+aX%n+aX%o+aX%p+aX%q+aX%x+aX&T+aX&W+aX&X+aX'o+aX'u+aX$n+aX~OT`XY`X^`Xa`Xl`Xn`X!R`X!h`X!y`X#r`X#s`X#x`X#|`X$P`X'o`X'u`X$n`X~OZXXc`XhXXjXXo%sX$T`X$U`X%f`X%g`X%h`X%i`X%j`X%k`X%l`X%m`X%n`X%o`X%p`X%q`X%x`X&T`X&W`X&X`X~P(@oOZ!wOh:[Oj!tO~Oh:[O~Oo:^O~OV:_O~P#!POV:aO~P#!POa:bOV)}X^)}Xo)}Xr)}X$S)}X#p)}X~Of:dOV*OX^*OXa*OXo*OXr*OX$S*OX#p*OX~Oa:eOV)|X^)|Xo)|Xr)|X$S)|X#p)|X~O^:fO~Oa,]OV,^qo,^q~Oa,aOg)wi~Oa,cin,ci~P#!POV:kO~O!v:tO'o,uO~OcaO%u:xO%v:yO~OV:|O$S#]O~OV:}O~OV;POT,]!Zc,]!Zl,]!Zm,]!Z!h,]!Z!y,]!Z#r,]!Z#s,]!Z#x,]!Z$P,]!Z$T,]!Z$U,]!Z%f,]!Z%g,]!Z%h,]!Z%i,]!Z%j,]!Z%k,]!Z%l,]!Z%m,]!Z%n,]!Z%o,]!Z%p,]!Z%q,]!Z&T,]!Z&W,]!Z&X,]!Z'c,]!Zn,]!Z^,]!Z!R,]!Z#|,]!Z%x,]!Z'o,]!Z'u,]!Z$n,]!Z~OV;POo#[O~OV;POo#[Or#^O~OV;PO^#XOo#[Or#^O$S#]O~OV;UOT(P!Zc(P!Zl(P!Zm(P!Z!h(P!Z!y(P!Z#r(P!Z#s(P!Z#x(P!Z$P(P!Z$T(P!Z$U(P!Z%f(P!Z%g(P!Z%h(P!Z%i(P!Z%j(P!Z%k(P!Z%l(P!Z%m(P!Z%n(P!Z%o(P!Z%p(P!Z%q(P!Z&T(P!Z&W(P!Z&X(P!Z'c(P!Zn(P!Z^(P!Z!R(P!Z#|(P!Z%x(P!Z'o(P!Z'u(P!Z$n(P!Z~OV;XOT+|!Zc+|!Zl+|!Zm+|!Z!h+|!Z!y+|!Z#r+|!Z#s+|!Z#x+|!Z$P+|!Z$T+|!Z$U+|!Z%f+|!Z%g+|!Z%h+|!Z%i+|!Z%j+|!Z%k+|!Z%l+|!Z%m+|!Z%n+|!Z%o+|!Z%p+|!Z%q+|!Z&T+|!Z&W+|!Z&X+|!Z'c+|!Zn+|!Z^+|!Z!R+|!Z#|+|!Z%x+|!Z'o+|!Z'u+|!Z$n+|!Z~OV;[OT,Q!Zc,Q!Zl,Q!Zm,Q!Z!h,Q!Z!y,Q!Z#r,Q!Z#s,Q!Z#x,Q!Z$P,Q!Z$T,Q!Z$U,Q!Z%f,Q!Z%g,Q!Z%h,Q!Z%i,Q!Z%j,Q!Z%k,Q!Z%l,Q!Z%m,Q!Z%n,Q!Z%o,Q!Z%p,Q!Z%q,Q!Z&T,Q!Z&W,Q!Z&X,Q!Z'c,Q!Zn,Q!Z^,Q!Z!R,Q!Z#|,Q!Z%x,Q!Z'o,Q!Z'u,Q!Z$n,Q!Z~OV;^O$S#]O~O]&iaa&ia~P#!POa.PO](ai~O](^qa(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^qn(^qr(^qd(^q%d(^q%`(^q%a(^q%^(^qV(^q%[(^q%](^q~P#!POa5QO](dad(da~O](faa(fad(fa~P#!PO]`Xa`Xd`X~P$7^O^!`O!t5UO'oyO'u!^O~OZ!wOY(hq](hq^(hqa(hqc(hqe(hqf(hqg(hqh(hq!O(hq!P(hq!Q(hq!S(hq!T(hq!U(hq!V(hq![(hq!](hq!^(hq!_(hq!`(hq!a(hq!b(hq!c(hq!d(hq!e(hq!g(hq#](hq#e(hq#n(hq#q(hq$p(hq$x(hq$y(hq$z(hq$|(hq$}(hq%O(hq%P(hq%Q(hq%R(hq%S(hq%T(hqn(hqr(hqd(hq%d(hq$S(hq%X(hq%Y(hq%Z(hq%_(hq%b(hq%c(hq%`(hq%a(hq%^(hqV(hq%[(hqT(hql(hq!R(hq!h(hq!y(hq#r(hq#s(hq#x(hq#|(hq$P(hq$T(hq$U(hq%f(hq%g(hq%h(hq%i(hq%j(hq%k(hq%l(hq%m(hq%n(hq%o(hq%p(hq%q(hq%x(hq&T(hq&W(hq&X(hq'o(hq'u(hq$n(hq#p(hqW(hqo(hqv(hqw(hqx(hqy(hq|(hq!Y(hq!Z(hq!j(hq!k(hq!s(hq!t(hq!v(hq!w(hq#R(hq#T(hq#V(hq#X(hq#Y(hq#Z(hq$X(hq$](hq$^(hq$_(hq$a(hq$c(hq$d(hq$e(hq$f(hq$g(hq$k(hq$m(hq$q(hq(X(hq(Y(hq%](hq$[(hq~O#hJ_O#iJbO#o;jO#p;iO~Oa;kOn)SX~Oa;nOn;mO~OY;oO~Oa;pOn(qX~Oa;rO~On;sOa(tX~O'o;tO~Ov%YOw%YOx%YOy%YO(X%WO(Y%XO~OZ!wOh5[OY(kq](kq^(kqa(kqc(kqe(kqf(kqg(kq!O(kq!P(kq!Q(kq!S(kq!T(kq!U(kq!V(kq![(kq!](kq!^(kq!_(kq!`(kq!a(kq!b(kq!c(kq!d(kq!e(kq!g(kq#](kq#e(kq#n(kq#q(kq$p(kq$x(kq$y(kq$z(kq$|(kq$}(kq%O(kq%P(kq%Q(kq%R(kq%S(kq%T(kqn(kqr(kqd(kq%d(kq$S(kq%X(kq%Y(kq%Z(kq%_(kq%b(kq%c(kq%`(kq%a(kq%^(kqV(kq%[(kqT(kql(kq!R(kq!h(kq!y(kq#r(kq#s(kq#x(kq#|(kq$P(kq$T(kq$U(kq%f(kq%g(kq%h(kq%i(kq%j(kq%k(kq%l(kq%m(kq%n(kq%o(kq%p(kq%q(kq%x(kq&T(kq&W(kq&X(kq'o(kq'u(kq$n(kq#p(kqW(kqo(kqv(kqw(kqx(kqy(kq|(kq!Y(kq!Z(kq!j(kq!k(kq!s(kq!t(kq!v(kq!w(kq#R(kq#T(kq#V(kq#X(kq#Y(kq#Z(kq$X(kq$](kq$^(kq$_(kq$a(kq$c(kq$d(kq$e(kq$f(kq$g(kq$k(kq$m(kq$q(kq(X(kq(Y(kq%](kq$[(kq~O#_5}O'o'qOZ)_a])_aa)_ae)_af)_ag)_a!O)_a!P)_a!S)_a!T)_a!e)_a#e)_a#h)_a#i)_a#n)_a$x)_a$y)_a$z)_a$|)_a$})_a%O)_a%P)_a%Q)_a%R)_a%S)_a%T)_aY)_a![)_a!])_a!^)_a!_)_a!`)_a!a)_a!b)_a!c)_a!d)_a!g)_a#o)_a#p)_ad)_an)_ar)_a%d)_a$S)_a%X)_a%Y)_a%Z)_a%_)_a%b)_a%c)_a%`)_a%a)_a%^)_aV)_a%[)_aT)_a^)_ac)_al)_a!R)_a!h)_a!y)_a#r)_a#s)_a#x)_a#|)_a$P)_a$T)_a$U)_a%f)_a%g)_a%h)_a%i)_a%j)_a%k)_a%l)_a%m)_a%n)_a%o)_a%p)_a%q)_a%x)_a&T)_a&W)_a&X)_a'u)_a$n)_aW)_av)_aw)_ax)_ay)_a|)_a!Q)_a!U)_a!V)_a!Y)_a!Z)_a!j)_a!k)_a!s)_a!t)_a!v)_a!w)_a#R)_a#T)_a#V)_a#X)_a#Y)_a#Z)_a#])_a$X)_a$])_a$^)_a$_)_a$a)_a$c)_a$d)_a$e)_a$f)_a$g)_a$k)_a$m)_a$q)_a(X)_a(Y)_a%])_a$[)_a~Oo/^O~P)9|O'o;|O~Oh5vOZ)Va])Vaa)Vae)Vaf)Vag)Va!O)Va!P)Va!S)Va!T)Va!e)Va#e)Va#h)Va#i)Va#n)Va$x)Va$y)Va$z)Va$|)Va$})Va%O)Va%P)Va%Q)Va%R)Va%S)Va%T)VaY)Va![)Va!])Va!^)Va!_)Va!`)Va!a)Va!b)Va!c)Va!d)Va!g)Va#o)Va#p)Vad)Van)Var)Va%d)Va$S)Va%X)Va%Y)Va%Z)Va%_)Va%b)Va%c)Va%`)Va%a)Va%^)VaV)Va%[)VaT)Va^)Vac)Val)Va!R)Va!h)Va!y)Va#r)Va#s)Va#x)Va#|)Va$P)Va$T)Va$U)Va%f)Va%g)Va%h)Va%i)Va%j)Va%k)Va%l)Va%m)Va%n)Va%o)Va%p)Va%q)Va%x)Va&T)Va&W)Va&X)Va'o)Va'u)Va$n)VaW)Vao)Vav)Vaw)Vax)Vay)Va|)Va!Q)Va!U)Va!V)Va!Y)Va!Z)Va!j)Va!k)Va!s)Va!t)Va!v)Va!w)Va#R)Va#T)Va#V)Va#X)Va#Y)Va#Z)Va#])Va$X)Va$])Va$^)Va$_)Va$a)Va$c)Va$d)Va$e)Va$f)Va$g)Va$k)Va$m)Va$q)Va(X)Va(Y)Va%])Va$[)Va~OhTO~O#x>WO^)ma!t)ma'o)ma'u)ma~Oo>XO~O$h>]O$j>_O~O^!`Oa'kOg>cO'oyO'u!^O~OZ>dOh>eOj>eO](|X~O]>gO~Oh8sO])Oa~Oa>jO])xqd)xq~P#!POY>mOa>jO])xqd)xq~OV>pO~O^>tO~OV>vO~O]>wO~O^>xOg.zO~O^>zO~O^>|O~O^>xO~O%u?PO%v?QO%w?QO~OcaO%g2lO%h2mO%i2mO%u9dO~OV?UO~P#!POa9tOV)sa~OZXXZ!oX^!oXhXXo%sX#p%sX~OZ!wOh2wO~OZ#bO^+]a~OV)pXa)pX])pX~P#!POV?`O~P#!POd?cO~O'o?dO~OcaO%z?jO%{?kO~OV?lO~P#!POa:bOV)}a^)}ao)}ar)}a$S)}a#p)}a~O!y3fO~O]?pO~Oa,cqn,cq~P#!POV?rO~Oa?tOV,Pa~OV?wO$S#]O~OV?yO~OcaO%u@OO%v@PO~On@QO~OV@RO~OV@SO~OV@TOT,]!cc,]!cl,]!cm,]!c!h,]!c!y,]!c#r,]!c#s,]!c#x,]!c$P,]!c$T,]!c$U,]!c%f,]!c%g,]!c%h,]!c%i,]!c%j,]!c%k,]!c%l,]!c%m,]!c%n,]!c%o,]!c%p,]!c%q,]!c&T,]!c&W,]!c&X,]!c'c,]!cn,]!c^,]!c!R,]!c#|,]!c%x,]!c'o,]!c'u,]!c$n,]!c~OV@TOo#[O~OV@TOo#[Or#^O~OV@WOT(P!cc(P!cl(P!cm(P!c!h(P!c!y(P!c#r(P!c#s(P!c#x(P!c$P(P!c$T(P!c$U(P!c%f(P!c%g(P!c%h(P!c%i(P!c%j(P!c%k(P!c%l(P!c%m(P!c%n(P!c%o(P!c%p(P!c%q(P!c&T(P!c&W(P!c&X(P!c'c(P!cn(P!c^(P!c!R(P!c#|(P!c%x(P!c'o(P!c'u(P!c$n(P!c~OV@YOT+|!cc+|!cl+|!cm+|!c!h+|!c!y+|!c#r+|!c#s+|!c#x+|!c$P+|!c$T+|!c$U+|!c%f+|!c%g+|!c%h+|!c%i+|!c%j+|!c%k+|!c%l+|!c%m+|!c%n+|!c%o+|!c%p+|!c%q+|!c&T+|!c&W+|!c&X+|!c'c+|!cn+|!c^+|!c!R+|!c#|+|!c%x+|!c'o+|!c'u+|!c$n+|!c~OV@[OT,Q!cc,Q!cl,Q!cm,Q!c!h,Q!c!y,Q!c#r,Q!c#s,Q!c#x,Q!c$P,Q!c$T,Q!c$U,Q!c%f,Q!c%g,Q!c%h,Q!c%i,Q!c%j,Q!c%k,Q!c%l,Q!c%m,Q!c%n,Q!c%o,Q!c%p,Q!c%q,Q!c&T,Q!c&W,Q!c&X,Q!c'c,Q!cn,Q!c^,Q!c!R,Q!c#|,Q!c%x,Q!c'o,Q!c'u,Q!c$n,Q!c~OV@^O$S#]O~O]&iia&ii~P#!POZ!wOY(hy](hy^(hya(hyc(hye(hyf(hyg(hyh(hy!O(hy!P(hy!Q(hy!S(hy!T(hy!U(hy!V(hy![(hy!](hy!^(hy!_(hy!`(hy!a(hy!b(hy!c(hy!d(hy!e(hy!g(hy#](hy#e(hy#n(hy#q(hy$p(hy$x(hy$y(hy$z(hy$|(hy$}(hy%O(hy%P(hy%Q(hy%R(hy%S(hy%T(hyn(hyr(hyd(hy%d(hy$S(hy%X(hy%Y(hy%Z(hy%_(hy%b(hy%c(hy%`(hy%a(hy%^(hyV(hy%[(hyT(hyl(hy!R(hy!h(hy!y(hy#r(hy#s(hy#x(hy#|(hy$P(hy$T(hy$U(hy%f(hy%g(hy%h(hy%i(hy%j(hy%k(hy%l(hy%m(hy%n(hy%o(hy%p(hy%q(hy%x(hy&T(hy&W(hy&X(hy'o(hy'u(hy$n(hy#p(hyW(hyo(hyv(hyw(hyx(hyy(hy|(hy!Y(hy!Z(hy!j(hy!k(hy!s(hy!t(hy!v(hy!w(hy#R(hy#T(hy#V(hy#X(hy#Y(hy#Z(hy$X(hy$](hy$^(hy$_(hy$a(hy$c(hy$d(hy$e(hy$f(hy$g(hy$k(hy$m(hy$q(hy(X(hy(Y(hy%](hy$[(hy~O^%ZOeKWOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nKaO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^O~P)1OOa;kOn)Sa~On@dO~Oo0gO!h@hO'o)SO~P!;qOc)mO'o5fO~Oa;pOn(qa~On@kO~On@mO'o;tO~On@mOr@nO~On@oO'o;tO~On@oOr@pO~O]$wya$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wyn$wyr$wyd$wy%d$wy%`$wy%a$wy%^$wyV$wy%[$wy%]$wy~P#!PO#_5}O'o'qOZ)_i])_ia)_ie)_if)_ig)_i!O)_i!P)_i!S)_i!T)_i!e)_i#e)_i#h)_i#i)_i#n)_i$x)_i$y)_i$z)_i$|)_i$})_i%O)_i%P)_i%Q)_i%R)_i%S)_i%T)_iY)_i![)_i!])_i!^)_i!_)_i!`)_i!a)_i!b)_i!c)_i!d)_i!g)_i#o)_i#p)_id)_in)_ir)_i%d)_i$S)_i%X)_i%Y)_i%Z)_i%_)_i%b)_i%c)_i%`)_i%a)_i%^)_iV)_i%[)_iT)_i^)_ic)_il)_i!R)_i!h)_i!y)_i#r)_i#s)_i#x)_i#|)_i$P)_i$T)_i$U)_i%f)_i%g)_i%h)_i%i)_i%j)_i%k)_i%l)_i%m)_i%n)_i%o)_i%p)_i%q)_i%x)_i&T)_i&W)_i&X)_i'u)_i$n)_iW)_io)_iv)_iw)_ix)_iy)_i|)_i!Q)_i!U)_i!V)_i!Y)_i!Z)_i!j)_i!k)_i!s)_i!t)_i!v)_i!w)_i#R)_i#T)_i#V)_i#X)_i#Y)_i#Z)_i#])_i$X)_i$])_i$^)_i$_)_i$a)_i$c)_i$d)_i$e)_i$f)_i$g)_i$k)_i$m)_i$q)_i(X)_i(Y)_i%])_i$[)_i~OheOc'zae'zaf'za~OZ8nOj>eOciieiifiihii~Oa'kOgBaO~Oa'kOg>cO~OaBdO])xyd)xy~P#!POVBfO~O]BhO~O%u?PO~OV)tia)ti~P#!POVBuO~P#!POVBvO~OZXXhXXo%sX~OZ!wOh:[O~OcaO%zBxO%{ByO~OcaO%{?kO~OcaO%z?jO~OnB}O~OVCQO~Oa?tOV,Pi~O'oCSO~OVCTO$S#]O~OVCXO~OVCYO~OVCZO~OcaO%vC]On,Ya~OcaO%uC]On,Ya~OVC_OT,]!kc,]!kl,]!km,]!k!h,]!k!y,]!k#r,]!k#s,]!k#x,]!k$P,]!k$T,]!k$U,]!k%f,]!k%g,]!k%h,]!k%i,]!k%j,]!k%k,]!k%l,]!k%m,]!k%n,]!k%o,]!k%p,]!k%q,]!k&T,]!k&W,]!k&X,]!k'c,]!kn,]!k^,]!k!R,]!k#|,]!k%x,]!k'o,]!k'u,]!k$n,]!k~OVC_Oo#[O~OVCaOT(P!kc(P!kl(P!km(P!k!h(P!k!y(P!k#r(P!k#s(P!k#x(P!k$P(P!k$T(P!k$U(P!k%f(P!k%g(P!k%h(P!k%i(P!k%j(P!k%k(P!k%l(P!k%m(P!k%n(P!k%o(P!k%p(P!k%q(P!k&T(P!k&W(P!k&X(P!k'c(P!kn(P!k^(P!k!R(P!k#|(P!k%x(P!k'o(P!k'u(P!k$n(P!k~OVCbOT+|!kc+|!kl+|!km+|!k!h+|!k!y+|!k#r+|!k#s+|!k#x+|!k$P+|!k$T+|!k$U+|!k%f+|!k%g+|!k%h+|!k%i+|!k%j+|!k%k+|!k%l+|!k%m+|!k%n+|!k%o+|!k%p+|!k%q+|!k&T+|!k&W+|!k&X+|!k'c+|!kn+|!k^+|!k!R+|!k#|+|!k%x+|!k'o+|!k'u+|!k$n+|!k~OVCcOT,Q!kc,Q!kl,Q!km,Q!k!h,Q!k!y,Q!k#r,Q!k#s,Q!k#x,Q!k$P,Q!k$T,Q!k$U,Q!k%f,Q!k%g,Q!k%h,Q!k%i,Q!k%j,Q!k%k,Q!k%l,Q!k%m,Q!k%n,Q!k%o,Q!k%p,Q!k%q,Q!k&T,Q!k&W,Q!k&X,Q!k'c,Q!kn,Q!k^,Q!k!R,Q!k#|,Q!k%x,Q!k'o,Q!k'u,Q!k$n,Q!k~Oa)Tin)Ti~P#!POZG_OeGROfLxOgF}O!OGVO!PGVO!SGgO!TGkO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}O%OGcO%PGcO%QGoO%RGsO%SGwO%TG{O~O#pCdO~P,:cOa(sXn(sX~P!E_Oo0gO'o)SO~P!;qO#hJ_O#iJbOa#cin#ci~O#hJ_O#iJbOa&vad&va~O#hJ_O#iJbO]&uaa&ua~Oa<^O])`i~OaAQO])[a~Oa'Uan'Uad'Ua~P#!PO%[CmO~P#!POa({qn({q~P#!PO^`X^!oXc`Xf`Xh`X!Q`X!U`X!V`X#]`X#q`X$p`X~OZ!wOa(mXn(mX~P,>bO!hCpO'o)SO~P!;qOaAaOn(wa~OaAaOn(wa~P#!POa&zan&za~P#!PO$S#]Oo)uq#p)uq~OVCvO~P#!POZG^OeGQOfLwOgF|O!OGUO!PGUO!SGfO!TGjO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoO%OGbO%PGbO%QGnO%RGrO%SGvO%TGzO~OT#wqV#wqW#wq^#wql#wqn#wqo#wqv#wqw#wqx#wqy#wq|#wq!Q#wq!R#wq!U#wq!V#wq!Y#wq!Z#wq!h#wq!j#wq!k#wq!s#wq!t#wq!v#wq!w#wq!y#wq#R#wq#T#wq#V#wq#X#wq#Y#wq#Z#wq#]#wq#r#wq#s#wq#x#wq#|#wq$P#wq$X#wq$]#wq$^#wq$_#wq$a#wq$c#wq$d#wq$e#wq$f#wq$g#wq$k#wq$m#wq$n#wq$q#wq'o#wq'u#wq(X#wq(Y#wq$[#wq~P,@nOVCyO~O^8OOeFeO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y=rO!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OOaAsOV*`a]*`a~O]C|O^8OOeFeO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y=rO!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OOVDOO~P#!POVDOO'o)SO~P!;qO!qDQO~OYDSO~OaDTO]*nX~O]DVO~OnDWO~OrDYO~Oo+QO#oD_O~OZ>dOh>eOj>eO~OaDcO])x!Rd)x!R~P#!POaDhO~O]DiOaDhO~O]DiO~OcaO%{ByO~OcaO%zBxO~OVDmO$S#]O~OcaO%vDpOn,Yi~OcaO%uDpOn,Yi~OcaO%vDpO~OVDrO~OcaO%uDpO~OVDsOT,]!sc,]!sl,]!sm,]!s!h,]!s!y,]!s#r,]!s#s,]!s#x,]!s$P,]!s$T,]!s$U,]!s%f,]!s%g,]!s%h,]!s%i,]!s%j,]!s%k,]!s%l,]!s%m,]!s%n,]!s%o,]!s%p,]!s%q,]!s&T,]!s&W,]!s&X,]!s'c,]!sn,]!s^,]!s!R,]!s#|,]!s%x,]!s'o,]!s'u,]!s$n,]!s~OnDuO'o;tO~OnDvO'o;tO~O#hJ_O#iJbO]&uia&ui~OaDwO~P!E_O%]DxO~P#!POa&man&ma~P#!POaAaOn(wi~O$S#]Oo)uy#p)uy~O]D}O~O]D}O^8OOeFeO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y=rO!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OOVEPO~P#!PO!qERO~OaDTO]*na~OrEVO#hJ_O#iJbO#oEWO~OT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Xa~P)1OO]E]O'o'qO~OYEdOa+sa]+sa~OVEfO$S#]O~OcaO%vEgO~OVEhO~OcaO%uEgO~Oa)Tyn)Ty~P#!PO%]EkO~P#!POa&min&mi~P#!PO$S#]Oo)u!R#p)u!R~O]EmO~O]EmO^8OOeFeO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y=rO!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OO]EoO~P#!PO]*oia*oi~P#!POT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Xi~P)1OOT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*YX~P)1OO^*xOrEuO~O]EvO~OYExOa+si]+si~O]E{O~OVE|O~O%^E}O$S*|!c%X*|!c%Y*|!c%Z*|!c%_*|!c%b*|!c%c*|!c~P'DpO$S#]Oo)u!Z#p)u!Z~O]FPO~O]FQO~P#!POrFRO~P#!POrFSO#hJ_O#iJbO#oFTO~On*Ya~P$FrOYFWOa+sq]+sq~Oa+sq]+sq~P#!PO'oFXO~O%^FYO$S*|!k%X*|!k%Y*|!k%Z*|!k%_*|!k%b*|!k%c*|!k~P'DpOT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Xy~P)1OOT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Yi~P)1OOn*Yi~P$FrOa+sy]+sy~P#!PO'oF_O~OrF`O~P#!POa+s!R]+s!R~P#!POT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Yy~P)1OOZ'tae'taf'ta!O'ta!P'ta!S'ta!T'ta!e'ta#e'ta#n'ta$x'ta$y'ta$z'ta$|'ta$}'ta%O'ta%P'ta%Q'ta%R'ta%S'ta%T'taY'ta!['ta!]'ta!^'ta!_'ta!`'ta!a'ta!b'ta!c'ta!d'ta!g'tan'tar'tad'ta%d'ta$S'ta%X'ta%Y'ta%Z'ta%_'ta%b'ta%c'ta%`'ta%a'ta%^'taV'ta%['ta#p'taT'taW'tal'tav'taw'tax'tay'ta|'ta!Q'ta!R'ta!U'ta!V'ta!Y'ta!Z'ta!h'ta!j'ta!k'ta!s'ta!t'ta!w'ta!y'ta#R'ta#T'ta#V'ta#X'ta#Y'ta#Z'ta#]'ta#r'ta#s'ta#x'ta#|'ta$P'ta$X'ta$]'ta$^'ta$_'ta$a'ta$c'ta$d'ta$e'ta$f'ta$g'ta$k'ta$m'ta$n'ta$q'ta'u'ta(X'ta(Y'ta%]'ta$['ta~P!&nOeFqOlLqO!OFqO!PFqO!QFqO!RFqO!SFqO!TFqO!YFqO!ZFmO#rLmO$S%UX%X%UX%Y%UX%Z%UX%_%UX%b%UX%c%UX~P##gO%X%{OT%UXZ%UX^%UXa%UXf%UXg%UXl%UXn%UX!e%UX!h%UX#e%UX#n%UX#r%UX#s%UX#x%UX#|%UX$P%UX$n%UX$x%UX$y%UX$z%UX$|%UX$}%UX%O%UX%P%UX%Q%UX%R%UX%S%UX%T%UX'o%UX'u%UXY%UX![%UX!]%UX!^%UX!_%UX!`%UX!a%UX!b%UX!c%UX!d%UX!g%UX%^%UX~OeFrO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!yFtOV%UXW%UXo%UXv%UXw%UXx%UXy%UX|%UX!Z%UX!j%UX!k%UX!s%UX!t%UX!v%UX!w%UX#R%UX#T%UX#V%UX#X%UX#Y%UX#Z%UX#]%UX$X%UX$]%UX$^%UX$_%UX$a%UX$c%UX$d%UX$e%UX$f%UX$g%UX$k%UX$m%UX$q%UX(X%UX(Y%UX$[%UX~P-NTOeFsOv%YOw%YOx%YOy%YO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO$q%xO(X%WO(Y%XOc%UX$T%UX$U%UX%f%UX%g%UX%h%UX%i%UX%j%UX%k%UX%l%UX%m%UX%n%UX%o%UX%p%UX%q%UX%x%UX&T%UX&W%UX&X%UX~P-NTO^%ZOeFsOlLtO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OOT(TX^(TXc(TXl(TX!R(TX!h(TX!y(TX#r(TX#s(TX#x(TX#|(TX$P(TX$T(TX$U(TX%f(TX%g(TX%h(TX%i(TX%j(TX%k(TX%l(TX%m(TX%n(TX%o(TX%p(TX%q(TX%x(TX&T(TX&W(TX&X(TX'o(TX'u(TX$n(TXW(TXo(TXv(TXw(TXx(TXy(TX|(TX!Q(TX!U(TX!V(TX!Y(TX!Z(TX!j(TX!k(TX!s(TX!t(TX!v(TX!w(TX#R(TX#T(TX#V(TX#X(TX#Y(TX#Z(TX#](TX$X(TX$](TX$^(TX$_(TX$a(TX$c(TX$d(TX$e(TX$f(TX$g(TX$k(TX$m(TX$q(TX(X(TX(Y(TX$[(TX~P#,hOd!lX~P!7bOY!lXZXXZ!lXZ!oXcXXeXXe!lXfXXg!lXhXX!O!lX!P!lX!S!lX!T!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!e!lX!g!lX#e!lX#n!lX#p!lX#p#uX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lX%^!lX~P'HxO!hHjO~P$;cO^%ZOeFrOlLrO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!hHkO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeKWOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!hHlO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nKaO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^O~P)1OO^%ZOeFsOlLtO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!hHmO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OOg.zO~P$;cO^%ZOeFrOg.zOlLrO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeKWOg.zOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nKaO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^O~P)1OO^%ZOeFsOg.zOlLtO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OOeFqOlLqO!OFqO!PFqO!QFqO!RFqO!SFqO!TFqO!YFqO!ZFmO#rLmO$S%Ua%X%Ua%Y%Ua%Z%Ua%_%Ua%b%Ua%c%Ua~P$&]O%X%{OT%UaZ%Ua^%Uaa%Uaf%Uag%Ual%Uan%Ua!e%Ua!h%Ua#e%Ua#n%Ua#r%Ua#s%Ua#x%Ua#|%Ua$P%Ua$n%Ua$x%Ua$y%Ua$z%Ua$|%Ua$}%Ua%O%Ua%P%Ua%Q%Ua%R%Ua%S%Ua%T%Ua'o%Ua'u%UaY%Ua![%Ua!]%Ua!^%Ua!_%Ua!`%Ua!a%Ua!b%Ua!c%Ua!d%Ua!g%Ua%^%Ua~OeFrO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!yFtOV%UaW%Uao%Uav%Uaw%Uax%Uay%Ua|%Ua!Z%Ua!j%Ua!k%Ua!s%Ua!t%Ua!v%Ua!w%Ua#R%Ua#T%Ua#V%Ua#X%Ua#Y%Ua#Z%Ua#]%Ua$X%Ua$]%Ua$^%Ua$_%Ua$a%Ua$c%Ua$d%Ua$e%Ua$f%Ua$g%Ua$k%Ua$m%Ua$q%Ua(X%Ua(Y%Ua$[%Ua~P.BkO^%ZOeKWOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^OZ%Uaf%Uag%Ua!e%Ua#e%Ua#n%Ua#p%Ua$x%Ua$y%Ua$z%Ua$|%Ua$}%Ua%O%Ua%P%Ua%Q%Ua%R%Ua%S%Ua%T%UaY%Ua![%Ua!]%Ua!^%Ua!_%Ua!`%Ua!a%Ua!b%Ua!c%Ua!d%Ua!g%Ua%^%Ua~P)1OOeFsOv%YOw%YOx%YOy%YO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO$q%xO(X%WO(Y%XOc%Ua$T%Ua$U%Ua%f%Ua%g%Ua%h%Ua%i%Ua%j%Ua%k%Ua%l%Ua%m%Ua%n%Ua%o%Ua%p%Ua%q%Ua%x%Ua&T%Ua&W%Ua&X%Ua~P.BkOo+QO~P$;cO^%ZOeFrOlLrOo+QO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeKWOlLsOo+QO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nKaO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^O~P)1OO^%ZOeFsOlLtOo+QO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OOW}ao}av}aw}ax}ay}a|}a!Q}a!U}a!V}a!Y}a!Z}a!j}a!k}a!s}a!t}a!v}a!w}a#R}a#T}a#V}a#X}a#Y}a#Z}a#]}a$X}a$]}a$^}a$_}a$a}a$c}a$d}a$e}a$f}a$g}a$k}a$m}a$q}a(X}a(Y}a$[}a~P$-yOY}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}a$S}a%X}a%Y}a%Z}a%_}a%b}a%c}a%^}a~P'DpOT}aV}aW}aY}a^}aa}al}an}ao}av}aw}ax}ay}a|}a!Q}a!R}a!U}a!V}a!Y}a!Z}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}a!h}a!j}a!k}a!s}a!t}a!v}a!w}a!y}a#R}a#T}a#V}a#X}a#Y}a#Z}a#]}a#r}a#s}a#x}a#|}a$P}a$X}a$]}a$^}a$_}a$a}a$c}a$d}a$e}a$f}a$g}a$k}a$m}a$n}a$q}a'o}a'u}a(X}a(Y}a%^}a$[}a~P,@nOY}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}a#p}a%^}a~P,:cOZG`OeGSOfLyOgGOO!OGWO!PGWO!SGhO!TGlO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnO%OGdO%PGdO%QGpO%RGtO%SGxO%TG|O~OT}aY}a^}aa}ac}al}an}a!R}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}a!h}a!y}a#r}a#s}a#x}a#|}a$P}a$T}a$U}a%f}a%g}a%h}a%i}a%j}a%k}a%l}a%m}a%n}a%o}a%p}a%q}a%x}a&T}a&W}a&X}a'o}a'u}a$n}a%^}a~P/2oOV`XW`XZ!oX^!oXe`Xo`Xv`Xw`Xx`Xy`X|`X!O`X!P`X!Q`X!S`X!T`X!U`X!V`X!Y`X!Z`X!j`X!k`X!s`X!t`X!v`X!w`X#R`X#T`X#V`X#X`X#Y`X#Z`X#]`X$X`X$]`X$^`X$_`X$a`X$c`X$d`X$e`X$f`X$g`X$k`X$m`X$q`X(X`X(Y`X$[`X~P(@oOY`XZXXZ`XZ!oXcXXeXXfXXg`XhXX![`X!]`X!^`X!_`X!``X!a`X!b`X!c`X!d`X!g`X~P,>bO]`Xa`X#p#uXY`X~O$S(^i%X(^i%Y(^i%Z(^i%_(^i%b(^i%c(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^i%^(^i~P'DpOT(^iV(^iW(^i^(^ia(^il(^in(^io(^iv(^iw(^ix(^iy(^i|(^i!Q(^i!R(^i!U(^i!V(^i!Y(^i!Z(^i!h(^i!j(^i!k(^i!s(^i!t(^i!v(^i!w(^i!y(^i#R(^i#T(^i#V(^i#X(^i#Y(^i#Z(^i#](^i#r(^i#s(^i#x(^i#|(^i$P(^i$X(^i$](^i$^(^i$_(^i$a(^i$c(^i$d(^i$e(^i$f(^i$g(^i$k(^i$m(^i$n(^i$q(^i'o(^i'u(^i(X(^i(Y(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^i%^(^i$[(^i~P,@nO#p(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^i%^(^i~P,:cOT(^i^(^ia(^ic(^il(^in(^i!R(^i!h(^i!y(^i#r(^i#s(^i#x(^i#|(^i$P(^i$T(^i$U(^i%f(^i%g(^i%h(^i%i(^i%j(^i%k(^i%l(^i%m(^i%n(^i%o(^i%p(^i%q(^i%x(^i&T(^i&W(^i&X(^i'o(^i'u(^i$n(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^i%^(^i~P/2oOeGPO!OGTO!PGTO#nG}O$xGPO$yGPOZ$wif$wi!S$wi!T$wi!e$wi#e$wi$S$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~OgF{O$zGXO~P/F]OeGQO!OGUO!PGUO#nHOO$xGQO$yGQOT$wiV$wiW$wiZ$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!S$wi!T$wi!U$wi!V$wi!Y$wi!Z$wi!e$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#e$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~OgF|O$zGYO~P/ISOeGRO!OGVO!PGVO#nHPO$xGRO$yGROZ$wif$wi!S$wi!T$wi!e$wi#e$wi#p$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~OgF}O$zGZO~P0 YOeGSO!OGWO!PGWO#nHQO$xGSO$yGSOT$wiZ$wi^$wia$wic$wif$wil$win$wi!R$wi!S$wi!T$wi!e$wi!h$wi!y$wi#e$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~OgGOO$zG[O~P0#mO#nG}OZ$wif$wig$wi!O$wi!P$wi!S$wi!T$wi!e$wi#e$wi$S$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~Oe$wi$x$wi$y$wi~P0([OT$wiV$wiW$wiZ$wi^$wia$wie$wif$wig$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!O$wi!P$wi!Q$wi!R$wi!S$wi!T$wi!U$wi!V$wi!Y$wi!Z$wi!e$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#e$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi$x$wi$y$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O#nHOO~P0+ROZ$wie$wif$wig$wi!O$wi!P$wi!S$wi!T$wi!e$wi#e$wi$x$wi$y$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O#nHPO#p$wi~P01XO#nHQOT$wi^$wia$wic$wil$win$wi!R$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wi~P01XOeGPO$xGPO$yGPO~P0([OeGQO#nHOO$xGQO$yGQOT$wiV$wiW$wiZ$wi^$wia$wif$wig$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!S$wi!T$wi!U$wi!V$wi!Y$wi!Z$wi!e$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#e$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O!O$wi!P$wi~P06_OeGRO#nHPO$xGRO$yGROZ$wif$wig$wi!S$wi!T$wi!e$wi#e$wi#p$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O!O$wi!P$wi~P0xOg$wi$z$wi~P/F]Og$wi$z$wi~P/ISOg$wi$z$wi~P0 YOg$wi$z$wi~P0#mOZG]OeGPOgF{O!OGTO!PGTO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}Of$wi!S$wi!T$wi$S$wi%Q$wi%R$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%O$wi%P$wi~P0DaOZG^OeGQOgF|O!OGUO!PGUO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoOT$wiV$wiW$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!S$wi!T$wi!U$wi!V$wi!Y$wi!Z$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O%O$wi%P$wi~P0GWOZG_OeGROgF}O!OGVO!PGVO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}Of$wi!S$wi!T$wi#p$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%O$wi%P$wi~P0M^OZG`OeGSOgGOO!OGWO!PGWO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnOT$wi^$wia$wic$wif$wil$win$wi!R$wi!S$wi!T$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%Q$wi%R$wi%S$wi%T$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%O$wi%P$wi~P1 qO%OGaO%PGaO~P0DaO%OGbO%PGbO~P0GWO%OGcO%PGcO~P0M^O%OGdO%PGdO~P1 qOZG]OeGPOgF{O!OGTO!PGTO!SGeO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}O%OGaO%PGaOf$wi$S$wi%Q$wi%R$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O!T$wi~P1'YOZG^OeGQOgF|O!OGUO!PGUO!SGfO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoO%OGbO%PGbOT$wiV$wiW$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!U$wi!V$wi!Y$wi!Z$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O!T$wi~P1*POZG_OeGROgF}O!OGVO!PGVO!SGgO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}O%OGcO%PGcOf$wi#p$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O!T$wi~P10VOZG`OeGSOgGOO!OGWO!PGWO!SGhO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnO%OGdO%PGdOT$wi^$wia$wic$wif$wil$win$wi!R$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%Q$wi%R$wi%S$wi%T$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O!T$wi~P12jO!TGiO~P1'YO!TGjO~P1*PO!TGkO~P10VO!TGlO~P12jOZG]OeGPOgF{O!OGTO!PGTO!SGeO!TGiO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}O%OGaO%PGaO%QGmOf$wi$S$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%R$wi~P17uOZG^OeGQOgF|O!OGUO!PGUO!SGfO!TGjO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoO%OGbO%PGbO%QGnOT$wiV$wiW$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!U$wi!V$wi!Y$wi!Z$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O%R$wi~P1:lOZG_OeGROgF}O!OGVO!PGVO!SGgO!TGkO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}O%OGcO%PGcO%QGoOf$wi#p$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%R$wi~P1@rOZG`OeGSOgGOO!OGWO!PGWO!SGhO!TGlO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnO%OGdO%PGdO%QGpOT$wi^$wia$wic$wif$wil$win$wi!R$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%S$wi%T$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%R$wi~P1CVO%RGqO~P17uO%RGrO~P1:lO%RGsO~P1@rO%RGtO~P1CVOZG]OeGPOgF{O!OGTO!PGTO!SGeO!TGiO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}O%OGaO%PGaO%QGmO%RGqO%SGuO%TGyO~Of$wi$S$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~P1HbOT$wiV$wiW$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!U$wi!V$wi!Y$wi!Z$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~OZG^OeGQOgF|O!OGUO!PGUO!SGfO!TGjO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoO%OGbO%PGbO%QGnO%RGrO%SGvO%TGzO~P1KXOZG_OeGROgF}O!OGVO!PGVO!SGgO!TGkO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}O%OGcO%PGcO%QGoO%RGsO%SGwO%TG{O~Of$wi#p$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~P2#_OT$wi^$wia$wic$wif$wil$win$wi!R$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~OZG`OeGSOgGOO!OGWO!PGWO!SGhO!TGlO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnO%OGdO%PGdO%QGpO%RGtO%SGxO%TG|O~P2%rO^XXh!lX#h!lX#i!lX#o!lX#p!lXa!lXd!lX]!lXn!lXr!lX~P$7^OT!lXV!lXW!lXZ!lX^XX^!lXa!lXe!lXf!lXg!lXh!lXl!lXn!lXo!lXv!lXw!lXx!lXy!lX|!lX!O!lX!P!lX!Q!lX!R!lX!S!lX!T!lX!U!lX!V!lX!Y!lX!Z!lX!e!lX!h!lX!j!lX!k!lX!s!lX!t!lX!v!lX!w!lX!y!lX#R!lX#T!lX#V!lX#X!lX#Y!lX#Z!lX#]!lX#e!lX#h!lX#i!lX#n!lX#r!lX#s!lX#x!lX#|!lX$P!lX$X!lX$]!lX$^!lX$_!lX$a!lX$c!lX$d!lX$e!lX$f!lX$g!lX$k!lX$m!lX$n!lX$q!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lX'o!lX'u!lX(X!lX(Y!lXY!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!g!lX%^!lX$[!lX~P$7^OT!lXZ!lX^XX^!lXa!lXc!lXe!lXf!lXg!lXh!lXl!lXn!lX!O!lX!P!lX!R!lX!S!lX!T!lX!e!lX!h!lX!y!lX#e!lX#h!lX#i!lX#n!lX#r!lX#s!lX#x!lX#|!lX$P!lX$T!lX$U!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lX%f!lX%g!lX%h!lX%i!lX%j!lX%k!lX%l!lX%m!lX%n!lX%o!lX%p!lX%q!lX%x!lX&T!lX&W!lX&X!lX'o!lX'u!lX$n!lXY!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!g!lX%^!lX~P$7^OZIpO^/dOc/bOgIpOo/^O!eIpO!t/fO#_/cO#eIpO#gIsO'oImO'u!^O~P)1OOZIqO^/dOc/bOgIqOo/^O!eIqO!t/fO#_/cO#eIqO#gItO'oInO'u!^O~P)1OO$S*vX%X*vX%Y*vX%Z*vX%_*vX%b*vX%c*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vX%^*vX~P'DpOT*vXV*vXW*vX^*vXa*vXl*vXn*vXo*vXv*vXw*vXx*vXy*vX|*vX!Q*vX!R*vX!U*vX!V*vX!Y*vX!Z*vX!h*vX!j*vX!k*vX!s*vX!t*vX!v*vX!w*vX!y*vX#R*vX#T*vX#V*vX#X*vX#Y*vX#Z*vX#]*vX#r*vX#s*vX#x*vX#|*vX$P*vX$X*vX$]*vX$^*vX$_*vX$a*vX$c*vX$d*vX$e*vX$f*vX$g*vX$k*vX$m*vX$n*vX$q*vX'o*vX'u*vX(X*vX(Y*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vX%^*vX$[*vX~P,@nO#p*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vX%^*vX~P,:cOT*vX^*vXa*vXc*vXl*vXn*vX!R*vX!h*vX!y*vX#r*vX#s*vX#x*vX#|*vX$P*vX$T*vX$U*vX%f*vX%g*vX%h*vX%i*vX%j*vX%k*vX%l*vX%m*vX%n*vX%o*vX%p*vX%q*vX%x*vX&T*vX&W*vX&X*vX'o*vX'u*vX$n*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vX%^*vX~P/2oO$S+Pa%X+Pa%Y+Pa%Z+Pa%^+Pa%_+Pa%b+Pa%c+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pa~P'DpOT+PaV+PaW+Pa^+Paa+Pal+Pan+Pao+Pav+Paw+Pax+Pay+Pa|+Pa!Q+Pa!R+Pa!U+Pa!V+Pa!Y+Pa!Z+Pa!h+Pa!j+Pa!k+Pa!s+Pa!t+Pa!v+Pa!w+Pa!y+Pa#R+Pa#T+Pa#V+Pa#X+Pa#Y+Pa#Z+Pa#]+Pa#r+Pa#s+Pa#x+Pa#|+Pa$P+Pa$X+Pa$]+Pa$^+Pa$_+Pa$a+Pa$c+Pa$d+Pa$e+Pa$f+Pa$g+Pa$k+Pa$m+Pa$n+Pa$q+Pa%^+Pa'o+Pa'u+Pa(X+Pa(Y+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pa$[+Pa~P,@nOT+Pa^+Paa+Pac+Pal+Pan+Pa!R+Pa!h+Pa!y+Pa#r+Pa#s+Pa#x+Pa#|+Pa$P+Pa$T+Pa$U+Pa%^+Pa%f+Pa%g+Pa%h+Pa%i+Pa%j+Pa%k+Pa%l+Pa%m+Pa%n+Pa%o+Pa%p+Pa%q+Pa%x+Pa&T+Pa&W+Pa&X+Pa'o+Pa'u+Pa$n+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pa~P/2oO#p+Pa%^+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pa~P,:cOT$uiY$uiZ$ui^$uia$uie$uif$uig$uih$uil$uin$ui!O$ui!P$ui!Q$ui!R$ui!S$ui!T$ui!U$ui!V$ui![$ui!]$ui!^$ui!_$ui!`$ui!a$ui!b$ui!c$ui!d$ui!e$ui!g$ui!h$ui!y$ui#]$ui#e$ui#n$ui#q$ui#r$ui#s$ui#x$ui#|$ui$P$ui$p$ui$x$ui$y$ui$z$ui$|$ui$}$ui%O$ui%P$ui%Q$ui%R$ui%S$ui%T$ui'o$ui'u$ui$n$ui%^$ui~Oo0nOc$ui$T$ui$U$ui%f$ui%g$ui%h$ui%i$ui%j$ui%k$ui%l$ui%m$ui%n$ui%o$ui%p$ui%q$ui%x$ui&T$ui&W$ui&X$ui~P2LZOc#yOV$uiW$uio$uiv$uiw$uix$uiy$ui|$ui!Y$ui!Z$ui!j$ui!k$ui!s$ui!t$ui!v$ui!w$ui#R$ui#T$ui#V$ui#X$ui#Y$ui#Z$ui$X$ui$]$ui$^$ui$_$ui$a$ui$c$ui$d$ui$e$ui$f$ui$g$ui$k$ui$m$ui$q$ui(X$ui(Y$ui$[$ui~P2LZO^%ZOeFsOlLtOo0nO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!hJvO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeFrOlLrOo0nO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!hJwO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO$S(^q%X(^q%Y(^q%Z(^q%_(^q%b(^q%c(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^q%^(^q~P'DpOT(^qV(^qW(^q^(^qa(^ql(^qn(^qo(^qv(^qw(^qx(^qy(^q|(^q!Q(^q!R(^q!U(^q!V(^q!Y(^q!Z(^q!h(^q!j(^q!k(^q!s(^q!t(^q!v(^q!w(^q!y(^q#R(^q#T(^q#V(^q#X(^q#Y(^q#Z(^q#](^q#r(^q#s(^q#x(^q#|(^q$P(^q$X(^q$](^q$^(^q$_(^q$a(^q$c(^q$d(^q$e(^q$f(^q$g(^q$k(^q$m(^q$n(^q$q(^q'o(^q'u(^q(X(^q(Y(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^q%^(^q$[(^q~P,@nO#p(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^q%^(^q~P,:cOT(^q^(^qa(^qc(^ql(^qn(^q!R(^q!h(^q!y(^q#r(^q#s(^q#x(^q#|(^q$P(^q$T(^q$U(^q%f(^q%g(^q%h(^q%i(^q%j(^q%k(^q%l(^q%m(^q%n(^q%o(^q%p(^q%q(^q%x(^q&T(^q&W(^q&X(^q'o(^q'u(^q$n(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^q%^(^q~P/2oO$S*uO%X%{O%Y*qO%Z*rO%_*vO%bH^O%cMSO~O$S*uO%X%{O%Y*qO%Z*rO%_*vO%bH_O%cMTO~O$S*uO%X%{O%Y*qO%Z*rO%_*vO%bHaO%cMVO~O$S*uO%X%{O%Y*qO%Z*rO%_*vO%bH`O%cMUO~OT$uqY$uqZ$uq^$uqa$uqe$uqf$uqg$uqh$uql$uqn$uq!O$uq!P$uq!Q$uq!R$uq!S$uq!T$uq!U$uq!V$uq![$uq!]$uq!^$uq!_$uq!`$uq!a$uq!b$uq!c$uq!d$uq!e$uq!g$uq!h$uq!y$uq#]$uq#e$uq#n$uq#q$uq#r$uq#s$uq#x$uq#|$uq$P$uq$p$uq$x$uq$y$uq$z$uq$|$uq$}$uq%O$uq%P$uq%Q$uq%R$uq%S$uq%T$uq'o$uq'u$uq$n$uq%^$uq~Oo0nOc$uq$T$uq$U$uq%f$uq%g$uq%h$uq%i$uq%j$uq%k$uq%l$uq%m$uq%n$uq%o$uq%p$uq%q$uq%x$uq&T$uq&W$uq&X$uq~P36pOc#yOV$uqW$uqo$uqv$uqw$uqx$uqy$uq|$uq!Y$uq!Z$uq!j$uq!k$uq!s$uq!t$uq!v$uq!w$uq#R$uq#T$uq#V$uq#X$uq#Y$uq#Z$uq$X$uq$]$uq$^$uq$_$uq$a$uq$c$uq$d$uq$e$uq$f$uq$g$uq$k$uq$m$uq$q$uq(X$uq(Y$uq$[$uq~P36pOT)pX^)pXa)pXc)pXl)pXn)pX!R)pX!h)pX!y)pX#r)pX#s)pX#x)pX#|)pX$P)pX$T)pX$U)pX%f)pX%g)pX%h)pX%i)pX%j)pX%k)pX%l)pX%m)pX%n)pX%o)pX%p)pX%q)pX%x)pX&T)pX&W)pX&X)pX'o)pX'u)pX$n)pX~P/2oOT)pXV)pXW)pX^)pXa)pXl)pXn)pXo)pXv)pXw)pXx)pXy)pX|)pX!Q)pX!R)pX!U)pX!V)pX!Y)pX!Z)pX!h)pX!j)pX!k)pX!s)pX!t)pX!v)pX!w)pX!y)pX#R)pX#T)pX#V)pX#X)pX#Y)pX#Z)pX#])pX#r)pX#s)pX#x)pX#|)pX$P)pX$X)pX$])pX$^)pX$_)pX$a)pX$c)pX$d)pX$e)pX$f)pX$g)pX$k)pX$m)pX$n)pX$q)pX'o)pX'u)pX(X)pX(Y)pX$[)pX~P,@nO^%ZOeFsOlLtOo0nO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeFrOlLrOo0nO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO$S$wy%X$wy%Y$wy%Z$wy%_$wy%b$wy%c$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wy%^$wy~P'DpOT$wyV$wyW$wy^$wya$wyl$wyn$wyo$wyv$wyw$wyx$wyy$wy|$wy!Q$wy!R$wy!U$wy!V$wy!Y$wy!Z$wy!h$wy!j$wy!k$wy!s$wy!t$wy!v$wy!w$wy!y$wy#R$wy#T$wy#V$wy#X$wy#Y$wy#Z$wy#]$wy#r$wy#s$wy#x$wy#|$wy$P$wy$X$wy$]$wy$^$wy$_$wy$a$wy$c$wy$d$wy$e$wy$f$wy$g$wy$k$wy$m$wy$n$wy$q$wy'o$wy'u$wy(X$wy(Y$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wy%^$wy$[$wy~P,@nO#p$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wy%^$wy~P,:cOT$wy^$wya$wyc$wyl$wyn$wy!R$wy!h$wy!y$wy#r$wy#s$wy#x$wy#|$wy$P$wy$T$wy$U$wy%f$wy%g$wy%h$wy%i$wy%j$wy%k$wy%l$wy%m$wy%n$wy%o$wy%p$wy%q$wy%x$wy&T$wy&W$wy&X$wy'o$wy'u$wy$n$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wy%^$wy~P/2oO#hJ_O#i#fi#o#fi#p#fia#fid#fi]#fin#fir#fi~O#hJ`OT#fiW#fi^#fil#fio#fiv#fiw#fix#fiy#fi|#fi!Q#fi!R#fi!U#fi!V#fi!Y#fi!Z#fi!h#fi!j#fi!k#fi!s#fi!t#fi!v#fi!w#fi!y#fi#R#fi#T#fi#V#fi#X#fi#Y#fi#Z#fi#]#fi#r#fi#s#fi#x#fi#|#fi$P#fi$X#fi$]#fi$^#fi$_#fi$a#fi$c#fi$d#fi$e#fi$f#fi$g#fi$k#fi$m#fi$n#fi$q#fi'o#fi'u#fi(X#fi(Y#fi$[#fi~P+=RO#hJaOT#fiZ#fi^#fia#fic#fie#fif#fig#fil#fin#fi!O#fi!P#fi!R#fi!S#fi!T#fi!e#fi!h#fi!y#fi#e#fi#i#fi#n#fi#r#fi#s#fi#x#fi#|#fi$P#fi$T#fi$U#fi$x#fi$y#fi$z#fi$|#fi$}#fi%O#fi%P#fi%Q#fi%R#fi%S#fi%T#fi%f#fi%g#fi%h#fi%i#fi%j#fi%k#fi%l#fi%m#fi%n#fi%o#fi%p#fi%q#fi%x#fi&T#fi&W#fi&X#fi'o#fi'u#fi$n#fiY#fi![#fi!]#fi!^#fi!_#fi!`#fi!a#fi!b#fi!c#fi!d#fi!g#fi%^#fi~O$S+Qq%X+Qq%Y+Qq%Z+Qq%^+Qq%_+Qq%b+Qq%c+QqY+Qq![+Qq!]+Qq!^+Qq!_+Qq!`+Qq!a+Qq!b+Qq!c+Qq!d+Qq!g+Qq~P'DpOT+QqV+QqW+Qq^+Qqa+Qql+Qqn+Qqo+Qqv+Qqw+Qqx+Qqy+Qq|+Qq!Q+Qq!R+Qq!U+Qq!V+Qq!Y+Qq!Z+Qq!h+Qq!j+Qq!k+Qq!s+Qq!t+Qq!v+Qq!w+Qq!y+Qq#R+Qq#T+Qq#V+Qq#X+Qq#Y+Qq#Z+Qq#]+Qq#r+Qq#s+Qq#x+Qq#|+Qq$P+Qq$X+Qq$]+Qq$^+Qq$_+Qq$a+Qq$c+Qq$d+Qq$e+Qq$f+Qq$g+Qq$k+Qq$m+Qq$n+Qq$q+Qq%^+Qq'o+Qq'u+Qq(X+Qq(Y+QqY+Qq![+Qq!]+Qq!^+Qq!_+Qq!`+Qq!a+Qq!b+Qq!c+Qq!d+Qq!g+Qq$[+Qq~P,@nOT+Qq^+Qqa+Qqc+Qql+Qqn+Qq!R+Qq!h+Qq!y+Qq#r+Qq#s+Qq#x+Qq#|+Qq$P+Qq$T+Qq$U+Qq%^+Qq%f+Qq%g+Qq%h+Qq%i+Qq%j+Qq%k+Qq%l+Qq%m+Qq%n+Qq%o+Qq%p+Qq%q+Qq%x+Qq&T+Qq&W+Qq&X+Qq'o+Qq'u+Qq$n+QqY+Qq![+Qq!]+Qq!^+Qq!_+Qq!`+Qq!a+Qq!b+Qq!c+Qq!d+Qq!g+Qq~P/2oO#p+Qq%^+QqY+Qq![+Qq!]+Qq!^+Qq!_+Qq!`+Qq!a+Qq!b+Qq!c+Qq!d+Qq!g+Qq~P,:cOT)tiV)tiW)ti^)tia)til)tin)tio)tiv)tiw)tix)tiy)ti|)ti!Q)ti!R)ti!U)ti!V)ti!Y)ti!Z)ti!h)ti!j)ti!k)ti!s)ti!t)ti!v)ti!w)ti!y)ti#R)ti#T)ti#V)ti#X)ti#Y)ti#Z)ti#])ti#r)ti#s)ti#x)ti#|)ti$P)ti$X)ti$])ti$^)ti$_)ti$a)ti$c)ti$d)ti$e)ti$f)ti$g)ti$k)ti$m)ti$n)ti$q)ti'o)ti'u)ti(X)ti(Y)ti$[)ti~P,@nOV#wq]#wq~P#!PO!U)^O!V)^Oe(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$S(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%X(TX%Y(TX%Z(TX%_(TX%b(TX%c(TX%^(TX~P(+YOT(TXW(TXl(TXo(TXv(TXw(TXx(TXy(TX|(TX!R(TX!Y(TX!Z(TX!h(TX!j(TX!k(TX!s(TX!t(TX!v(TX!w(TX!y(TX#R(TX#T(TX#V(TX#X(TX#Y(TX#Z(TX#r(TX#s(TX#x(TX#|(TX$P(TX$X(TX$](TX$^(TX$_(TX$a(TX$c(TX$d(TX$e(TX$f(TX$g(TX$k(TX$m(TX$n(TX$q(TX'o(TX'u(TX(X(TX(Y(TX$[(TX~P!>oO!U)^O!V)^Oe(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX#p(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%^(TX~P(+YO!U)^O!V)^OT(TXa(TXc(TXe(TXl(TXn(TX!O(TX!P(TX!R(TX!S(TX!T(TX!e(TX!h(TX!y(TX#e(TX#n(TX#r(TX#s(TX#x(TX#|(TX$P(TX$T(TX$U(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%f(TX%g(TX%h(TX%i(TX%j(TX%k(TX%l(TX%m(TX%n(TX%o(TX%p(TX%q(TX%x(TX&T(TX&W(TX&X(TX'o(TX'u(TX$n(TX%^(TX~P(+YOZ(TXe(TXf(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$S(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%X(TX%Y(TX%Z(TX%_(TX%b(TX%c(TX%^(TX~P(,tOT(TXW(TX^(TXl(TXo(TXv(TXw(TXx(TXy(TX|(TX!Q(TX!R(TX!U(TX!V(TX!Y(TX!Z(TX!h(TX!j(TX!k(TX!s(TX!t(TX!v(TX!w(TX!y(TX#R(TX#T(TX#V(TX#X(TX#Y(TX#Z(TX#](TX#r(TX#s(TX#x(TX#|(TX$P(TX$X(TX$](TX$^(TX$_(TX$a(TX$c(TX$d(TX$e(TX$f(TX$g(TX$k(TX$m(TX$n(TX$q(TX'o(TX'u(TX(X(TX(Y(TX$[(TX~P!B[OZ(TXe(TXf(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX#p(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%^(TX~P(,tOT(TXZ(TX^(TXa(TXc(TXe(TXf(TXl(TXn(TX!O(TX!P(TX!R(TX!S(TX!T(TX!e(TX!h(TX!y(TX#e(TX#n(TX#r(TX#s(TX#x(TX#|(TX$P(TX$T(TX$U(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%f(TX%g(TX%h(TX%i(TX%j(TX%k(TX%l(TX%m(TX%n(TX%o(TX%p(TX%q(TX%x(TX&T(TX&W(TX&X(TX'o(TX'u(TX$n(TX%^(TX~P(,tO^%ZOeKWOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^OZ%UXf%UXg%UX!e%UX#e%UX#n%UX#p%UX$x%UX$y%UX$z%UX$|%UX$}%UX%O%UX%P%UX%Q%UX%R%UX%S%UX%T%UXY%UX![%UX!]%UX!^%UX!_%UX!`%UX!a%UX!b%UX!c%UX!d%UX!g%UX%^%UX~P)1OO#pHSO~O#pHTO~O#pHUO~O#pHVO~O^*]O|%bO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OO'oHdO~O#pIyO~O#pIzO~O#pI{O~O#pI|O~OT)oX^)oXa)oXl)oXn)oX!R)oX!h)oX!y)oX#r)oX#s)oX#x)oX#|)oX$P)oX'o)oX'u)oX$n)oX~OYJTOc)oX$T)oX$U)oX%f)oX%g)oX%h)oX%i)oX%j)oX%k)oX%l)oX%m)oX%n)oX%o)oX%p)oX%q)oX%x)oX&T)oX&W)oX&X)oX~P5*eOYJUO~P*7sOrJZO~P#!POrJ[O~P#!POrJ]O~P#!POrJ^O~P#!PO#hJaO#iJdOZ$wie$wig$wi!O$wi!P$wi!S$wi!T$wi!e$wi#e$wi#n$wi$x$wi$y$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi~P2%rO#hJ`O#iJcO#n$wi~P0+RO#pJeO~O#pJfO~O#pJgO~O#pJhO~O'oJiO~O'oJjO~O'oJkO~O'oJlO~O%dJmO~P#!PO%dJnO~P#!PO%dJoO~P#!PO%dJpO~P#!POYJsO~OT)na^)nal)nan)na!R)na!h)na!y)na#r)na#s)na#x)na#|)na$P)na'o)na'u)na$n)na~OaL`Oc)na$T)na$U)na%f)na%g)na%h)na%i)na%j)na%k)na%l)na%m)na%n)na%o)na%p)na%q)na%x)na&T)na&W)na&X)na~P51VOaLaOV)naW)nae)nao)nav)naw)nax)nay)na|)na!O)na!P)na!Q)na!S)na!T)na!U)na!V)na!Y)na!Z)na!j)na!k)na!s)na!t)na!v)na!w)na#R)na#T)na#V)na#X)na#Y)na#Z)na#])na$X)na$])na$^)na$_)na$a)na$c)na$d)na$e)na$f)na$g)na$k)na$m)na$q)na(X)na(Y)na$[)na~P51VOYKTO~OaLfOT)saV)saW)sa^)sae)sal)san)sao)sav)saw)sax)say)sa|)sa!O)sa!P)sa!Q)sa!R)sa!S)sa!T)sa!U)sa!V)sa!Y)sa!Z)sa!h)sa!j)sa!k)sa!s)sa!t)sa!v)sa!w)sa!y)sa#R)sa#T)sa#V)sa#X)sa#Y)sa#Z)sa#])sa#r)sa#s)sa#x)sa#|)sa$P)sa$X)sa$])sa$^)sa$_)sa$a)sa$c)sa$d)sa$e)sa$f)sa$g)sa$k)sa$m)sa$n)sa$q)sa'o)sa'u)sa(X)sa(Y)sa$[)sa~OhKmOc'qXe'qXf'qX~OZ*xXe*xXf*xXg*xX!O*xX!P*xX!S*xX!T*xX!e*xX#e*xX#n*xX$x*xX$y*xX$z*xX$|*xX$}*xX%O*xX%P*xX%Q*xX%R*xX%S*xX%T*xXY*xX![*xX!]*xX!^*xX!_*xX!`*xX!a*xX!b*xX!c*xX!d*xX!g*xX~O%^LVO$S*xX%X*xX%Y*xX%Z*xX%_*xX%b*xX%c*xX~P5;`O%^LWOT*xXW*xX^*xXl*xXo*xXv*xXw*xXx*xXy*xX|*xX!Q*xX!R*xX!U*xX!V*xX!Y*xX!Z*xX!h*xX!j*xX!k*xX!s*xX!t*xX!v*xX!w*xX!y*xX#R*xX#T*xX#V*xX#X*xX#Y*xX#Z*xX#]*xX#r*xX#s*xX#x*xX#|*xX$P*xX$X*xX$]*xX$^*xX$_*xX$a*xX$c*xX$d*xX$e*xX$f*xX$g*xX$k*xX$m*xX$n*xX$q*xX'o*xX'u*xX(X*xX(Y*xX$[*xX~P$8OO%^LXO#p*xX~P5;`O%^LYOT*xX^*xXa*xXc*xXl*xXn*xX!R*xX!h*xX!y*xX#r*xX#s*xX#x*xX#|*xX$P*xX$T*xX$U*xX%f*xX%g*xX%h*xX%i*xX%j*xX%k*xX%l*xX%m*xX%n*xX%o*xX%p*xX%q*xX%x*xX&T*xX&W*xX&X*xX'o*xX'u*xX$n*xX~P5;`OT)nX^)nXl)nXn)nX!R)nX!h)nX!y)nX#r)nX#s)nX#x)nX#|)nX$P)nX'o)nX'u)nX$n)nX~OaL`Oc)nX$T)nX$U)nX%f)nX%g)nX%h)nX%i)nX%j)nX%k)nX%l)nX%m)nX%n)nX%o)nX%p)nX%q)nX%x)nX&T)nX&W)nX&X)nX~P5DiOaLaOV)nXW)nXe)nXo)nXv)nXw)nXx)nXy)nX|)nX!O)nX!P)nX!Q)nX!S)nX!T)nX!U)nX!V)nX!Y)nX!Z)nX!j)nX!k)nX!s)nX!t)nX!v)nX!w)nX#R)nX#T)nX#V)nX#X)nX#Y)nX#Z)nX#])nX$X)nX$])nX$^)nX$_)nX$a)nX$c)nX$d)nX$e)nX$f)nX$g)nX$k)nX$m)nX$q)nX(X)nX(Y)nX$[)nX~P5DiOZ*xae*xaf*xag*xa!O*xa!P*xa!S*xa!T*xa!e*xa#e*xa#n*xa$x*xa$y*xa$z*xa$|*xa$}*xa%O*xa%P*xa%Q*xa%R*xa%S*xa%T*xaY*xa![*xa!]*xa!^*xa!_*xa!`*xa!a*xa!b*xa!c*xa!d*xa!g*xa~O%^LVO$S*xa%X*xa%Y*xa%Z*xa%_*xa%b*xa%c*xa~P5JWO%^LWOT*xaW*xa^*xal*xao*xav*xaw*xax*xay*xa|*xa!Q*xa!R*xa!U*xa!V*xa!Y*xa!Z*xa!h*xa!j*xa!k*xa!s*xa!t*xa!v*xa!w*xa!y*xa#R*xa#T*xa#V*xa#X*xa#Y*xa#Z*xa#]*xa#r*xa#s*xa#x*xa#|*xa$P*xa$X*xa$]*xa$^*xa$_*xa$a*xa$c*xa$d*xa$e*xa$f*xa$g*xa$k*xa$m*xa$n*xa$q*xa'o*xa'u*xa(X*xa(Y*xa$[*xa~P'AOO%^LXO#p*xa~P5JWO%^LYOT*xa^*xaa*xac*xal*xan*xa!R*xa!h*xa!y*xa#r*xa#s*xa#x*xa#|*xa$P*xa$T*xa$U*xa%f*xa%g*xa%h*xa%i*xa%j*xa%k*xa%l*xa%m*xa%n*xa%o*xa%p*xa%q*xa%x*xa&T*xa&W*xa&X*xa'o*xa'u*xa$n*xa~P5JWO^!`O!tLdO'oyO'u!^O~OaLfOT)sXV)sXW)sX^)sXe)sXl)sXn)sXo)sXv)sXw)sXx)sXy)sX|)sX!O)sX!P)sX!Q)sX!R)sX!S)sX!T)sX!U)sX!V)sX!Y)sX!Z)sX!h)sX!j)sX!k)sX!s)sX!t)sX!v)sX!w)sX!y)sX#R)sX#T)sX#V)sX#X)sX#Y)sX#Z)sX#])sX#r)sX#s)sX#x)sX#|)sX$P)sX$X)sX$])sX$^)sX$_)sX$a)sX$c)sX$d)sX$e)sX$f)sX$g)sX$k)sX$m)sX$n)sX$q)sX'o)sX'u)sX(X)sX(Y)sX$[)sX~O^*]O|%bO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OO",goto:"(=d,fPPPPPPPPP,gPP8mPPAgIiPAgPPPPPPK_PPPPPP!&t!&wP!(b!(e!)QPPPP!/n!6XP!VPPPPPPPPPPPP$CsPPPPPPPPPPPP$C|$Eh$FOPPPP$FYPP$FcP$Fo$FvPP$F{P$Gk$HZPP$Hm$Hm$Hu$IP$Ic$Ii$J`$Jl$Jz$KQ$Kn$Kt$NZ$Na$Ns$Ny% T% Z% i% o% y%!P%!V%!]%!c%!i%!o%!u%#P%#W%#^%#d%#n%#u%$T%$_%$o%$y%(j%(p%(v%(|%)S%)Y%)a%)g%)m%*h%*n%*t%*z%+Q%+W%+^%+hPPPPPPPPPP%+n%+qP%+w%,R%5[%6i%6pP%Ah%Ip%Ix%Jd%Jq%KU%Kf%Kv%Ky%Lc%Lw%L}%MU%M_&$t&+P&0xPP&7i&=`&=d&Jc'!W'!n'!r'!x'(s')_')f')n')w'*T'/|'*T'*T'0U'5}'6b'6t'7R'7_'7c'7j'7p'7t'7w'7}'8Q'8V'8Y'8]'8c'8n'8u'8x'*T'8{'9O'9R'9X#Cj#Cj':u';[';|'O'>a'>s'?c'?|'@Z'@v'@y'AV'Ac'Ap'Bx'B{'Cb'Cw'D_'F`'Fc'Ff'Fl'Fr'Fu'Gr' j'Hd'H{'H{'Id'Ig'Hd'Iy'Iy'Iy'Jb'Je'Iy'Hd'Jq'Jq'Jq'Hd'KY'K]'Hd'Hd'Ka'Hd'Hd'Kd'Kg'*T&7i'Km'Ks(#}()k()p(*V(/u(0T(0i(0|(0|(1_(1b(1h(2](2n(2|(3S(3q(4g%LZ%LZ%LZ(4k(4{(5R%LZ(5`(5s(6V(6`(6c(6i(6{(7R%LZ(7U(7X(7_%LZ(7e(7u(7{(8Y%LZ(8c(8k(8q(8k(8k(8}%LZ(9u(:V(:Y(:^%Lc(:p%L_(:t%Lc(:}(;a(;d(;j(;q(;u(;u(;y(;u(;u%Lc(;|%Lc(j>m>x>z>|@h@}ATAWAaAwBUBYBdBjBlCdCmCpDQDSDYDcDfDhDxEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFtFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHRHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhKnKoLmLnLoLpLqLrLsLtLuLvLwLxLyMSMTMUMVM^Q!WcQ!YdQ!ZfQ![gQ!]hS!kp!XQ!mqQ!nrQ!osQ!ptQ$S!bS$T!e!lQ$V!fQ$W!gQ$X!hQ$Y!iQ$p!qU$r!s(vKmQ$s!tQ$y!{d&c#[#o&d&e&j'Q'R'U+a,kQ&q#]Q&t#bS'f#u,|Q'}$UQ(^$Zz*Y%t*z+V1T1_6}7|7}8S8U8^8`8d=wAqAsAuDOEPKgMaQ+q&gW+v&m+c+k2TQ,_&sS,z'c'gQ1r+TQ2a+fU3X,R2_9QQ3m,aQ4W,{Q9T2XQ9x2wQ:g3lQ>`8lQ>a8mQ?e:[RBb>e$p!_iu!`!j!w#X#[#o#t%y%z%{&Y&]&d&e&j&l&n'Q'R'U'W'Z'^'a'b's(j)P*R*g*r*x+P+T+Z+a+b+d,k,l,q,r-R.S.e0v1V1Y1l1y2S2U2g3T3u4O5X7k8T8c8n8x=u>j>x>z>|BYBdBjBlDcDfDhLmLnLoLpLqLrLsLtM^+j%U#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7b7l8O8R8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDYDxEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMVQ&v#ex*[%t*z1T1_6}7|7}8S8U8^8`8d=wAqAsAuDOEPKgMa[*b%x&P&`+[FtLu!b/[)}.k/`/b/d/g5t6S6[6a6b;kj>m>x>z>|@h@}ATAWAaAwBUBYBdBjBlCdCmCpDQDSDYDcDfDhDxEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFtFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHRHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhKnKoLmLnLoLpLqLrLsLtLuLvLwLxLyMSMTMUMVM^Y'r$Q(x/z0_7c`+w&m+c+k2T2}=q>QLdU-y(t(vKmQ5V.eS5Z.gj>x>z>|@}BUBYBdBjBlDcDfDhEYFtHRIoIpIqIrIsItJ_J`JaJbJcJdKnKoLmLnLoLpLqLrLsLtLuM^+Q%V#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMVx*[%t*z1T1_6}7|7}8S8U8^8`8d=wAqAsAuDOEPKgMaW+y&m+c+k2TQ1v+VU3Y,R2_9QiLh+Q1R7b8RDYEVEXEuFRFSFUF`R#P!Q$PeOQSTZkl!d!}#X#[#b#f#o#t#u${$|%O&]&d&j&s&x'Q'U'Z'^'c(n(p+m,a,e,|-v1y2h2i2j3T3l4P8x9g9j:^:v>j>x>z>|?f?g?h@R@SBdBjBzB|CYCZC[C^DcDhDoDqR#U!UU%o#T)a/qW(z%Z*]0r8OW.a)X)m*y5QQ4v.PS6[/d5tR@}<^.O%Y#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)}*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d.k/`/b/d/g/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5m5p5s5t6S6[6a6b6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;k;om@h@}ATAWAaAqAsAuAwBUCdCmCpDODQDSDYDxEPEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhKnKoLvLwLxLyMSMTMUMVMaR9a2f.P%Y#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)}*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d.k/`/b/d/g/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5m5p5s5t6S6[6a6b6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;k;om@h@}ATAWAaAqAsAuAwBUCdCmCpDODQDSDYDxEPEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhKnKoLvLwLxLyMSMTMUMVMa,i%d#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa&^%_#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMV!U0t+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`!`K]*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm![K^=eFgFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHOHTH_HkIzJUJ[JfJnJsJw!UK_;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!XK`FhFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HQHVH`HmI|JTJ^JhJoJv,X%]#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMV&^%s#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMV!`Fi*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm!WFj=eFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHTH_HkIzJUJ[JfJnJsJw!UFk+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`!SFlFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HVH`HmI|JTJ^JhJoJv!VKf;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKhi)V%^%_0s0tKXKYKZK[K]K^K_K`,d%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa!b/])}.k/`/b/d/g5t6S6[6a6b;km@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa,e%v#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa+^&O#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1T1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaW+z&m+c+k2TQ,x'`[-z(t(v.g5[n8|RCwFtQ)^%fQ*a%wQ.x)lV5f.m0g;p+f%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1T1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa!V0z+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`a.n)]*|*}0l;o@hHbKxV5g.m0g;p_0h*|*}0l;o@hHbKxT7V0g<}V*{&PFtLuR)^&RX)^%}&SEZFpS)^&T1qQ7|1]Q7}1^Q8^1eQ8i1nQAr=lQD`B[RE_D_R)^&UR.l)[_6_/f1W6^=tAQAyM_!b/a)}.k/`/b/d/g5t6S6[6a6b;kQ>m@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLiLjLkLlLmLnLoLpLqLrLsLtLvLwLxLyLzL{L|L}MSMTMUMVQ+S&QR/}*i,Q%j#T%[%i%m%o%s%u%y%z(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*h*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0_0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7c7l8O8Y8]8_8a8y9s:S:W:X;i;j;oQ>m@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLiLjLkLlLmLnLoLpLqLrLsLtLvLwLxLyLzL{L|L}MSMTMUMVQ(}%ZQ+W&XQ.O(xS/o*R*gQ1{+XQ4{.VQ4}.YS6f/n/zQ8v2PQ8z1|Q>k8{QDgBkQEbDeREyEcQ+R&Ql,U&o+g+j,S2W2Y2b2n2p9U9d9f?P?Q[,X&p+h2Z9r>wBhn/m*P/p6nHSHTHUHVIyIzI{I|JeJfJgJhS/|*i+Sz1O+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`Q6o/}Q7n0wQ8k1pQCO?jQCP?kQD^BZQDjBxQDkByQE`D`REwE_f0x+Q1R7bDYEVEXEuFRFSFUF`Q=n8RR=}8_o0o+O0k0m0n2|7]:S:X=XJRJTJUJqJvJwg0x+Q1R7bDYEVEXEuFRFSFUF`S&y#f,eQ,c&xW2t+t2[8}9tTL_7zLfQ#d!WU$a!k#Z#aQ'u$SU'|$T$[$_S(e$p'vQ+`&cU-Z'w'z'}S-n(^(fQ3V,QQ4S,xS4a-[-]Q4q-oS:o3{4TQ;S4bQ=f7yS?x:p:rSAj=_=gQCV?zSCtAkAlRD|CuR>Y8iR8S1`Q8U1aR=w8WVBZ>]BXDZR8`1fR8d1hQ/x*dQ:l3xRDlCSR*e%xR/x*e,m%g#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaQ0m*}QJRKxRJSHb+Z%n#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMV$v)q%h(y*_.R.]._.r.u.{/P/Q/R/S/T/U/V/W/k/v0X0Z0]1t2q3]3_3o4u5O5S6k6l7^7s8Z8w9q:P:V:`:h;a;yO>S>l?W?a@`AUAXAZA[AdAfAnAvBeClCoDPDtDyDzEQESEpErEzFVF]F^KVK{K|K}LOLZL[L]L^Q9b2fzGX0Y6pm@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMV,V%j#T%Z%[%i%m%o%s%u%y%z(x(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*h*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0_0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7c7l8O8Y8]8_8a8y9s:S:W:X;i;j;oQ>m@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLiLjLkLlLmLnLoLpLqLrLsLtLvLwLxLyLzL{L|L}MSMTMUMVU%p#T)a/qTr9]RBg>sQ3U,PQ4R,wQ:n3zR?|:tS>{9`9aR>}9cV>y9_9`9bQ#p![U$i!o#n#rW(V$X$h$k'YU-d(U(X(bS4i-f-gS;W4h4jR@Z;YQ#v!]U$m!p#s#xW(Z$Y$l$o'jU-i(Y(](dS4m-k-lS;Z4l4nR@];]Q4Q,vQ:m3yQ:z4RQ?u:nQ?{:sRCW?|]#g!Y!m#i$V$c(PQQOSjQ${R${!}QSOQkQWmSk$|(nQ$|!}R(n${Q-S'rR4[-SU#{!_%U/[Q$PFc^'n#{0k2P7]8{FdJrU0k*}HbKxQ2P+_Q7]0mQ8{1}QFdFbRJrJSS'l#y0jS-P'l>bT>b8n>dY#}!_#{%U*b/[S$OFbFcR'p#}Q(k$uR-t(kQZOSlQS[wZl!d%O(p-vQ!dkQ%O!}S(p${$|R-v(nQ!|!PR$z!|lTOQSZkl!d!}${$|%O(n(p-vznT&]&d&s&x'Q'Z'c2h3l9g9j:v?fBjBzB|C[C^DoDq^&]#X1y3T8x>jBdDcS&d#[&jQ&s#bS&x#f,eS'Q#o'US'Z#t'^S'c#u,|Q2h+mQ3l,aQ9g2iQ9j2jQ:v4PQ?f:^WBj>x>z>|DhQBz?gQB|?hQC[@RQC^@SQDoCYRDqCZQ)e%bR.s)eQ;u5lQ;w5oW@l;u;wCfCgQCf@nRCg@pQ)j%cR.v)jQ.Q(yS4w.Q4xR4x.RQ5R.bR;c5RQ5_.hQ5q.xQ;f5ZV;h5_5q;fQ;q5hR@j;qQAb=PSCqAbCrRCrAdQ=O7TRA`=OQ7O0dR<{7OQ8t1wR>i8tQ5w/]R[8kRBW>[QDUBQREUDUQj>m>x>z>|@hATAWAaAwBYBdBjBlCdCmCpDQDSDYDcDfDhDxEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLmLnLoLpLqLrLsLtLvLwLxLyMSMTMUMVM^S!z}!OQ$w!xQ&r#^Q&v#eh'O#l#q#w$f$j$n(S(W([-c-h-m[*b%x&P&`+[FtLu!b/[)}.k/`/b/d/g5t6S6[6a6b;k`S(i$s>ad)`%^&O*Z0a7rHXKXKYKZK[Q2y+vQ4t-z[5`.h.x5Z5_5q;fW5a.i0`1uA]S7h0s1jQ:]3XQ?[9xRBw?eS$v!w8nR-T'sQ!biQ!quQ$Q!`Q$Z!jU$u!w's8n&S%m#T%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8Y8]8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMV^&X#X1y3T8x>jBdDcW&m#[#o&j'US'`#t'^Q(x%ZS*h%y%zQ*k%{S+X&Y&]S+c&d'QS+k&e'RQ+t&lQ,R&nQ,o'WS,p'Z'bQ,y'aQ-s(jQ.Y)PS/Y)|HR!`/_)}.k/`/b/g5t6S6[6a6b;kQ8_Q>U8cWBk>x>z>|DhQD]BYSDeBjBlQEcDfQLdM^!`Li*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm!WLj=eFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHTH_HkIzJUJ[JfJnJsJw!ULk;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!SLlFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HVH`HmI|JTJ^JhJoJvSLzLmLqSL{LnLrSL|LoLsTL}LpLt0n!_iu!`!j!w#T#X#[#o#t%Z%[%i%o%s%u%y%z%{&Y&]&d&e&j&l&n'Q'R'U'W'Z'^'a'b's(j(z)P)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)}*P*R*U*]*c*g*r*s*u*v*w*x*y+P+Q+T+U+Z+a+b+d+n,T,W,d,k,l,q,r-R.P.S.^.a.d.e.k/`/b/d/g/p/q/w/y0O0g0j0n0r0v1R1U1V1Y1b1d1l1y1z2S2U2g2r2|3Q3T3^3n3u4O4v5Q5X5s5t6S6[6a6b6n6q6t6u6w6{7U7X7b7k7l8O8R8T8Y8]8_8a8c8n8x8y9s:S:W:X;i;j;k;oj>m>x>z>|@h@}ATAWAaAwBUBYBdBjBlCdCmCpDQDSDYDcDfDhDxEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhKnKoLmLnLoLpLqLrLsLtLvLwLxLyMSMTMUMVM^[*b%x&P&`+[FtLuQFb)|RFcHR]$R!`%Z*g*y/d0rv#z!_#{%U*}+_/[0k0m1}2P7]8{FbFcFdHbJSJrKxV+O&PFtLuY$P!_%U/[FbFcQ'o#{R/t*b^!uz{!S%V&c1rLhQ$t!vS(g$r>`R-r(hmYOQSZkl!d!}${$|%O(n(p-vmXOQSZkl!d!}${$|%O(n(p-vR!Q`lXOQSZkl!d!}${$|%O(n(p-vS&h#[&jT'S#o'UuWOQSZkl!d!}#[#o${$|%O&j'U(n(p-vQ!VaR%Q#QS!Ta#QR%R#RQ%r#TQ.q)aR6h/qU%`#T)a/q*r%a%Z%[%i%s%u(z)W)X)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*]*c*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/w/y0O0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7l8O8Y8]8_8a8y9s:S:W:X;i;jmAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMVQ*T%oQ/r*US7S0g<}Q=U7XS@e;o@hRCkAT&^%^#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMVS*Z%tMaS0a*z6}!U0s+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`Q7r1TQHXKg!`KX*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm![KY=eFgFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHOHTH_HkIzJUJ[JfJnJsJw!UKZ;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!XK[FhFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HQHVH`HmI|JTJ^JhJoJv,m%f#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa,h%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa!b/c)}.k/`/b/d/g5t6S6[6a6b;km@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaT)d%b)ef%h#T%o)a*U/q0g7X;o<}@hATW(y%Z*]0r8OY)T%[FqFrFsKWY*O%iFfFgFhKaY*W%sFiFjFlKfQ*_%uQ.R(zQ.])WY._)X)m*y.a5QQ.r)cQ.u)hS.{)n)rQ.|)oQ.})pQ/O)qQ/P)sQ/Q)tQ/R)uQ/S)vQ/T)wQ/U)xQ/V)yQ/W)zY/X){G}HOHPHQU/k*P/p6nQ/v*cQ0X*sQ0Y*uQ0Z*vQ0]*wQ1t+UQ2q+nQ3],TQ3_,WQ3o,dQ4u.PQ5O.^Q5S.dQ6k/wS6l/y0jQ6p0OQ7^0nQ7dFeQ7qFkQ7s1US8V1b=rQ8Z1dQ8w1zQ9q2rU:P2|:S:XQ:V3QQ:`3^Q:h3nQ;a4vQ;y5sQO8_Q>S8aQ>l8yQ?W9sQ?a:WQ@`;iQ@a;jQAUmQClAWQCoAaQDPAwQDtCdQDyCmQDzCpQEQDQQESDSQEjDxQEpERQErEWQEzEdQFOEkQFVExQF]FTQF^FWQHYFmQHZFnQH[KhQH]FoQHfFwQHgFxQHhFyQHiFzSHnF{G]SHoF|G^SHpF}G_SHqGOG`QHrGPQHsGQQHtGRQHuGSQHvGTQHwGUQHxGVQHyGWQHzGXQH{GYQH|GZQH}G[QIOGaQIPGbQIQGcQIRGdQISGeQITGfQIUGgQIVGhQIWGiQIXGjQIYGkQIZGlQI[GmQI]GnQI^GoQI_GpQI`GqQIaGrQIbGsQIcGtQIdGuQIeGvQIfGwQIgGxQIhGyQIiGzQIjG{QIkG|UIuHSIyJeUIvHTIzJfUIwHUI{JgUIxHVI|JhQI}H^QJOH_QJPH`QJQHaQJVHjQJWHkQJXHlQJYHmSJtJTJvSJuJUJwQJxJZQJyJ[QJzJ]QJ{J^QKPJmQKQJnQKRJoQKSJpQKUJsQKVKTQK{LvQK|LwQK}LxQLOLyQLZMSQL[MTQL]MURL^MV+Y%a#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMV!V0y+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`W)W%^%_0s0tSFwKXK]SFxKYK^SFyKZK_TFzK[K`T)i%c)jX)O%Z*]0r8O,h%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaT0c*z6}j(u%U%V%^*Z*[0a7rHXKXKYKZK[LhS.h)Y6|S5].x5qR7e0sS.f)X*yR.y)mU.b)X)m*yR;b5QW.`)X)m*y5QR5P.aQ5W.eQ;e5XQ=t8TRAy=u,m%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa]5^.h.x5Z5_5q;f,d%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaT0c*z6}Q.j)ZQ/s*`S0b*z6}Q1v+VQ>h8sRA^f8oVB`>`>aBbZ8o1r8o>`>aBbR1x+VR1w+VR5d.kR5e.kQ5c.kR@b;kQ/h)}S5b.k;kW6Q/`IoIpIqQ6U/bS6Z/d5tW6`/gIrIsItQ]QB_>_QD[BXRDaB^W1Q+Q1REuFUQ=]7b]EXDYEVEXFRFSF`g1P+Q1R7bDYEVEXEuFRFSFUF`f1V+Q1R7bDYEVEXEuFRFSFUF`TM^8R8_j0u+Q1R7b8R8_DYEVEXEuFRFSFUF`R8h1mQ+|&mS2]+c+kQ3Z,RY7x1W1X=q>QM_Q9O2TQ9[2_S=d7uLdR>r9Q`+x&m+c+k2T=q>QLdM_U:T2}L`LaUMW,R2_9QVMX1W1X7uU:R2|JTJUU?_:SJvJwR?b:XQ0p+OU7Z0k0mJRQ7_0n^:Q2|:S:XJTJUJvJwS=W7]JqRAg=XR7a0nQ2v+tQ9X2[Q=h7zR>o8}U2u+t2[8}S?X9tLfRM`7zg0w+Q1R7bDYEVEXEuFRFSFUF`Q#a!WQ#m!ZQ#r![Q$_!kQ$g!nQ$k!oQ'z$TQ(T$WQ(X$XQ-]'}Q2x+zQ4T,xQ:p3{Q=g7yQ?Z9yQ?z:rQAk=_RCuAlR&u#bQ&[#XQ8v1yQ:Z3TQ>k8xQBc>jQDbBdREaDc^&Y#X1y3T8x>jBdDcQ+Z&]WBl>x>z>|DhRDfBjj&W#X&]1y3T8x>j>x>z>|BdBjDcDhS+]&_&aR2O+^$}#Y!W!Z![!]!k!n!o!p#Z#a#j#m#n#r#s#x$T$W$X$Y$[$_$d$g$h$k$l$o&o'P'Y'j'u'w'z'}(Q(T(U(X(Y(](`(b(d(e+g,S-U-[-]-a-b-f-g-k-l-n-p2Y2b4S4b4d4f4h4j4l4n4o4q9U:o:{;V;Y;];_=f?v?xAjApCUCVCsCtDnD{D|ElR3e,ZR3d,ZQ3`,ZR?m:bQ3a,ZR?o:eR7m0wf1P+Q1R7bDYEVEXEuFRFSFUF`Q8P1_Q=i7|Q=j7}Q=s8SQ=v8UQ=|8^Q>R8`Q>V8dQAz=wRCxAqz1i+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`W=m8RAuDOEPRCzAs{1O+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`{0{+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`RBT>XQE[DYQEqEVQEsEXQFZFRQF[FSRFaF`{0|+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`R=p8RQ=n8RQC}AuQEODOREnEP{0}+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`R>^8kT>Z8k>[R>P8_RBR>UQBQ>URETDTQ6m/yR7Y0j&^%l#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMV`*S%m%y%z(x0_7c=k>QQ/{*h!`Kb*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm!WKc=eFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHTH_HkIzJUJ[JfJnJsJw!UKd;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!SKeFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HVH`HmI|JTJ^JhJoJvUKpLiLmLqUKqLjLnLrUKrLkLoLsUKsLlLpLtQLRLzQLSL{QLTL|RLUL},V%k#T%Z%[%i%m%o%s%u%y%z(x(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*h*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0_0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7c7l8O8Y8]8_8a8y9s:S:W:X;i;j;oQ>m@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLiLjLkLlLmLnLoLpLqLrLsLtLvLwLxLyLzL{L|L}MSMTMUMVV)R%Z*R*gY/l*PHSHTHUHVY6g/pIyIzI{I|Zm@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMVn*l%|*n6sJiJjJkJlKiKjKkKlKtKuKvKw![Ki*u0O6q6tDxEkFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyHSH^HjIyJZJeJm![Kj=eFgFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHOHTH_HkIzJUJ[JfJnJsJw!UKk;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!XKlFhFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HQHVH`HmI|JTJ^JhJoJvY*t%|KiKjKkKlZs9QW2z+v+y3X3YS9}2y:]S?]9x?eTBs?[BwQ3S+}Q9Z2^R>q9PR2k+mQ2i+mR9h2jQ2o+mQ9e2hQ9i2iQ9k2jQ?S9gR?T9jQ2j+mR9h2iR:Y3RR?i:^Q?g:^RB{?hQ?h:^RB{?gW&f#[#o&j'UW+e&d&e'Q'RT2V+a,kX,P&m+c+k2TS2{+v+yQ:O2yQ?^9xRBt?[Q+o&fQ2`+eR9R2VS+j&e'RT2W+a,kX+i&e'R+a,kQBm>xQBn>zQBo>|REeDhQ,V&oS2c+g,SQ2e+jQ9S2WS9V2Y2bQ9n2nQ9o2pQ>u9UQ?O9dQ?R9fQBp?PRBq?QW&p#[#o&j'UW+h&d&e'Q'RT2Z+a,kR2R+`T&h#[&jQ,Y&pQ2d+hQ9W2ZQ?V9rQBi>wRDdBhT'T#o'UQ3w,oQ:j3vR?q:iQ#x!]Q$o!pQ'v$SQ(]$YQ(f$pR-o(^R'h#uQ'd#uR4X,|S'g#u,|R,{'cT']#t'^T'[#t'^R:w4PQ#`!WW$^!k#Z#a#dW'y$T$[$_$aW-X'w'z'|'}U4`-Z-[-]S;R4a4bR@V;SQ#i!YQ$c!mR(P$VQ#h!YS$b!m#iS(O$V$cR-^(PR&|#fQ&z#fR3p,eR&{#f",nodeNames:'\u26a0 LineComment BlockComment PP_Directive Program Keyword Keyword ; Keyword TypeIdentifier = < SimpleType ) ( Delim VarName , Delim [ ] Astrisk ? > . QualifiedAliasMember :: Keyword Keyword Keyword } { Delim Delim : Delim ArgumentName BooleanLiteral IntegerLiteral RealLiteral CharacterLiteral StringLiteral NullLiteral InterpolatedRegularString $" UnaryExpr + - Not ~ & ^ ++ -- Cast Delim Keyword Keyword += -= *= SlashEq %= &= |= ^= <<= >= RightShiftAssignment ??= Keyword InterpolatedVerbatimString $@" @$" Ident ParenOrTupleExpr Delim MethodName Delim Keyword Keyword Keyword Keyword Delim Keyword Keyword ObjectCreationExpr Keyword Delim InitializerTarget Delim Delim Delim Delim Delim Keyword Delim Keyword Delim Keyword Delim Keyword Keyword Keyword Delim Keyword Delim ContextualKeyword Delim PropertyPatternFields Delim PropertyPatternField RelationalPattern <= LogicalPattern ContextualKeyword ContextualKeyword ContextualKeyword PropertyPattern Delim ListPattern Delim .. Keyword => Keyword Keyword Keyword Delim ParamName Delim LocalVarDecl Keyword Delim Delim LocalConstDecl Keyword ConstName LocalFuncDecl Keyword Delim ContextualKeyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Delim Keyword Keyword Keyword Keyword Delim Keyword Delim Keyword Keyword Keyword Keyword Keyword Keyword Delim Keyword Keyword Delim Keyword Keyword Delim -> Keyword Delim Delim Delim ArrayCreationExpr Delim BinaryExpr Slash % << RightShift Keyword Keyword == NotEq | && || ?? RangeExpr LambdaExpr Delim ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword AttrsNamedArg Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword ContextualKeyword Delim PropertyName Delim Keyword Keyword Keyword Keyword Delim ContextualKeyword ContextualKeyword Delim Keyword Delim Delim Keyword Keyword Delim Keyword Delim Delim Keyword Keyword Delim Delim',maxTerm:527,nodeProps:[["openedBy",13,"(",20,"[",30,"{"],["closedBy",14,")",19,"]",31,"}"]],skippedNodes:[0,1,2,3],repeatNodeCount:53,tokenData:"!$e~R!RXY$[YZ$aZ[$[[]$[]^$fpq$[qr$nrs${st-Ttu:yuv;dvw;qwxT#O#PWR!Q![>a!c!i>a#T#Z>a~>dR!Q![>m!c!i>m#T#Z>m~>pR!Q![>y!c!i>y#T#Z>y~>|R!Q![?V!c!i?V#T#Z?V~?YR!Q![?c!c!i?c#T#Z?c~?fR!Q![?o!c!i?o#T#Z?o~?rR!Q![?{!c!i?{#T#Z?{~@OR!Q![ <= >= == NotEq = += -= *= SlashEq %= &= |= ^= ? ?? ??= =>":g.pJ.operator,PP_Directive:g.pJ.keyword,TypeIdentifier:g.pJ.typeName,"ArgumentName AttrsNamedArg":g.pJ.variableName,ConstName:g.pJ.constant(g.pJ.variableName),MethodName:g.pJ.function(g.pJ.variableName),ParamName:[g.pJ.emphasis,g.pJ.variableName],VarName:g.pJ.variableName,"FieldName PropertyName":g.pJ.propertyName,"( )":g.pJ.paren,"{ }":g.pJ.brace,"[ ]":g.pJ.squareBracket})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{",'"',"'"]},indentOnInput:/^\s*((\)|\]|\})$|(else|else\s+if|catch|finally|case)\b|default:)/}});var st,ot=r(91976),dt=r(22951),ut={pragma:!0,solidity:!0,import:!0,as:!0,from:!0,contract:!0,constructor:!0,is:!0,function:!0,modifier:!0,pure:!0,view:!0,payable:!0,constant:!0,anonymous:!0,indexed:!0,returns:!0,return:!0,event:!0,struct:!0,mapping:!0,interface:!0,using:!0,library:!0,storage:!0,memory:!0,calldata:!0,public:!0,private:!0,external:!0,internal:!0,emit:!0,assembly:!0,abstract:!0,after:!0,catch:!0,final:!0,in:!0,inline:!0,let:!0,match:!0,null:!0,of:!0,relocatable:!0,static:!0,try:!0,typeof:!0,var:!0},ct={pragma:!0,returns:!0,address:!0,contract:!0,function:!0,struct:!0},lt={wei:!0,szabo:!0,finney:!0,ether:!0},pt={seconds:!0,minutes:!0,hours:!0,days:!0,weeks:!0},Ot={block:["coinbase","difficulty","gaslimit","number","timestamp"],msg:["data","sender","sig","value"],tx:["gasprice","origin"]},ft={now:!0,gasleft:!0,blockhash:!0},ht={assert:!0,require:!0,revert:!0,throw:!0},gt={addmod:!0,mulmod:!0,keccak256:!0,sha256:!0,ripemd160:!0,ecrecover:!0},mt={this:!0,selfdestruct:!0,super:!0},yt={type:!0},vt={},bt={if:!0,else:!0,while:!0,do:!0,for:!0,break:!0,continue:!0,switch:!0,case:!0,default:!0},xt={bool:!0,byte:!0,string:!0,enum:!0,address:!0},Rt={alias:!0,apply:!0,auto:!0,copyof:!0,define:!0,immutable:!0,implements:!0,macro:!0,mutable:!0,override:!0,partial:!0,promise:!0,reference:!0,sealed:!0,sizeof:!0,supports:!0,typedef:!0,unchecked:!0},St={abi:["decode","encodePacked","encodeWithSelector","encodeWithSignature","encode"]},Qt=["transfer","send","balance","call","delegatecall","staticcall"],$t=["title","author","notice","dev","param","return"],wt={delete:!0,new:!0,true:!0,false:!0},Pt=/[+\-*&^%:=<>!|/~]/,Tt=/[-]/;function Et(e,t){var r=e.next();if('"'===r||"'"===r||"`"===r)return t.tokenize=function(e){return function(t,r){var n,a=!1,i=!1;for(n=t.next();null!=n;){if(n===e&&!a){i=!0;break}a=!a&&"`"!==e&&"\\"===n,n=t.next()}return(i||!a&&"`"!==e)&&(r.tokenize=Et),"string"}}(r),t.tokenize(e,t);if(function(e,t){if("pragma solidity"===t.lastToken)return t.lastToken=null,!t.startOfLine&&(e.match(/[\^{0}][0-9.]+/)||e.match(/[>=]+?[\s]*[0-9.]+[\s]*[<]?[\s]*[0-9.]+/))}(e,t))return"version";if("."===r&&Qt.some((function(t){return e.match("".concat(t))})))return"addressFunction";if("string"===typeof r&&Xt(r,e))return"number";if("string"===typeof r&&/[[\]{}(),;:.]/.test(r))return function(e,t){","===e&&"functionName(variable"===t.para&&(t.para="functionName(");null!=t.para&&t.para.startsWith("functionName")&&(")"===e?t.para.endsWith("(")&&(t.para=t.para.substr(0,t.para.length-1),"functionName"===t.para&&(t.grammar="")):"("===e&&(t.para+=e));"("===e&&"functionName"===t.lastToken?t.lastToken+=e:")"===e&&"functionName("===t.lastToken?t.lastToken=null:"("===e&&"returns"===t.lastToken?t.lastToken+=e:")"!==e||"returns("!==t.lastToken&&"returns(variable"!==t.lastToken||(t.lastToken=null);"("===e&&"address"===t.lastToken&&(t.lastToken+=e);return st=e,null}(r,t);if("/"===r){if(e.eat("*"))return t.tokenize=kt,kt(e,t);if(e.match(/\/{2}/)){for(r=e.next();r;){if("@"===r){e.backUp(1),t.grammar="doc";break}r=e.next()}return"doc"}if(e.eat("/"))return e.skipToEnd(),"comment"}if("string"===typeof r&&Tt.test(r)){var n=e.peek();return"string"===typeof n&&Xt(n,e)?"number":"operator"}if("string"===typeof r&&Pt.test(r))return e.eatWhile(Pt),"operator";e.eatWhile(/[\w$_\xa1-\uffff]/);var a=e.current();if("doc"===t.grammar)return $t.some((function(e){return a==="@".concat(e)}))?"docReserve":"doc";if("solidity"===a&&"pragma"===t.lastToken&&(t.lastToken=t.lastToken+" "+a),Object.prototype.propertyIsEnumerable.call(ut,a))return"case"!==a&&"default"!==a||(st="case"),Object.prototype.propertyIsEnumerable.call(ct,a)&&(t.lastToken=a),"keyword";if(Object.prototype.propertyIsEnumerable.call(lt,a))return"etherUnit";if(Object.prototype.propertyIsEnumerable.call(mt,a))return"contractRelated";if(Object.prototype.propertyIsEnumerable.call(bt,a)||Object.prototype.propertyIsEnumerable.call(yt,a)||Object.prototype.propertyIsEnumerable.call(Rt,a))return"keyword";if(Object.prototype.propertyIsEnumerable.call(xt,a)||Object.prototype.propertyIsEnumerable.call(pt,a)||function(e){if(e.match(/^[u]?int/)){if(e.indexOf("t")+1===e.length)return!0;var t=Number(e.substr(e.indexOf("t")+1,e.length));return t%8===0&&t<=256}}(a)||function(e){if(e.match(/^bytes/)){if(e.indexOf("s")+1===e.length)return!0;var t=e.substr(e.indexOf("s")+1,e.length);return Number(t)<=32}}(a)||function(e){if(e.match(/^[u]?fixed([0-9]+x[0-9]+)?/)){if(e.indexOf("d")+1===e.length)return!0;var t=e.substr(e.indexOf("d")+1,e.length).split("x").map(Number);return t[0]%8===0&&t[0]<=256&&t[1]<=80}}(a))return t.lastToken+="variable","keyword";if(Object.prototype.propertyIsEnumerable.call(wt,a))return"atom";if(Object.prototype.propertyIsEnumerable.call(ht,a))return"errorHandling";if(Object.prototype.propertyIsEnumerable.call(gt,a))return"mathematicalAndCryptographic";if(Object.prototype.propertyIsEnumerable.call(ft,a)||Object.prototype.propertyIsEnumerable.call(Ot,a)&&Ot[a].some((function(t){return e.match(".".concat(t))})))return"variable-2";if("abi"===a&&St[a].some((function(t){return e.match(".".concat(t))})))return"abi";var i=function(e,t){if(e.match(/^hex/)&&'"'===t.peek()){var r,n=!1,a="";for(r=t.next();r;){if(a+=r,'"'===r&&n){if(a.substring(1,a.length-1).match(/^[0-9a-fA-F]+$/))return"number";t.backUp(a.length);break}n=n||'"'===r,r=t.next()}}}(a,e);return null!=i?i:"functionName("!==t.lastToken&&"returns("!==t.lastToken||!Object.prototype.propertyIsEnumerable.call(vt,a)?"function"===t.lastToken?(t.lastToken="functionName",null==t.para&&(t.grammar="function",t.para=""),t.para+="functionName","functionName"):"functionName(variable"===t.lastToken?(t.lastToken="functionName(","parameterValue"):"returns(variable"===t.lastToken?(t.lastToken="returns(","parameterValue"):("address"===t.lastToken&&"payable"===a&&(t.lastToken="address payable"),"contract"!==t.lastToken&&"struct"!==t.lastToken||(vt[a]=!0,t.lastToken=null),"function"===t.grammar?"parameterValue":"variable"):(t.lastToken+="variable","variable")}function kt(e,t){for(var r=!1,n=e.next();n;){if("/"===n&&r){t.tokenize=Et;break}r="*"===n,n=e.next()}return"comment"}function Xt(e,t){if(/[\d.]/.test(e))return"."===e?t.match(/^[0-9]+([eE][-+]?[0-9]+)?/):"0"===e?t.match(/^[xX][0-9a-fA-F]+/)||t.match(/^0[0-7]+/):t.match(/^[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?/),!0}var jt=(0,ot.Z)((function e(t,r,n,a,i){(0,dt.Z)(this,e),this.indented=t,this.column=r,this.type=n,this.align=a,this.prev=i}));function Dt(e,t,r){return e.context=new jt(e.indented,t,r,null,e.context),e.context}function Ct(e){if(e.context.prev){var t=e.context.type;return")"!==t&&"]"!==t&&"}"!==t||(e.indented=e.context.indented),e.context=e.context.prev}}var At={startState:function(e){return{tokenize:null,context:new jt(0-e,0,"top",!1,null),indented:0,startOfLine:!0,grammar:null,lastToken:null,para:null}},token:function(e,t){var r=t.context;if(e.sol()&&(null==r.align&&(r.align=!1),t.indented=e.indentation(),t.startOfLine=!0,"case"===r.type&&(r.type="}"),"doc"===t.grammar&&(t.grammar=null)),e.eatSpace())return null;st=null;var n=(t.tokenize||Et)(e,t);return"comment"===n||(null==r.align&&(r.align=!0),"{"===st?Dt(t,e.column(),"}"):"["===st?Dt(t,e.column(),"]"):"("===st?Dt(t,e.column(),")"):"case"===st?r.type="case":("}"===st&&"}"===r.type||st===r.type)&&Ct(t),t.startOfLine=!1),n},indent:function(e,t,r){if(e.tokenize!==Et&&null!=e.tokenize)return null;var n=e.context,a=t&&t.charAt(0);if("case"===n.type&&/^(?:case|default)\b/.test(t))return e.context.type="}",n.indented;var i=a===n.type;return n.align?n.column+(i?0:1):n.indented+(i?0:r.unit)},electricChars:"{}):",closeBrackets:"()[]{}''\"\"``",fold:"brace",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"},_t=new a.ri(a.il.define(At)),Ft=r(34413),qt=r(74588),It=r(12795),Ut=r(5462),Wt=r(80996),Nt=r(64649),Zt=function(){return new f.md({deserialize:function(e){return!0}})},Yt=Zt(),Vt=Zt(),Gt=Zt(),Bt=Zt(),zt=Zt(),Lt=Object.freeze({__proto__:null,coll:Yt,prefixColl:Vt,prefixEdge:Gt,sameEdge:Bt,prefixContainer:zt}),Mt={__proto__:null,true:136,false:136,nil:138,def:147,defn:147,"defn-":147,defmacro:147,definline:147,defonce:147,deftest:147,defcard:147,ns:155},Jt=h.WQ.deserialize({version:14,states:"-zQ]QPOOP!pOPOOOOQO'#C`'#C`OOQO'#Cb'#CbO]QPO'#CcO]QPO'#CeO]QPO'#CgO]QPO'#CiO]QPO'#CkO]OPO'#CtO]OPO'#CvO!uOQO'#C|OOQO'#Dm'#DmQ]QPOOO$hQPO'#CqO$oQPO'#DUO$vQPO'#DXO$}OSO'#DZO%cOPO'#D]O%hOPO'#D`O%mOPO'#DbO%uOWO'#DdO]QPO'#DgO]QPO'#DhO%zQPO'#DjOOQO'#Dq'#DqP&SQPO'#C^POOO)C?e)C?eOOQO,58},58}OOQO,59P,59POOQO,59R,59ROOQO,59T,59TOOQO,59V,59VOOQO,59`,59`OOQO,59b,59bOOQO,59h,59hO'gOPO,59hOOQO-E7k-E7kOOQO'#Cr'#CrO!}QPO'#CsOOQO'#Dv'#DvO'lQPO'#D|O'sQPO'#DuOOQO'#DO'#DOOOQO'#Dz'#DzO'sQPO'#DyOOQO'#DQ'#DQOOQO'#D}'#D}O'lQPO'#D|OOQO'#Dt'#DtO(OQPO,59]O(TQPO,59pOOQO,59p,59pO([QPO,59sOOQO,59s,59sOOQO,59u,59uOOOO,59x,59xOOQO,59y,59yOOQO,5:Q,5:QOOQO,5:T,5:TOOQO,5:V,5:VOOQO,59w,59wOOQO,59z,59zOOQO,59|,59|OOQO,5:O,5:OOOQO,5:R,5:ROOQO,5:S,5:SOOQO,5:U,5:UPOOO,58x,58xOOQO1G/S1G/SOOQO,59_,59_OOQO,59k,59kOOQO,59m,59mOOQO'#Cx'#CxO'sQPO'#CyOOQO'#Dx'#DxO(cQPO,5:aO(jQPO,5:eO(qQPO,5:hOOQO1G.w1G.wOOQO1G/[1G/[OOQO1G/_1G/_OOQO,59e,59eO(xQPO'#CzO*`QPO1G/{O]QPO1G/{OOQO'#Cz'#CzO*gQPO1G0PO*gQPO1G0PO*nQPO7+%gO*uQPO7+%kP&SQPO'#CcP&SQPO'#CeP&SQPO'#CgP&SQPO'#CiP&SQPO'#CkP*|OPO'#DbP&SQPO'#DgP&SQPO'#Dh",stateData:"+[~O!dOSPOSRPQ~OTiOWSOYTO[UO^VO`WOaiObiOd^OiXOkYOoZOw_Oz`O|iO!OaO!TcO!VdO!XeO!fQO!gRO~ORjO~OosOqtO~OT!OOWSOYTO[UO^VO`WOaiObiOd^OiXOkYOoZOw_Oz`O|iO!OaO!TcO!VdO!XeO!fQO!gRO!kvO!o{O~Oc!pP~P!}Ov!UO~P]Oy!WO~P]Od^OoZOz`O!r!YO!t!]O!u!^O~Oz`O~OT!`O~OWSOd^O~O!s!bO~Ow_Oz`O~OTiOW!}OY#OO[#PO^#QO`#ROaiObiOd^OiXOkYOoZOw_Oz`O|iO!OaO!TcO!V#SO!XeO!fQO!gRO~Oo!gO~Oc!pX~P]OT!kOiXOkYO~Oc!qO~Ov!rO~P]Oy!sO~P]Oc!ia~P]Oc!ma~P]Oc!pa~P]OTnXWnXYnX[nX^nX`nXanXbnXc!eXdnXinXknXonXwnXznX|nX!OnX!TnX!VnX!XnX!fnX!gnX~Oc!ii~P]Oc!mi~P]Oc!iq~P]Oc!mq~P]OW!}Od^O~Oa!u!tT!t~",goto:"/]!rPP!sP!vP!v#nP!vP!vP!vP!vPPPPP$j%i%i%mP%mP&n&n&sP&yP'x'x'|'|PP(QPP({P!vP!v)|!v!vP!vP!vP!v!v!v*t!v+nP,fPPP-^PP.j.m.pP.v.m/PP.m/VRkP!kiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#U!jiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UT!ad#S!jiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UQ![aT!ad#STx^w!UfOSTUVWXY]_`fgy!Q!T!V!n!o!p!v!w!y!z!{!|Sw^wU!lz}!la#Tj!}#O#P#Q#R#T#UV!mz}!lQ!w!nR!z!o!fiOSTUVWXY]^_`fgjwy!Q!T!V!p!v!w!y!z!{!|!}#O#P#Q#R#T#UQ!ZaQ!u!nR!x!oT|^wT!P^w!jiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UR!eh!jiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UQ!XaQ!_bR!eh!kbOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#U!YgOSTUVWXY]^_`fgwy!Q!T!V!n!o!p!v!w!y!z!{!|a#Uj!}#O#P#Q#R#T#U!khOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UQ]Obu]y!T!V!p!v!y!{!|Qy^Q!T_Q!V`Q!p!QQ!v!nQ!y!oQ!{!wR!|!zt[O]^_`y!Q!T!V!n!o!p!v!w!y!z!{!|SlS!}SmT#OSnU#PSoV#QSpW#RQqXQrYU!cfw#TS!dg#UR!fjR!S^R!R^Qz^R!hwQ!nzQ!o}R!t!lQ}^R!iwQ!Q^R!jw",nodeNames:"\u26a0 LineComment Discard #_ Boolean Symbol Nil Deref @ Quote ' SyntaxQuote ` Unquote ~ UnquoteSplice ~@ Number Keyword ) ( List DefLike Meta Metadata ^ ReaderMetadata #^ VarName Meta DocString \" String StringContent NS Meta Operator Meta ] [ Vector } { Map Character Set # NamespacedMap KeywordPrefix RegExp Var #' ReaderConditional #? SymbolicValue ## AnonymousFunction Meta TaggedLiteral ReaderTag ConstructorCall ConstructorPrefix Program",maxTerm:83,nodeProps:[[Gt,-14,3,8,10,12,14,16,25,27,46,48,51,53,55,61,""],[Vt,-13,7,9,11,13,15,24,26,45,47,49,50,52,56,""],["openedBy",19,"(",31,'"',38,"[",41,"{"],["closedBy",20,")",31,'"',39,"]",42,"}"],[Yt,-3,21,40,43,""],[zt,-7,23,29,35,37,57,58,60,""],[Bt,31,""]],skippedNodes:[0,1,2,3],repeatNodeCount:1,tokenData:"#6x~R![OX$wX^%n^p$wpq%nqr'grs,Tst,Ytu/Yuv'gvw'gwx6Vxy6jyz6}z{'g{|7b|}%n}!O7b!O!P9t!P!Q)v!Q!R!8[!R![!>t![!]!Cp!]!^!J]!^!_'g!_!`'g!`!a'g!a!b'g!b!c!Kr!c!}/Y!}#O!LV#O#P!Lj#P#Q#3w#Q#R#4[#R#S/Y#S#T#4o#T#o/Y#o#p#5S#p#q$w#q#r#5g#r#s#5z#s#y$w#y#z%n#z$f$w$f$g%n$g##l/Y##l#BY$w#BY#BZ%n#BZ$IS$w$IS$I_%n$I_$I|$w$I|$JO%n$JO$JT$w$JT$JU%n$JU$KV$w$KV$KW%n$KW&FU$w&FU&FV%n&FV~$wQ$|SqQOr$ws#O$w#O#P%Y#P~$wQ%_TqQOr$wrs$ws#O$w#O#P%Y#P~$wR%ujqQ!dPOX$wX^%n^p$wpq%nqr$ws|$w|}%n}#O$w#O#P%Y#P#y$w#y#z%n#z$f$w$f$g%n$g#BY$w#BY#BZ%n#BZ$IS$w$IS$I_%n$I_$I|$w$I|$JO%n$JO$JT$w$JT$JU%n$JU$KV$w$KV$KW%n$KW&FU$w&FU&FV%n&FV~$w_'rpqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q!['g![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$wZ*PpqQ!sWTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![)v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$w~,YOo~R,a[!OPqQOr$wst-Vtw$wwx-jx!a$w!a!b-}!b#O$w#O#P%Y#P#Q$w#Q#R.b#R#S.u#S~$wR-^S!XPqQOr$ws#O$w#O#P%Y#P~$wR-qS!TPqQOr$ws#O$w#O#P%Y#P~$wR.US!VPqQOr$ws#O$w#O#P%Y#P~$wR.iSkPqQOr$ws#O$w#O#P%Y#P~$wR.|SRPqQOr$ws#O$w#O#P%Y#P~$w_/epqQ!sW!tSTPOq$wqr'gst)vtu/Yuv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P1i!P!Q'g!Q![/Y![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}/Y!}#O$w#O#P%Y#P#R$w#R#S/Y#S#T$w#T#o/Y#o$g$w$g##l/Y##l~$w_1rpqQ!sWTPOq$wqr)vst)vtu3vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![)v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!}3v!}#O$w#O#P%Y#P#R$w#R#S3v#S#T$w#T#o3v#o$g$w$g##l3v##l~$w_4RpqQ!sW!uSTPOq$wqr)vst)vtu3vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P1i!P!Q)v!Q![3v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!}3v!}#O$w#O#P%Y#P#R$w#R#S3v#S#T$w#T#o3v#o$g$w$g##l3v##l~$wR6^SYPqQOr$ws#O$w#O#P%Y#P~$wV6qSdTqQOr$ws#O$w#O#P%Y#P~$wR7UScPqQOr$ws#O$w#O#P%Y#P~$w_7mqqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P9t!P!Q'g!Q!RHO!R![!&|![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$wZ9}pqQ!sWTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![n!h!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#X)v#X#Y>n#Y#o)v#o$g$w$g##l)v##l~$wZ>wpqQ!sWTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|@{|}$w}!O@{!O!P)v!P!Q)v!Q![CY![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$wZAUpqQ!sWTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![CY![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$wZCerqQ!sWaPTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![CY![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!o)v!o!pEo!p!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$wZEzpqQ!sWaPTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![)v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$w_H]yqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!PJ|!P!Q!![!Q![!&|![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!g'g!g!h!)t!h!o'g!o!p!0{!p!q!0{!q!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#X'g#X#Y!)t#Y#l'g#l#m!3^#m#o'g#o$g$w$g##l'g##l~$wZKXvqQ!sWaPTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![J|![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!g)v!g!h>n!h!o)v!o!pMo!p!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#X)v#X#Y>n#Y#o)v#o$g$w$g##l)v##l~$wZMztqQ!sWaPTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![)v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!g)v!g!h>n!h!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#X)v#X#Y>n#Y#o)v#o$g$w$g##l)v##l~$w_!!gpqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!$k![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!$xpqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!$k![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!'ZwqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!PJ|!P!Q!![!Q![!&|![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!g'g!g!h!)t!h!o'g!o!p!0{!p!q!0{!q!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#X'g#X#Y!)t#Y#o'g#o$g$w$g##l'g##l~$w_!*PpqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|!,T|}$w}!O!,T!O!P)v!P!Q'g!Q![!.d![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!,`pqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!.d![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!.qrqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!.d![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!o'g!o!p!0{!p!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!1YpqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q!['g![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!3irqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!5s![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!i!5s!i!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#Z!5s#Z#o'g#o$g$w$g##l'g##l~$w_!6QrqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!5s![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!i!5s!i!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#Z!5s#Z#o'g#o$g$w$g##l'g##l~$wR!8ceqQaPOr$ws!O$w!O!P!9t!P!Q!=r!Q![!>t![!g$w!g!h!:q!h!o$w!o!p!Z![#O$w#O#P%Y#P~$wR!>bUqQaPOr$ws!Q$w!Q![!>Z![#O$w#O#P%Y#P~$wR!>{_qQaPOr$ws!O$w!O!P!9t!P!Q!=r!Q![!>t![!g$w!g!h!:q!h!o$w!o!p!0&&document.getSelection().getRangeAt(0);r.select();var a=!1;try{a=!!document.execCommand("copy")}catch(i){a=!1}document.body.removeChild(r),n&&document.getSelection&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n)),t&&t(a)}return e}()},39446:function(e,t,r){var n=r(78983).default,a=r(42081).default,i=r(77266).default,s=r(58724).default,o=r(40670).default,d=r(19952).default,u=r(93231).default,c=document,l="_dark_mode_theme_",p="permanent",O="colorschemechange",f="light",h="dark",g=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;Object.defineProperty(e,r,{enumerable:!0,get:function(){var e=this.getAttribute(t);return null===e?"":e},set:function(e){this.setAttribute(t,e)}})},m=function(e){"use strict";s(r,e);var t=o(r);function r(){var e;return n(this,r),e=t.call(this),u(i(e),"LOCAL_NANE",l),e.t(),e}return a(r,[{key:"connectedCallback",value:function(){var e=this;g(this,"mode"),g(this,h),g(this,f),function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;Object.defineProperty(e,r,{enumerable:!0,get:function(){return this.hasAttribute(t)},set:function(e){e?this.setAttribute(t,""):this.removeAttribute(t)}})}(this,p);var t=localStorage.getItem(l);t&&[f,h].includes(t)&&(this.mode=t,this.permanent=!0),this.permanent&&!t&&localStorage.setItem(l,this.mode);var r=[f,h].includes(t);this.permanent&&t?this.o():(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.mode=h,this.o()),window.matchMedia&&window.matchMedia("(prefers-color-scheme: light)").matches&&(this.mode=f,this.o())),this.permanent||r||(window.matchMedia("(prefers-color-scheme: light)").onchange=function(t){e.mode=t.matches?f:h,e.o()},window.matchMedia("(prefers-color-scheme: dark)").onchange=function(t){e.mode=t.matches?h:f,e.o()}),new MutationObserver((function(t,n){e.mode=c.documentElement.dataset.colorMode,e.permanent&&r&&(localStorage.setItem(l,e.mode),e.i("permanentcolorscheme",{permanent:e.permanent})),e.h(),e.i(O,{colorScheme:e.mode})})).observe(c.documentElement,{attributes:!0}),this.i(O,{colorScheme:this.mode}),this.h()}},{key:"attributeChangedCallback",value:function(e,t,r){if("mode"===e&&t!==r&&[f,h].includes(r)){var n=localStorage.getItem(l);this.mode===n?(this.mode=r,this.h(),this.o()):this.mode&&this.mode!==n&&(this.h(),this.o())}else e!==f&&e!==h||t===r||this.h();"permanent"===e&&"boolean"===typeof this.permanent&&(this.permanent?localStorage.setItem(l,this.mode):localStorage.removeItem(l))}},{key:"o",value:function(){c.documentElement.setAttribute("data-color-mode",this.mode)}},{key:"h",value:function(){this.icon.textContent=this.mode===f?"\ud83c\udf12":"\ud83c\udf1e",this.text.textContent=this.mode===f?this.getAttribute(h):this.getAttribute(f),!this.text.textContent&&this.text.parentElement&&this.text&&this.text.parentElement.removeChild(this.text)}},{key:"t",value:function(){var e=this,t=this.attachShadow({mode:"open"});this.label=c.createElement("span"),this.label.setAttribute("class","wrapper"),this.label.onclick=function(){e.mode=e.mode===f?h:f,e.permanent&&localStorage.setItem(l,e.mode),e.o(),e.h()},t.appendChild(this.label),this.icon=c.createElement("span"),this.label.appendChild(this.icon),this.text=c.createElement("span"),this.label.appendChild(this.text);var r="_dark_mode_style_";if(!c.getElementById(r)){var n=c.createElement("style");n.id=r,n.textContent="\n[data-color-mode*='dark'], [data-color-mode*='dark'] body {\n color-scheme: dark;\n --color-theme-bg: #0d1117;\n --color-theme-text: #c9d1d9;\n background-color: var(--color-theme-bg);\n color: var(--color-theme-text);\n}\n\n[data-color-mode*='light'], [data-color-mode*='light'] body {\n color-scheme: light;\n --color-theme-bg: #fff;\n --color-theme-text: #24292f;\n background-color: var(--color-theme-bg);\n color: var(--color-theme-text);\n}",c.head.appendChild(n)}var a=c.createElement("style");a.textContent="\n .wrapper { cursor: pointer; user-select: none; position: relative; }\n .wrapper > span + span { margin-left: .4rem; }\n ",t.appendChild(a)}},{key:"i",value:function(e,t){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}}],[{key:"observedAttributes",get:function(){return["mode",f,h,p]}}]),r}(d(HTMLElement));customElements.define("dark-mode",m)},82258:function(e,t){"use strict";function r(e,t){return(Array.isArray(t)?t:[t]).some((function(t){return"string"===typeof t&&(t=new RegExp(t)),t.test(e||"")}))}},91e3:function(e,t){"use strict"},97520:function(e){e.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},46428:function(e,t,r){"use strict";var n=r(90716),a=r(64664),i=function(){function e(){this.pseudos={},this.attrEqualityMods={},this.ruleNestingOperators={},this.substitutesEnabled=!1}return e.prototype.registerSelectorPseudos=function(){for(var e=[],t=0;t=o)throw Error("Expected symbol but end of file reached.");if(d=e.charAt(t),n.identSpecialChars[d])r+=d;else{if(n.isHex(d)){var a=d;for(t++,d=e.charAt(t);n.isHex(d);)a+=d,t++,d=e.charAt(t);" "===d&&(t++,d=e.charAt(t)),r+=String.fromCharCode(parseInt(a,16));continue}r+=d}}t++,d=e.charAt(t)}return r}function l(){d=e.charAt(t);for(var r=!1;" "===d||"\t"===d||"\n"===d||"\r"===d||"\f"===d;)r=!0,t++,d=e.charAt(t);return r}function p(){var r=O();if(!r)return null;var n=r;for(d=e.charAt(t);","===d;){if(t++,l(),"selectors"!==n.type&&(n={type:"selectors",selectors:[r]}),!(r=O()))throw Error('Rule expected after ",".');n.selectors.push(r)}return n}function O(){l();var r={type:"ruleSet"},n=f();if(!n)return null;for(var a=r;n&&(n.type="rule",a.rule=n,a=n,l(),d=e.charAt(t),!(t>=o||","===d||")"===d));)if(i[d]){var s=d;if(t++,l(),!(n=f()))throw Error('Rule expected after "'+s+'".');n.nestingOperator=s}else(n=f())&&(n.nestingOperator=null);return r}function f(){for(var i=null;t=o)throw Error('Expected "=" but end of file reached.');if("="!==d)throw Error('Expected "=" but "'+d+'" found.');O.operator=f+"=",t++,l();var h="";if(O.valueType="string",'"'===d)h=u('"',n.doubleQuotesEscapeChars);else if("'"===d)h=u("'",n.singleQuoteEscapeChars);else if(s&&"$"===d)t++,h=c(),O.valueType="substitute";else{for(;t=o)throw Error('Expected "]" but end of file reached.');if("]"!==d)throw Error('Expected "]" but "'+d+'" found.');t++,O.value=h}((i=i||{}).attrs=i.attrs||[]).push(O)}else{if(":"!==d)break;t++;var g=c(),m={name:g};if("("===d){t++;var y="";if(l(),"selector"===r[g])m.valueType="selector",y=p();else{if(m.valueType=r[g]||"string",'"'===d)y=u('"',n.doubleQuotesEscapeChars);else if("'"===d)y=u("'",n.singleQuoteEscapeChars);else if(s&&"$"===d)t++,y=c(),m.valueType="substitute";else{for(;t=o)throw Error('Expected ")" but end of file reached.');if(")"!==d)throw Error('Expected ")" but "'+d+'" found.');t++,m.value=y}((i=i||{}).pseudos=i.pseudos||[]).push(m)}return i}return function(){var r=p();if(t="a"&&e<="z"||e>="A"&&e<="Z"||"-"===e||"_"===e},t.isIdent=function(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"-"===e||"_"===e},t.isHex=function(e){return e>="a"&&e<="f"||e>="A"&&e<="F"||e>="0"&&e<="9"},t.escapeIdentifier=function(e){for(var r=e.length,n="",a=0;a="A"&&i<="Z"||i>="a"&&i<="z"||0!==a&&i>="0"&&i<="9")n+=i;else{var s=i.charCodeAt(0);if(55296===(63488&s)){var o=e.charCodeAt(a++);if(55296!==(64512&s)||56320!==(64512&o))throw Error("UCS-2(decode): illegal sequence");s=((1023&s)<<10)+(1023&o)+65536}n+="\\"+s.toString(16)+" "}a++}return n},t.escapeStr=function(e){for(var r,n=e.length,a="",i=0;i":!0,"?":!0,"@":!0,"[":!0,"\\":!0,"]":!0,"^":!0,"`":!0,"{":!0,"|":!0,"}":!0,"~":!0},t.strReplacementsRev={"\n":"\\n","\r":"\\r","\t":"\\t","\f":"\\f","\v":"\\v"},t.singleQuoteEscapeChars={n:"\n",r:"\r",t:"\t",f:"\f","\\":"\\","'":"'"},t.doubleQuotesEscapeChars={n:"\n",r:"\r",t:"\t",f:"\f","\\":"\\",'"':'"'}},82032:function(e){"use strict";var t=Object.prototype.hasOwnProperty,r=Object.prototype.toString,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===r.call(e)},s=function(e){if(!e||"[object Object]"!==r.call(e))return!1;var n,a=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!a&&!i)return!1;for(n in e);return"undefined"===typeof n||t.call(e,n)},o=function(e,t){n&&"__proto__"===t.name?n(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},d=function(e,r){if("__proto__"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var t,r,n,a,u,c,l=arguments[0],p=1,O=arguments.length,f=!1;for("boolean"===typeof l&&(f=l,l=arguments[1]||{},p=2),(null==l||"object"!==typeof l&&"function"!==typeof l)&&(l={});p-1)return n.QUIRKS;var c=null===t?s:i;if(l(r,c))return n.QUIRKS;if(l(r,c=null===t?d:u))return n.LIMITED_QUIRKS}return n.NO_QUIRKS},t.serializeContent=function(e,t,r){var n="!DOCTYPE ";return e&&(n+=e),t?n+=" PUBLIC "+c(t):r&&(n+=" SYSTEM"),null!==r&&(n+=" "+c(r)),n}},54074:function(e){"use strict";e.exports={controlCharacterInInputStream:"control-character-in-input-stream",noncharacterInInputStream:"noncharacter-in-input-stream",surrogateInInputStream:"surrogate-in-input-stream",nonVoidHtmlElementStartTagWithTrailingSolidus:"non-void-html-element-start-tag-with-trailing-solidus",endTagWithAttributes:"end-tag-with-attributes",endTagWithTrailingSolidus:"end-tag-with-trailing-solidus",unexpectedSolidusInTag:"unexpected-solidus-in-tag",unexpectedNullCharacter:"unexpected-null-character",unexpectedQuestionMarkInsteadOfTagName:"unexpected-question-mark-instead-of-tag-name",invalidFirstCharacterOfTagName:"invalid-first-character-of-tag-name",unexpectedEqualsSignBeforeAttributeName:"unexpected-equals-sign-before-attribute-name",missingEndTagName:"missing-end-tag-name",unexpectedCharacterInAttributeName:"unexpected-character-in-attribute-name",unknownNamedCharacterReference:"unknown-named-character-reference",missingSemicolonAfterCharacterReference:"missing-semicolon-after-character-reference",unexpectedCharacterAfterDoctypeSystemIdentifier:"unexpected-character-after-doctype-system-identifier",unexpectedCharacterInUnquotedAttributeValue:"unexpected-character-in-unquoted-attribute-value",eofBeforeTagName:"eof-before-tag-name",eofInTag:"eof-in-tag",missingAttributeValue:"missing-attribute-value",missingWhitespaceBetweenAttributes:"missing-whitespace-between-attributes",missingWhitespaceAfterDoctypePublicKeyword:"missing-whitespace-after-doctype-public-keyword",missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:"missing-whitespace-between-doctype-public-and-system-identifiers",missingWhitespaceAfterDoctypeSystemKeyword:"missing-whitespace-after-doctype-system-keyword",missingQuoteBeforeDoctypePublicIdentifier:"missing-quote-before-doctype-public-identifier",missingQuoteBeforeDoctypeSystemIdentifier:"missing-quote-before-doctype-system-identifier",missingDoctypePublicIdentifier:"missing-doctype-public-identifier",missingDoctypeSystemIdentifier:"missing-doctype-system-identifier",abruptDoctypePublicIdentifier:"abrupt-doctype-public-identifier",abruptDoctypeSystemIdentifier:"abrupt-doctype-system-identifier",cdataInHtmlContent:"cdata-in-html-content",incorrectlyOpenedComment:"incorrectly-opened-comment",eofInScriptHtmlCommentLikeText:"eof-in-script-html-comment-like-text",eofInDoctype:"eof-in-doctype",nestedComment:"nested-comment",abruptClosingOfEmptyComment:"abrupt-closing-of-empty-comment",eofInComment:"eof-in-comment",incorrectlyClosedComment:"incorrectly-closed-comment",eofInCdata:"eof-in-cdata",absenceOfDigitsInNumericCharacterReference:"absence-of-digits-in-numeric-character-reference",nullCharacterReference:"null-character-reference",surrogateCharacterReference:"surrogate-character-reference",characterReferenceOutsideUnicodeRange:"character-reference-outside-unicode-range",controlCharacterReference:"control-character-reference",noncharacterCharacterReference:"noncharacter-character-reference",missingWhitespaceBeforeDoctypeName:"missing-whitespace-before-doctype-name",missingDoctypeName:"missing-doctype-name",invalidCharacterSequenceAfterDoctypeName:"invalid-character-sequence-after-doctype-name",duplicateAttribute:"duplicate-attribute",nonConformingDoctype:"non-conforming-doctype",missingDoctype:"missing-doctype",misplacedDoctype:"misplaced-doctype",endTagWithoutMatchingOpenElement:"end-tag-without-matching-open-element",closingOfElementWithOpenChildElements:"closing-of-element-with-open-child-elements",disallowedContentInNoscriptInHead:"disallowed-content-in-noscript-in-head",openElementsLeftAfterEof:"open-elements-left-after-eof",abandonedHeadElementChild:"abandoned-head-element-child",misplacedStartTagForHeadElement:"misplaced-start-tag-for-head-element",nestedNoscriptInHead:"nested-noscript-in-head",eofInElementThatCanContainOnlyText:"eof-in-element-that-can-contain-only-text"}},99205:function(e,t,r){"use strict";var n,a=r(93231).default,i=r(30951),s=r(73352),o=s.TAG_NAMES,d=s.NAMESPACES,u=s.ATTRS,c="text/html",l="application/xhtml+xml",p={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},O={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:d.XLINK},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:d.XLINK},"xlink:href":{prefix:"xlink",name:"href",namespace:d.XLINK},"xlink:role":{prefix:"xlink",name:"role",namespace:d.XLINK},"xlink:show":{prefix:"xlink",name:"show",namespace:d.XLINK},"xlink:title":{prefix:"xlink",name:"title",namespace:d.XLINK},"xlink:type":{prefix:"xlink",name:"type",namespace:d.XLINK},"xml:base":{prefix:"xml",name:"base",namespace:d.XML},"xml:lang":{prefix:"xml",name:"lang",namespace:d.XML},"xml:space":{prefix:"xml",name:"space",namespace:d.XML},xmlns:{prefix:"",name:"xmlns",namespace:d.XMLNS},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:d.XMLNS}},f=t.SVG_TAG_NAMES_ADJUSTMENT_MAP={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},h=(a(n={},o.B,!0),a(n,o.BIG,!0),a(n,o.BLOCKQUOTE,!0),a(n,o.BODY,!0),a(n,o.BR,!0),a(n,o.CENTER,!0),a(n,o.CODE,!0),a(n,o.DD,!0),a(n,o.DIV,!0),a(n,o.DL,!0),a(n,o.DT,!0),a(n,o.EM,!0),a(n,o.EMBED,!0),a(n,o.H1,!0),a(n,o.H2,!0),a(n,o.H3,!0),a(n,o.H4,!0),a(n,o.H5,!0),a(n,o.H6,!0),a(n,o.HEAD,!0),a(n,o.HR,!0),a(n,o.I,!0),a(n,o.IMG,!0),a(n,o.LI,!0),a(n,o.LISTING,!0),a(n,o.MENU,!0),a(n,o.META,!0),a(n,o.NOBR,!0),a(n,o.OL,!0),a(n,o.P,!0),a(n,o.PRE,!0),a(n,o.RUBY,!0),a(n,o.S,!0),a(n,o.SMALL,!0),a(n,o.SPAN,!0),a(n,o.STRONG,!0),a(n,o.STRIKE,!0),a(n,o.SUB,!0),a(n,o.SUP,!0),a(n,o.TABLE,!0),a(n,o.TT,!0),a(n,o.U,!0),a(n,o.UL,!0),a(n,o.VAR,!0),n);t.causesExit=function(e){var t=e.tagName;return!!(t===o.FONT&&(null!==i.getTokenAttr(e,u.COLOR)||null!==i.getTokenAttr(e,u.SIZE)||null!==i.getTokenAttr(e,u.FACE)))||h[t]},t.adjustTokenMathMLAttrs=function(e){for(var t=0;t=55296&&e<=57343},t.isSurrogatePair=function(e){return e>=56320&&e<=57343},t.getSurrogatePairCodePoint=function(e,t){return 1024*(e-55296)+9216+t},t.isControlCodePoint=function(e){return 32!==e&&10!==e&&13!==e&&9!==e&&12!==e&&e>=1&&e<=31||e>=127&&e<=159},t.isUndefinedCodePoint=function(e){return e>=64976&&e<=65007||r.indexOf(e)>-1}},41251:function(e,t,r){"use strict";var n=r(78983).default,a=r(42081).default,i=r(58724).default,s=r(40670).default,o=function(e){i(r,e);var t=s(r);function r(e,a){var i;return n(this,r),(i=t.call(this,e)).posTracker=null,i.onParseError=a.onParseError,i}return a(r,[{key:"_setErrorLocation",value:function(e){e.startLine=e.endLine=this.posTracker.line,e.startCol=e.endCol=this.posTracker.col,e.startOffset=e.endOffset=this.posTracker.offset}},{key:"_reportError",value:function(e){var t={code:e,startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1};this._setErrorLocation(t),this.onParseError(t)}},{key:"_getOverriddenMethods",value:function(e){return{_err:function(t){e._reportError(t)}}}}]),r}(r(31384));e.exports=o},71474:function(e,t,r){"use strict";var n=r(78983).default,a=r(42081).default,i=r(58724).default,s=r(40670).default,o=r(41251),d=r(7188),u=r(17978),c=r(31384),l=function(e){i(r,e);var t=s(r);function r(e,a){var i;return n(this,r),(i=t.call(this,e,a)).opts=a,i.ctLoc=null,i.locBeforeToken=!1,i}return a(r,[{key:"_setErrorLocation",value:function(e){this.ctLoc&&(e.startLine=this.ctLoc.startLine,e.startCol=this.ctLoc.startCol,e.startOffset=this.ctLoc.startOffset,e.endLine=this.locBeforeToken?this.ctLoc.startLine:this.ctLoc.endLine,e.endCol=this.locBeforeToken?this.ctLoc.startCol:this.ctLoc.endCol,e.endOffset=this.locBeforeToken?this.ctLoc.startOffset:this.ctLoc.endOffset)}},{key:"_getOverriddenMethods",value:function(e,t){return{_bootstrap:function(r,n){t._bootstrap.call(this,r,n),c.install(this.tokenizer,d,e.opts),c.install(this.tokenizer,u)},_processInputToken:function(r){e.ctLoc=r.location,t._processInputToken.call(this,r)},_err:function(t,r){e.locBeforeToken=r&&r.beforeToken,e._reportError(t)}}}}]),r}(o);e.exports=l},88578:function(e,t,r){"use strict";var n=r(78983).default,a=r(42081).default,i=r(51121).default,s=r(74910).default,o=r(58724).default,d=r(40670).default,u=r(41251),c=r(59571),l=r(31384),p=function(e){o(r,e);var t=d(r);function r(e,a){var i;return n(this,r),(i=t.call(this,e,a)).posTracker=l.install(e,c),i.lastErrOffset=-1,i}return a(r,[{key:"_reportError",value:function(e){this.lastErrOffset!==this.posTracker.offset&&(this.lastErrOffset=this.posTracker.offset,i(s(r.prototype),"_reportError",this).call(this,e))}}]),r}(u);e.exports=p},7188:function(e,t,r){"use strict";var n=r(42081).default,a=r(78983).default,i=r(58724).default,s=r(40670).default,o=r(41251),d=r(88578),u=r(31384),c=function(e){i(r,e);var t=s(r);function r(e,n){var i;a(this,r),i=t.call(this,e,n);var s=u.install(e.preprocessor,d,n);return i.posTracker=s.posTracker,i}return n(r)}(o);e.exports=c},92633:function(e,t,r){"use strict";var n=r(78983).default,a=r(42081).default,i=r(58724).default,s=r(40670).default,o=function(e){i(r,e);var t=s(r);function r(e,a){var i;return n(this,r),(i=t.call(this,e)).onItemPop=a.onItemPop,i}return a(r,[{key:"_getOverriddenMethods",value:function(e,t){return{pop:function(){e.onItemPop(this.current),t.pop.call(this)},popAllUpToHtmlElement:function(){for(var r=this.stackTop;r>0;r--)e.onItemPop(this.items[r]);t.popAllUpToHtmlElement.call(this)},remove:function(r){e.onItemPop(this.current),t.remove.call(this,r)}}}}]),r}(r(31384));e.exports=o},42965:function(e,t,r){"use strict";var n=r(78983).default,a=r(42081).default,i=r(58724).default,s=r(40670).default,o=r(31384),d=r(30951),u=r(17978),c=r(92633),l=r(73352).TAG_NAMES,p=function(e){i(r,e);var t=s(r);function r(e){var a;return n(this,r),(a=t.call(this,e)).parser=e,a.treeAdapter=a.parser.treeAdapter,a.posTracker=null,a.lastStartTagToken=null,a.lastFosterParentingLocation=null,a.currentToken=null,a}return a(r,[{key:"_setStartLocation",value:function(e){var t=null;this.lastStartTagToken&&((t=Object.assign({},this.lastStartTagToken.location)).startTag=this.lastStartTagToken.location),this.treeAdapter.setNodeSourceCodeLocation(e,t)}},{key:"_setEndLocation",value:function(e,t){if(this.treeAdapter.getNodeSourceCodeLocation(e)&&t.location){var r=t.location,n=this.treeAdapter.getTagName(e),a={};t.type===d.END_TAG_TOKEN&&n===t.tagName?(a.endTag=Object.assign({},r),a.endLine=r.endLine,a.endCol=r.endCol,a.endOffset=r.endOffset):(a.endLine=r.startLine,a.endCol=r.startCol,a.endOffset=r.startOffset),this.treeAdapter.updateNodeSourceCodeLocation(e,a)}}},{key:"_getOverriddenMethods",value:function(e,t){return{_bootstrap:function(r,n){t._bootstrap.call(this,r,n),e.lastStartTagToken=null,e.lastFosterParentingLocation=null,e.currentToken=null;var a=o.install(this.tokenizer,u);e.posTracker=a.posTracker,o.install(this.openElements,c,{onItemPop:function(t){e._setEndLocation(t,e.currentToken)}})},_runParsingLoop:function(r){t._runParsingLoop.call(this,r);for(var n=this.openElements.stackTop;n>=0;n--)e._setEndLocation(this.openElements.items[n],e.currentToken)},_processTokenInForeignContent:function(r){e.currentToken=r,t._processTokenInForeignContent.call(this,r)},_processToken:function(r){if(e.currentToken=r,t._processToken.call(this,r),r.type===d.END_TAG_TOKEN&&(r.tagName===l.HTML||r.tagName===l.BODY&&this.openElements.hasInScope(l.BODY)))for(var n=this.openElements.stackTop;n>=0;n--){var a=this.openElements.items[n];if(this.treeAdapter.getTagName(a)===r.tagName){e._setEndLocation(a,r);break}}},_setDocumentType:function(e){t._setDocumentType.call(this,e);for(var r=this.treeAdapter.getChildNodes(this.document),n=r.length,a=0;a=3)for(var n=this.treeAdapter.getAttrList(t).length,a=this.treeAdapter.getTagName(t),i=this.treeAdapter.getNamespaceURI(t),s=this.length-1;s>=0;s--){var o=this.entries[s];if(o.type===e.MARKER_ENTRY)break;var d=o.element,u=this.treeAdapter.getAttrList(d);this.treeAdapter.getTagName(d)===a&&this.treeAdapter.getNamespaceURI(d)===i&&u.length===n&&r.push({idx:s,attrs:u})}return r.length<3?[]:r}},{key:"_ensureNoahArkCondition",value:function(e){var t=this._getNoahArkConditionCandidates(e),r=t.length;if(r){for(var n=this.treeAdapter.getAttrList(e),a=n.length,i=Object.create(null),s=0;s=2;l--)this.entries.splice(t[l].idx,1),this.length--}}},{key:"insertMarker",value:function(){this.entries.push({type:e.MARKER_ENTRY}),this.length++}},{key:"pushElement",value:function(t,r){this._ensureNoahArkCondition(t),this.entries.push({type:e.ELEMENT_ENTRY,element:t,token:r}),this.length++}},{key:"insertElementAfterBookmark",value:function(t,r){for(var n=this.length-1;n>=0&&this.entries[n]!==this.bookmark;n--);this.entries.splice(n+1,0,{type:e.ELEMENT_ENTRY,element:t,token:r}),this.length++}},{key:"removeEntry",value:function(e){for(var t=this.length-1;t>=0;t--)if(this.entries[t]===e){this.entries.splice(t,1),this.length--;break}}},{key:"clearToLastMarker",value:function(){for(;this.length;){var t=this.entries.pop();if(this.length--,t.type===e.MARKER_ENTRY)break}}},{key:"getElementEntryInScopeWithTagName",value:function(t){for(var r=this.length-1;r>=0;r--){var n=this.entries[r];if(n.type===e.MARKER_ENTRY)return null;if(this.treeAdapter.getTagName(n.element)===t)return n}return null}},{key:"getElementEntry",value:function(t){for(var r=this.length-1;r>=0;r--){var n=this.entries[r];if(n.type===e.ELEMENT_ENTRY&&n.element===t)return n}return null}}]),e}();i.MARKER_ENTRY="MARKER_ENTRY",i.ELEMENT_ENTRY="ELEMENT_ENTRY",e.exports=i},91775:function(e,t,r){"use strict";var n,a,i,s,o,d,u,c,l,p,O,f,h,g,m,y,v,b,x,R,S,Q,$,w,P,T,E=r(78983).default,k=r(42081).default,X=r(93231).default,j=r(30951),D=r(6750),C=r(7294),A=r(42965),_=r(71474),F=r(31384),q=r(80055),I=r(85204),U=r(40962),W=r(99205),N=r(54074),Z=r(63535),Y=r(73352),V=Y.TAG_NAMES,G=Y.NAMESPACES,B=Y.ATTRS,z={scriptingEnabled:!0,sourceCodeLocationInfo:!1,onParseError:null,treeAdapter:q},L="hidden",M=8,J=3,H="INITIAL_MODE",K="BEFORE_HTML_MODE",ee="BEFORE_HEAD_MODE",te="IN_HEAD_MODE",re="IN_HEAD_NO_SCRIPT_MODE",ne="AFTER_HEAD_MODE",ae="IN_BODY_MODE",ie="TEXT_MODE",se="IN_TABLE_MODE",oe="IN_TABLE_TEXT_MODE",de="IN_CAPTION_MODE",ue="IN_COLUMN_GROUP_MODE",ce="IN_TABLE_BODY_MODE",le="IN_ROW_MODE",pe="IN_CELL_MODE",Oe="IN_SELECT_MODE",fe="IN_SELECT_IN_TABLE_MODE",he="IN_TEMPLATE_MODE",ge="AFTER_BODY_MODE",me="IN_FRAMESET_MODE",ye="AFTER_FRAMESET_MODE",ve="AFTER_AFTER_BODY_MODE",be="AFTER_AFTER_FRAMESET_MODE",xe=(X(n={},V.TR,le),X(n,V.TBODY,ce),X(n,V.THEAD,ce),X(n,V.TFOOT,ce),X(n,V.CAPTION,de),X(n,V.COLGROUP,ue),X(n,V.TABLE,se),X(n,V.BODY,ae),X(n,V.FRAMESET,me),n),Re=(X(a={},V.CAPTION,se),X(a,V.COLGROUP,se),X(a,V.TBODY,se),X(a,V.TFOOT,se),X(a,V.THEAD,se),X(a,V.COL,ue),X(a,V.TR,ce),X(a,V.TD,le),X(a,V.TH,le),a),Se=(X(T={},H,(X(i={},j.CHARACTER_TOKEN,qe),X(i,j.NULL_CHARACTER_TOKEN,qe),X(i,j.WHITESPACE_CHARACTER_TOKEN,je),X(i,j.COMMENT_TOKEN,Ce),X(i,j.DOCTYPE_TOKEN,(function(e,t){e._setDocumentType(t);var r=t.forceQuirks?Y.DOCUMENT_MODE.QUIRKS:U.getDocumentMode(t);U.isConforming(t)||e._err(N.nonConformingDoctype);e.treeAdapter.setDocumentMode(e.document,r),e.insertionMode=K})),X(i,j.START_TAG_TOKEN,qe),X(i,j.END_TAG_TOKEN,qe),X(i,j.EOF_TOKEN,qe),i)),X(T,K,(X(s={},j.CHARACTER_TOKEN,Ie),X(s,j.NULL_CHARACTER_TOKEN,Ie),X(s,j.WHITESPACE_CHARACTER_TOKEN,je),X(s,j.COMMENT_TOKEN,Ce),X(s,j.DOCTYPE_TOKEN,je),X(s,j.START_TAG_TOKEN,(function(e,t){t.tagName===V.HTML?(e._insertElement(t,G.HTML),e.insertionMode=ee):Ie(e,t)})),X(s,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r!==V.HTML&&r!==V.HEAD&&r!==V.BODY&&r!==V.BR||Ie(e,t)})),X(s,j.EOF_TOKEN,Ie),s)),X(T,ee,(X(o={},j.CHARACTER_TOKEN,Ue),X(o,j.NULL_CHARACTER_TOKEN,Ue),X(o,j.WHITESPACE_CHARACTER_TOKEN,je),X(o,j.COMMENT_TOKEN,Ce),X(o,j.DOCTYPE_TOKEN,De),X(o,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.HTML?at(e,t):r===V.HEAD?(e._insertElement(t,G.HTML),e.headElement=e.openElements.current,e.insertionMode=te):Ue(e,t)})),X(o,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.HEAD||r===V.BODY||r===V.HTML||r===V.BR?Ue(e,t):e._err(N.endTagWithoutMatchingOpenElement)})),X(o,j.EOF_TOKEN,Ue),o)),X(T,te,(X(d={},j.CHARACTER_TOKEN,Ze),X(d,j.NULL_CHARACTER_TOKEN,Ze),X(d,j.WHITESPACE_CHARACTER_TOKEN,_e),X(d,j.COMMENT_TOKEN,Ce),X(d,j.DOCTYPE_TOKEN,De),X(d,j.START_TAG_TOKEN,We),X(d,j.END_TAG_TOKEN,Ne),X(d,j.EOF_TOKEN,Ze),d)),X(T,re,(X(u={},j.CHARACTER_TOKEN,Ye),X(u,j.NULL_CHARACTER_TOKEN,Ye),X(u,j.WHITESPACE_CHARACTER_TOKEN,_e),X(u,j.COMMENT_TOKEN,Ce),X(u,j.DOCTYPE_TOKEN,De),X(u,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.HTML?at(e,t):r===V.BASEFONT||r===V.BGSOUND||r===V.HEAD||r===V.LINK||r===V.META||r===V.NOFRAMES||r===V.STYLE?We(e,t):r===V.NOSCRIPT?e._err(N.nestedNoscriptInHead):Ye(e,t)})),X(u,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.NOSCRIPT?(e.openElements.pop(),e.insertionMode=te):r===V.BR?Ye(e,t):e._err(N.endTagWithoutMatchingOpenElement)})),X(u,j.EOF_TOKEN,Ye),u)),X(T,ne,(X(c={},j.CHARACTER_TOKEN,Ve),X(c,j.NULL_CHARACTER_TOKEN,Ve),X(c,j.WHITESPACE_CHARACTER_TOKEN,_e),X(c,j.COMMENT_TOKEN,Ce),X(c,j.DOCTYPE_TOKEN,De),X(c,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.HTML?at(e,t):r===V.BODY?(e._insertElement(t,G.HTML),e.framesetOk=!1,e.insertionMode=ae):r===V.FRAMESET?(e._insertElement(t,G.HTML),e.insertionMode=me):r===V.BASE||r===V.BASEFONT||r===V.BGSOUND||r===V.LINK||r===V.META||r===V.NOFRAMES||r===V.SCRIPT||r===V.STYLE||r===V.TEMPLATE||r===V.TITLE?(e._err(N.abandonedHeadElementChild),e.openElements.push(e.headElement),We(e,t),e.openElements.remove(e.headElement)):r===V.HEAD?e._err(N.misplacedStartTagForHeadElement):Ve(e,t)})),X(c,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.BODY||r===V.HTML||r===V.BR?Ve(e,t):r===V.TEMPLATE?Ne(e,t):e._err(N.endTagWithoutMatchingOpenElement)})),X(c,j.EOF_TOKEN,Ve),c)),X(T,ae,(X(l={},j.CHARACTER_TOKEN,Be),X(l,j.NULL_CHARACTER_TOKEN,je),X(l,j.WHITESPACE_CHARACTER_TOKEN,Ge),X(l,j.COMMENT_TOKEN,Ce),X(l,j.DOCTYPE_TOKEN,je),X(l,j.START_TAG_TOKEN,at),X(l,j.END_TAG_TOKEN,dt),X(l,j.EOF_TOKEN,ut),l)),X(T,ie,(X(p={},j.CHARACTER_TOKEN,_e),X(p,j.NULL_CHARACTER_TOKEN,_e),X(p,j.WHITESPACE_CHARACTER_TOKEN,_e),X(p,j.COMMENT_TOKEN,je),X(p,j.DOCTYPE_TOKEN,je),X(p,j.START_TAG_TOKEN,je),X(p,j.END_TAG_TOKEN,(function(e,t){t.tagName===V.SCRIPT&&(e.pendingScript=e.openElements.current);e.openElements.pop(),e.insertionMode=e.originalInsertionMode})),X(p,j.EOF_TOKEN,(function(e,t){e._err(N.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e._processToken(t)})),p)),X(T,se,(X(O={},j.CHARACTER_TOKEN,ct),X(O,j.NULL_CHARACTER_TOKEN,ct),X(O,j.WHITESPACE_CHARACTER_TOKEN,ct),X(O,j.COMMENT_TOKEN,Ce),X(O,j.DOCTYPE_TOKEN,je),X(O,j.START_TAG_TOKEN,lt),X(O,j.END_TAG_TOKEN,pt),X(O,j.EOF_TOKEN,ut),O)),X(T,oe,(X(f={},j.CHARACTER_TOKEN,(function(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0})),X(f,j.NULL_CHARACTER_TOKEN,je),X(f,j.WHITESPACE_CHARACTER_TOKEN,(function(e,t){e.pendingCharacterTokens.push(t)})),X(f,j.COMMENT_TOKEN,ft),X(f,j.DOCTYPE_TOKEN,ft),X(f,j.START_TAG_TOKEN,ft),X(f,j.END_TAG_TOKEN,ft),X(f,j.EOF_TOKEN,ft),f)),X(T,de,(X(h={},j.CHARACTER_TOKEN,Be),X(h,j.NULL_CHARACTER_TOKEN,je),X(h,j.WHITESPACE_CHARACTER_TOKEN,Ge),X(h,j.COMMENT_TOKEN,Ce),X(h,j.DOCTYPE_TOKEN,je),X(h,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.CAPTION||r===V.COL||r===V.COLGROUP||r===V.TBODY||r===V.TD||r===V.TFOOT||r===V.TH||r===V.THEAD||r===V.TR?e.openElements.hasInTableScope(V.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(V.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=se,e._processToken(t)):at(e,t)})),X(h,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.CAPTION||r===V.TABLE?e.openElements.hasInTableScope(V.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(V.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=se,r===V.TABLE&&e._processToken(t)):r!==V.BODY&&r!==V.COL&&r!==V.COLGROUP&&r!==V.HTML&&r!==V.TBODY&&r!==V.TD&&r!==V.TFOOT&&r!==V.TH&&r!==V.THEAD&&r!==V.TR&&dt(e,t)})),X(h,j.EOF_TOKEN,ut),h)),X(T,ue,(X(g={},j.CHARACTER_TOKEN,ht),X(g,j.NULL_CHARACTER_TOKEN,ht),X(g,j.WHITESPACE_CHARACTER_TOKEN,_e),X(g,j.COMMENT_TOKEN,Ce),X(g,j.DOCTYPE_TOKEN,je),X(g,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.HTML?at(e,t):r===V.COL?(e._appendElement(t,G.HTML),t.ackSelfClosing=!0):r===V.TEMPLATE?We(e,t):ht(e,t)})),X(g,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.COLGROUP?e.openElements.currentTagName===V.COLGROUP&&(e.openElements.pop(),e.insertionMode=se):r===V.TEMPLATE?Ne(e,t):r!==V.COL&&ht(e,t)})),X(g,j.EOF_TOKEN,ut),g)),X(T,ce,(X(m={},j.CHARACTER_TOKEN,ct),X(m,j.NULL_CHARACTER_TOKEN,ct),X(m,j.WHITESPACE_CHARACTER_TOKEN,ct),X(m,j.COMMENT_TOKEN,Ce),X(m,j.DOCTYPE_TOKEN,je),X(m,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.TR?(e.openElements.clearBackToTableBodyContext(),e._insertElement(t,G.HTML),e.insertionMode=le):r===V.TH||r===V.TD?(e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(V.TR),e.insertionMode=le,e._processToken(t)):r===V.CAPTION||r===V.COL||r===V.COLGROUP||r===V.TBODY||r===V.TFOOT||r===V.THEAD?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=se,e._processToken(t)):lt(e,t)})),X(m,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.TBODY||r===V.TFOOT||r===V.THEAD?e.openElements.hasInTableScope(r)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=se):r===V.TABLE?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=se,e._processToken(t)):(r!==V.BODY&&r!==V.CAPTION&&r!==V.COL&&r!==V.COLGROUP||r!==V.HTML&&r!==V.TD&&r!==V.TH&&r!==V.TR)&&pt(e,t)})),X(m,j.EOF_TOKEN,ut),m)),X(T,le,(X(y={},j.CHARACTER_TOKEN,ct),X(y,j.NULL_CHARACTER_TOKEN,ct),X(y,j.WHITESPACE_CHARACTER_TOKEN,ct),X(y,j.COMMENT_TOKEN,Ce),X(y,j.DOCTYPE_TOKEN,je),X(y,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.TH||r===V.TD?(e.openElements.clearBackToTableRowContext(),e._insertElement(t,G.HTML),e.insertionMode=pe,e.activeFormattingElements.insertMarker()):r===V.CAPTION||r===V.COL||r===V.COLGROUP||r===V.TBODY||r===V.TFOOT||r===V.THEAD||r===V.TR?e.openElements.hasInTableScope(V.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=ce,e._processToken(t)):lt(e,t)})),X(y,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.TR?e.openElements.hasInTableScope(V.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=ce):r===V.TABLE?e.openElements.hasInTableScope(V.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=ce,e._processToken(t)):r===V.TBODY||r===V.TFOOT||r===V.THEAD?(e.openElements.hasInTableScope(r)||e.openElements.hasInTableScope(V.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=ce,e._processToken(t)):(r!==V.BODY&&r!==V.CAPTION&&r!==V.COL&&r!==V.COLGROUP||r!==V.HTML&&r!==V.TD&&r!==V.TH)&&pt(e,t)})),X(y,j.EOF_TOKEN,ut),y)),X(T,pe,(X(v={},j.CHARACTER_TOKEN,Be),X(v,j.NULL_CHARACTER_TOKEN,je),X(v,j.WHITESPACE_CHARACTER_TOKEN,Ge),X(v,j.COMMENT_TOKEN,Ce),X(v,j.DOCTYPE_TOKEN,je),X(v,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.CAPTION||r===V.COL||r===V.COLGROUP||r===V.TBODY||r===V.TD||r===V.TFOOT||r===V.TH||r===V.THEAD||r===V.TR?(e.openElements.hasInTableScope(V.TD)||e.openElements.hasInTableScope(V.TH))&&(e._closeTableCell(),e._processToken(t)):at(e,t)})),X(v,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.TD||r===V.TH?e.openElements.hasInTableScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=le):r===V.TABLE||r===V.TBODY||r===V.TFOOT||r===V.THEAD||r===V.TR?e.openElements.hasInTableScope(r)&&(e._closeTableCell(),e._processToken(t)):r!==V.BODY&&r!==V.CAPTION&&r!==V.COL&&r!==V.COLGROUP&&r!==V.HTML&&dt(e,t)})),X(v,j.EOF_TOKEN,ut),v)),X(T,Oe,(X(b={},j.CHARACTER_TOKEN,_e),X(b,j.NULL_CHARACTER_TOKEN,je),X(b,j.WHITESPACE_CHARACTER_TOKEN,_e),X(b,j.COMMENT_TOKEN,Ce),X(b,j.DOCTYPE_TOKEN,je),X(b,j.START_TAG_TOKEN,gt),X(b,j.END_TAG_TOKEN,mt),X(b,j.EOF_TOKEN,ut),b)),X(T,fe,(X(x={},j.CHARACTER_TOKEN,_e),X(x,j.NULL_CHARACTER_TOKEN,je),X(x,j.WHITESPACE_CHARACTER_TOKEN,_e),X(x,j.COMMENT_TOKEN,Ce),X(x,j.DOCTYPE_TOKEN,je),X(x,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.CAPTION||r===V.TABLE||r===V.TBODY||r===V.TFOOT||r===V.THEAD||r===V.TR||r===V.TD||r===V.TH?(e.openElements.popUntilTagNamePopped(V.SELECT),e._resetInsertionMode(),e._processToken(t)):gt(e,t)})),X(x,j.END_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.CAPTION||r===V.TABLE||r===V.TBODY||r===V.TFOOT||r===V.THEAD||r===V.TR||r===V.TD||r===V.TH?e.openElements.hasInTableScope(r)&&(e.openElements.popUntilTagNamePopped(V.SELECT),e._resetInsertionMode(),e._processToken(t)):mt(e,t)})),X(x,j.EOF_TOKEN,ut),x)),X(T,he,(X(R={},j.CHARACTER_TOKEN,Be),X(R,j.NULL_CHARACTER_TOKEN,je),X(R,j.WHITESPACE_CHARACTER_TOKEN,Ge),X(R,j.COMMENT_TOKEN,Ce),X(R,j.DOCTYPE_TOKEN,je),X(R,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;if(r===V.BASE||r===V.BASEFONT||r===V.BGSOUND||r===V.LINK||r===V.META||r===V.NOFRAMES||r===V.SCRIPT||r===V.STYLE||r===V.TEMPLATE||r===V.TITLE)We(e,t);else{var n=Re[r]||ae;e._popTmplInsertionMode(),e._pushTmplInsertionMode(n),e.insertionMode=n,e._processToken(t)}})),X(R,j.END_TAG_TOKEN,(function(e,t){t.tagName===V.TEMPLATE&&Ne(e,t)})),X(R,j.EOF_TOKEN,yt),R)),X(T,ge,(X(S={},j.CHARACTER_TOKEN,vt),X(S,j.NULL_CHARACTER_TOKEN,vt),X(S,j.WHITESPACE_CHARACTER_TOKEN,Ge),X(S,j.COMMENT_TOKEN,(function(e,t){e._appendCommentNode(t,e.openElements.items[0])})),X(S,j.DOCTYPE_TOKEN,je),X(S,j.START_TAG_TOKEN,(function(e,t){t.tagName===V.HTML?at(e,t):vt(e,t)})),X(S,j.END_TAG_TOKEN,(function(e,t){t.tagName===V.HTML?e.fragmentContext||(e.insertionMode=ve):vt(e,t)})),X(S,j.EOF_TOKEN,Fe),S)),X(T,me,(X(Q={},j.CHARACTER_TOKEN,je),X(Q,j.NULL_CHARACTER_TOKEN,je),X(Q,j.WHITESPACE_CHARACTER_TOKEN,_e),X(Q,j.COMMENT_TOKEN,Ce),X(Q,j.DOCTYPE_TOKEN,je),X(Q,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.HTML?at(e,t):r===V.FRAMESET?e._insertElement(t,G.HTML):r===V.FRAME?(e._appendElement(t,G.HTML),t.ackSelfClosing=!0):r===V.NOFRAMES&&We(e,t)})),X(Q,j.END_TAG_TOKEN,(function(e,t){t.tagName!==V.FRAMESET||e.openElements.isRootHtmlElementCurrent()||(e.openElements.pop(),e.fragmentContext||e.openElements.currentTagName===V.FRAMESET||(e.insertionMode=ye))})),X(Q,j.EOF_TOKEN,Fe),Q)),X(T,ye,(X($={},j.CHARACTER_TOKEN,je),X($,j.NULL_CHARACTER_TOKEN,je),X($,j.WHITESPACE_CHARACTER_TOKEN,_e),X($,j.COMMENT_TOKEN,Ce),X($,j.DOCTYPE_TOKEN,je),X($,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.HTML?at(e,t):r===V.NOFRAMES&&We(e,t)})),X($,j.END_TAG_TOKEN,(function(e,t){t.tagName===V.HTML&&(e.insertionMode=be)})),X($,j.EOF_TOKEN,Fe),$)),X(T,ve,(X(w={},j.CHARACTER_TOKEN,bt),X(w,j.NULL_CHARACTER_TOKEN,bt),X(w,j.WHITESPACE_CHARACTER_TOKEN,Ge),X(w,j.COMMENT_TOKEN,Ae),X(w,j.DOCTYPE_TOKEN,je),X(w,j.START_TAG_TOKEN,(function(e,t){t.tagName===V.HTML?at(e,t):bt(e,t)})),X(w,j.END_TAG_TOKEN,bt),X(w,j.EOF_TOKEN,Fe),w)),X(T,be,(X(P={},j.CHARACTER_TOKEN,je),X(P,j.NULL_CHARACTER_TOKEN,je),X(P,j.WHITESPACE_CHARACTER_TOKEN,Ge),X(P,j.COMMENT_TOKEN,Ae),X(P,j.DOCTYPE_TOKEN,je),X(P,j.START_TAG_TOKEN,(function(e,t){var r=t.tagName;r===V.HTML?at(e,t):r===V.NOFRAMES&&We(e,t)})),X(P,j.END_TAG_TOKEN,je),X(P,j.EOF_TOKEN,Fe),P)),T),Qe=function(){function e(t){E(this,e),this.options=I(z,t),this.treeAdapter=this.options.treeAdapter,this.pendingScript=null,this.options.sourceCodeLocationInfo&&F.install(this,A),this.options.onParseError&&F.install(this,_,{onParseError:this.options.onParseError})}return k(e,[{key:"parse",value:function(e){var t=this.treeAdapter.createDocument();return this._bootstrap(t,null),this.tokenizer.write(e,!0),this._runParsingLoop(null),t}},{key:"parseFragment",value:function(e,t){t||(t=this.treeAdapter.createElement(V.TEMPLATE,G.HTML,[]));var r=this.treeAdapter.createElement("documentmock",G.HTML,[]);this._bootstrap(r,t),this.treeAdapter.getTagName(t)===V.TEMPLATE&&this._pushTmplInsertionMode(he),this._initTokenizerForFragmentParsing(),this._insertFakeRootElement(),this._resetInsertionMode(),this._findFormInFragmentContext(),this.tokenizer.write(e,!0),this._runParsingLoop(null);var n=this.treeAdapter.getFirstChild(r),a=this.treeAdapter.createDocumentFragment();return this._adoptNodes(n,a),a}},{key:"_bootstrap",value:function(e,t){this.tokenizer=new j(this.options),this.stopped=!1,this.insertionMode=H,this.originalInsertionMode="",this.document=e,this.fragmentContext=t,this.headElement=null,this.formElement=null,this.openElements=new D(this.document,this.treeAdapter),this.activeFormattingElements=new C(this.treeAdapter),this.tmplInsertionModeStack=[],this.tmplInsertionModeStackTop=-1,this.currentTmplInsertionMode=null,this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1}},{key:"_err",value:function(){}},{key:"_runParsingLoop",value:function(e){for(;!this.stopped;){this._setupTokenizerCDATAMode();var t=this.tokenizer.getNextToken();if(t.type===j.HIBERNATION_TOKEN)break;if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.type===j.WHITESPACE_CHARACTER_TOKEN&&"\n"===t.chars[0])){if(1===t.chars.length)continue;t.chars=t.chars.substr(1)}if(this._processInputToken(t),e&&this.pendingScript)break}}},{key:"runParsingLoopForCurrentChunk",value:function(e,t){if(this._runParsingLoop(t),t&&this.pendingScript){var r=this.pendingScript;return this.pendingScript=null,void t(r)}e&&e()}},{key:"_setupTokenizerCDATAMode",value:function(){var e=this._getAdjustedCurrentElement();this.tokenizer.allowCDATA=e&&e!==this.document&&this.treeAdapter.getNamespaceURI(e)!==G.HTML&&!this._isIntegrationPoint(e)}},{key:"_switchToTextParsing",value:function(e,t){this._insertElement(e,G.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=ie}},{key:"switchToPlaintextParsing",value:function(){this.insertionMode=ie,this.originalInsertionMode=ae,this.tokenizer.state=j.MODE.PLAINTEXT}},{key:"_getAdjustedCurrentElement",value:function(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}},{key:"_findFormInFragmentContext",value:function(){var e=this.fragmentContext;do{if(this.treeAdapter.getTagName(e)===V.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}while(e)}},{key:"_initTokenizerForFragmentParsing",value:function(){if(this.treeAdapter.getNamespaceURI(this.fragmentContext)===G.HTML){var e=this.treeAdapter.getTagName(this.fragmentContext);e===V.TITLE||e===V.TEXTAREA?this.tokenizer.state=j.MODE.RCDATA:e===V.STYLE||e===V.XMP||e===V.IFRAME||e===V.NOEMBED||e===V.NOFRAMES||e===V.NOSCRIPT?this.tokenizer.state=j.MODE.RAWTEXT:e===V.SCRIPT?this.tokenizer.state=j.MODE.SCRIPT_DATA:e===V.PLAINTEXT&&(this.tokenizer.state=j.MODE.PLAINTEXT)}}},{key:"_setDocumentType",value:function(e){var t=e.name||"",r=e.publicId||"",n=e.systemId||"";this.treeAdapter.setDocumentType(this.document,t,r,n)}},{key:"_attachElementToTree",value:function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.appendChild(t,e)}}},{key:"_appendElement",value:function(e,t){var r=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(r)}},{key:"_insertElement",value:function(e,t){var r=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(r),this.openElements.push(r)}},{key:"_insertFakeElement",value:function(e){var t=this.treeAdapter.createElement(e,G.HTML,[]);this._attachElementToTree(t),this.openElements.push(t)}},{key:"_insertTemplate",value:function(e){var t=this.treeAdapter.createElement(e.tagName,G.HTML,e.attrs),r=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,r),this._attachElementToTree(t),this.openElements.push(t)}},{key:"_insertFakeRootElement",value:function(){var e=this.treeAdapter.createElement(V.HTML,G.HTML,[]);this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e)}},{key:"_appendCommentNode",value:function(e,t){var r=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,r)}},{key:"_insertCharacters",value:function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentText(e.chars);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.insertText(t,e.chars)}}},{key:"_adoptNodes",value:function(e,t){for(var r=this.treeAdapter.getFirstChild(e);r;r=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(r),this.treeAdapter.appendChild(t,r)}},{key:"_shouldProcessTokenInForeignContent",value:function(e){var t=this._getAdjustedCurrentElement();if(!t||t===this.document)return!1;var r=this.treeAdapter.getNamespaceURI(t);if(r===G.HTML)return!1;if(this.treeAdapter.getTagName(t)===V.ANNOTATION_XML&&r===G.MATHML&&e.type===j.START_TAG_TOKEN&&e.tagName===V.SVG)return!1;var n=e.type===j.CHARACTER_TOKEN||e.type===j.NULL_CHARACTER_TOKEN||e.type===j.WHITESPACE_CHARACTER_TOKEN;return(!(e.type===j.START_TAG_TOKEN&&e.tagName!==V.MGLYPH&&e.tagName!==V.MALIGNMARK)&&!n||!this._isIntegrationPoint(t,G.MATHML))&&((e.type!==j.START_TAG_TOKEN&&!n||!this._isIntegrationPoint(t,G.HTML))&&e.type!==j.EOF_TOKEN)}},{key:"_processToken",value:function(e){Se[this.insertionMode][e.type](this,e)}},{key:"_processTokenInBodyMode",value:function(e){Se[ae][e.type](this,e)}},{key:"_processTokenInForeignContent",value:function(e){e.type===j.CHARACTER_TOKEN?function(e,t){e._insertCharacters(t),e.framesetOk=!1}(this,e):e.type===j.NULL_CHARACTER_TOKEN?function(e,t){t.chars=Z.REPLACEMENT_CHARACTER,e._insertCharacters(t)}(this,e):e.type===j.WHITESPACE_CHARACTER_TOKEN?_e(this,e):e.type===j.COMMENT_TOKEN?Ce(this,e):e.type===j.START_TAG_TOKEN?function(e,t){if(W.causesExit(t)&&!e.fragmentContext){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==G.HTML&&!e._isIntegrationPoint(e.openElements.current);)e.openElements.pop();e._processToken(t)}else{var r=e._getAdjustedCurrentElement(),n=e.treeAdapter.getNamespaceURI(r);n===G.MATHML?W.adjustTokenMathMLAttrs(t):n===G.SVG&&(W.adjustTokenSVGTagName(t),W.adjustTokenSVGAttrs(t)),W.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,n):e._insertElement(t,n),t.ackSelfClosing=!0}}(this,e):e.type===j.END_TAG_TOKEN&&function(e,t){for(var r=e.openElements.stackTop;r>0;r--){var n=e.openElements.items[r];if(e.treeAdapter.getNamespaceURI(n)===G.HTML){e._processToken(t);break}if(e.treeAdapter.getTagName(n).toLowerCase()===t.tagName){e.openElements.popUntilElementPopped(n);break}}}(this,e)}},{key:"_processInputToken",value:function(e){this._shouldProcessTokenInForeignContent(e)?this._processTokenInForeignContent(e):this._processToken(e),e.type===j.START_TAG_TOKEN&&e.selfClosing&&!e.ackSelfClosing&&this._err(N.nonVoidHtmlElementStartTagWithTrailingSolidus)}},{key:"_isIntegrationPoint",value:function(e,t){var r=this.treeAdapter.getTagName(e),n=this.treeAdapter.getNamespaceURI(e),a=this.treeAdapter.getAttrList(e);return W.isIntegrationPoint(r,n,a,t)}},{key:"_reconstructActiveFormattingElements",value:function(){var e=this.activeFormattingElements.length;if(e){var t=e,r=null;do{if(t--,(r=this.activeFormattingElements.entries[t]).type===C.MARKER_ENTRY||this.openElements.contains(r.element)){t++;break}}while(t>0);for(var n=t;n=0;e--){var r=this.openElements.items[e];0===e&&(t=!0,this.fragmentContext&&(r=this.fragmentContext));var n=this.treeAdapter.getTagName(r),a=xe[n];if(a){this.insertionMode=a;break}if(!(t||n!==V.TD&&n!==V.TH)){this.insertionMode=pe;break}if(!t&&n===V.HEAD){this.insertionMode=te;break}if(n===V.SELECT){this._resetInsertionModeForSelect(e);break}if(n===V.TEMPLATE){this.insertionMode=this.currentTmplInsertionMode;break}if(n===V.HTML){this.insertionMode=this.headElement?ne:ee;break}if(t){this.insertionMode=ae;break}}}},{key:"_resetInsertionModeForSelect",value:function(e){if(e>0)for(var t=e-1;t>0;t--){var r=this.openElements.items[t],n=this.treeAdapter.getTagName(r);if(n===V.TEMPLATE)break;if(n===V.TABLE)return void(this.insertionMode=fe)}this.insertionMode=Oe}},{key:"_pushTmplInsertionMode",value:function(e){this.tmplInsertionModeStack.push(e),this.tmplInsertionModeStackTop++,this.currentTmplInsertionMode=e}},{key:"_popTmplInsertionMode",value:function(){this.tmplInsertionModeStack.pop(),this.tmplInsertionModeStackTop--,this.currentTmplInsertionMode=this.tmplInsertionModeStack[this.tmplInsertionModeStackTop]}},{key:"_isElementCausesFosterParenting",value:function(e){var t=this.treeAdapter.getTagName(e);return t===V.TABLE||t===V.TBODY||t===V.TFOOT||t===V.THEAD||t===V.TR}},{key:"_shouldFosterParentOnInsertion",value:function(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.current)}},{key:"_findFosterParentingLocation",value:function(){for(var e={parent:null,beforeElement:null},t=this.openElements.stackTop;t>=0;t--){var r=this.openElements.items[t],n=this.treeAdapter.getTagName(r),a=this.treeAdapter.getNamespaceURI(r);if(n===V.TEMPLATE&&a===G.HTML){e.parent=this.treeAdapter.getTemplateContent(r);break}if(n===V.TABLE){e.parent=this.treeAdapter.getParentNode(r),e.parent?e.beforeElement=r:e.parent=this.openElements.items[t-1];break}}return e.parent||(e.parent=this.openElements.items[0]),e}},{key:"_fosterParentElement",value:function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e)}},{key:"_fosterParentText",value:function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertTextBefore(t.parent,e,t.beforeElement):this.treeAdapter.insertText(t.parent,e)}},{key:"_isSpecialElement",value:function(e){var t=this.treeAdapter.getTagName(e),r=this.treeAdapter.getNamespaceURI(e);return Y.SPECIAL_ELEMENTS[r][t]}}]),e}();function $e(e,t){var r=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return r?e.openElements.contains(r.element)?e.openElements.hasInScope(t.tagName)||(r=null):(e.activeFormattingElements.removeEntry(r),r=null):ot(e,t),r}function we(e,t){for(var r=null,n=e.openElements.stackTop;n>=0;n--){var a=e.openElements.items[n];if(a===t.element)break;e._isSpecialElement(a)&&(r=a)}return r||(e.openElements.popUntilElementPopped(t.element),e.activeFormattingElements.removeEntry(t)),r}function Pe(e,t,r){for(var n=t,a=e.openElements.getCommonAncestor(t),i=0,s=a;s!==r;i++,s=a){a=e.openElements.getCommonAncestor(s);var o=e.activeFormattingElements.getElementEntry(s),d=o&&i>=J;!o||d?(d&&e.activeFormattingElements.removeEntry(o),e.openElements.remove(s)):(s=Te(e,o),n===t&&(e.activeFormattingElements.bookmark=o),e.treeAdapter.detachNode(n),e.treeAdapter.appendChild(s,n),n=s)}return n}function Te(e,t){var r=e.treeAdapter.getNamespaceURI(t.element),n=e.treeAdapter.createElement(t.token.tagName,r,t.token.attrs);return e.openElements.replace(t.element,n),t.element=n,n}function Ee(e,t,r){if(e._isElementCausesFosterParenting(t))e._fosterParentElement(r);else{var n=e.treeAdapter.getTagName(t),a=e.treeAdapter.getNamespaceURI(t);n===V.TEMPLATE&&a===G.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,r)}}function ke(e,t,r){var n=e.treeAdapter.getNamespaceURI(r.element),a=r.token,i=e.treeAdapter.createElement(a.tagName,n,a.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,r.token),e.activeFormattingElements.removeEntry(r),e.openElements.remove(r.element),e.openElements.insertAfter(t,i)}function Xe(e,t){for(var r,n=0;n0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagName!==V.TEMPLATE&&e._err(N.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(V.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode()):e._err(N.endTagWithoutMatchingOpenElement)}function Ze(e,t){e.openElements.pop(),e.insertionMode=ne,e._processToken(t)}function Ye(e,t){var r=t.type===j.EOF_TOKEN?N.openElementsLeftAfterEof:N.disallowedContentInNoscriptInHead;e._err(r),e.openElements.pop(),e.insertionMode=te,e._processToken(t)}function Ve(e,t){e._insertFakeElement(V.BODY),e.insertionMode=ae,e._processToken(t)}function Ge(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function Be(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function ze(e,t){e.openElements.hasInButtonScope(V.P)&&e._closePElement(),e._insertElement(t,G.HTML)}function Le(e,t){e.openElements.hasInButtonScope(V.P)&&e._closePElement(),e._insertElement(t,G.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function Me(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,G.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function Je(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,G.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function He(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,G.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function Ke(e,t){e._appendElement(t,G.HTML),t.ackSelfClosing=!0}function et(e,t){e._switchToTextParsing(t,j.MODE.RAWTEXT)}function tt(e,t){e.openElements.currentTagName===V.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,G.HTML)}function rt(e,t){e.openElements.hasInScope(V.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,G.HTML)}function nt(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,G.HTML)}function at(e,t){var r=t.tagName;switch(r.length){case 1:r===V.I||r===V.S||r===V.B||r===V.U?Me(e,t):r===V.P?ze(e,t):r===V.A?function(e,t){var r=e.activeFormattingElements.getElementEntryInScopeWithTagName(V.A);r&&(Xe(e,t),e.openElements.remove(r.element),e.activeFormattingElements.removeEntry(r)),e._reconstructActiveFormattingElements(),e._insertElement(t,G.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t):nt(e,t);break;case 2:r===V.DL||r===V.OL||r===V.UL?ze(e,t):r===V.H1||r===V.H2||r===V.H3||r===V.H4||r===V.H5||r===V.H6?function(e,t){e.openElements.hasInButtonScope(V.P)&&e._closePElement();var r=e.openElements.currentTagName;r!==V.H1&&r!==V.H2&&r!==V.H3&&r!==V.H4&&r!==V.H5&&r!==V.H6||e.openElements.pop(),e._insertElement(t,G.HTML)}(e,t):r===V.LI||r===V.DD||r===V.DT?function(e,t){e.framesetOk=!1;for(var r=t.tagName,n=e.openElements.stackTop;n>=0;n--){var a=e.openElements.items[n],i=e.treeAdapter.getTagName(a),s=null;if(r===V.LI&&i===V.LI?s=V.LI:r!==V.DD&&r!==V.DT||i!==V.DD&&i!==V.DT||(s=i),s){e.openElements.generateImpliedEndTagsWithExclusion(s),e.openElements.popUntilTagNamePopped(s);break}if(i!==V.ADDRESS&&i!==V.DIV&&i!==V.P&&e._isSpecialElement(a))break}e.openElements.hasInButtonScope(V.P)&&e._closePElement(),e._insertElement(t,G.HTML)}(e,t):r===V.EM||r===V.TT?Me(e,t):r===V.BR?He(e,t):r===V.HR?function(e,t){e.openElements.hasInButtonScope(V.P)&&e._closePElement(),e._appendElement(t,G.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}(e,t):r===V.RB?rt(e,t):r===V.RT||r===V.RP?function(e,t){e.openElements.hasInScope(V.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(V.RTC),e._insertElement(t,G.HTML)}(e,t):r!==V.TH&&r!==V.TD&&r!==V.TR&&nt(e,t);break;case 3:r===V.DIV||r===V.DIR||r===V.NAV?ze(e,t):r===V.PRE?Le(e,t):r===V.BIG?Me(e,t):r===V.IMG||r===V.WBR?He(e,t):r===V.XMP?function(e,t){e.openElements.hasInButtonScope(V.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,j.MODE.RAWTEXT)}(e,t):r===V.SVG?function(e,t){e._reconstructActiveFormattingElements(),W.adjustTokenSVGAttrs(t),W.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,G.SVG):e._insertElement(t,G.SVG),t.ackSelfClosing=!0}(e,t):r===V.RTC?rt(e,t):r!==V.COL&&nt(e,t);break;case 4:r===V.HTML?function(e,t){0===e.openElements.tmplCount&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}(e,t):r===V.BASE||r===V.LINK||r===V.META?We(e,t):r===V.BODY?function(e,t){var r=e.openElements.tryPeekProperlyNestedBodyElement();r&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(r,t.attrs))}(e,t):r===V.MAIN||r===V.MENU?ze(e,t):r===V.FORM?function(e,t){var r=e.openElements.tmplCount>0;e.formElement&&!r||(e.openElements.hasInButtonScope(V.P)&&e._closePElement(),e._insertElement(t,G.HTML),r||(e.formElement=e.openElements.current))}(e,t):r===V.CODE||r===V.FONT?Me(e,t):r===V.NOBR?function(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(V.NOBR)&&(Xe(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,G.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t):r===V.AREA?He(e,t):r===V.MATH?function(e,t){e._reconstructActiveFormattingElements(),W.adjustTokenMathMLAttrs(t),W.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,G.MATHML):e._insertElement(t,G.MATHML),t.ackSelfClosing=!0}(e,t):r===V.MENU?function(e,t){e.openElements.hasInButtonScope(V.P)&&e._closePElement(),e._insertElement(t,G.HTML)}(e,t):r!==V.HEAD&&nt(e,t);break;case 5:r===V.STYLE||r===V.TITLE?We(e,t):r===V.ASIDE?ze(e,t):r===V.SMALL?Me(e,t):r===V.TABLE?function(e,t){e.treeAdapter.getDocumentMode(e.document)!==Y.DOCUMENT_MODE.QUIRKS&&e.openElements.hasInButtonScope(V.P)&&e._closePElement(),e._insertElement(t,G.HTML),e.framesetOk=!1,e.insertionMode=se}(e,t):r===V.EMBED?He(e,t):r===V.INPUT?function(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,G.HTML);var r=j.getTokenAttr(t,B.TYPE);r&&r.toLowerCase()===L||(e.framesetOk=!1),t.ackSelfClosing=!0}(e,t):r===V.PARAM||r===V.TRACK?Ke(e,t):r===V.IMAGE?function(e,t){t.tagName=V.IMG,He(e,t)}(e,t):r!==V.FRAME&&r!==V.TBODY&&r!==V.TFOOT&&r!==V.THEAD&&nt(e,t);break;case 6:r===V.SCRIPT?We(e,t):r===V.CENTER||r===V.FIGURE||r===V.FOOTER||r===V.HEADER||r===V.HGROUP||r===V.DIALOG?ze(e,t):r===V.BUTTON?function(e,t){e.openElements.hasInScope(V.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(V.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,G.HTML),e.framesetOk=!1}(e,t):r===V.STRIKE||r===V.STRONG?Me(e,t):r===V.APPLET||r===V.OBJECT?Je(e,t):r===V.KEYGEN?He(e,t):r===V.SOURCE?Ke(e,t):r===V.IFRAME?function(e,t){e.framesetOk=!1,e._switchToTextParsing(t,j.MODE.RAWTEXT)}(e,t):r===V.SELECT?function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,G.HTML),e.framesetOk=!1,e.insertionMode===se||e.insertionMode===de||e.insertionMode===ce||e.insertionMode===le||e.insertionMode===pe?e.insertionMode=fe:e.insertionMode=Oe}(e,t):r===V.OPTION?tt(e,t):nt(e,t);break;case 7:r===V.BGSOUND?We(e,t):r===V.DETAILS||r===V.ADDRESS||r===V.ARTICLE||r===V.SECTION||r===V.SUMMARY?ze(e,t):r===V.LISTING?Le(e,t):r===V.MARQUEE?Je(e,t):r===V.NOEMBED?et(e,t):r!==V.CAPTION&&nt(e,t);break;case 8:r===V.BASEFONT?We(e,t):r===V.FRAMESET?function(e,t){var r=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&r&&(e.treeAdapter.detachNode(r),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,G.HTML),e.insertionMode=me)}(e,t):r===V.FIELDSET?ze(e,t):r===V.TEXTAREA?function(e,t){e._insertElement(t,G.HTML),e.skipNextNewLine=!0,e.tokenizer.state=j.MODE.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=ie}(e,t):r===V.TEMPLATE?We(e,t):r===V.NOSCRIPT?e.options.scriptingEnabled?et(e,t):nt(e,t):r===V.OPTGROUP?tt(e,t):r!==V.COLGROUP&&nt(e,t);break;case 9:r===V.PLAINTEXT?function(e,t){e.openElements.hasInButtonScope(V.P)&&e._closePElement(),e._insertElement(t,G.HTML),e.tokenizer.state=j.MODE.PLAINTEXT}(e,t):nt(e,t);break;case 10:r===V.BLOCKQUOTE||r===V.FIGCAPTION?ze(e,t):nt(e,t);break;default:nt(e,t)}}function it(e,t){var r=t.tagName;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r))}function st(e,t){var r=t.tagName;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r),e.activeFormattingElements.clearToLastMarker())}function ot(e,t){for(var r=t.tagName,n=e.openElements.stackTop;n>0;n--){var a=e.openElements.items[n];if(e.treeAdapter.getTagName(a)===r){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilElementPopped(a);break}if(e._isSpecialElement(a))break}}function dt(e,t){var r=t.tagName;switch(r.length){case 1:r===V.A||r===V.B||r===V.I||r===V.S||r===V.U?Xe(e,t):r===V.P?function(e){e.openElements.hasInButtonScope(V.P)||e._insertFakeElement(V.P),e._closePElement()}(e):ot(e,t);break;case 2:r===V.DL||r===V.UL||r===V.OL?it(e,t):r===V.LI?function(e){e.openElements.hasInListItemScope(V.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(V.LI),e.openElements.popUntilTagNamePopped(V.LI))}(e):r===V.DD||r===V.DT?function(e,t){var r=t.tagName;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilTagNamePopped(r))}(e,t):r===V.H1||r===V.H2||r===V.H3||r===V.H4||r===V.H5||r===V.H6?function(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}(e):r===V.BR?function(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(V.BR),e.openElements.pop(),e.framesetOk=!1}(e):r===V.EM||r===V.TT?Xe(e,t):ot(e,t);break;case 3:r===V.BIG?Xe(e,t):r===V.DIR||r===V.DIV||r===V.NAV||r===V.PRE?it(e,t):ot(e,t);break;case 4:r===V.BODY?function(e){e.openElements.hasInScope(V.BODY)&&(e.insertionMode=ge)}(e):r===V.HTML?function(e,t){e.openElements.hasInScope(V.BODY)&&(e.insertionMode=ge,e._processToken(t))}(e,t):r===V.FORM?function(e){var t=e.openElements.tmplCount>0,r=e.formElement;t||(e.formElement=null),(r||t)&&e.openElements.hasInScope(V.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(V.FORM):e.openElements.remove(r))}(e):r===V.CODE||r===V.FONT||r===V.NOBR?Xe(e,t):r===V.MAIN||r===V.MENU?it(e,t):ot(e,t);break;case 5:r===V.ASIDE?it(e,t):r===V.SMALL?Xe(e,t):ot(e,t);break;case 6:r===V.CENTER||r===V.FIGURE||r===V.FOOTER||r===V.HEADER||r===V.HGROUP||r===V.DIALOG?it(e,t):r===V.APPLET||r===V.OBJECT?st(e,t):r===V.STRIKE||r===V.STRONG?Xe(e,t):ot(e,t);break;case 7:r===V.ADDRESS||r===V.ARTICLE||r===V.DETAILS||r===V.SECTION||r===V.SUMMARY||r===V.LISTING?it(e,t):r===V.MARQUEE?st(e,t):ot(e,t);break;case 8:r===V.FIELDSET?it(e,t):r===V.TEMPLATE?Ne(e,t):ot(e,t);break;case 10:r===V.BLOCKQUOTE||r===V.FIGCAPTION?it(e,t):ot(e,t);break;default:ot(e,t)}}function ut(e,t){e.tmplInsertionModeStackTop>-1?yt(e,t):e.stopped=!0}function ct(e,t){var r=e.openElements.currentTagName;r===V.TABLE||r===V.TBODY||r===V.TFOOT||r===V.THEAD||r===V.TR?(e.pendingCharacterTokens=[],e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=oe,e._processToken(t)):Ot(e,t)}function lt(e,t){var r=t.tagName;switch(r.length){case 2:r===V.TD||r===V.TH||r===V.TR?function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(V.TBODY),e.insertionMode=ce,e._processToken(t)}(e,t):Ot(e,t);break;case 3:r===V.COL?function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(V.COLGROUP),e.insertionMode=ue,e._processToken(t)}(e,t):Ot(e,t);break;case 4:r===V.FORM?function(e,t){e.formElement||0!==e.openElements.tmplCount||(e._insertElement(t,G.HTML),e.formElement=e.openElements.current,e.openElements.pop())}(e,t):Ot(e,t);break;case 5:r===V.TABLE?function(e,t){e.openElements.hasInTableScope(V.TABLE)&&(e.openElements.popUntilTagNamePopped(V.TABLE),e._resetInsertionMode(),e._processToken(t))}(e,t):r===V.STYLE?We(e,t):r===V.TBODY||r===V.TFOOT||r===V.THEAD?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,G.HTML),e.insertionMode=ce}(e,t):r===V.INPUT?function(e,t){var r=j.getTokenAttr(t,B.TYPE);r&&r.toLowerCase()===L?e._appendElement(t,G.HTML):Ot(e,t),t.ackSelfClosing=!0}(e,t):Ot(e,t);break;case 6:r===V.SCRIPT?We(e,t):Ot(e,t);break;case 7:r===V.CAPTION?function(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,G.HTML),e.insertionMode=de}(e,t):Ot(e,t);break;case 8:r===V.COLGROUP?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,G.HTML),e.insertionMode=ue}(e,t):r===V.TEMPLATE?We(e,t):Ot(e,t);break;default:Ot(e,t)}}function pt(e,t){var r=t.tagName;r===V.TABLE?e.openElements.hasInTableScope(V.TABLE)&&(e.openElements.popUntilTagNamePopped(V.TABLE),e._resetInsertionMode()):r===V.TEMPLATE?Ne(e,t):r!==V.BODY&&r!==V.CAPTION&&r!==V.COL&&r!==V.COLGROUP&&r!==V.HTML&&r!==V.TBODY&&r!==V.TD&&r!==V.TFOOT&&r!==V.TH&&r!==V.THEAD&&r!==V.TR&&Ot(e,t)}function Ot(e,t){var r=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,e._processTokenInBodyMode(t),e.fosterParentingEnabled=r}function ft(e,t){var r=0;if(e.hasNonWhitespacePendingCharacterToken)for(;r0?(e.openElements.popUntilTagNamePopped(V.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode(),e._processToken(t)):e.stopped=!0}function vt(e,t){e.insertionMode=ae,e._processToken(t)}function bt(e,t){e.insertionMode=ae,e._processToken(t)}e.exports=Qe},6750:function(e,t,r){"use strict";var n=r(78983).default,a=r(42081).default,i=r(73352),s=i.TAG_NAMES,o=i.NAMESPACES;function d(e){switch(e.length){case 1:return e===s.P;case 2:return e===s.RB||e===s.RP||e===s.RT||e===s.DD||e===s.DT||e===s.LI;case 3:return e===s.RTC;case 6:return e===s.OPTION;case 8:return e===s.OPTGROUP}return!1}function u(e){switch(e.length){case 1:return e===s.P;case 2:return e===s.RB||e===s.RP||e===s.RT||e===s.DD||e===s.DT||e===s.LI||e===s.TD||e===s.TH||e===s.TR;case 3:return e===s.RTC;case 5:return e===s.TBODY||e===s.TFOOT||e===s.THEAD;case 6:return e===s.OPTION;case 7:return e===s.CAPTION;case 8:return e===s.OPTGROUP||e===s.COLGROUP}return!1}function c(e,t){switch(e.length){case 2:if(e===s.TD||e===s.TH)return t===o.HTML;if(e===s.MI||e===s.MO||e===s.MN||e===s.MS)return t===o.MATHML;break;case 4:if(e===s.HTML)return t===o.HTML;if(e===s.DESC)return t===o.SVG;break;case 5:if(e===s.TABLE)return t===o.HTML;if(e===s.MTEXT)return t===o.MATHML;if(e===s.TITLE)return t===o.SVG;break;case 6:return(e===s.APPLET||e===s.OBJECT)&&t===o.HTML;case 7:return(e===s.CAPTION||e===s.MARQUEE)&&t===o.HTML;case 8:return e===s.TEMPLATE&&t===o.HTML;case 13:return e===s.FOREIGN_OBJECT&&t===o.SVG;case 14:return e===s.ANNOTATION_XML&&t===o.MATHML}return!1}var l=function(){function e(t,r){n(this,e),this.stackTop=-1,this.items=[],this.current=t,this.currentTagName=null,this.currentTmplContent=null,this.tmplCount=0,this.treeAdapter=r}return a(e,[{key:"_indexOf",value:function(e){for(var t=-1,r=this.stackTop;r>=0;r--)if(this.items[r]===e){t=r;break}return t}},{key:"_isInTemplate",value:function(){return this.currentTagName===s.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===o.HTML}},{key:"_updateCurrentElement",value:function(){this.current=this.items[this.stackTop],this.currentTagName=this.current&&this.treeAdapter.getTagName(this.current),this.currentTmplContent=this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):null}},{key:"push",value:function(e){this.items[++this.stackTop]=e,this._updateCurrentElement(),this._isInTemplate()&&this.tmplCount++}},{key:"pop",value:function(){this.stackTop--,this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this._updateCurrentElement()}},{key:"replace",value:function(e,t){var r=this._indexOf(e);this.items[r]=t,r===this.stackTop&&this._updateCurrentElement()}},{key:"insertAfter",value:function(e,t){var r=this._indexOf(e)+1;this.items.splice(r,0,t),r===++this.stackTop&&this._updateCurrentElement()}},{key:"popUntilTagNamePopped",value:function(e){for(;this.stackTop>-1;){var t=this.currentTagName,r=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),t===e&&r===o.HTML)break}}},{key:"popUntilElementPopped",value:function(e){for(;this.stackTop>-1;){var t=this.current;if(this.pop(),t===e)break}}},{key:"popUntilNumberedHeaderPopped",value:function(){for(;this.stackTop>-1;){var e=this.currentTagName,t=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===s.H1||e===s.H2||e===s.H3||e===s.H4||e===s.H5||e===s.H6&&t===o.HTML)break}}},{key:"popUntilTableCellPopped",value:function(){for(;this.stackTop>-1;){var e=this.currentTagName,t=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===s.TD||e===s.TH&&t===o.HTML)break}}},{key:"popAllUpToHtmlElement",value:function(){this.stackTop=0,this._updateCurrentElement()}},{key:"clearBackToTableContext",value:function(){for(;this.currentTagName!==s.TABLE&&this.currentTagName!==s.TEMPLATE&&this.currentTagName!==s.HTML||this.treeAdapter.getNamespaceURI(this.current)!==o.HTML;)this.pop()}},{key:"clearBackToTableBodyContext",value:function(){for(;this.currentTagName!==s.TBODY&&this.currentTagName!==s.TFOOT&&this.currentTagName!==s.THEAD&&this.currentTagName!==s.TEMPLATE&&this.currentTagName!==s.HTML||this.treeAdapter.getNamespaceURI(this.current)!==o.HTML;)this.pop()}},{key:"clearBackToTableRowContext",value:function(){for(;this.currentTagName!==s.TR&&this.currentTagName!==s.TEMPLATE&&this.currentTagName!==s.HTML||this.treeAdapter.getNamespaceURI(this.current)!==o.HTML;)this.pop()}},{key:"remove",value:function(e){for(var t=this.stackTop;t>=0;t--)if(this.items[t]===e){this.items.splice(t,1),this.stackTop--,this._updateCurrentElement();break}}},{key:"tryPeekProperlyNestedBodyElement",value:function(){var e=this.items[1];return e&&this.treeAdapter.getTagName(e)===s.BODY?e:null}},{key:"contains",value:function(e){return this._indexOf(e)>-1}},{key:"getCommonAncestor",value:function(e){var t=this._indexOf(e);return--t>=0?this.items[t]:null}},{key:"isRootHtmlElementCurrent",value:function(){return 0===this.stackTop&&this.currentTagName===s.HTML}},{key:"hasInScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var r=this.treeAdapter.getTagName(this.items[t]),n=this.treeAdapter.getNamespaceURI(this.items[t]);if(r===e&&n===o.HTML)return!0;if(c(r,n))return!1}return!0}},{key:"hasNumberedHeaderInScope",value:function(){for(var e=this.stackTop;e>=0;e--){var t=this.treeAdapter.getTagName(this.items[e]),r=this.treeAdapter.getNamespaceURI(this.items[e]);if((t===s.H1||t===s.H2||t===s.H3||t===s.H4||t===s.H5||t===s.H6)&&r===o.HTML)return!0;if(c(t,r))return!1}return!0}},{key:"hasInListItemScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var r=this.treeAdapter.getTagName(this.items[t]),n=this.treeAdapter.getNamespaceURI(this.items[t]);if(r===e&&n===o.HTML)return!0;if((r===s.UL||r===s.OL)&&n===o.HTML||c(r,n))return!1}return!0}},{key:"hasInButtonScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var r=this.treeAdapter.getTagName(this.items[t]),n=this.treeAdapter.getNamespaceURI(this.items[t]);if(r===e&&n===o.HTML)return!0;if(r===s.BUTTON&&n===o.HTML||c(r,n))return!1}return!0}},{key:"hasInTableScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var r=this.treeAdapter.getTagName(this.items[t]);if(this.treeAdapter.getNamespaceURI(this.items[t])===o.HTML){if(r===e)return!0;if(r===s.TABLE||r===s.TEMPLATE||r===s.HTML)return!1}}return!0}},{key:"hasTableBodyContextInTableScope",value:function(){for(var e=this.stackTop;e>=0;e--){var t=this.treeAdapter.getTagName(this.items[e]);if(this.treeAdapter.getNamespaceURI(this.items[e])===o.HTML){if(t===s.TBODY||t===s.THEAD||t===s.TFOOT)return!0;if(t===s.TABLE||t===s.HTML)return!1}}return!0}},{key:"hasInSelectScope",value:function(e){for(var t=this.stackTop;t>=0;t--){var r=this.treeAdapter.getTagName(this.items[t]);if(this.treeAdapter.getNamespaceURI(this.items[t])===o.HTML){if(r===e)return!0;if(r!==s.OPTION&&r!==s.OPTGROUP)return!1}}return!0}},{key:"generateImpliedEndTags",value:function(){for(;d(this.currentTagName);)this.pop()}},{key:"generateImpliedEndTagsThoroughly",value:function(){for(;u(this.currentTagName);)this.pop()}},{key:"generateImpliedEndTagsWithExclusion",value:function(e){for(;d(this.currentTagName)&&this.currentTagName!==e;)this.pop()}}]),e}();e.exports=l},30951:function(e,t,r){"use strict";var n=r(78983).default,a=r(42081).default,i=r(26506),s=r(63535),o=r(48588),d=r(54074),u=s.CODE_POINTS,c=s.CODE_POINT_SEQUENCES,l={128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376},p="DATA_STATE",O="RCDATA_STATE",f="RAWTEXT_STATE",h="SCRIPT_DATA_STATE",g="PLAINTEXT_STATE",m="TAG_OPEN_STATE",y="END_TAG_OPEN_STATE",v="TAG_NAME_STATE",b="RCDATA_LESS_THAN_SIGN_STATE",x="RCDATA_END_TAG_OPEN_STATE",R="RCDATA_END_TAG_NAME_STATE",S="RAWTEXT_LESS_THAN_SIGN_STATE",Q="RAWTEXT_END_TAG_OPEN_STATE",$="RAWTEXT_END_TAG_NAME_STATE",w="SCRIPT_DATA_LESS_THAN_SIGN_STATE",P="SCRIPT_DATA_END_TAG_OPEN_STATE",T="SCRIPT_DATA_END_TAG_NAME_STATE",E="SCRIPT_DATA_ESCAPE_START_STATE",k="SCRIPT_DATA_ESCAPE_START_DASH_STATE",X="SCRIPT_DATA_ESCAPED_STATE",j="SCRIPT_DATA_ESCAPED_DASH_STATE",D="SCRIPT_DATA_ESCAPED_DASH_DASH_STATE",C="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE",A="SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE",_="SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE",F="SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE",q="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",I="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE",U="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE",W="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",N="SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE",Z="BEFORE_ATTRIBUTE_NAME_STATE",Y="ATTRIBUTE_NAME_STATE",V="AFTER_ATTRIBUTE_NAME_STATE",G="BEFORE_ATTRIBUTE_VALUE_STATE",B="ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE",z="ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE",L="ATTRIBUTE_VALUE_UNQUOTED_STATE",M="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE",J="SELF_CLOSING_START_TAG_STATE",H="BOGUS_COMMENT_STATE",K="MARKUP_DECLARATION_OPEN_STATE",ee="COMMENT_START_STATE",te="COMMENT_START_DASH_STATE",re="COMMENT_STATE",ne="COMMENT_LESS_THAN_SIGN_STATE",ae="COMMENT_LESS_THAN_SIGN_BANG_STATE",ie="COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE",se="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE",oe="COMMENT_END_DASH_STATE",de="COMMENT_END_STATE",ue="COMMENT_END_BANG_STATE",ce="DOCTYPE_STATE",le="BEFORE_DOCTYPE_NAME_STATE",pe="DOCTYPE_NAME_STATE",Oe="AFTER_DOCTYPE_NAME_STATE",fe="AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE",he="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE",ge="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE",me="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE",ye="AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE",ve="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE",be="AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE",xe="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE",Re="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE",Se="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE",Qe="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE",$e="BOGUS_DOCTYPE_STATE",we="CDATA_SECTION_STATE",Pe="CDATA_SECTION_BRACKET_STATE",Te="CDATA_SECTION_END_STATE",Ee="CHARACTER_REFERENCE_STATE",ke="NAMED_CHARACTER_REFERENCE_STATE",Xe="AMBIGUOS_AMPERSAND_STATE",je="NUMERIC_CHARACTER_REFERENCE_STATE",De="HEXADEMICAL_CHARACTER_REFERENCE_START_STATE",Ce="DECIMAL_CHARACTER_REFERENCE_START_STATE",Ae="HEXADEMICAL_CHARACTER_REFERENCE_STATE",_e="DECIMAL_CHARACTER_REFERENCE_STATE",Fe="NUMERIC_CHARACTER_REFERENCE_END_STATE";function qe(e){return e===u.SPACE||e===u.LINE_FEED||e===u.TABULATION||e===u.FORM_FEED}function Ie(e){return e>=u.DIGIT_0&&e<=u.DIGIT_9}function Ue(e){return e>=u.LATIN_CAPITAL_A&&e<=u.LATIN_CAPITAL_Z}function We(e){return e>=u.LATIN_SMALL_A&&e<=u.LATIN_SMALL_Z}function Ne(e){return We(e)||Ue(e)}function Ze(e){return Ne(e)||Ie(e)}function Ye(e){return e>=u.LATIN_CAPITAL_A&&e<=u.LATIN_CAPITAL_F}function Ve(e){return e>=u.LATIN_SMALL_A&&e<=u.LATIN_SMALL_F}function Ge(e){return e+32}function Be(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(e>>>10&1023|55296)+String.fromCharCode(56320|1023&e))}function ze(e){return String.fromCharCode(Ge(e))}function Le(e,t){for(var r=o[++e],n=++e,a=n+r-1;n<=a;){var i=n+a>>>1,s=o[i];if(st))return o[i+r];a=i-1}}return-1}var Me=function(){function e(){n(this,e),this.preprocessor=new i,this.tokenQueue=[],this.allowCDATA=!1,this.state=p,this.returnState="",this.charRefCode=-1,this.tempBuff=[],this.lastStartTagName="",this.consumedAfterSnapshot=-1,this.active=!1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr=null}return a(e,[{key:"_err",value:function(){}},{key:"_errOnNextCodePoint",value:function(e){this._consume(),this._err(e),this._unconsume()}},{key:"getNextToken",value:function(){for(;!this.tokenQueue.length&&this.active;){this.consumedAfterSnapshot=0;var e=this._consume();this._ensureHibernation()||this[this.state](e)}return this.tokenQueue.shift()}},{key:"write",value:function(e,t){this.active=!0,this.preprocessor.write(e,t)}},{key:"insertHtmlAtCurrentPos",value:function(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e)}},{key:"_ensureHibernation",value:function(){if(this.preprocessor.endOfChunkHit){for(;this.consumedAfterSnapshot>0;this.consumedAfterSnapshot--)this.preprocessor.retreat();return this.active=!1,this.tokenQueue.push({type:e.HIBERNATION_TOKEN}),!0}return!1}},{key:"_consume",value:function(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}},{key:"_unconsume",value:function(){this.consumedAfterSnapshot--,this.preprocessor.retreat()}},{key:"_reconsumeInState",value:function(e){this.state=e,this._unconsume()}},{key:"_consumeSequenceIfMatch",value:function(e,t,r){for(var n=0,a=!0,i=e.length,s=0,o=t,d=void 0;s0&&(o=this._consume(),n++),o===u.EOF){a=!1;break}if(o!==(d=e[s])&&(r||o!==Ge(d))){a=!1;break}}if(!a)for(;n--;)this._unconsume();return a}},{key:"_isTempBufferEqualToScriptString",value:function(){if(this.tempBuff.length!==c.SCRIPT_STRING.length)return!1;for(var e=0;e0&&this._err(d.endTagWithAttributes),t.selfClosing&&this._err(d.endTagWithTrailingSolidus)),this.tokenQueue.push(t)}},{key:"_emitCurrentCharacterToken",value:function(){this.currentCharacterToken&&(this.tokenQueue.push(this.currentCharacterToken),this.currentCharacterToken=null)}},{key:"_emitEOFToken",value:function(){this._createEOFToken(),this._emitCurrentToken()}},{key:"_appendCharToCurrentCharacterToken",value:function(e,t){this.currentCharacterToken&&this.currentCharacterToken.type!==e&&this._emitCurrentCharacterToken(),this.currentCharacterToken?this.currentCharacterToken.chars+=t:this._createCharacterToken(e,t)}},{key:"_emitCodePoint",value:function(t){var r=e.CHARACTER_TOKEN;qe(t)?r=e.WHITESPACE_CHARACTER_TOKEN:t===u.NULL&&(r=e.NULL_CHARACTER_TOKEN),this._appendCharToCurrentCharacterToken(r,Be(t))}},{key:"_emitSeveralCodePoints",value:function(e){for(var t=0;t-1;){var a=o[n],i=a<7;i&&1&a&&(t=2&a?[o[++n],o[++n]]:[o[++n]],r=0);var s=this._consume();if(this.tempBuff.push(s),r++,s===u.EOF)break;n=i?4&a?Le(n,s):-1:s===a?++n:-1}for(;r--;)this.tempBuff.pop(),this._unconsume();return t}},{key:"_isCharacterReferenceInAttribute",value:function(){return this.returnState===B||this.returnState===z||this.returnState===L}},{key:"_isCharacterReferenceAttributeQuirk",value:function(e){if(!e&&this._isCharacterReferenceInAttribute()){var t=this._consume();return this._unconsume(),t===u.EQUALS_SIGN||Ze(t)}return!1}},{key:"_flushCodePointsConsumedAsCharacterReference",value:function(){if(this._isCharacterReferenceInAttribute())for(var e=0;e")):e===u.NULL?(this._err(d.unexpectedNullCharacter),this.state=X,this._emitChars(s.REPLACEMENT_CHARACTER)):e===u.EOF?(this._err(d.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=X,this._emitCodePoint(e))}},{key:C,value:function(e){e===u.SOLIDUS?(this.tempBuff=[],this.state=A):Ne(e)?(this.tempBuff=[],this._emitChars("<"),this._reconsumeInState(F)):(this._emitChars("<"),this._reconsumeInState(X))}},{key:A,value:function(e){Ne(e)?(this._createEndTagToken(),this._reconsumeInState(_)):(this._emitChars("")):e===u.NULL?(this._err(d.unexpectedNullCharacter),this.state=q,this._emitChars(s.REPLACEMENT_CHARACTER)):e===u.EOF?(this._err(d.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=q,this._emitCodePoint(e))}},{key:W,value:function(e){e===u.SOLIDUS?(this.tempBuff=[],this.state=N,this._emitChars("/")):this._reconsumeInState(q)}},{key:N,value:function(e){qe(e)||e===u.SOLIDUS||e===u.GREATER_THAN_SIGN?(this.state=this._isTempBufferEqualToScriptString()?X:q,this._emitCodePoint(e)):Ue(e)?(this.tempBuff.push(Ge(e)),this._emitCodePoint(e)):We(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState(q)}},{key:Z,value:function(e){qe(e)||(e===u.SOLIDUS||e===u.GREATER_THAN_SIGN||e===u.EOF?this._reconsumeInState(V):e===u.EQUALS_SIGN?(this._err(d.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=Y):(this._createAttr(""),this._reconsumeInState(Y)))}},{key:Y,value:function(e){qe(e)||e===u.SOLIDUS||e===u.GREATER_THAN_SIGN||e===u.EOF?(this._leaveAttrName(V),this._unconsume()):e===u.EQUALS_SIGN?this._leaveAttrName(G):Ue(e)?this.currentAttr.name+=ze(e):e===u.QUOTATION_MARK||e===u.APOSTROPHE||e===u.LESS_THAN_SIGN?(this._err(d.unexpectedCharacterInAttributeName),this.currentAttr.name+=Be(e)):e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentAttr.name+=s.REPLACEMENT_CHARACTER):this.currentAttr.name+=Be(e)}},{key:V,value:function(e){qe(e)||(e===u.SOLIDUS?this.state=J:e===u.EQUALS_SIGN?this.state=G:e===u.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInTag),this._emitEOFToken()):(this._createAttr(""),this._reconsumeInState(Y)))}},{key:G,value:function(e){qe(e)||(e===u.QUOTATION_MARK?this.state=B:e===u.APOSTROPHE?this.state=z:e===u.GREATER_THAN_SIGN?(this._err(d.missingAttributeValue),this.state=p,this._emitCurrentToken()):this._reconsumeInState(L))}},{key:B,value:function(e){e===u.QUOTATION_MARK?this.state=M:e===u.AMPERSAND?(this.returnState=B,this.state=Ee):e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentAttr.value+=s.REPLACEMENT_CHARACTER):e===u.EOF?(this._err(d.eofInTag),this._emitEOFToken()):this.currentAttr.value+=Be(e)}},{key:z,value:function(e){e===u.APOSTROPHE?this.state=M:e===u.AMPERSAND?(this.returnState=z,this.state=Ee):e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentAttr.value+=s.REPLACEMENT_CHARACTER):e===u.EOF?(this._err(d.eofInTag),this._emitEOFToken()):this.currentAttr.value+=Be(e)}},{key:L,value:function(e){qe(e)?this._leaveAttrValue(Z):e===u.AMPERSAND?(this.returnState=L,this.state=Ee):e===u.GREATER_THAN_SIGN?(this._leaveAttrValue(p),this._emitCurrentToken()):e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentAttr.value+=s.REPLACEMENT_CHARACTER):e===u.QUOTATION_MARK||e===u.APOSTROPHE||e===u.LESS_THAN_SIGN||e===u.EQUALS_SIGN||e===u.GRAVE_ACCENT?(this._err(d.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=Be(e)):e===u.EOF?(this._err(d.eofInTag),this._emitEOFToken()):this.currentAttr.value+=Be(e)}},{key:M,value:function(e){qe(e)?this._leaveAttrValue(Z):e===u.SOLIDUS?this._leaveAttrValue(J):e===u.GREATER_THAN_SIGN?(this._leaveAttrValue(p),this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInTag),this._emitEOFToken()):(this._err(d.missingWhitespaceBetweenAttributes),this._reconsumeInState(Z))}},{key:J,value:function(e){e===u.GREATER_THAN_SIGN?(this.currentToken.selfClosing=!0,this.state=p,this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInTag),this._emitEOFToken()):(this._err(d.unexpectedSolidusInTag),this._reconsumeInState(Z))}},{key:H,value:function(e){e===u.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===u.EOF?(this._emitCurrentToken(),this._emitEOFToken()):e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentToken.data+=s.REPLACEMENT_CHARACTER):this.currentToken.data+=Be(e)}},{key:K,value:function(e){this._consumeSequenceIfMatch(c.DASH_DASH_STRING,e,!0)?(this._createCommentToken(),this.state=ee):this._consumeSequenceIfMatch(c.DOCTYPE_STRING,e,!1)?this.state=ce:this._consumeSequenceIfMatch(c.CDATA_START_STRING,e,!0)?this.allowCDATA?this.state=we:(this._err(d.cdataInHtmlContent),this._createCommentToken(),this.currentToken.data="[CDATA[",this.state=H):this._ensureHibernation()||(this._err(d.incorrectlyOpenedComment),this._createCommentToken(),this._reconsumeInState(H))}},{key:ee,value:function(e){e===u.HYPHEN_MINUS?this.state=te:e===u.GREATER_THAN_SIGN?(this._err(d.abruptClosingOfEmptyComment),this.state=p,this._emitCurrentToken()):this._reconsumeInState(re)}},{key:te,value:function(e){e===u.HYPHEN_MINUS?this.state=de:e===u.GREATER_THAN_SIGN?(this._err(d.abruptClosingOfEmptyComment),this.state=p,this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(re))}},{key:re,value:function(e){e===u.HYPHEN_MINUS?this.state=oe:e===u.LESS_THAN_SIGN?(this.currentToken.data+="<",this.state=ne):e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentToken.data+=s.REPLACEMENT_CHARACTER):e===u.EOF?(this._err(d.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.data+=Be(e)}},{key:ne,value:function(e){e===u.EXCLAMATION_MARK?(this.currentToken.data+="!",this.state=ae):e===u.LESS_THAN_SIGN?this.currentToken.data+="!":this._reconsumeInState(re)}},{key:ae,value:function(e){e===u.HYPHEN_MINUS?this.state=ie:this._reconsumeInState(re)}},{key:ie,value:function(e){e===u.HYPHEN_MINUS?this.state=se:this._reconsumeInState(oe)}},{key:se,value:function(e){e!==u.GREATER_THAN_SIGN&&e!==u.EOF&&this._err(d.nestedComment),this._reconsumeInState(de)}},{key:oe,value:function(e){e===u.HYPHEN_MINUS?this.state=de:e===u.EOF?(this._err(d.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(re))}},{key:de,value:function(e){e===u.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===u.EXCLAMATION_MARK?this.state=ue:e===u.HYPHEN_MINUS?this.currentToken.data+="-":e===u.EOF?(this._err(d.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--",this._reconsumeInState(re))}},{key:ue,value:function(e){e===u.HYPHEN_MINUS?(this.currentToken.data+="--!",this.state=oe):e===u.GREATER_THAN_SIGN?(this._err(d.incorrectlyClosedComment),this.state=p,this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--!",this._reconsumeInState(re))}},{key:ce,value:function(e){qe(e)?this.state=le:e===u.GREATER_THAN_SIGN?this._reconsumeInState(le):e===u.EOF?(this._err(d.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(d.missingWhitespaceBeforeDoctypeName),this._reconsumeInState(le))}},{key:le,value:function(e){qe(e)||(Ue(e)?(this._createDoctypeToken(ze(e)),this.state=pe):e===u.NULL?(this._err(d.unexpectedNullCharacter),this._createDoctypeToken(s.REPLACEMENT_CHARACTER),this.state=pe):e===u.GREATER_THAN_SIGN?(this._err(d.missingDoctypeName),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===u.EOF?(this._err(d.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._createDoctypeToken(Be(e)),this.state=pe))}},{key:pe,value:function(e){qe(e)?this.state=Oe:e===u.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):Ue(e)?this.currentToken.name+=ze(e):e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentToken.name+=s.REPLACEMENT_CHARACTER):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.name+=Be(e)}},{key:Oe,value:function(e){qe(e)||(e===u.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this._consumeSequenceIfMatch(c.PUBLIC_STRING,e,!1)?this.state=fe:this._consumeSequenceIfMatch(c.SYSTEM_STRING,e,!1)?this.state=be:this._ensureHibernation()||(this._err(d.invalidCharacterSequenceAfterDoctypeName),this.currentToken.forceQuirks=!0,this._reconsumeInState($e)))}},{key:fe,value:function(e){qe(e)?this.state=he:e===u.QUOTATION_MARK?(this._err(d.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=ge):e===u.APOSTROPHE?(this._err(d.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=me):e===u.GREATER_THAN_SIGN?(this._err(d.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(d.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState($e))}},{key:he,value:function(e){qe(e)||(e===u.QUOTATION_MARK?(this.currentToken.publicId="",this.state=ge):e===u.APOSTROPHE?(this.currentToken.publicId="",this.state=me):e===u.GREATER_THAN_SIGN?(this._err(d.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(d.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState($e)))}},{key:ge,value:function(e){e===u.QUOTATION_MARK?this.state=ye:e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentToken.publicId+=s.REPLACEMENT_CHARACTER):e===u.GREATER_THAN_SIGN?(this._err(d.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=Be(e)}},{key:me,value:function(e){e===u.APOSTROPHE?this.state=ye:e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentToken.publicId+=s.REPLACEMENT_CHARACTER):e===u.GREATER_THAN_SIGN?(this._err(d.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=Be(e)}},{key:ye,value:function(e){qe(e)?this.state=ve:e===u.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===u.QUOTATION_MARK?(this._err(d.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=Re):e===u.APOSTROPHE?(this._err(d.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=Se):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(d.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState($e))}},{key:ve,value:function(e){qe(e)||(e===u.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===u.QUOTATION_MARK?(this.currentToken.systemId="",this.state=Re):e===u.APOSTROPHE?(this.currentToken.systemId="",this.state=Se):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(d.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState($e)))}},{key:be,value:function(e){qe(e)?this.state=xe:e===u.QUOTATION_MARK?(this._err(d.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=Re):e===u.APOSTROPHE?(this._err(d.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=Se):e===u.GREATER_THAN_SIGN?(this._err(d.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(d.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState($e))}},{key:xe,value:function(e){qe(e)||(e===u.QUOTATION_MARK?(this.currentToken.systemId="",this.state=Re):e===u.APOSTROPHE?(this.currentToken.systemId="",this.state=Se):e===u.GREATER_THAN_SIGN?(this._err(d.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(d.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState($e)))}},{key:Re,value:function(e){e===u.QUOTATION_MARK?this.state=Qe:e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentToken.systemId+=s.REPLACEMENT_CHARACTER):e===u.GREATER_THAN_SIGN?(this._err(d.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=Be(e)}},{key:Se,value:function(e){e===u.APOSTROPHE?this.state=Qe:e===u.NULL?(this._err(d.unexpectedNullCharacter),this.currentToken.systemId+=s.REPLACEMENT_CHARACTER):e===u.GREATER_THAN_SIGN?(this._err(d.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=Be(e)}},{key:Qe,value:function(e){qe(e)||(e===u.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===u.EOF?(this._err(d.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(d.unexpectedCharacterAfterDoctypeSystemIdentifier),this._reconsumeInState($e)))}},{key:$e,value:function(e){e===u.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===u.NULL?this._err(d.unexpectedNullCharacter):e===u.EOF&&(this._emitCurrentToken(),this._emitEOFToken())}},{key:we,value:function(e){e===u.RIGHT_SQUARE_BRACKET?this.state=Pe:e===u.EOF?(this._err(d.eofInCdata),this._emitEOFToken()):this._emitCodePoint(e)}},{key:Pe,value:function(e){e===u.RIGHT_SQUARE_BRACKET?this.state=Te:(this._emitChars("]"),this._reconsumeInState(we))}},{key:Te,value:function(e){e===u.GREATER_THAN_SIGN?this.state=p:e===u.RIGHT_SQUARE_BRACKET?this._emitChars("]"):(this._emitChars("]]"),this._reconsumeInState(we))}},{key:Ee,value:function(e){this.tempBuff=[u.AMPERSAND],e===u.NUMBER_SIGN?(this.tempBuff.push(e),this.state=je):Ze(e)?this._reconsumeInState(ke):(this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}},{key:ke,value:function(e){var t=this._matchNamedCharacterReference(e);if(this._ensureHibernation())this.tempBuff=[u.AMPERSAND];else if(t){var r=this.tempBuff[this.tempBuff.length-1]===u.SEMICOLON;this._isCharacterReferenceAttributeQuirk(r)||(r||this._errOnNextCodePoint(d.missingSemicolonAfterCharacterReference),this.tempBuff=t),this._flushCodePointsConsumedAsCharacterReference(),this.state=this.returnState}else this._flushCodePointsConsumedAsCharacterReference(),this.state=Xe}},{key:Xe,value:function(e){Ze(e)?this._isCharacterReferenceInAttribute()?this.currentAttr.value+=Be(e):this._emitCodePoint(e):(e===u.SEMICOLON&&this._err(d.unknownNamedCharacterReference),this._reconsumeInState(this.returnState))}},{key:je,value:function(e){this.charRefCode=0,e===u.LATIN_SMALL_X||e===u.LATIN_CAPITAL_X?(this.tempBuff.push(e),this.state=De):this._reconsumeInState(Ce)}},{key:De,value:function(e){!function(e){return Ie(e)||Ye(e)||Ve(e)}(e)?(this._err(d.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)):this._reconsumeInState(Ae)}},{key:Ce,value:function(e){Ie(e)?this._reconsumeInState(_e):(this._err(d.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}},{key:Ae,value:function(e){Ye(e)?this.charRefCode=16*this.charRefCode+e-55:Ve(e)?this.charRefCode=16*this.charRefCode+e-87:Ie(e)?this.charRefCode=16*this.charRefCode+e-48:e===u.SEMICOLON?this.state=Fe:(this._err(d.missingSemicolonAfterCharacterReference),this._reconsumeInState(Fe))}},{key:_e,value:function(e){Ie(e)?this.charRefCode=10*this.charRefCode+e-48:e===u.SEMICOLON?this.state=Fe:(this._err(d.missingSemicolonAfterCharacterReference),this._reconsumeInState(Fe))}},{key:Fe,value:function(){if(this.charRefCode===u.NULL)this._err(d.nullCharacterReference),this.charRefCode=u.REPLACEMENT_CHARACTER;else if(this.charRefCode>1114111)this._err(d.characterReferenceOutsideUnicodeRange),this.charRefCode=u.REPLACEMENT_CHARACTER;else if(s.isSurrogate(this.charRefCode))this._err(d.surrogateCharacterReference),this.charRefCode=u.REPLACEMENT_CHARACTER;else if(s.isUndefinedCodePoint(this.charRefCode))this._err(d.noncharacterCharacterReference);else if(s.isControlCodePoint(this.charRefCode)||this.charRefCode===u.CARRIAGE_RETURN){this._err(d.controlCharacterReference);var e=l[this.charRefCode];e&&(this.charRefCode=e)}this.tempBuff=[this.charRefCode],this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)}}]),e}();Me.CHARACTER_TOKEN="CHARACTER_TOKEN",Me.NULL_CHARACTER_TOKEN="NULL_CHARACTER_TOKEN",Me.WHITESPACE_CHARACTER_TOKEN="WHITESPACE_CHARACTER_TOKEN",Me.START_TAG_TOKEN="START_TAG_TOKEN",Me.END_TAG_TOKEN="END_TAG_TOKEN",Me.COMMENT_TOKEN="COMMENT_TOKEN",Me.DOCTYPE_TOKEN="DOCTYPE_TOKEN",Me.EOF_TOKEN="EOF_TOKEN",Me.HIBERNATION_TOKEN="HIBERNATION_TOKEN",Me.MODE={DATA:p,RCDATA:O,RAWTEXT:f,SCRIPT_DATA:h,PLAINTEXT:g},Me.getTokenAttr=function(e,t){for(var r=e.attrs.length-1;r>=0;r--)if(e.attrs[r].name===t)return e.attrs[r].value;return null},e.exports=Me},48588:function(e){"use strict";e.exports=new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4e3,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,1e4,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13e3,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204])},26506:function(e,t,r){"use strict";var n=r(78983).default,a=r(42081).default,i=r(63535),s=r(54074),o=i.CODE_POINTS,d=function(){function e(){n(this,e),this.html=null,this.pos=-1,this.lastGapPos=-1,this.lastCharPos=-1,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536}return a(e,[{key:"_err",value:function(){}},{key:"_addGap",value:function(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}},{key:"_processSurrogate",value:function(e){if(this.pos!==this.lastCharPos){var t=this.html.charCodeAt(this.pos+1);if(i.isSurrogatePair(t))return this.pos++,this._addGap(),i.getSurrogatePairCodePoint(e,t)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,o.EOF;return this._err(s.surrogateInInputStream),e}},{key:"dropParsedChunk",value:function(){this.pos>this.bufferWaterline&&(this.lastCharPos-=this.pos,this.html=this.html.substring(this.pos),this.pos=0,this.lastGapPos=-1,this.gapStack=[])}},{key:"write",value:function(e,t){this.html?this.html+=e:this.html=e,this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1,this.lastChunkWritten=t}},{key:"insertHtmlAtCurrentPos",value:function(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1,this.html.length),this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1}},{key:"advance",value:function(){if(this.pos++,this.pos>this.lastCharPos)return this.endOfChunkHit=!this.lastChunkWritten,o.EOF;var e=this.html.charCodeAt(this.pos);return this.skipNextNewLine&&e===o.LINE_FEED?(this.skipNextNewLine=!1,this._addGap(),this.advance()):e===o.CARRIAGE_RETURN?(this.skipNextNewLine=!0,o.LINE_FEED):(this.skipNextNewLine=!1,i.isSurrogate(e)&&(e=this._processSurrogate(e)),e>31&&e<127||e===o.LINE_FEED||e===o.CARRIAGE_RETURN||e>159&&e<64976||this._checkForProblematicCharacters(e),e)}},{key:"_checkForProblematicCharacters",value:function(e){i.isControlCodePoint(e)?this._err(s.controlCharacterInInputStream):i.isUndefinedCodePoint(e)&&this._err(s.noncharacterInInputStream)}},{key:"retreat",value:function(){this.pos===this.lastGapPos&&(this.lastGapPos=this.gapStack.pop(),this.pos--),this.pos--}}]),e}();e.exports=d},80055:function(e,t,r){"use strict";var n=r(73352).DOCUMENT_MODE;t.createDocument=function(){return{nodeName:"#document",mode:n.NO_QUIRKS,childNodes:[]}},t.createDocumentFragment=function(){return{nodeName:"#document-fragment",childNodes:[]}},t.createElement=function(e,t,r){return{nodeName:e,tagName:e,attrs:r,namespaceURI:t,childNodes:[],parentNode:null}},t.createCommentNode=function(e){return{nodeName:"#comment",data:e,parentNode:null}};var a=function(e){return{nodeName:"#text",value:e,parentNode:null}},i=t.appendChild=function(e,t){e.childNodes.push(t),t.parentNode=e},s=t.insertBefore=function(e,t,r){var n=e.childNodes.indexOf(r);e.childNodes.splice(n,0,t),t.parentNode=e};t.setTemplateContent=function(e,t){e.content=t},t.getTemplateContent=function(e){return e.content},t.setDocumentType=function(e,t,r,n){for(var a=null,s=0;s1)for(var r=1;ri&&(i=a):a=1,r=n+1,n=e.indexOf(t,r);return i}},42422:function(e,t,r){e.exports=r(53482)},65403:function(e){e.exports=function e(t,r){var n,a=-1;if(r.extensions)for(;++a"+(r?"":" ")+e}},23016:function(e,t,r){e.exports=function(e,t,r,a){var i=-1;for(;++i"})+">"):(u=r.enter("destinationRaw"),c+=i(r,e.url,{before:" ",after:" "}));u(),e.title&&(u=r.enter("title"+o),c+=" "+s+i(r,e.title,{before:s,after:s})+s,u());return d(),c};var n=r(20138),a=r(11056),i=r(81933)},6504:function(e,t,r){e.exports=i,i.peek=function(e,t,r){return r.options.emphasis||"*"};var n=r(43601),a=r(72393);function i(e,t,r){var i=n(r),s=r.enter("emphasis"),o=a(e,r,{before:i,after:i});return s(),i+o+i}},17818:function(e,t,r){e.exports=function(e,t,r){var s,o,d,u,c=Math.max(Math.min(6,e.depth||1),1);if(a(e,r))return s=r.enter("headingSetext"),o=r.enter("phrasing"),d=i(e,r,{before:"\n",after:"\n"}),o(),s(),d+"\n"+n(1===c?"=":"-",d.length-(Math.max(d.lastIndexOf("\r"),d.lastIndexOf("\n"))+1));u=n("#",c),s=r.enter("headingAtx"),o=r.enter("phrasing"),d=(d=i(e,r,{before:"# ",after:"\n"}))?u+" "+d:u,r.options.closeAtx&&(d+=" "+u);return o(),s(),d};var n=r(87807),a=r(96576),i=r(72393)},38370:function(e){function t(e){return e.value||""}e.exports=t,t.peek=function(){return"<"}},22719:function(e,t,r){e.exports=i,i.peek=function(){return"!"};var n=r(20138),a=r(81933);function i(e,t,r){var i,s,o=e.referenceType,d=r.enter("imageReference"),u=r.enter("label"),c=a(r,e.alt,{before:"[",after:"]"}),l="!["+c+"]";return u(),s=r.stack,r.stack=[],u=r.enter("reference"),i=a(r,n(e),{before:"[",after:"]"}),u(),r.stack=s,d(),"full"!==o&&c&&c===i?"shortcut"!==o&&(l+="[]"):l+="["+i+"]",l}},89130:function(e,t,r){e.exports=i,i.peek=function(){return"!"};var n=r(11056),a=r(81933);function i(e,t,r){var i=n(r),s='"'===i?"Quote":"Apostrophe",o=r.enter("image"),d=r.enter("label"),u="!["+a(r,e.alt,{before:"[",after:"]"})+"](";return d(),!e.url&&e.title||/[ \t\r\n]/.test(e.url)?(d=r.enter("destinationLiteral"),u+="<"+a(r,e.url,{before:"<",after:">"})+">"):(d=r.enter("destinationRaw"),u+=a(r,e.url,{before:"(",after:e.title?" ":")"})),d(),e.title&&(d=r.enter("title"+s),u+=" "+i+a(r,e.title,{before:i,after:i})+i,d()),u+=")",o(),u}},69223:function(e,t,r){t.blockquote=r(828),t.break=r(23016),t.code=r(71990),t.definition=r(87722),t.emphasis=r(6504),t.hardBreak=r(23016),t.heading=r(17818),t.html=r(38370),t.image=r(89130),t.imageReference=r(22719),t.inlineCode=r(53248),t.link=r(8468),t.linkReference=r(85794),t.list=r(64694),t.listItem=r(42574),t.paragraph=r(16869),t.root=r(21495),t.strong=r(33152),t.text=r(90857),t.thematicBreak=r(60890)},53248:function(e,t,r){e.exports=a,a.peek=function(){return"`"};var n=r(96758);function a(e,t,r){for(var a,i,s,o,d=e.value||"",u="`",c=-1;new RegExp("(^|[^`])"+u+"([^`]|$)").test(d);)u+="`";for(/[^ \r\n]/.test(d)&&(/[ \r\n`]/.test(d.charAt(0))||/[ \r\n`]/.test(d.charAt(d.length-1)))&&(d=" "+d+" ");++c"})+">",o(),r.stack=c,u):(o=r.enter("link"),d=r.enter("label"),u="["+i(e,r,{before:"[",after:"]"})+"](",d(),!e.url&&e.title||/[ \t\r\n]/.test(e.url)?(d=r.enter("destinationLiteral"),u+="<"+s(r,e.url,{before:"<",after:">"})+">"):(d=r.enter("destinationRaw"),u+=s(r,e.url,{before:"(",after:e.title?" ":")"})),d(),e.title&&(d=r.enter("title"+p),u+=" "+l+s(r,e.title,{before:l,after:l})+l,d()),u+=")",o(),u)}},42574:function(e,t,r){e.exports=function(e,t,r){var d,u,c,l=a(r),p=i(r);t&&t.ordered&&(l=(t.start>-1?t.start:1)+(!1===r.options.incrementListMarker?0:t.children.indexOf(e))+".");d=l.length+1,("tab"===p||"mixed"===p&&(t&&t.spread||e.spread))&&(d=4*Math.ceil(d/4));return c=r.enter("listItem"),u=o(s(e,r),(function(e,t,r){if(t)return(r?"":n(" ",d))+e;return(r?l:l+n(" ",d-l.length))+e})),c(),u};var n=r(87807),a=r(51596),i=r(86753),s=r(11177),o=r(5453)},64694:function(e,t,r){e.exports=function(e,t,r){var a=r.enter("list"),i=n(e,r);return a(),i};var n=r(11177)},16869:function(e,t,r){e.exports=function(e,t,r){var a=r.enter("paragraph"),i=r.enter("phrasing"),s=n(e,r,{before:"\n",after:"\n"});return i(),a(),s};var n=r(72393)},21495:function(e,t,r){e.exports=function(e,t,r){return n(e,r)};var n=r(11177)},33152:function(e,t,r){e.exports=i,i.peek=function(e,t,r){return r.options.strong||"*"};var n=r(52286),a=r(72393);function i(e,t,r){var i=n(r),s=r.enter("strong"),o=a(e,r,{before:i,after:i});return s(),i+i+o+i+i}},90857:function(e,t,r){e.exports=function(e,t,r,a){return n(r,e.value,a)};var n=r(81933)},60890:function(e,t,r){e.exports=function(e,t,r){var s=n(i(r)+(r.options.ruleSpaces?" ":""),a(r));return r.options.ruleSpaces?s.slice(0,-1):s};var n=r(87807),a=r(41787),i=r(78237)},53482:function(e,t,r){e.exports=function(e,t){var r,l=t||{},p={enter:function(e){return p.stack.push(e),t;function t(){p.stack.pop()}},stack:[],unsafe:[],join:[],handlers:{},options:{}};a(p,{unsafe:o,join:s,handlers:i}),a(p,l),p.options.tightDefinitions&&(p.join=[c].concat(p.join));p.handle=n("type",{invalid:d,unknown:u,handlers:p.handlers}),(r=p.handle(e,null,p,{before:"\n",after:"\n"}))&&10!==r.charCodeAt(r.length-1)&&13!==r.charCodeAt(r.length-1)&&(r+="\n");return r};var n=r(48622),a=r(65403),i=r(69223),s=r(73724),o=r(32738);function d(e){throw new Error("Cannot handle value `"+e+"`, expected node")}function u(e){throw new Error("Cannot handle unknown node `"+e.type+"`")}function c(e,t){if("definition"===e.type&&e.type===t.type)return 0}},73724:function(e,t,r){e.exports=[function(e,t,r,i){if("list"===t.type&&t.type===e.type&&Boolean(e.ordered)===Boolean(t.ordered)||"code"===t.type&&n(t,i)&&("list"===e.type||e.type===t.type&&n(e,i)))return!1;if("boolean"===typeof r.spread){if("paragraph"===e.type&&(e.type===t.type||"definition"===t.type||"heading"===t.type&&a(t,i)))return;return r.spread?1:0}}];var n=r(60368),a=r(96576)},32738:function(e){e.exports=[{character:"\t",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"\r",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:"\n",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:" ",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"!",after:"\\[",inConstruct:"phrasing"},{character:'"',inConstruct:"titleQuote"},{atBreak:!0,character:"#"},{character:"#",inConstruct:"headingAtx",after:"(?:[\r\n]|$)"},{character:"&",after:"[#A-Za-z]",inConstruct:"phrasing"},{character:"'",inConstruct:"titleApostrophe"},{character:"(",inConstruct:"destinationRaw"},{before:"\\]",character:"(",inConstruct:"phrasing"},{atBreak:!0,before:"\\d+",character:")"},{character:")",inConstruct:"destinationRaw"},{atBreak:!0,character:"*"},{character:"*",inConstruct:"phrasing"},{atBreak:!0,character:"+"},{atBreak:!0,character:"-"},{atBreak:!0,before:"\\d+",character:".",after:"(?:[ \t\r\n]|$)"},{atBreak:!0,character:"<",after:"[!/?A-Za-z]"},{character:"<",after:"[!/?A-Za-z]",inConstruct:"phrasing"},{character:"<",inConstruct:"destinationLiteral"},{atBreak:!0,character:"="},{atBreak:!0,character:">"},{character:">",inConstruct:"destinationLiteral"},{atBreak:!0,character:"["},{character:"[",inConstruct:["phrasing","label","reference"]},{character:"\\",after:"[\\r\\n]",inConstruct:"phrasing"},{character:"]",inConstruct:["label","reference"]},{atBreak:!0,character:"_"},{before:"[^A-Za-z]",character:"_",inConstruct:"phrasing"},{character:"_",after:"[^A-Za-z]",inConstruct:"phrasing"},{atBreak:!0,character:"`"},{character:"`",inConstruct:["codeFencedLangGraveAccent","codeFencedMetaGraveAccent","phrasing"]},{atBreak:!0,character:"~"}]},20138:function(e,t,r){e.exports=function(e){if(e.label||!e.identifier)return e.label||"";return e.identifier.replace(a,"$1").replace(i,s)};var n=r(34755),a=/\\([!-/:-@[-`{-~])/g,i=/&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function s(e,t){return n(t)||e}},51596:function(e){e.exports=function(e){var t=e.options.bullet||"*";if("*"!==t&&"+"!==t&&"-"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}},43601:function(e){e.exports=function(e){var t=e.options.emphasis||"*";if("*"!==t&&"_"!==t)throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}},56553:function(e){e.exports=function(e){var t=e.options.fence||"`";if("`"!==t&&"~"!==t)throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}},86753:function(e){e.exports=function(e){var t=e.options.listItemIndent||"tab";if(1===t||"1"===t)return"one";if("tab"!==t&&"one"!==t&&"mixed"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}},11056:function(e){e.exports=function(e){var t=e.options.quote||'"';if('"'!==t&&"'"!==t)throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}},41787:function(e){e.exports=function(e){var t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}},78237:function(e){e.exports=function(e){var t=e.options.rule||"*";if("*"!==t&&"-"!==t&&"_"!==t)throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}},52286:function(e){e.exports=function(e){var t=e.options.strong||"*";if("*"!==t&&"_"!==t)throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}},11177:function(e,t,r){e.exports=function(e,t){var r,a=e.children||[],i=[],s=-1;for(;++s0&&("\r"===u||"\n"===u)&&"html"===i.type&&(o[o.length-1]=o[o.length-1].replace(/(\r?\n|\r)$/," "),u=" "),o.push(t.handle(i,e,t,{before:u,after:n})),u=o[o.length-1].slice(-1);return o.join("")}},60368:function(e){e.exports=function(e,t){return!t.options.fences&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value)}},96576:function(e,t,r){e.exports=function(e,t){return t.options.setext&&(!e.depth||e.depth<3)&&n(e)};var n=r(27554)},46943:function(e,t,r){e.exports=function(e,t){var r=n(e);return!t.options.resourceLink&&e.url&&!e.title&&e.children&&1===e.children.length&&"text"===e.children[0].type&&(r===e.url||"mailto:"+r===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url)};var n=r(27554)},5453:function(e){e.exports=function(e,r){var n,a=[],i=0,s=0;for(;n=t.exec(e);)o(e.slice(i,n.index)),a.push(n[0]),i=n.index+n[0].length,s++;return o(e.slice(i)),a.join("");function o(e){a.push(r(e,s,!e))}};var t=/\r?\n|\r/g},96758:function(e){e.exports=function(e){var t,r;e._compiled||(t=e.before?"(?:"+e.before+")":"",r=e.after?"(?:"+e.after+")":"",e.atBreak&&(t="[\\r\\n][\\t ]*"+t),e._compiled=new RegExp((t?"("+t+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(e.character)?"\\":"")+e.character+(r||""),"g"));return e._compiled}},60397:function(e){function t(e,t,r){var n;if(!t)return r;for("string"===typeof t&&(t=[t]),n=-1;++n=f||u+1-1&&(F.call(this,e),q.call(this,e))}function U(){f("atHardBreak",!0)}function W(){var e=this.resume();this.stack[this.stack.length-1].value=e}function N(){var e=this.resume();this.stack[this.stack.length-1].value=e}function Z(){var e=this.resume();this.stack[this.stack.length-1].value=e}function Y(){var e=this.stack[this.stack.length-1];h("inReference")?(e.type+="Reference",e.referenceType=h("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),f("referenceType")}function V(){var e=this.stack[this.stack.length-1];h("inReference")?(e.type+="Reference",e.referenceType=h("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),f("referenceType")}function G(e){this.stack[this.stack.length-2].identifier=s(this.sliceSerialize(e)).toLowerCase()}function B(){var e=this.stack[this.stack.length-1],t=this.resume();this.stack[this.stack.length-1].label=t,f("inReference",!0),"link"===this.stack[this.stack.length-1].type?this.stack[this.stack.length-1].children=e.children:this.stack[this.stack.length-1].alt=t}function z(){var e=this.resume();this.stack[this.stack.length-1].url=e}function L(){var e=this.resume();this.stack[this.stack.length-1].title=e}function M(){f("inReference")}function J(){f("referenceType","collapsed")}function H(e){var t=this.resume();this.stack[this.stack.length-1].label=t,this.stack[this.stack.length-1].identifier=s(this.sliceSerialize(e)).toLowerCase(),f("referenceType","full")}function K(e){f("characterReferenceType",e.type)}function ee(e){var t,r,n=this.sliceSerialize(e),a=h("characterReferenceType");a?(t=o(n,"characterReferenceMarkerNumeric"===a?10:16),f("characterReferenceType")):t=l(n),(r=this.stack.pop()).value+=t,r.position.end=g(e.end)}function te(e){q.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)}function re(e){q.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)}function ne(){return{type:"blockquote",children:[]}}function ae(){return{type:"code",lang:null,meta:null,value:""}}function ie(){return{type:"inlineCode",value:""}}function se(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function oe(){return{type:"emphasis",children:[]}}function de(){return{type:"heading",depth:void 0,children:[]}}function ue(){return{type:"break"}}function ce(){return{type:"html",value:""}}function le(){return{type:"image",title:null,url:"",alt:null}}function pe(){return{type:"link",title:null,url:"",children:[]}}function Oe(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}function fe(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}function he(){return{type:"paragraph",children:[]}}function ge(){return{type:"strong",children:[]}}function me(){return{type:"text",value:""}}function ye(){return{type:"thematicBreak"}}}(r)(c(d(r).document().write(u()(e,t,!0))))};var n=r(93728),a=r(8548),i=r(60138),s=r(37166),o=r(47090),d=r(3245),u=r(35094),c=r(25965),l=r(63003),p=r(22631);function O(e,t){var r,n;for(r in t)n=i.call(e,r)?e[r]:e[r]={},"canContainEols"===r||"transforms"===r?e[r]=[].concat(n,t[r]):Object.assign(n,t[r])}},5415:function(e,t,r){"use strict";e.exports=r(54374)},93728:function(e){"use strict";function t(e){return e&&(e.value||e.alt||e.title||"children"in e&&r(e.children)||"length"in e&&r(e))||""}function r(e){for(var r=[],n=-1;++nt;)s.containerState=u[i][1],u[i][0].exit.call(s,e);u.length=t}},o={tokenize:function(e,t,r){return a(e,e.attempt(this.parser.constructs.document,t,r),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},d={tokenize:function(e,t,r){return a(e,e.lazy(this.parser.constructs.flow,t,r),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}};t.tokenize=s},35785:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(31499),a=r(10915),i=r(62853),s=function(e){var t=this,r=e.attempt(i,(function(n){if(null===n)return void e.consume(n);return e.enter("lineEndingBlank"),e.consume(n),e.exit("lineEndingBlank"),t.currentConstruct=void 0,r}),e.attempt(this.parser.constructs.flowInitial,s,a(e,e.attempt(this.parser.constructs.flow,s,e.attempt(n,s)),"linePrefix")));return r;function s(n){if(null!==n)return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),t.currentConstruct=void 0,r;e.consume(n)}};t.tokenize=s},10074:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(8548),a=r(64436),i=d("text"),s=d("string"),o={resolveAll:u()};function d(e){return{tokenize:function(t){var r=this,n=this.parser.constructs[e],a=t.attempt(n,i,s);return i;function i(e){return d(e)?a(e):s(e)}function s(e){if(null!==e)return t.enter("data"),t.consume(e),o;t.consume(e)}function o(e){return d(e)?(t.exit("data"),a(e)):(t.consume(e),o)}function d(e){var t=n[e],a=-1;if(null===e)return!0;if(t)for(;++a1&&e[h][1].end.offset-e[h][1].start.offset>1?2:1)>1?"strongSequence":"emphasisSequence",start:s(d(e[r][1].end),-p),end:d(e[r][1].end)},l={type:p>1?"strongSequence":"emphasisSequence",start:d(e[h][1].start),end:s(d(e[h][1].start),p)},u={type:p>1?"strongText":"emphasisText",start:d(e[r][1].end),end:d(e[h][1].start)},i={type:p>1?"strong":"emphasis",start:d(c.start),end:d(l.end)},e[r][1].end=d(c.start),e[h][1].start=d(l.end),O=[],e[r][1].end.offset-e[r][1].start.offset&&(O=n(O,[["enter",e[r][1],t],["exit",e[r][1],t]])),O=n(O,[["enter",i,t],["enter",c,t],["exit",c,t],["enter",u,t]]),O=n(O,o(t.parser.constructs.insideSpan.null,e.slice(r+1,h),t)),O=n(O,[["exit",u,t],["enter",l,t],["exit",l,t],["exit",i,t]]),e[h][1].end.offset-e[h][1].start.offset?(f=2,O=n(O,[["enter",e[h][1],t],["exit",e[h][1],t]])):f=0,a(e,r-1,h-r+3,O),h=r+O.length-f-2;break}h=-1;for(;++h-1?void 0:4)}},exit:function(e){e.exit("blockQuote")}};e.exports=i},74867:function(e,t,r){"use strict";var n=r(98312),a={name:"characterEscape",tokenize:function(e,t,r){return function(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),a};function a(a){return n(a)?(e.enter("characterEscapeValue"),e.consume(a),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):r(a)}}};e.exports=a},53322:function(e,t,r){"use strict";var n=r(63003),a=r(15506),i=r(56611),s=r(14162);function o(e){return e&&"object"===typeof e&&"default"in e?e:{default:e}}var d=o(n),u={name:"characterReference",tokenize:function(e,t,r){var n,o,u=this,c=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),l};function l(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),p):(e.enter("characterReferenceValue"),n=31,o=a,O(t))}function p(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),n=6,o=s,O):(e.enter("characterReferenceValue"),n=7,o=i,O(t))}function O(i){var s;return 59===i&&c?(s=e.exit("characterReferenceValue"),o!==a||d.default(u.sliceSerialize(s))?(e.enter("characterReferenceMarker"),e.consume(i),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):r(i)):o(i)&&c++-1?void 0:4);function i(t){return e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),d(t)}function d(t){return t===o?(e.consume(t),a++,d):a-1||a(i.events,"linePrefix")<4?e.interrupt(i.parser.constructs.flow,r,t)(s):t(s)}},partial:!0};e.exports=o},9e3:function(e,t,r){"use strict";var n=r(79942),a=r(25436),i=r(37166),s=r(46064),o=r(97979),d=r(10915),u=r(93396),c=r(61174),l={name:"definition",tokenize:function(e,t,r){var a,c=this;return function(t){return e.enter("definition"),o.call(c,e,l,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function l(t){return a=i(c.sliceSerialize(c.events[c.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),u(e,s(e,e.attempt(p,d(e,O,"whitespace"),d(e,O,"whitespace")),r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):r(t)}function O(i){return null===i||n(i)?(e.exit("definition"),c.parser.defined.indexOf(a)<0&&c.parser.defined.push(a),t(i)):r(i)}}},p={tokenize:function(e,t,r){return function(t){return a(t)?u(e,i)(t):r(t)};function i(t){return 34===t||39===t||40===t?c(e,d(e,s,"whitespace"),r,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):r(t)}function s(e){return null===e||n(e)?t(e):r(e)}},partial:!0};e.exports=l},46064:function(e,t,r){"use strict";var n=r(21764),a=r(25436),i=r(79942);e.exports=function(e,t,r,s,o,d,u,c,l){var p=l||1/0,O=0;return function(t){if(60===t)return e.enter(s),e.enter(o),e.enter(d),e.consume(t),e.exit(d),f;if(n(t)||41===t)return r(t);return e.enter(s),e.enter(u),e.enter(c),e.enter("chunkString",{contentType:"string"}),m(t)};function f(r){return 62===r?(e.enter(d),e.consume(r),e.exit(d),e.exit(o),e.exit(s),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),h(r))}function h(t){return 62===t?(e.exit("chunkString"),e.exit(c),f(t)):null===t||60===t||i(t)?r(t):(e.consume(t),92===t?g:h)}function g(t){return 60===t||62===t||92===t?(e.consume(t),h):h(t)}function m(i){return 40===i?++O>p?r(i):(e.consume(i),m):41===i?O--?(e.consume(i),m):(e.exit("chunkString"),e.exit(c),e.exit(u),e.exit(s),t(i)):null===i||a(i)?O?r(i):(e.exit("chunkString"),e.exit(c),e.exit(u),e.exit(s),t(i)):n(i)?r(i):(e.consume(i),92===i?y:m)}function y(t){return 40===t||41===t||92===t?(e.consume(t),m):m(t)}}},97979:function(e,t,r){"use strict";var n=r(79942),a=r(54396);e.exports=function(e,t,r,i,s,o){var d,u=this,c=0;return function(t){return e.enter(i),e.enter(s),e.consume(t),e.exit(s),e.enter(o),l};function l(a){return null===a||91===a||93===a&&!d||94===a&&!c&&"_hiddenFootnoteSupport"in u.parser.constructs||c>999?r(a):93===a?(e.exit(o),e.enter(s),e.consume(a),e.exit(s),e.exit(i),t):n(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),p(a))}function p(t){return null===t||91===t||93===t||n(t)||c++>999?(e.exit("chunkString"),l(t)):(e.consume(t),d=d||!a(t),92===t?O:p)}function O(t){return 91===t||92===t||93===t?(e.consume(t),c++,p):p(t)}}},10915:function(e,t,r){"use strict";var n=r(54396);e.exports=function(e,t,r,a){var i=a?a-1:1/0,s=0;return function(a){if(n(a))return e.enter(r),o(a);return t(a)};function o(a){return n(a)&&s++i&&"whitespace"===e[a][1].type&&(a-=2);"atxHeadingSequence"===e[a][1].type&&(i===a-1||a-4>i&&"whitespace"===e[a-2][1].type)&&(a-=i+1===a?2:4);a>i&&(r={type:"atxHeadingText",start:e[i][1].start,end:e[a][1].end},n={type:"chunkText",start:e[i][1].start,end:e[a][1].end,contentType:"text"},s(e,i,a-i+1,[["enter",r,t],["enter",n,t],["exit",n,t],["exit",r,t]]));return e}};e.exports=d},64651:function(e,t,r){"use strict";var n=r(66491),a=r(15506),i=r(79942),s=r(25436),o=r(54396),d=r(83496),u=r(61718),c=r(44304),l=r(62853),p={name:"htmlFlow",tokenize:function(e,t,r){var l,p,f,h,g,m=this;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),y};function y(a){return 33===a?(e.consume(a),v):47===a?(e.consume(a),R):63===a?(e.consume(a),l=3,m.interrupt?t:N):n(a)?(e.consume(a),f=d(a),p=!0,S):r(a)}function v(a){return 45===a?(e.consume(a),l=2,b):91===a?(e.consume(a),l=5,f="CDATA[",h=0,x):n(a)?(e.consume(a),l=4,m.interrupt?t:N):r(a)}function b(n){return 45===n?(e.consume(n),m.interrupt?t:N):r(n)}function x(n){return n===f.charCodeAt(h++)?(e.consume(n),h===f.length?m.interrupt?t:A:x):r(n)}function R(t){return n(t)?(e.consume(t),f=d(t),S):r(t)}function S(n){return null===n||47===n||62===n||s(n)?47!==n&&p&&c.indexOf(f.toLowerCase())>-1?(l=1,m.interrupt?t(n):A(n)):u.indexOf(f.toLowerCase())>-1?(l=6,47===n?(e.consume(n),Q):m.interrupt?t(n):A(n)):(l=7,m.interrupt?r(n):p?w(n):$(n)):45===n||a(n)?(e.consume(n),f+=d(n),S):r(n)}function Q(n){return 62===n?(e.consume(n),m.interrupt?t:A):r(n)}function $(t){return o(t)?(e.consume(t),$):D(t)}function w(t){return 47===t?(e.consume(t),D):58===t||95===t||n(t)?(e.consume(t),P):o(t)?(e.consume(t),w):D(t)}function P(t){return 45===t||46===t||58===t||95===t||a(t)?(e.consume(t),P):T(t)}function T(t){return 61===t?(e.consume(t),E):o(t)?(e.consume(t),T):w(t)}function E(t){return null===t||60===t||61===t||62===t||96===t?r(t):34===t||39===t?(e.consume(t),g=t,k):o(t)?(e.consume(t),E):(g=void 0,X(t))}function k(t){return t===g?(e.consume(t),j):null===t||i(t)?r(t):(e.consume(t),k)}function X(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||s(t)?T(t):(e.consume(t),X)}function j(e){return 47===e||62===e||o(e)?w(e):r(e)}function D(t){return 62===t?(e.consume(t),C):r(t)}function C(t){return o(t)?(e.consume(t),C):null===t||i(t)?A(t):r(t)}function A(t){return 45===t&&2===l?(e.consume(t),q):60===t&&1===l?(e.consume(t),I):62===t&&4===l?(e.consume(t),Z):63===t&&3===l?(e.consume(t),N):93===t&&5===l?(e.consume(t),W):!i(t)||6!==l&&7!==l?null===t||i(t)?_(t):(e.consume(t),A):e.check(O,Z,_)(t)}function _(t){return e.exit("htmlFlowData"),F(t)}function F(t){return null===t?Y(t):i(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),F):(e.enter("htmlFlowData"),A(t))}function q(t){return 45===t?(e.consume(t),N):A(t)}function I(t){return 47===t?(e.consume(t),f="",U):A(t)}function U(t){return 62===t&&c.indexOf(f.toLowerCase())>-1?(e.consume(t),Z):n(t)&&f.length<8?(e.consume(t),f+=d(t),U):A(t)}function W(t){return 93===t?(e.consume(t),N):A(t)}function N(t){return 62===t?(e.consume(t),Z):A(t)}function Z(t){return null===t||i(t)?(e.exit("htmlFlowData"),Y(t)):(e.consume(t),Z)}function Y(r){return e.exit("htmlFlow"),t(r)}},resolveTo:function(e){var t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},O={tokenize:function(e,t,r){return function(n){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(n),e.exit("lineEndingBlank"),e.attempt(l,t,r)}},partial:!0};e.exports=p},99052:function(e,t,r){"use strict";var n=r(66491),a=r(15506),i=r(79942),s=r(25436),o=r(54396),d=r(10915),u={name:"htmlText",tokenize:function(e,t,r){var u,c,l,p,O=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),f};function f(t){return 33===t?(e.consume(t),h):47===t?(e.consume(t),T):63===t?(e.consume(t),w):n(t)?(e.consume(t),X):r(t)}function h(t){return 45===t?(e.consume(t),g):91===t?(e.consume(t),c="CDATA[",l=0,x):n(t)?(e.consume(t),$):r(t)}function g(t){return 45===t?(e.consume(t),m):r(t)}function m(t){return null===t||62===t?r(t):45===t?(e.consume(t),y):v(t)}function y(e){return null===e||62===e?r(e):v(e)}function v(t){return null===t?r(t):45===t?(e.consume(t),b):i(t)?(p=v,I(t)):(e.consume(t),v)}function b(t){return 45===t?(e.consume(t),W):v(t)}function x(t){return t===c.charCodeAt(l++)?(e.consume(t),l===c.length?R:x):r(t)}function R(t){return null===t?r(t):93===t?(e.consume(t),S):i(t)?(p=R,I(t)):(e.consume(t),R)}function S(t){return 93===t?(e.consume(t),Q):R(t)}function Q(t){return 62===t?W(t):93===t?(e.consume(t),Q):R(t)}function $(t){return null===t||62===t?W(t):i(t)?(p=$,I(t)):(e.consume(t),$)}function w(t){return null===t?r(t):63===t?(e.consume(t),P):i(t)?(p=w,I(t)):(e.consume(t),w)}function P(e){return 62===e?W(e):w(e)}function T(t){return n(t)?(e.consume(t),E):r(t)}function E(t){return 45===t||a(t)?(e.consume(t),E):k(t)}function k(t){return i(t)?(p=k,I(t)):o(t)?(e.consume(t),k):W(t)}function X(t){return 45===t||a(t)?(e.consume(t),X):47===t||62===t||s(t)?j(t):r(t)}function j(t){return 47===t?(e.consume(t),W):58===t||95===t||n(t)?(e.consume(t),D):i(t)?(p=j,I(t)):o(t)?(e.consume(t),j):W(t)}function D(t){return 45===t||46===t||58===t||95===t||a(t)?(e.consume(t),D):C(t)}function C(t){return 61===t?(e.consume(t),A):i(t)?(p=C,I(t)):o(t)?(e.consume(t),C):j(t)}function A(t){return null===t||60===t||61===t||62===t||96===t?r(t):34===t||39===t?(e.consume(t),u=t,_):i(t)?(p=A,I(t)):o(t)?(e.consume(t),A):(e.consume(t),u=void 0,q)}function _(t){return t===u?(e.consume(t),F):null===t?r(t):i(t)?(p=_,I(t)):(e.consume(t),_)}function F(e){return 62===e||47===e||s(e)?j(e):r(e)}function q(t){return null===t||34===t||39===t||60===t||61===t||96===t?r(t):62===t||s(t)?j(t):(e.consume(t),q)}function I(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),d(e,U,"linePrefix",O.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function U(t){return e.enter("htmlTextData"),p(t)}function W(n){return 62===n?(e.consume(n),e.exit("htmlTextData"),e.exit("htmlText"),t):r(n)}}};e.exports=u},11806:function(e,t,r){"use strict";var n=r(25436),a=r(85395),i=r(19146),s=r(37166),o=r(81214),d=r(64436),u=r(46064),c=r(97979),l=r(61174),p=r(93396),O={name:"labelEnd",tokenize:function(e,t,r){var n,a,i=this,o=i.events.length;for(;o--;)if(("labelImage"===i.events[o][1].type||"labelLink"===i.events[o][1].type)&&!i.events[o][1]._balanced){n=i.events[o][1];break}return function(t){if(!n)return r(t);return n._inactive?u(t):(a=i.parser.defined.indexOf(s(i.sliceSerialize({start:n.end,end:i.now()})))>-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),d)};function d(r){return 40===r?e.attempt(f,t,a?t:u)(r):91===r?e.attempt(h,t,a?e.attempt(g,t,u):u)(r):a?t(r):u(r)}function u(e){return n._balanced=!0,r(e)}},resolveTo:function(e,t){var r,n,s,u,c,l,p,O=e.length,f=0;for(;O--;)if(u=e[O][1],c){if("link"===u.type||"labelLink"===u.type&&u._inactive)break;"enter"===e[O][0]&&"labelLink"===u.type&&(u._inactive=!0)}else if(l){if("enter"===e[O][0]&&("labelImage"===u.type||"labelLink"===u.type)&&!u._balanced&&(c=O,"labelLink"!==u.type)){f=2;break}}else"labelEnd"===u.type&&(l=O);return r={type:"labelLink"===e[c][1].type?"link":"image",start:d(e[c][1].start),end:d(e[e.length-1][1].end)},n={type:"label",start:d(e[c][1].start),end:d(e[l][1].end)},s={type:"labelText",start:d(e[c+f+2][1].end),end:d(e[l-2][1].start)},p=a(p=[["enter",r,t],["enter",n,t]],e.slice(c+1,c+f+3)),p=a(p,[["enter",s,t]]),p=a(p,o(t.parser.constructs.insideSpan.null,e.slice(c+f+4,l-3),t)),p=a(p,[["exit",s,t],e[l-2],e[l-1],["exit",n,t]]),p=a(p,e.slice(l+1)),p=a(p,[["exit",r,t]]),i(e,c,e.length,p),e},resolveAll:function(e){var t,r=-1;for(;++r-1?void 0:4)(a)}}},exit:function(e){e.exit(this.containerState.type)}},l={tokenize:function(e,t,r){var n=this;return o(e,(function(e){return a(e)||!i(n.events,"listItemPrefixWhitespace")?r(e):t(e)}),"listItemPrefixWhitespace",n.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:5)},partial:!0},p={tokenize:function(e,t,r){var n=this;return o(e,(function(e){return i(n.events,"listItemIndent")===n.containerState.size?t(e):r(e)}),"listItemIndent",n.containerState.size+1)},partial:!0};e.exports=c},62853:function(e,t,r){"use strict";var n=r(79942),a=r(10915),i={tokenize:function(e,t,r){return a(e,(function(e){return null===e||n(e)?t(e):r(e)}),"linePrefix")},partial:!0};e.exports=i},17219:function(e,t,r){"use strict";var n=r(79942),a=r(64436),i=r(10915),s={name:"setextUnderline",tokenize:function(e,t,r){var a,s,o=this,d=o.events.length;for(;d--;)if("lineEnding"!==o.events[d][1].type&&"linePrefix"!==o.events[d][1].type&&"content"!==o.events[d][1].type){s="paragraph"===o.events[d][1].type;break}return function(t){if(!o.lazy&&(o.interrupt||s))return e.enter("setextHeadingLine"),e.enter("setextHeadingLineSequence"),a=t,u(t);return r(t)};function u(t){return t===a?(e.consume(t),u):(e.exit("setextHeadingLineSequence"),i(e,c,"lineSuffix")(t))}function c(a){return null===a||n(a)?(e.exit("setextHeadingLine"),t(a)):r(a)}},resolveTo:function(e,t){var r,n,i,s,o=e.length;for(;o--;)if("enter"===e[o][0]){if("content"===e[o][1].type){r=o;break}"paragraph"===e[o][1].type&&(n=o)}else"content"===e[o][1].type&&e.splice(o,1),i||"definition"!==e[o][1].type||(i=o);s={type:"setextHeading",start:a(e[n][1].start),end:a(e[e.length-1][1].end)},e[n][1].type="setextHeadingText",i?(e.splice(n,0,["enter",s,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end=a(e[i][1].end)):e[r][1]=s;return e.push(["exit",s,t]),e}};e.exports=s},36852:function(e,t,r){"use strict";var n=r(79942),a=r(54396),i=r(10915),s={name:"thematicBreak",tokenize:function(e,t,r){var s,o=0;return function(t){return e.enter("thematicBreak"),s=t,d(t)};function d(c){return c===s?(e.enter("thematicBreakSequence"),u(c)):a(c)?i(e,d,"whitespace")(c):o<3||null!==c&&!n(c)?r(c):(e.exit("thematicBreak"),t(c))}function u(t){return t===s?(e.consume(t),o++,u):(e.exit("thematicBreakSequence"),d(t))}}};e.exports=s},85395:function(e,t,r){"use strict";var n=r(19146);e.exports=function(e,t){return e.length?(n(e,e.length,0,t),e):t}},19146:function(e,t,r){"use strict";var n=r(89120);e.exports=function(e,t,r,a){var i,s=e.length,o=0;if(t=t<0?-t>s?0:s+t:t>s?s:t,r=r>0?r:0,a.length<1e4)(i=Array.from(a)).unshift(t,r),n.apply(e,i);else for(r&&n.apply(e,[t,r]);o-1)return h();return e.tokenize.call(t?n({},y,t):y,m,f,h)(r)}}function f(t){return e(u,c),a}function h(e){return c.restore(),++d13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||65535===(65535&r)||65534===(65535&r)||r>1114111?"\ufffd":n(r)}},82252:function(e,t,r){"use strict";var n=r(83496);e.exports=function(e){for(var t,r,a,i=-1,s=[];++i-1&&(r[0]=r[0].slice(a)),s>0&&r.push(e[i].slice(0,s))),r}},76909:function(e,t,r){"use strict";var n=r(8548),a=r(19146),i=r(64436);function s(e,t){for(var r,n,i,s,o,d,u=e[t][1],c=e[t][2],l=t-1,p=[],O=u._tokenizer||c.parser[u.contentType](u.start),f=O.events,h=[],g={};u;){for(;e[++l][1]!==u;);p.push(l),u._tokenizer||(r=c.sliceStream(u),u.next||r.push(null),n&&O.defineSkip(u.start),u.isInFirstContentOfListItem&&(O._gfmTasklistFirstContentOfListItem=!0),O.write(r),u.isInFirstContentOfListItem&&(O._gfmTasklistFirstContentOfListItem=void 0)),n=u,u=u.next}for(u=n,i=f.length;i--;)"enter"===f[i][0]?s=!0:s&&f[i][1].type===f[i-1][1].type&&f[i][1].start.line!==f[i][1].end.line&&(m(f.slice(i+1,o)),u._tokenizer=u.next=void 0,u=u.previous,o=i+1);for(O.events=u._tokenizer=u.next=void 0,m(f.slice(0,o)),i=-1,d=0;++is.length;o&&s.push(a);try{r=e.apply(null,s)}catch(d){if(o&&n)throw d;return a(d)}o||(r&&"function"===typeof r.then?r.then(i,a):r instanceof Error?a(r):i(r))};function a(){n||(n=!0,r.apply(null,arguments))}function i(e){a(null,e)}}},43621:function(e,t,r){"use strict";var n=r(16459),a=r(82589),i=r(82032),s=r(10023),o=r(49483),d=r(59433);e.exports=function e(){var t,r=[],a=o(),y={},v=-1;return b.data=function(e,r){if("string"===typeof e)return 2===arguments.length?(h("data",t),y[e]=r,b):c.call(y,e)&&y[e]||null;if(e)return h("data",t),y=e,b;return y},b.freeze=x,b.attachers=r,b.use=function(e){var n;if(h("use",t),null===e||void 0===e);else if("function"===typeof e)c.apply(null,arguments);else{if("object"!==typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?d(e):a(e)}n&&(y.settings=i(y.settings||{},n));return b;function a(e){d(e.plugins),e.settings&&(n=i(n||{},e.settings))}function o(e){if("function"===typeof e)c(e);else{if("object"!==typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?c.apply(null,e):a(e)}}function d(e){var t=-1;if(null===e||void 0===e);else{if("object"!==typeof e||!("length"in e))throw new Error("Expected a list of plugins, not `"+e+"`");for(;++t-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+n.sep+"`")}function c(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function l(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}d.prototype.toString=function(e){return(this.contents||"").toString(e)},Object.defineProperty(d.prototype,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){c(e,"path"),this.path!==e&&this.history.push(e)}}),Object.defineProperty(d.prototype,"dirname",{get:function(){return"string"===typeof this.path?n.dirname(this.path):void 0},set:function(e){l(this.path,"dirname"),this.path=n.join(e||"",this.basename)}}),Object.defineProperty(d.prototype,"basename",{get:function(){return"string"===typeof this.path?n.basename(this.path):void 0},set:function(e){c(e,"basename"),u(e,"basename"),this.path=n.join(this.dirname||"",e)}}),Object.defineProperty(d.prototype,"extname",{get:function(){return"string"===typeof this.path?n.extname(this.path):void 0},set:function(e){if(u(e,"extname"),l(this.path,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.indexOf(".",1)>-1)throw new Error("`extname` cannot contain multiple dots")}this.path=n.join(this.dirname,this.stem+(e||""))}}),Object.defineProperty(d.prototype,"stem",{get:function(){return"string"===typeof this.path?n.basename(this.path,this.extname):void 0},set:function(e){c(e,"stem"),u(e,"stem"),this.path=n.join(this.dirname||"",e+(this.extname||""))}})},98709:function(e,t,r){"use strict";var n=r(82040),a=r(45221);e.exports=a,a.prototype.message=function(e,t,r){var a=new n(e,t,r);this.path&&(a.name=this.path+":"+a.name,a.file=this.path);return a.fatal=!1,this.messages.push(a),a},a.prototype.info=function(){var e=this.message.apply(this,arguments);return e.fatal=null,e},a.prototype.fail=function(){var e=this.message.apply(this,arguments);throw e.fatal=!0,e}},51456:function(e,t){"use strict";function r(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}t.basename=function(e,t){var n,a,i,s,o=0,d=-1;if(void 0!==t&&"string"!==typeof t)throw new TypeError('"ext" argument must be a string');if(r(e),n=e.length,void 0===t||!t.length||t.length>e.length){for(;n--;)if(47===e.charCodeAt(n)){if(i){o=n+1;break}}else d<0&&(i=!0,d=n+1);return d<0?"":e.slice(o,d)}if(t===e)return"";a=-1,s=t.length-1;for(;n--;)if(47===e.charCodeAt(n)){if(i){o=n+1;break}}else a<0&&(i=!0,a=n+1),s>-1&&(e.charCodeAt(n)===t.charCodeAt(s--)?s<0&&(d=n):(s=-1,d=a));o===d?d=a:d<0&&(d=e.length);return e.slice(o,d)},t.dirname=function(e){var t,n,a;if(r(e),!e.length)return".";t=-1,a=e.length;for(;--a;)if(47===e.charCodeAt(a)){if(n){t=a;break}}else n||(n=!0);return t<0?47===e.charCodeAt(0)?"/":".":1===t&&47===e.charCodeAt(0)?"//":e.slice(0,t)},t.extname=function(e){var t,n,a,i=-1,s=0,o=-1,d=0;r(e),a=e.length;for(;a--;)if(47!==(n=e.charCodeAt(a)))o<0&&(t=!0,o=a+1),46===n?i<0?i=a:1!==d&&(d=1):i>-1&&(d=-1);else if(t){s=a+1;break}if(i<0||o<0||0===d||1===d&&i===o-1&&i===s+1)return"";return e.slice(i,o)},t.join=function(){var e,t=-1;for(;++t2){if((n=a.lastIndexOf("/"))!==a.length-1){n<0?(a="",i=0):i=(a=a.slice(0,n)).length-1-a.lastIndexOf("/"),s=d,o=0;continue}}else if(a.length){a="",i=0,s=d,o=0;continue}t&&(a=a.length?a+"/..":"..",i=2)}else a.length?a+="/"+e.slice(s+1,d):a=e.slice(s+1,d),i=d-s-1;s=d,o=0}else 46===r&&o>-1?o++:o=-1}return a}(e,!t),n.length||t||(n=".");n.length&&47===e.charCodeAt(e.length-1)&&(n+="/");return t?"/"+n:n}(e)},t.sep="/"},12859:function(e,t){"use strict";t.cwd=function(){return"/"}},87807:function(e){"use strict";var t,r="";e.exports=function(e,n){if("string"!==typeof e)throw new TypeError("expected a string");if(1===n)return e;if(2===n)return e+e;var a=e.length*n;if(t!==e||"undefined"===typeof t)t=e,r="";else if(r.length>=a)return r.substr(0,a);for(;a>r.length&&n>1;)1&n&&(r+=e),n>>=1,e+=e;return r=(r+=e).substr(0,a)}},10017:function(e,t){"use strict";function r(e,t){var r=e.length;e.push(t);e:for(;0>>1,a=e[n];if(!(0>>1;ni(d,r))ui(c,d)?(e[n]=c,e[u]=r,n=u):(e[n]=d,e[o]=r,n=o);else{if(!(ui(c,r)))break e;e[n]=c,e[u]=r,n=u}}}return t}function i(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,d=o.now();t.unstable_now=function(){return o.now()-d}}var u=[],c=[],l=1,p=null,O=3,f=!1,h=!1,g=!1,m="function"===typeof setTimeout?setTimeout:null,y="function"===typeof clearTimeout?clearTimeout:null,v="undefined"!==typeof setImmediate?setImmediate:null;function b(e){for(var t=n(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,r(u,t)}t=n(c)}}function x(e){if(g=!1,b(e),!h)if(null!==n(u))h=!0,D(R);else{var t=n(c);null!==t&&C(x,t.startTime-e)}}function R(e,r){h=!1,g&&(g=!1,y(w),w=-1),f=!0;var i=O;try{for(b(r),p=n(u);null!==p&&(!(p.expirationTime>r)||e&&!E());){var s=p.callback;if("function"===typeof s){p.callback=null,O=p.priorityLevel;var o=s(p.expirationTime<=r);r=t.unstable_now(),"function"===typeof o?p.callback=o:p===n(u)&&a(u),b(r)}else a(u);p=n(u)}if(null!==p)var d=!0;else{var l=n(c);null!==l&&C(x,l.startTime-r),d=!1}return d}finally{p=null,O=i,f=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,Q=!1,$=null,w=-1,P=5,T=-1;function E(){return!(t.unstable_now()-Te||125s?(e.sortIndex=i,r(c,e),null===n(u)&&e===n(c)&&(g?(y(w),w=-1):g=!0,C(x,i-s))):(e.sortIndex=o,r(u,e),h||f||(h=!0,D(R))),e},t.unstable_shouldYield=E,t.unstable_wrapCallback=function(e){var t=O;return function(){var r=O;O=t;try{return e.apply(this,arguments)}finally{O=r}}}},37086:function(e,t,r){"use strict";e.exports=r(10017)},730:function(e){e.exports=function(e,t,r,n){var a=r?r.call(n,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var i=Object.keys(e),s=Object.keys(t);if(i.length!==s.length)return!1;for(var o=Object.prototype.hasOwnProperty.bind(t),d=0;d= 0\n}\n\n// Returns `true` if one of the strings in the slice\n// satisfies the predicate `f`.\nfunc Any(vs []string, f func(string) bool) bool {\n for _, v := range vs {\n if f(v) {\n return true\n }\n }\n return false\n}\n\n// Returns `true` if all of the strings in the slice\n// satisfy the predicate `f`.\nfunc All(vs []string, f func(string) bool) bool {\n for _, v := range vs {\n if !f(v) {\n return false\n }\n }\n return true\n}\n\n// Returns a new slice containing all strings in the\n// slice that satisfy the predicate `f`.\nfunc Filter(vs []string, f func(string) bool) []string {\n vsf := make([]string, 0)\n for _, v := range vs {\n if f(v) {\n vsf = append(vsf, v)\n }\n }\n return vsf\n}\n\n// Returns a new slice containing the results of applying\n// the function `f` to each string in the original slice.\nfunc Map(vs []string, f func(string) string) []string {\n vsm := make([]string, len(vs))\n for i, v := range vs {\n vsm[i] = f(v)\n }\n return vsm\n}\n\nfunc main() {\n\n // Here we try out our various collection functions.\n var strs = []string{"peach", "apple", "pear", "plum"}\n\n fmt.Println(Index(strs, "pear"))\n\n fmt.Println(Include(strs, "grape"))\n\n fmt.Println(Any(strs, func(v string) bool {\n return strings.HasPrefix(v, "p")\n }))\n\n fmt.Println(All(strs, func(v string) bool {\n return strings.HasPrefix(v, "p")\n }))\n\n fmt.Println(Filter(strs, func(v string) bool {\n return strings.Contains(v, "e")\n }))\n\n // The above examples all used anonymous functions,\n // but you can also use named functions of the correct\n // type.\n fmt.Println(Map(strs, strings.ToUpper))\n\n}\n'},90348:function(e,t,r){"use strict";r.r(t),t.default='\n\x3c!--Example of comments in HTML--\x3e\n\n\n \x3c!--This is the head section--\x3e\n HTML Sample\n \n\n \x3c!--This is the style tag to set style on elements--\x3e\n \n\n \x3c!--This is the script tag--\x3e\n \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial | TestFunctionPredicate | Array | TestFunctionPredicate>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * ((node: unknown, test: PredicateTest, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * ((test: PredicateTest) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor, Check>, Extract, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n /** @type {Record} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return {type: 'text', value: '![' + node.alt + suffix}\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * \n// * \n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastRoot | HastElement}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start.line && end.line) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(node, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastText | HastElement}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\n *\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node’s positional info.\n * @property {(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array} all\n *   Transform the children of an mdast parent to hast.\n * @property {(nodes: Array, loose?: boolean | null | undefined) => Array} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array} passThrough\n *   List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\n * @property {Array | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array} */\n  state.footnoteOrder = []\n  /** @type {Record} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: .\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it’s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that’s a state :)\n    return one(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array}\n   *   Resulting hast nodes.\n   */\n  function allBound(parent) {\n    // @ts-expect-error: that’s a state :)\n    return all(state, parent)\n  }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n  /** @type {Array} */\n  const values = []\n\n  if ('children' in parent) {\n    const nodes = parent.children\n    let index = -1\n    while (++index < nodes.length) {\n      const result = one(state, nodes[index], parent)\n\n      // To do: see if we van clean this? Can we merge texts?\n      if (result) {\n        if (index && nodes[index - 1].type === 'break') {\n          if (!Array.isArray(result) && result.type === 'text') {\n            result.value = result.value.replace(/^\\s+/, '')\n          }\n\n          if (!Array.isArray(result) && result.type === 'element') {\n            const head = result.children[0]\n\n            if (head && head.type === 'text') {\n              head.value = head.value.replace(/^\\s+/, '')\n            }\n          }\n        }\n\n        if (Array.isArray(result)) {\n          values.push(...result)\n        } else {\n          values.push(result)\n        }\n      }\n    }\n  }\n\n  return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: all(state, node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n *   Node type.\n * @param {Array} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\n * @returns {Array}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * 

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: state.clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array} [allowedElements]\n * @property {Array} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n\n return undefined\n })\n }\n }\n}\n","/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {unknown} thing\n * Thing to check (typically `Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`).\n * If a node is passed it must be a `Text` node, whose `value` field is\n * checked.\n */\nexport function whitespace(thing) {\n /** @type {string} */\n const value =\n // @ts-expect-error looks like a node.\n thing && typeof thing === 'object' && thing.type === 'text'\n ? // @ts-expect-error looks like a text.\n thing.value || ''\n : thing\n\n // HTML whitespace expression.\n // See .\n return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","/**\n * `hast` is close to `React`, but differs in a couple of cases.\n *\n * To get a React property from a hast property, check if it is in\n * `hastToReact`, if it is, then use the corresponding value,\n * otherwise, use the hast property.\n *\n * @type {Record}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","import StyleToObject from './index.js';\n\nexport default StyleToObject;\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType} ComponentType\n */\n\n/**\n * @template {import('react').ElementType} T\n * @typedef {import('react').ComponentPropsWithoutRef} ComponentPropsWithoutRef\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record, isHeader: false}} TableDataCellProps\n * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record, isHeader: true}} TableHeaderCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType} CodeComponent\n * @typedef {ComponentType} HeadingComponent\n * @typedef {ComponentType} LiComponent\n * @typedef {ComponentType} OrderedListComponent\n * @typedef {ComponentType} TableDataCellComponent\n * @typedef {ComponentType} TableHeaderCellComponent\n * @typedef {ComponentType} TableRowComponent\n * @typedef {ComponentType} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableDataCellComponent|ReactMarkdownNames} td\n * @property {TableHeaderCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {uriTransformer} from './uri-transformer.js'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we drop it.\n // See: .\n // See: .\n // See: .\n // See: .\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n !whitespace(child)\n ) {\n children.push(child.value)\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const transform =\n options.transformLinkUri === undefined\n ? uriTransformer\n : options.transformLinkUri\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Record} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = index\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? options.linkTarget(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n : options.linkTarget\n }\n\n if (name === 'a' && transform) {\n properties.href = transform(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = Number.parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n String(properties.src || ''),\n String(properties.alt || ''),\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Record} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Record}\n */\nfunction parseStyle(value) {\n /** @type {Record} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map(String)\n .join('')\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record} */\nconst deprecated = {\n plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(remarkParse)\n .use(options.remarkPlugins || [])\n .use(remarkRehype, {\n ...options.remarkRehypeOptions,\n allowDangerousHtml: true\n })\n .use(options.rehypePlugins || [])\n .use(rehypeFilter, options)\n\n const file = new VFile()\n\n if (typeof options.children === 'string') {\n file.value = options.children\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiControl,\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n}\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n}\nconst path = {\n tokenize: tokenizePath,\n partial: true\n}\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n}\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n}\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n}\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n}\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n}\n\n/** @type {ConstructRecord} */\nconst text = {}\n\n// To do: next major: expose functions that yields extension.\n\n/**\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n *\n * @type {Extension}\n */\nexport const gfmAutolinkLiteral = {\n text\n}\n\n/** @type {Code} */\nlet code = 48\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n if (code === 58) code = 65\n else if (code === 91) code = 97\n}\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, protocolAutolink]\ntext[104] = [emailAutolink, protocolAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this\n /** @type {boolean | undefined} */\n let dot\n /** @type {boolean} */\n let data\n return start\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (\n !gfmAtext(code) ||\n !previousEmail.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n if (code === 64) {\n effects.consume(code)\n return emailDomain\n }\n return nok(code)\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: \n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code)\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true\n effects.consume(code)\n return emailDomain\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code)\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code)\n dot = true\n return emailDomain\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: .\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this\n return wwwStart\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (\n (code !== 87 && code !== 119) ||\n !previousWww.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww')\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code)\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this\n let buffer = ''\n let seen = false\n return protocolStart\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if (\n (code === 72 || code === 104) &&\n previousProtocol.call(self, self.previous) &&\n !previousUnbalanced(self.events)\n ) {\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n return nok(code)\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase()\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code)\n return protocolSlashesInside\n }\n }\n return nok(code)\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code)\n if (seen) {\n return afterProtocol\n }\n seen = true\n return protocolSlashesInside\n }\n return nok(code)\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null ||\n asciiControl(code) ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code)\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0\n return wwwPrefixInside\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++\n effects.consume(code)\n return wwwPrefixInside\n }\n if (code === 46 && size === 3) {\n effects.consume(code)\n return wwwPrefixAfter\n }\n return nok(code)\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code)\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment\n /** @type {boolean | undefined} */\n let seen\n return domainInside\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code)\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: .\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 && unicodePunctuation(code))\n ) {\n return domainAfter(code)\n }\n seen = true\n effects.consume(code)\n return domainInside\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment\n underscoreInLastSegment = undefined\n }\n effects.consume(code)\n return domainInside\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // \n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code)\n }\n return ok(code)\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0\n let sizeClose = 0\n return pathInside\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++\n effects.consume(code)\n return pathInside\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code)\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (\n code === 33 ||\n code === 34 ||\n code === 38 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 60 ||\n code === 63 ||\n code === 93 ||\n code === 95 ||\n code === 126\n ) {\n return effects.check(trail, ok, pathAtPunctuation)(code)\n }\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n effects.consume(code)\n return pathInside\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++\n }\n effects.consume(code)\n return pathInside\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (\n code === 33 ||\n code === 34 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 63 ||\n code === 95 ||\n code === 126\n ) {\n effects.consume(code)\n return trail\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code)\n return trailCharRefStart\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // .\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code)\n return trailBracketAfter\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (\n code === null ||\n code === 40 ||\n code === 91 ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n return trail(code)\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharRefInside(code) : nok(code)\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code)\n return trail\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return trailCharRefInside\n }\n\n // It’s not a trail.\n return nok(code)\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code)\n return after\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code)\n }\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return (\n code === null ||\n code === 40 ||\n code === 42 ||\n code === 95 ||\n code === 91 ||\n code === 93 ||\n code === 126 ||\n markdownLineEndingOrSpace(code)\n )\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code)\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: .\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code))\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return (\n code === 43 ||\n code === 45 ||\n code === 46 ||\n code === 95 ||\n asciiAlphanumeric(code)\n )\n}\n\n/**\n * @param {Array} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length\n let result = false\n while (index--) {\n const token = events[index][1]\n if (\n (token.type === 'labelLink' || token.type === 'labelImage') &&\n !token._balanced\n ) {\n result = true\n break\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false\n break\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n }\n return result\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n }\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Array} */\n // @ts-expect-error It’s fine!\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {Token} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1]\n if (token.type === 'labelImage') {\n labelStart = token\n break\n }\n\n // Exit if we’ve walked far enough.\n if (\n token.type === 'gfmFootnoteCall' ||\n token.type === 'labelLink' ||\n token.type === 'label' ||\n token.type === 'image' ||\n token.type === 'link'\n ) {\n break\n }\n }\n return start\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code)\n }\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code)\n }\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return ok(code)\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length\n /** @type {Token | undefined} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n if (\n events[index][1].type === 'labelImage' &&\n events[index][0] === 'enter'\n ) {\n labelStart = events[index][1]\n break\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = 'data'\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n }\n // Increment the end 1 character.\n marker.end.column++\n marker.end.offset++\n marker.end._bufferIndex++\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n }\n /** @type {Token} */\n const chunk = {\n type: 'chunkString',\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n }\n\n /** @type {Array} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n ['enter', call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n ['enter', marker, context],\n ['exit', marker, context],\n // Everything in between.\n ['enter', string, context],\n ['enter', chunk, context],\n ['exit', chunk, context],\n ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n ['exit', call, context]\n ]\n events.splice(index, events.length - index + 1, ...replacement)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this\n /** @type {Array} */\n // @ts-expect-error It’s fine!\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n let size = 0\n /** @type {boolean} */\n let data\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall')\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return callStart\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code)\n effects.enter('gfmFootnoteCallMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallMarker')\n effects.enter('gfmFootnoteCallString')\n effects.enter('chunkString').contentType = 'string'\n return callData\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n (code === 93 && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null ||\n code === 91 ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteCallString')\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code)\n }\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n effects.exit('gfmFootnoteCall')\n return ok\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n size++\n effects.consume(code)\n return code === 92 ? callEscape : callData\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return callData\n }\n return callData(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this\n /** @type {Array} */\n // @ts-expect-error It’s fine!\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {string} */\n let identifier\n let size = 0\n /** @type {boolean | undefined} */\n let data\n return start\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true\n effects.enter('gfmFootnoteDefinitionLabel')\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n return labelAtMarker\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionMarker')\n effects.enter('gfmFootnoteDefinitionLabelString')\n effects.enter('chunkString').contentType = 'string'\n return labelInside\n }\n return nok(code)\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n (code === 93 && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null ||\n code === 91 ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteDefinitionLabelString')\n identifier = normalizeIdentifier(self.sliceSerialize(token))\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n effects.exit('gfmFootnoteDefinitionLabel')\n return labelAfter\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n size++\n effects.consume(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > \n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n if (!defined.includes(identifier)) {\n defined.push(identifier)\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(\n effects,\n whitespaceAfter,\n 'gfmFootnoteDefinitionWhitespace'\n )\n }\n return nok(code)\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition')\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'gfmFootnoteDefinitionIndent',\n 4 + 1\n )\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === 4\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean} [singleTilde=true]\n * Whether to support strikethrough with a single tilde.\n *\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */\n\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {}\n let single = options_.singleTilde\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n if (single === null || single === undefined) {\n single = true\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n }\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n let open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n }\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n\n // Opening.\n /** @type {Array} */\n const nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n const insideSpan = context.parser.constructs.insideSpan.null\n if (insideSpan) {\n // Between.\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan, events.slice(open + 1, index), context)\n )\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n return events\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous\n const events = this.events\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (\n previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape'\n ) {\n return nok(code)\n }\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous)\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n if (size < 2 && !single) return nok(code)\n const token = effects.exit('strikethroughSequenceTemporary')\n const after = classifyCharacter(code)\n token._open = !after || (after === 2 && Boolean(before))\n token._close = !before || (before === 2 && Boolean(after))\n return ok(code)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array}\n */\n this.map = []\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {void}\n */\n add(index, remove, add) {\n addImpl(this, index, remove, add)\n }\n\n // To do: not used here.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {void}\n // */\n // addBefore(index, remove, add) {\n // addImpl(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {void}\n */\n consume(events) {\n this.map.sort((a, b) => a[0] - b[0])\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length\n /** @type {Array>} */\n const vecs = []\n while (index > 0) {\n index -= 1\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]))\n // eslint-disable-next-line unicorn/no-array-push-push\n vecs.push(this.map[index][2])\n\n // Truncate rest.\n events.length = this.map[index][0]\n }\n vecs.push([...events])\n events.length = 0\n let slice = vecs.pop()\n while (slice) {\n events.push(...slice)\n slice = vecs.pop()\n }\n\n // Truncate everything.\n this.map.length = 0\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array} add\n * @returns {void}\n */\nfunction addImpl(editMap, at, remove, add) {\n let index = 0\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove\n\n // To do: before not used.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add)\n // }\n\n return\n }\n index += 1\n }\n editMap.map.push([at, remove, add])\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array} events\n// * @param {Array} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// console.log('to do: links?', add, rmCurr)\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef {'left' | 'center' | 'right' | 'none'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Array} events\n * @param {number} index\n * @returns {Array}\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false\n /** @type {Array} */\n const align = []\n while (index < events.length) {\n const event = events[index]\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(\n events[index + 1][1].type === 'tableDelimiterMarker'\n ? 'left'\n : 'none'\n )\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right'\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true\n }\n index += 1\n }\n return align\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {EditMap} from './edit-map.js'\nimport {gfmTableAlign} from './infer.js'\n\n// To do: next major: expose functions.\n\n/**\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n *\n * @type {Extension}\n */\nexport const gfmTable = {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this\n let size = 0\n let sizeB = 0\n /** @type {boolean | undefined} */\n let seen\n return start\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1\n while (index > -1) {\n const type = self.events[index][1].type\n if (\n type === 'lineEnding' ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === 'linePrefix'\n )\n index--\n else break\n }\n const tail = index > -1 ? self.events[index][1].type : null\n const next =\n tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n return next(code)\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead')\n effects.enter('tableRow')\n return headRowStart(code)\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code)\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1\n return headRowBreak(code)\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true\n effects.exit('tableRow')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return headDelimiterStart\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, 'whitespace')(code)\n }\n sizeB += 1\n if (seen) {\n seen = false\n // Header cell count.\n size += 1\n }\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n // Whether a delimiter was seen.\n seen = true\n return headRowBreak\n }\n\n // Anything else is cell data.\n effects.enter('data')\n return headRowData(code)\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('data')\n return headRowBreak(code)\n }\n effects.consume(code)\n return code === 92 ? headRowEscape : headRowData\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return headRowData\n }\n return headRowData(code)\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n effects.enter('tableDelimiterRow')\n // Track if we’ve seen a `:` or `|`.\n seen = false\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n headDelimiterBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return headDelimiterBefore(code)\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code)\n }\n if (code === 124) {\n seen = true\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return headDelimiterCellBefore\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code)\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, 'whitespace')(code)\n }\n return headDelimiterValueBefore(code)\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1\n seen = true\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterLeftAlignmentAfter\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code)\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code)\n }\n return headDelimiterNok(code)\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n return headDelimiterFiller(code)\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code)\n return headDelimiterFiller\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true\n effects.exit('tableDelimiterFiller')\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterRightAlignmentAfter\n }\n effects.exit('tableDelimiterFiller')\n return headDelimiterRightAlignmentAfter(code)\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, 'whitespace')(code)\n }\n return headDelimiterCellAfter(code)\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code)\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code)\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow')\n effects.exit('tableHead')\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code)\n }\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow')\n return bodyRowBreak(code)\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return bodyRowBreak\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow')\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, 'whitespace')(code)\n }\n\n // Anything else is cell content.\n effects.enter('data')\n return bodyRowData(code)\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('data')\n return bodyRowBreak(code)\n }\n effects.consume(code)\n return code === 92 ? bodyRowEscape : bodyRowData\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return bodyRowData\n }\n return bodyRowData(code)\n }\n}\n\n/** @type {Resolver} */\n// eslint-disable-next-line complexity\nfunction resolveTable(events, context) {\n let index = -1\n let inFirstCellAwaitingPipe = true\n /** @type {RowKind} */\n let rowKind = 0\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0]\n /** @type {Range} */\n let cell = [0, 0, 0, 0]\n let afterHeadAwaitingFirstBodyRow = false\n let lastTableEnd = 0\n /** @type {Token | undefined} */\n let currentTable\n /** @type {Token | undefined} */\n let currentBody\n /** @type {Token | undefined} */\n let currentCell\n const map = new EditMap()\n while (++index < events.length) {\n const event = events[index]\n const token = event[1]\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n currentBody = undefined\n lastTableEnd = 0\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentTable, context]])\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n inFirstCellAwaitingPipe = true\n currentCell = undefined\n lastCell = [0, 0, 0, 0]\n cell = [0, index + 1, 0, 0]\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentBody, context]])\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1\n }\n // Cell data.\n else if (\n rowKind &&\n (token.type === 'data' ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n inFirstCellAwaitingPipe = false\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n lastCell = [0, 0, 0, 0]\n }\n cell[2] = index\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n }\n lastCell = cell\n cell = [lastCell[1], index, 0, 0]\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true\n lastTableEnd = index\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n lastTableEnd = index\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n )\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell)\n }\n rowKind = 0\n } else if (\n rowKind &&\n (token.type === 'data' ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n cell[3] = index\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n }\n map.consume(context.events)\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1\n while (++index < context.events.length) {\n const event = context.events[index]\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index)\n }\n }\n return events\n}\n\n/// Generate a cell.\n/**\n *\n * @param {EditMap} map\n * @param {TokenizeContext} context\n * @param {Range} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName =\n rowKind === 1\n ? 'tableHeader'\n : rowKind === 2\n ? 'tableDelimiter'\n : 'tableData'\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent'\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]))\n map.add(range[0], 0, [['exit', previousCell, context]])\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1])\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n }\n map.add(range[1], 0, [['enter', previousCell, context]])\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2])\n const relatedEnd = getPoint(context.events, range[3])\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n }\n map.add(range[2], 0, [['enter', valueToken, context]])\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]]\n const end = context.events[range[3]]\n start[1].end = Object.assign({}, end[1].end)\n start[1].type = 'chunkText'\n start[1].contentType = 'text'\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1\n const b = range[3] - range[2] - 1\n map.add(a, b, [])\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]])\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd))\n map.add(rowEnd, 0, [['exit', previousCell, context]])\n previousCell = undefined\n }\n return previousCell\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {EditMap} map\n * @param {TokenizeContext} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array} */\n const exits = []\n const related = getPoint(context.events, index)\n if (tableBody) {\n tableBody.end = Object.assign({}, related)\n exits.push(['exit', tableBody, context])\n }\n table.end = Object.assign({}, related)\n exits.push(['exit', table, context])\n map.add(index + 1, 0, exits)\n}\n\n/**\n * @param {Array} events\n * @param {number} index\n * @returns {readonly Point}\n */\nfunction getPoint(events, index) {\n const event = events[index]\n const side = event[0] === 'enter' ? 'start' : 'end'\n return event[1][side]\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEndingOrSpace,\n markdownLineEnding,\n markdownSpace\n} from 'micromark-util-character'\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n}\n\n// To do: next major: expose function to make extension.\n\n/**\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM task list items syntax.\n *\n * @type {Extension}\n */\nexport const gfmTaskListItem = {\n text: {\n [91]: tasklistCheck\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this\n return open\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n return nok(code)\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return after\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code)\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )(code)\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, 'whitespace')\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code)\n }\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Content | Root} Node\n * @typedef {Extract} Parent\n * @typedef {Exclude} ContentParent\n *\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[Root, ...Array, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array | PhrasingContent | string | false | undefined | null}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array`, replace with those nodes\n *\n * @typedef {string | RegExp} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array} FindAndReplaceList\n * Several find and replaces, in array form.\n * @typedef {Record} FindAndReplaceSchema\n * Several find and replaces, in object form.\n * @typedef {[Find, Replace]} FindAndReplaceTuple\n * Find and replace in tuple form.\n * @typedef {string | ReplaceFunction} Replace\n * Thing to replace with.\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n * @typedef {Array} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore.\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param tree\n * Tree to change.\n * @param find\n * Patterns to find.\n * @param replace\n * Things to replace with (when `find` is `Find`) or configuration.\n * @param options\n * Configuration (when `find` is not `Find`).\n * @returns\n * Given, modified, tree.\n */\n// To do: next major: remove `find` & `replace` combo, remove schema.\nexport const findAndReplace =\n /**\n * @type {(\n * ((tree: Tree, find: Find, replace?: Replace | null | undefined, options?: Options | null | undefined) => Tree) &\n * ((tree: Tree, schema: FindAndReplaceSchema | FindAndReplaceList, options?: Options | null | undefined) => Tree)\n * )}\n **/\n (\n /**\n * @template {Node} Tree\n * @param {Tree} tree\n * @param {Find | FindAndReplaceSchema | FindAndReplaceList} find\n * @param {Replace | Options | null | undefined} [replace]\n * @param {Options | null | undefined} [options]\n * @returns {Tree}\n */\n function (tree, find, replace, options) {\n /** @type {Options | null | undefined} */\n let settings\n /** @type {FindAndReplaceSchema|FindAndReplaceList} */\n let schema\n\n if (typeof find === 'string' || find instanceof RegExp) {\n // @ts-expect-error don’t expect options twice.\n schema = [[find, replace]]\n settings = options\n } else {\n schema = find\n // @ts-expect-error don’t expect replace twice.\n settings = replace\n }\n\n if (!settings) {\n settings = {}\n }\n\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(schema)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n // To do next major: don’t return the given tree.\n return tree\n\n /** @type {import('unist-util-visit-parents/complex-types.js').BuildVisitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parent | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n\n if (\n ignored(\n parent,\n // @ts-expect-error: TS doesn’t understand but it’s perfect.\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n // @ts-expect-error: TS is wrong, some of these children can be text.\n const index = parent.children.indexOf(node)\n let change = false\n /** @type {Array} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n // @ts-expect-error: stack is fine.\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value !== false) {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n }\n )\n\n/**\n * Turn a schema into pairs.\n *\n * @param {FindAndReplaceSchema | FindAndReplaceList} schema\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(schema) {\n /** @type {Pairs} */\n const result = []\n\n if (typeof schema !== 'object') {\n throw new TypeError('Expected array or object as schema')\n }\n\n if (Array.isArray(schema)) {\n let index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n /** @type {string} */\n let key\n\n for (key in schema) {\n if (own.call(schema, key)) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : () => replace\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n */\n\nimport {ccount} from 'ccount'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n// To do: next major: expose functions instead of extensions.\n\n/**\n * Extension for `mdast-util-from-markdown` to enable GFM autolink literals.\n *\n * @type {FromMarkdownExtension}\n */\nexport const gfmAutolinkLiteralFromMarkdown = {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n}\n\n/**\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n *\n * @type {ToMarkdownExtension}\n */\nexport const gfmAutolinkLiteralToMarkdown = {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {character: ':', before: '[ps]', after: '\\\\/', inConstruct, notInConstruct}\n ]\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = /** @type {Link} */ (this.stack[this.stack.length - 1])\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Link | Array | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","/**\n * @typedef {import('../types.js').AssociationId} AssociationId\n */\n\nimport {decodeString} from 'micromark-util-decode-string'\n\n/**\n * Get an identifier from an association to match it to others.\n *\n * Associations are nodes that match to something else through an ID:\n * .\n *\n * The `label` of an association is the string value: character escapes and\n * references work, and casing is intact.\n * The `identifier` is used to match one association to another:\n * controversially, character escapes and references don’t work in this\n * matching: `©` does not match `©`, and `\\+` does not match `+`.\n *\n * But casing is ignored (and whitespace) is trimmed and collapsed: ` A\\nb`\n * matches `a b`.\n * So, we do prefer the label when figuring out how we’re going to serialize:\n * it has whitespace, casing, and we can ignore most useless character\n * escapes and all character references.\n *\n * @type {AssociationId}\n */\nexport function association(node) {\n if (node.label || !node.identifier) {\n return node.label || ''\n }\n\n return decodeString(node.identifier)\n}\n","/**\n * @typedef {import('../types.js').FlowContent} FlowContent\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\n/**\n * @param {Parent & {children: Array}} parent\n * Parent of flow nodes.\n * @param {State} state\n * Info passed around about the current state.\n * @param {TrackFields} info\n * Info on where we are in the document we are generating.\n * @returns {string}\n * Serialized children, joined by (blank) lines.\n */\nexport function containerFlow(parent, state, info) {\n const indexStack = state.indexStack\n const children = parent.children || []\n const tracker = state.createTracker(info)\n /** @type {Array} */\n const results = []\n let index = -1\n\n indexStack.push(-1)\n\n while (++index < children.length) {\n const child = children[index]\n\n indexStack[indexStack.length - 1] = index\n\n results.push(\n tracker.move(\n state.handle(child, parent, state, {\n before: '\\n',\n after: '\\n',\n ...tracker.current()\n })\n )\n )\n\n if (child.type !== 'list') {\n state.bulletLastUsed = undefined\n }\n\n if (index < children.length - 1) {\n results.push(\n tracker.move(between(child, children[index + 1], parent, state))\n )\n }\n }\n\n indexStack.pop()\n\n return results.join('')\n}\n\n/**\n * @param {Node} left\n * @param {Node} right\n * @param {Parent} parent\n * @param {State} state\n * @returns {string}\n */\nfunction between(left, right, parent, state) {\n let index = state.join.length\n\n while (index--) {\n const result = state.join[index](left, right, parent, state)\n\n if (result === true || result === 1) {\n break\n }\n\n if (typeof result === 'number') {\n return '\\n'.repeat(1 + result)\n }\n\n if (result === false) {\n return '\\n\\n\\n\\n'\n }\n }\n\n return '\\n\\n'\n}\n","/**\n * @typedef {import('../types.js').IndentLines} IndentLines\n */\n\nconst eol = /\\r?\\n|\\r/g\n\n/**\n * @type {IndentLines}\n */\nexport function indentLines(value, map) {\n /** @type {Array} */\n const result = []\n let start = 0\n let line = 0\n /** @type {RegExpExecArray | null} */\n let match\n\n while ((match = eol.exec(value))) {\n one(value.slice(start, match.index))\n result.push(match[0])\n start = match.index + match[0].length\n line++\n }\n\n one(value.slice(start))\n\n return result.join('')\n\n /**\n * @param {string} value\n */\n function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Unsafe} pattern\n * @returns {RegExp}\n */\nexport function patternCompile(pattern) {\n if (!pattern._compiled) {\n const before =\n (pattern.atBreak ? '[\\\\r\\\\n][\\\\t ]*' : '') +\n (pattern.before ? '(?:' + pattern.before + ')' : '')\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (pattern.after ? '(?:' + pattern.after + ')' : ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n * @typedef {import('../types.js').ConstructName} ConstructName\n */\n\n/**\n * @param {Array} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').SafeConfig} SafeConfig\n */\n\nimport {patternCompile} from './pattern-compile.js'\nimport {patternInScope} from './pattern-in-scope.js'\n\n/**\n * Make a string safe for embedding in markdown constructs.\n *\n * In markdown, almost all punctuation characters can, in certain cases,\n * result in something.\n * Whether they do is highly subjective to where they happen and in what\n * they happen.\n *\n * To solve this, `mdast-util-to-markdown` tracks:\n *\n * * Characters before and after something;\n * * What “constructs” we are in.\n *\n * This information is then used by this function to escape or encode\n * special characters.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {string | null | undefined} input\n * Raw value to make safe.\n * @param {SafeConfig} config\n * Configuration.\n * @returns {string}\n * Serialized markdown safe for embedding.\n */\nexport function safe(state, input, config) {\n const value = (config.before || '') + (input || '') + (config.after || '')\n /** @type {Array} */\n const positions = []\n /** @type {Array} */\n const result = []\n /** @type {Record} */\n const infos = {}\n let index = -1\n\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n\n if (!patternInScope(state.stack, pattern)) {\n continue\n }\n\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n while ((match = expression.exec(value))) {\n const before = 'before' in pattern || Boolean(pattern.atBreak)\n const after = 'after' in pattern\n const position = match.index + (before ? match[1].length : 0)\n\n if (positions.includes(position)) {\n if (infos[position].before && !before) {\n infos[position].before = false\n }\n\n if (infos[position].after && !after) {\n infos[position].after = false\n }\n } else {\n positions.push(position)\n infos[position] = {before, after}\n }\n }\n }\n\n positions.sort(numerical)\n\n let start = config.before ? config.before.length : 0\n const end = value.length - (config.after ? config.after.length : 0)\n index = -1\n\n while (++index < positions.length) {\n const position = positions[index]\n\n // Character before or after matched:\n if (position < start || position >= end) {\n continue\n }\n\n // If this character is supposed to be escaped because it has a condition on\n // the next character, and the next character is definitly being escaped,\n // then skip this escape.\n if (\n (position + 1 < end &&\n positions[index + 1] === position + 1 &&\n infos[position].after &&\n !infos[position + 1].before &&\n !infos[position + 1].after) ||\n (positions[index - 1] === position - 1 &&\n infos[position].before &&\n !infos[position - 1].before &&\n !infos[position - 1].after)\n ) {\n continue\n }\n\n if (start !== position) {\n // If we have to use a character reference, an ampersand would be more\n // correct, but as backslashes only care about punctuation, either will\n // do the trick\n result.push(escapeBackslashes(value.slice(start, position), '\\\\'))\n }\n\n start = position\n\n if (\n /[!-/:-@[-`{-~]/.test(value.charAt(position)) &&\n (!config.encode || !config.encode.includes(value.charAt(position)))\n ) {\n // Character escape.\n result.push('\\\\')\n } else {\n // Character reference.\n result.push(\n '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';'\n )\n start++\n }\n }\n\n result.push(escapeBackslashes(value.slice(start, end), config.after))\n\n return result.join('')\n}\n\n/**\n * @param {number} a\n * @param {number} b\n * @returns {number}\n */\nfunction numerical(a, b) {\n return a - b\n}\n\n/**\n * @param {string} value\n * @param {string} after\n * @returns {string}\n */\nfunction escapeBackslashes(value, after) {\n const expression = /\\\\(?=[!-/:-@[-`{-~])/g\n /** @type {Array} */\n const positions = []\n /** @type {Array} */\n const results = []\n const whole = value + after\n let index = -1\n let start = 0\n /** @type {RegExpExecArray | null} */\n let match\n\n while ((match = expression.exec(whole))) {\n positions.push(match.index)\n }\n\n while (++index < positions.length) {\n if (start !== positions[index]) {\n results.push(value.slice(start, positions[index]))\n }\n\n results.push('\\\\')\n start = positions[index]\n }\n\n results.push(value.slice(start))\n\n return results.join('')\n}\n","/**\n * @typedef {import('../types.js').CreateTracker} CreateTracker\n * @typedef {import('../types.js').TrackCurrent} TrackCurrent\n * @typedef {import('../types.js').TrackMove} TrackMove\n * @typedef {import('../types.js').TrackShift} TrackShift\n */\n\n/**\n * Track positional info in the output.\n *\n * @type {CreateTracker}\n */\nexport function track(config) {\n // Defaults are used to prevent crashes when older utilities somehow activate\n // this code.\n /* c8 ignore next 5 */\n const options = config || {}\n const now = options.now || {}\n let lineShift = options.lineShift || 0\n let line = now.line || 1\n let column = now.column || 1\n\n return {move, current, shift}\n\n /**\n * Get the current tracked info.\n *\n * @type {TrackCurrent}\n */\n function current() {\n return {now: {line, column}, lineShift}\n }\n\n /**\n * Define an increased line shift (the typical indent for lines).\n *\n * @type {TrackShift}\n */\n function shift(value) {\n lineShift += value\n }\n\n /**\n * Move past some generated markdown.\n *\n * @type {TrackMove}\n */\n function move(input) {\n // eslint-disable-next-line unicorn/prefer-default-parameters\n const value = input || ''\n const chunks = value.split(/\\r?\\n|\\r/g)\n const tail = chunks[chunks.length - 1]\n line += chunks.length - 1\n column =\n chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift\n return value\n }\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n */\n\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {association} from 'mdast-util-to-markdown/lib/util/association.js'\nimport {containerFlow} from 'mdast-util-to-markdown/lib/util/container-flow.js'\nimport {indentLines} from 'mdast-util-to-markdown/lib/util/indent-lines.js'\nimport {safe} from 'mdast-util-to-markdown/lib/util/safe.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n// To do: next major: rename `context` -> `state`, `safeOptions` to `info`, use\n// utilities on `state`.\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteReference')\n const subexit = context.enter('reference')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\nfunction footnoteDefinition(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteDefinition')\n const subexit = context.enter('label')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n indentLines(containerFlow(node, context, tracker.current()), map)\n )\n exit()\n\n return value\n}\n\n/** @type {Map} */\nfunction map(line, index, blank) {\n if (index === 0) {\n return line\n }\n\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').Handle} Handle\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').PhrasingContent} PhrasingContent\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * Serialize the children of a parent that contains phrasing children.\n *\n * These children will be joined flush together.\n *\n * @param {Parent & {children: Array}} parent\n * Parent of flow nodes.\n * @param {State} state\n * Info passed around about the current state.\n * @param {Info} info\n * Info on where we are in the document we are generating.\n * @returns {string}\n * Serialized children, joined together.\n */\nexport function containerPhrasing(parent, state, info) {\n const indexStack = state.indexStack\n const children = parent.children || []\n /** @type {Array} */\n const results = []\n let index = -1\n let before = info.before\n\n indexStack.push(-1)\n let tracker = state.createTracker(info)\n\n while (++index < children.length) {\n const child = children[index]\n /** @type {string} */\n let after\n\n indexStack[indexStack.length - 1] = index\n\n if (index + 1 < children.length) {\n /** @type {Handle} */\n // @ts-expect-error: hush, it’s actually a `zwitch`.\n let handle = state.handle.handlers[children[index + 1].type]\n /** @type {Handle} */\n // @ts-expect-error: hush, it’s actually a `zwitch`.\n if (handle && handle.peek) handle = handle.peek\n after = handle\n ? handle(children[index + 1], parent, state, {\n before: '',\n after: '',\n ...tracker.current()\n }).charAt(0)\n : ''\n } else {\n after = info.after\n }\n\n // In some cases, html (text) can be found in phrasing right after an eol.\n // When we’d serialize that, in most cases that would be seen as html\n // (flow).\n // As we can’t escape or so to prevent it from happening, we take a somewhat\n // reasonable approach: replace that eol with a space.\n // See: \n if (\n results.length > 0 &&\n (before === '\\r' || before === '\\n') &&\n child.type === 'html'\n ) {\n results[results.length - 1] = results[results.length - 1].replace(\n /(\\r?\\n|\\r)$/,\n ' '\n )\n before = ' '\n\n // To do: does this work to reset tracker?\n tracker = state.createTracker(info)\n tracker.move(results.join(''))\n }\n\n results.push(\n tracker.move(\n state.handle(child, parent, state, {\n ...tracker.current(),\n before,\n after\n })\n )\n )\n\n before = results[results.length - 1].slice(-1)\n }\n\n indexStack.pop()\n\n return results.join('')\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n// To do: next major: expose functions.\n// To do: next major: use `state`, state utilities.\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: \n *\n * @type {Array}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n *\n * @type {FromMarkdownExtension}\n */\nexport const gfmStrikethroughFromMarkdown = {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n}\n\n/**\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n *\n * @type {ToMarkdownExtension}\n */\nexport const gfmStrikethroughToMarkdown = {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n const exit = context.enter('strikethrough')\n let value = tracker.move('~~')\n value += containerPhrasing(node, context, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n */\n\nimport {patternCompile} from '../util/pattern-compile.js'\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|ReadonlyArray} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {ReadonlyArray>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array>} Cells per row. */\n const cellMatrix = []\n /** @type {Array>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').InlineCode} InlineCode\n *\n * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext\n * @typedef {import('mdast-util-to-markdown').SafeOptions} SafeOptions\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells.\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters.\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {inlineCode} from 'mdast-util-to-markdown/lib/handle/inline-code.js'\nimport {markdownTable} from 'markdown-table'\n\n// To do: next major: use `state` and `state` utilities from `mdast-util-to-markdown`.\n// To do: next major: use `defaultHandlers.inlineCode`.\n// To do: next major: expose functions.\n\n/**\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n *\n * @type {FromMarkdownExtension}\n */\nexport const gfmTableFromMarkdown = {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n /** @type {Array<'left' | 'right' | 'center' | 'none'>} */\n // @ts-expect-error: `align` is custom.\n const align = token._align\n this.enter(\n {\n type: 'table',\n align: align.map((d) => (d === 'none' ? null : d)),\n children: []\n },\n token\n )\n this.setData('inTable', true)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1])\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n table: handleTable,\n tableRow: handleTableRow,\n tableCell: handleTableCell,\n inlineCode: inlineCodeWithTable\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, context, safeOptions) {\n return serializeData(\n handleTableAsData(node, context, safeOptions),\n node.align\n )\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, context, safeOptions) {\n const row = handleTableRowAsData(node, context, safeOptions)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, context, safeOptions) {\n const exit = context.enter('tableCell')\n const subexit = context.enter('phrasing')\n const value = containerPhrasing(node, context, {\n ...safeOptions,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array>} matrix\n * @param {Array | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array>} */\n const result = []\n const subexit = context.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(\n children[index],\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableRowAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array} */\n const result = []\n const subexit = context.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(\n children[index],\n node,\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, context) {\n let value = inlineCode(node, parent, context)\n\n if (context.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parent | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'tab'\n\n // To do: remove in a major.\n // @ts-expect-error: deprecated.\n if (style === 1 || style === '1') {\n return 'one'\n }\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\n/**\n * @typedef {Extract} Parents\n */\n\nimport {listItem} from 'mdast-util-to-markdown/lib/handle/list-item.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n// To do: next major: rename `context` -> `state`, `safeOptions` -> `info`, use\n// `track` from `state`.\n// To do: next major: replace exports with functions.\n// To do: next major: use `defaulthandlers.listItem`.\n\n/**\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n *\n * @type {FromMarkdownExtension}\n */\nexport const gfmTaskListItemFromMarkdown = {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n}\n\n/**\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n *\n * @type {ToMarkdownExtension}\n */\nexport const gfmTaskListItemToMarkdown = {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n const node = /** @type {ListItem} */ (this.stack[this.stack.length - 2])\n // We’re always in a paragraph, in a list item.\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = /** @type {Parents} */ (this.stack[this.stack.length - 2])\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = /** @type {Paragraph} */ (this.stack[this.stack.length - 1])\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, context, safeOptions) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = track(safeOptions)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = listItem(node, parent, context, {\n ...safeOptions,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options\n */\n\nimport {gfm} from 'micromark-extension-gfm'\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\n\n/**\n * Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function remarkGfm(options = {}) {\n const data = this.data()\n\n add('micromarkExtensions', gfm(options))\n add('fromMarkdownExtensions', gfmFromMarkdown())\n add('toMarkdownExtensions', gfmToMarkdown(options))\n\n /**\n * @param {string} field\n * @param {unknown} value\n */\n function add(field, value) {\n const list = /** @type {unknown[]} */ (\n // Other extensions\n /* c8 ignore next 2 */\n data[field] ? data[field] : (data[field] = [])\n )\n\n list.push(value)\n }\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral,\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable,\n gfmTaskListItem\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration.\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml,\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml,\n gfmTableHtml,\n gfmTagfilterHtml,\n gfmTaskListItemHtml\n ])\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * @typedef {import('mdast-util-gfm-table').Options} Options\n * Configuration.\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown,\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown,\n gfmTableFromMarkdown,\n gfmTaskListItemFromMarkdown\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown,\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown,\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown\n ]\n }\n}\n","/**\n * @typedef {import('./core.js').HChild} Child\n * Acceptable child value.\n * @typedef {import('./core.js').HProperties} Properties\n * Acceptable value for element properties.\n * @typedef {import('./core.js').HResult} Result\n * Result from a `h` (or `s`) call.\n *\n * @typedef {import('./jsx-classic.js').Element} s.JSX.Element\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} s.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n */\n\nimport {svg} from 'property-information'\nimport {core} from './core.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\nexport const s = core(svg, 'g', svgCaseSensitiveTagNames)\n","export const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * Map of web namespaces.\n *\n * @type {Record}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Content} Content\n * @typedef {import('parse5').DefaultTreeAdapterMap} DefaultTreeAdapterMap\n * @typedef {import('parse5').Token.ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Token.Location} P5Location\n */\n\n/**\n * @typedef {Content | Root} Node\n * @typedef {DefaultTreeAdapterMap['document']} P5Document\n * @typedef {DefaultTreeAdapterMap['documentFragment']} P5DocumentFragment\n * @typedef {DefaultTreeAdapterMap['documentType']} P5DocumentType\n * @typedef {DefaultTreeAdapterMap['commentNode']} P5Comment\n * @typedef {DefaultTreeAdapterMap['textNode']} P5Text\n * @typedef {DefaultTreeAdapterMap['element']} P5Element\n * @typedef {DefaultTreeAdapterMap['node']} P5Node\n * @typedef {DefaultTreeAdapterMap['template']} P5Template\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in.\n *\n * When an `` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n * @property {VFile | null | undefined} [file]\n * File used to add positional info to nodes.\n *\n * If given, the file should represent the original HTML source.\n * @property {boolean} [verbose=false]\n * Whether to add extra positional info about starting tags, closing tags,\n * and attributes to elements.\n *\n * > 👉 **Note**: only used when `file` is given.\n *\n * @typedef State\n * Info passed around about the current state.\n * @property {Schema} schema\n * Current schema.\n * @property {VFile | undefined} file\n * Corresponding file.\n * @property {boolean | undefined} verbose\n * Add extra positional info.\n * @property {boolean} location\n * Whether location info was found.\n */\n\nimport {h, s} from 'hastscript'\nimport {html, svg, find} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n/** @type {unknown} */\n// type-coverage:ignore-next-line\nconst proto = Object.prototype\n\n/**\n * Transform a `parse5` AST to hast.\n *\n * @param {P5Node} tree\n * `parse5` tree to transform.\n * @param {Options | VFile | null | undefined} [options]\n * Configuration.\n * @returns {Node}\n * hast tree.\n */\nexport function fromParse5(tree, options) {\n const options_ = options || {}\n /** @type {Options} */\n let settings\n /** @type {VFile | undefined} */\n let file\n\n if (isFile(options_)) {\n file = options_\n settings = {}\n } else {\n file = options_.file || undefined\n settings = options_\n }\n\n return one(\n {\n schema: settings.space === 'svg' ? svg : html,\n file,\n verbose: settings.verbose,\n location: false\n },\n tree\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Node} node\n * p5 node.\n * @returns {Node}\n * hast node.\n */\nfunction one(state, node) {\n /** @type {Node} */\n let result\n\n switch (node.nodeName) {\n case '#comment': {\n const reference = /** @type {P5Comment} */ (node)\n result = {type: 'comment', value: reference.data}\n patch(state, reference, result)\n return result\n }\n\n case '#document':\n case '#document-fragment': {\n const reference = /** @type {P5Document | P5DocumentFragment} */ (node)\n const quirksMode =\n 'mode' in reference\n ? reference.mode === 'quirks' || reference.mode === 'limited-quirks'\n : false\n\n result = {\n type: 'root',\n children: all(state, node.childNodes),\n data: {quirksMode}\n }\n\n if (state.file && state.location) {\n const doc = String(state.file)\n const loc = location(doc)\n const start = loc.toPoint(0)\n const end = loc.toPoint(doc.length)\n // @ts-expect-error: always defined as we give valid input.\n result.position = {start, end}\n }\n\n return result\n }\n\n case '#documentType': {\n const reference = /** @type {P5DocumentType} */ (node)\n // @ts-expect-error Types are out of date.\n result = {type: 'doctype'}\n patch(state, reference, result)\n return result\n }\n\n case '#text': {\n const reference = /** @type {P5Text} */ (node)\n result = {type: 'text', value: reference.value}\n patch(state, reference, result)\n return result\n }\n\n // Element.\n default: {\n const reference = /** @type {P5Element} */ (node)\n result = element(state, reference)\n return result\n }\n }\n}\n\n/**\n * Transform children.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Array} nodes\n * Nodes.\n * @returns {Array}\n * hast nodes.\n */\nfunction all(state, nodes) {\n let index = -1\n /** @type {Array} */\n const result = []\n\n while (++index < nodes.length) {\n // @ts-expect-error Assume no roots in `nodes`.\n result[index] = one(state, nodes[index])\n }\n\n return result\n}\n\n/**\n * Transform an element.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Element} node\n * `parse5` node to transform.\n * @returns {Element}\n * hast node.\n */\nfunction element(state, node) {\n const schema = state.schema\n\n state.schema = node.namespaceURI === webNamespaces.svg ? svg : html\n\n // Props.\n let index = -1\n /** @type {Record} */\n const props = {}\n\n while (++index < node.attrs.length) {\n const attribute = node.attrs[index]\n const name =\n (attribute.prefix ? attribute.prefix + ':' : '') + attribute.name\n if (!own.call(proto, name)) {\n props[name] = attribute.value\n }\n }\n\n // Build.\n const fn = state.schema.space === 'svg' ? s : h\n const result = fn(node.tagName, props, all(state, node.childNodes))\n patch(state, node, result)\n\n // Switch content.\n if (result.tagName === 'template') {\n const reference = /** @type {P5Template} */ (node)\n const pos = reference.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n /** @type {Root} */\n // @ts-expect-error Types are wrong.\n const content = one(state, reference.content)\n\n if (startTag && endTag && state.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n state.schema = schema\n\n return result\n}\n\n/**\n * Patch positional info from `from` onto `to`.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Node} from\n * p5 node.\n * @param {Node} to\n * hast node.\n * @returns {void}\n * Nothing.\n */\nfunction patch(state, from, to) {\n if ('sourceCodeLocation' in from && from.sourceCodeLocation && state.file) {\n const position = createLocation(state, to, from.sourceCodeLocation)\n\n if (position) {\n state.location = true\n to.position = position\n }\n }\n}\n\n/**\n * Create clean positional information.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Node} node\n * hast node.\n * @param {P5ElementLocation} location\n * p5 location info.\n * @returns {Position | undefined}\n * Position, or nothing.\n */\nfunction createLocation(state, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: .\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (state.verbose) {\n /** @type {Record} */\n const props = {}\n /** @type {string} */\n let key\n\n if (location.attrs) {\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n props[find(state.schema, key).property] = position(\n location.attrs[key]\n )\n }\n }\n }\n\n node.data = {\n position: {\n // @ts-expect-error: assume not `undefined`.\n opening: position(location.startTag),\n closing: location.endTag ? position(location.endTag) : null,\n properties: props\n }\n }\n }\n }\n\n return result\n}\n\n/**\n * Turn a p5 location into a position.\n *\n * @param {P5Location} loc\n * Location.\n * @returns {Position | undefined}\n * Position or nothing.\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n // @ts-expect-error `undefined` is fine.\n return start || end ? {start, end} : undefined\n}\n\n/**\n * Filter out invalid points.\n *\n * @param {Point} point\n * Point with potentially `undefined` values.\n * @returns {Point | undefined}\n * Point or nothing.\n */\nfunction point(point) {\n return point.line && point.column ? point : undefined\n}\n\n/**\n * Check if something is a file.\n *\n * @param {VFile | Options} value\n * File or options.\n * @returns {value is VFile}\n * Whether `value` is a file.\n */\nfunction isFile(value) {\n return 'messages' in value\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('vfile').Value} Value\n */\n\n/**\n * @typedef Point\n * unist point, where `line` and `column` can be `undefined`.\n * @property {number | undefined} line\n * Line.\n * @property {number | undefined} column\n * Column.\n * @property {number | undefined} [offset]\n * Offset.\n *\n * @typedef PointLike\n * unist point, allowed as input.\n * @property {number | null | undefined} [line]\n * Line.\n * @property {number | null | undefined} [column]\n * Column.\n * @property {number | null | undefined} [offset]\n * Offset.\n *\n * @callback ToPoint\n * Get a line/column-based `point` from `offset`.\n * @param {number | null | undefined} [offset]\n * Something that should be an `offset.\n * @returns {Point}\n * Point, line/column are undefined for invalid or out of bounds input.\n *\n * @callback ToOffset\n * Get an offset from a line/column-based `point`.\n * @param {Point | null | undefined} [point]\n * Something that should be a `point.\n * @returns {number}\n * Offset or `-1` for invalid or out of bounds input.\n *\n * @typedef Location\n * Accessors for index.\n * @property {ToPoint} toPoint\n * Get a line/column-based `point` from `offset`.\n * @property {ToOffset} toOffset\n * Get an offset from a line/column-based `point`.\n */\n\n/**\n * Index the given document so you can translate between line/column and offset\n * based positional info.\n *\n * @param {VFile | Value} file\n * File to index.\n * @returns {Location}\n * Accessors for index.\n */\nexport function location(file) {\n const value = String(file)\n /** @type {Array} */\n const indices = []\n const search = /\\r?\\n|\\r/g\n\n while (search.test(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {toPoint, toOffset}\n\n /** @type {ToPoint} */\n function toPoint(offset) {\n let index = -1\n\n if (\n typeof offset === 'number' &&\n offset > -1 &&\n offset < indices[indices.length - 1]\n ) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (index > 0 ? indices[index - 1] : 0) + 1,\n offset\n }\n }\n }\n }\n\n return {line: undefined, column: undefined, offset: undefined}\n }\n\n /** @type {ToOffset} */\n function toOffset(point) {\n const line = point && point.line\n const column = point && point.column\n\n if (\n typeof line === 'number' &&\n typeof column === 'number' &&\n !Number.isNaN(line) &&\n !Number.isNaN(column) &&\n line - 1 in indices\n ) {\n const offset = (indices[line - 2] || 0) + column - 1 || 0\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n return offset\n }\n }\n\n return -1\n }\n}\n","/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record} [Handlers=Record]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record} [Handlers=Record]\n * @param {string} key\n * Field to switch on.\n * @param {Options} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters): ReturnType, (...parameters: Parameters): ReturnType}}\n */\nexport function zwitch(key, options) {\n const settings = options || {}\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid\n const handlers = one.handlers\n\n if (value && own.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key])\n // @ts-expect-error Indexable.\n fn = own.call(handlers, id) ? handlers[id] : one.unknown\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n // @ts-expect-error: matches!\n return one\n}\n","/**\n * @typedef {import('parse5').DefaultTreeAdapterMap} DefaultTreeAdapterMap\n * @typedef {DefaultTreeAdapterMap['document']} P5Document\n * @typedef {DefaultTreeAdapterMap['documentFragment']} P5Fragment\n * @typedef {DefaultTreeAdapterMap['element']} P5Element\n * @typedef {DefaultTreeAdapterMap['node']} P5Node\n * @typedef {DefaultTreeAdapterMap['documentType']} P5Doctype\n * @typedef {DefaultTreeAdapterMap['commentNode']} P5Comment\n * @typedef {DefaultTreeAdapterMap['textNode']} P5Text\n * @typedef {DefaultTreeAdapterMap['parentNode']} P5Parent\n * @typedef {import('parse5').Token.Attribute} P5Attribute\n * @typedef {Exclude} P5Child\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n */\n\n/**\n * @typedef {Content | Root} Node\n * @typedef {'html' | 'svg'} Space\n *\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in.\n *\n * When an `` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {html, svg, find} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst own = {}.hasOwnProperty\n\n/** @type {(from: Node, schema: Schema) => P5Node} */\nconst one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a hast tree to Parse5’s AST.\n *\n * @param {Node} tree\n * Tree to transform.\n * @param {Options | Space | null | undefined} [options]\n * Configuration.\n * @returns {P5Node}\n * `parse5` node.\n */\nexport function toParse5(tree, options) {\n const space = options && typeof options === 'object' ? options.space : options\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @param {Root} node\n * @param {Schema} schema\n * Current schema.\n * @returns {P5Document}\n */\nfunction root(node, schema) {\n /** @type {P5Document} */\n const result = {\n nodeName: '#document',\n // @ts-expect-error: `parse5` uses enums, which are actually strings.\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Root} node\n * @param {Schema} schema\n * Current schema.\n * @returns {P5Fragment}\n */\nfunction fragment(node, schema) {\n /** @type {P5Fragment} */\n const result = {nodeName: '#document-fragment', childNodes: []}\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Doctype} node\n * @returns {P5Doctype}\n */\nfunction doctype(node) {\n /** @type {P5Doctype} */\n const result = {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n // @ts-expect-error: change to `null` in a major?\n parentNode: undefined\n }\n\n patch(node, result)\n return result\n}\n\n/**\n * @param {Text} node\n * @returns {P5Text}\n */\nfunction text(node) {\n /** @type {P5Text} */\n const result = {\n nodeName: '#text',\n value: node.value,\n // @ts-expect-error: no `parentNode`\n parentNode: undefined\n }\n patch(node, result)\n return result\n}\n\n/**\n * @param {Comment} node\n * @returns {P5Comment}\n */\nfunction comment(node) {\n /** @type {P5Comment} */\n const result = {\n nodeName: '#comment',\n data: node.value,\n // @ts-expect-error: no `parentNode`\n parentNode: undefined\n }\n\n patch(node, result)\n\n return result\n}\n\n/**\n * @param {Element} node\n * @param {Schema} schema\n * Current schema.\n * @returns {P5Element}\n * `parse5` node.\n */\nfunction element(node, schema) {\n const parentSchema = schema\n let currentSchema = parentSchema\n\n if (\n node.type === 'element' &&\n node.tagName.toLowerCase() === 'svg' &&\n parentSchema.space === 'html'\n ) {\n currentSchema = svg\n }\n\n /** @type {Array} */\n const attrs = []\n /** @type {string} */\n let prop\n\n if (node.properties) {\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(\n currentSchema,\n prop,\n node.properties[prop]\n )\n\n if (result) {\n attrs.push(result)\n }\n }\n }\n }\n\n /** @type {P5Element} */\n const result = {\n nodeName: node.tagName,\n tagName: node.tagName,\n attrs,\n // @ts-expect-error: html and svg both have a space.\n namespaceURI: webNamespaces[currentSchema.space],\n childNodes: [],\n // @ts-expect-error: no `parentNode`\n parentNode: undefined\n }\n result.childNodes = all(node.children, result, currentSchema)\n patch(node, result)\n\n if (node.tagName === 'template' && node.content) {\n // @ts-expect-error: `parse5` types are wrong.\n result.content = fragment(node.content, currentSchema)\n }\n\n return result\n}\n\n/**\n * Handle a property.\n *\n * @param {Schema} schema\n * Current schema.\n * @param {string} prop\n * Key.\n * @param {Array | string | number | boolean | null | undefined} value\n * hast property value.\n * @returns {P5Attribute | void}\n * Field for runtime, optional.\n */\nfunction createProperty(schema, prop, value) {\n const info = find(schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === undefined ||\n value === null ||\n value === false ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (!value && info.boolean)\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n /** @type {P5Attribute} */\n const attribute = {\n name: info.attribute,\n value: value === true ? '' : String(value)\n }\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n const index = attribute.name.indexOf(':')\n\n if (index < 0) {\n attribute.prefix = ''\n } else {\n attribute.name = attribute.name.slice(index + 1)\n attribute.prefix = info.attribute.slice(0, index)\n }\n\n attribute.namespace = webNamespaces[info.space]\n }\n\n return attribute\n}\n\n/**\n * Transform all hast nodes.\n *\n * @param {Array} children\n * List of children.\n * @param {P5Parent} parentNode\n * `parse5` parent node.\n * @param {Schema} schema\n * Current schema.\n * @returns {Array}\n * Transformed children.\n */\nfunction all(children, parentNode, schema) {\n let index = -1\n /** @type {Array} */\n const results = []\n\n if (children) {\n while (++index < children.length) {\n /** @type {P5Child} */\n // @ts-expect-error assume no document.\n const child = one(children[index], schema)\n\n child.parentNode = parentNode\n\n results.push(child)\n }\n }\n\n return results\n}\n\n/**\n * Add position info from `from` to `to`.\n *\n * @param {Node} from\n * hast node.\n * @param {P5Node} to\n * `parse5` node.\n * @returns {void}\n * Nothing.\n */\nfunction patch(from, to) {\n const position = from.position\n\n if (position && position.start && position.end) {\n to.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n // @ts-expect-error assume this is set.\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n // @ts-expect-error assume this is set.\n endOffset: position.end.offset\n }\n }\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'isindex',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'nextid',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {Omit} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {Omit & {startOffset: number|undefined, endOffset: number|undefined}} P5Location\n * @typedef {import('parse5').ParserOptions} P5ParserOptions\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {import('../complex-types').Raw} Raw\n *\n * @typedef {Omit & {value: {stitch: Node}}} Stitch\n *\n * @typedef Options\n * @property {Array} [passThrough]\n * List of custom hast node types to pass through (keep) in hast.\n * If the passed through nodes have children, those children are expected to\n * be hast and will be handled.\n *\n * @typedef HiddenTokenizer\n * @property {Array} __mixins\n * Way too simple, but works for us.\n * @property {HiddenPreprocessor} preprocessor\n * @property {(value: string) => void} write\n * @property {() => number} _consume\n * @property {Array} tokenQueue\n * @property {string} state\n * @property {string} returnState\n * @property {number} charRefCode\n * @property {Array} tempBuff\n * @property {Function} _flushCodePointsConsumedAsCharacterReference\n * @property {string} lastStartTagName\n * @property {number} consumedAfterSnapshot\n * @property {boolean} active\n * @property {HiddenToken|undefined} currentCharacterToken\n * @property {HiddenToken|undefined} currentToken\n * @property {unknown} currentAttr\n * @property {Function} NAMED_CHARACTER_REFERENCE_STATE\n * @property {Function} NUMERIC_CHARACTER_REFERENCE_END_STATE\n *\n * @typedef {Record & {location: P5Location}} HiddenToken\n *\n * @typedef HiddenPreprocessor\n * @property {string|undefined} html\n * @property {number} pos\n * @property {number} lastGapPos\n * @property {number} lastCharPos\n * @property {Array} gapStack\n * @property {boolean} skipNextNewLine\n * @property {boolean} lastChunkWritten\n * @property {boolean} endOfChunkHit\n *\n * @typedef HiddenLocationTracker\n * @property {P5Location|undefined} currentAttrLocation\n * @property {P5Location} ctLoc\n * @property {HiddenPosTracker} posTracker\n *\n * @typedef HiddenPosTracker\n * @property {boolean} isEol\n * @property {number} lineStartPos\n * @property {number} droppedBufferSize\n * @property {number} offset\n * @property {number} col\n * @property {number} line\n */\n\n// @ts-expect-error: untyped.\nimport Parser from 'parse5/lib/parser/index.js'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst inTemplateMode = 'IN_TEMPLATE_MODE'\nconst dataState = 'DATA_STATE'\nconst characterToken = 'CHARACTER_TOKEN'\nconst startTagToken = 'START_TAG_TOKEN'\nconst endTagToken = 'END_TAG_TOKEN'\nconst commentToken = 'COMMENT_TOKEN'\nconst doctypeToken = 'DOCTYPE_TOKEN'\n\n/** @type {P5ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Given a hast tree and an optional vfile (for positional info), return a new\n * parsed-again hast tree.\n *\n * @param tree\n * Original hast tree.\n * @param file\n * Virtual file for positional info, optional.\n * @param options\n * Configuration.\n */\nexport const raw =\n /**\n * @type {(\n * ((tree: Node, file: VFile|undefined, options?: Options) => Node) &\n * ((tree: Node, options?: Options) => Node)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {VFile} [file]\n * @param {Options} [options]\n */\n function (tree, file, options) {\n let index = -1\n const parser = new Parser(parseOptions)\n const one = zwitch('type', {\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n // @ts-expect-error: hush.\n unknown\n })\n /** @type {boolean|undefined} */\n let stitches\n /** @type {HiddenTokenizer|undefined} */\n let tokenizer\n /** @type {HiddenPreprocessor|undefined} */\n let preprocessor\n /** @type {HiddenPosTracker|undefined} */\n let posTracker\n /** @type {HiddenLocationTracker|undefined} */\n let locationTracker\n\n if (isOptions(file)) {\n options = file\n file = undefined\n }\n\n if (options && options.passThrough) {\n while (++index < options.passThrough.length) {\n // @ts-expect-error: hush.\n one.handlers[options.passThrough[index]] = stitch\n }\n }\n\n const result = fromParse5(\n documentMode(tree) ? document() : fragment(),\n file\n )\n\n if (stitches) {\n visit(result, 'comment', (node, index, parent) => {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent !== null && index !== null) {\n // @ts-expect-error: assume the stitch is allowed.\n parent.children[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n tree.type !== 'root' &&\n result.type === 'root' &&\n result.children.length === 1\n ) {\n return result.children[0]\n }\n\n return result\n\n /**\n * @returns {P5Fragment}\n */\n function fragment() {\n /** @type {P5Element} */\n const context = {\n nodeName: 'template',\n tagName: 'template',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Element} */\n const mock = {\n nodeName: 'documentmock',\n tagName: 'documentmock',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Fragment} */\n const doc = {nodeName: '#document-fragment', childNodes: []}\n\n parser._bootstrap(mock, context)\n parser._pushTmplInsertionMode(inTemplateMode)\n parser._initTokenizerForFragmentParsing()\n parser._insertFakeRootElement()\n parser._resetInsertionMode()\n parser._findFormInFragmentContext()\n\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n resetTokenizer()\n\n parser._adoptNodes(mock.childNodes[0], doc)\n\n return doc\n }\n\n /**\n * @returns {P5Document}\n */\n function document() {\n /** @type {P5Document} */\n const doc = parser.treeAdapter.createDocument()\n\n parser._bootstrap(doc, undefined)\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n resetTokenizer()\n\n return doc\n }\n\n /**\n * @param {Array} nodes\n * @returns {void}\n */\n function all(nodes) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n one(nodes[index])\n }\n }\n }\n\n /**\n * @param {Root} node\n * @returns {void}\n */\n function root(node) {\n all(node.children)\n }\n\n /**\n * @param {Element} node\n * @returns {void}\n */\n function element(node) {\n resetTokenizer()\n parser._processInputToken(startTag(node))\n\n all(node.children)\n\n if (!htmlVoidElements.includes(node.tagName)) {\n resetTokenizer()\n parser._processInputToken(endTag(node))\n }\n }\n\n /**\n * @param {Text} node\n * @returns {void}\n */\n function text(node) {\n resetTokenizer()\n parser._processInputToken({\n type: characterToken,\n chars: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Doctype} node\n * @returns {void}\n */\n function doctype(node) {\n resetTokenizer()\n parser._processInputToken({\n type: doctypeToken,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Comment|Stitch} node\n * @returns {void}\n */\n function comment(node) {\n resetTokenizer()\n parser._processInputToken({\n type: commentToken,\n data: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Raw} node\n * @returns {void}\n */\n function handleRaw(node) {\n const start = pointStart(node)\n const line = start.line || 1\n const column = start.column || 1\n const offset = start.offset || 0\n\n /* c8 ignore next 4 */\n if (!preprocessor) throw new Error('Expected `preprocessor`')\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n if (!locationTracker) throw new Error('Expected `locationTracker`')\n\n // Reset preprocessor:\n // See: .\n preprocessor.html = undefined\n preprocessor.pos = -1\n preprocessor.lastGapPos = -1\n preprocessor.lastCharPos = -1\n preprocessor.gapStack = []\n preprocessor.skipNextNewLine = false\n preprocessor.lastChunkWritten = false\n preprocessor.endOfChunkHit = false\n\n // Reset preprocessor mixin:\n // See: .\n posTracker.isEol = false\n posTracker.lineStartPos = -column + 1 // Looks weird, but ensures we get correct positional info.\n posTracker.droppedBufferSize = offset\n posTracker.offset = 0\n posTracker.col = 1\n posTracker.line = line\n\n // Reset location tracker:\n // See: .\n locationTracker.currentAttrLocation = undefined\n locationTracker.ctLoc = createParse5Location(node)\n\n // See the code for `parse` and `parseFragment`:\n // See: .\n tokenizer.write(node.value)\n parser._runParsingLoop(null)\n\n // Character references hang, so if we ended there, we need to flush\n // those too.\n // We reset the preprocessor as if the document ends here.\n // Then one single call to the relevant state does the trick, parse5\n // consumes the whole token.\n if (\n tokenizer.state === 'NAMED_CHARACTER_REFERENCE_STATE' ||\n tokenizer.state === 'NUMERIC_CHARACTER_REFERENCE_END_STATE'\n ) {\n preprocessor.lastChunkWritten = true\n tokenizer[tokenizer.state](tokenizer._consume())\n }\n }\n\n /**\n * @param {Node} node\n */\n function stitch(node) {\n stitches = true\n\n /** @type {Node} */\n let clone\n\n // Recurse, because to somewhat handle `[]` (where `[]` denotes the\n // passed through node).\n if ('children' in node) {\n clone = {\n ...node,\n children: raw(\n {type: 'root', children: node.children},\n file,\n options\n // @ts-expect-error Assume a given parent yields a parent.\n ).children\n }\n } else {\n clone = {...node}\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}})\n }\n\n function resetTokenizer() {\n /* c8 ignore next 2 */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n\n // Process final characters if they’re still there after hibernating.\n // Similar to:\n // See: .\n const token = tokenizer.currentCharacterToken\n\n if (token) {\n token.location.endLine = posTracker.line\n token.location.endCol = posTracker.col + 1\n token.location.endOffset = posTracker.offset + 1\n parser._processInputToken(token)\n }\n\n // Reset tokenizer:\n // See: .\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n tokenizer.tokenQueue = []\n tokenizer.state = dataState\n tokenizer.returnState = ''\n tokenizer.charRefCode = -1\n tokenizer.tempBuff = []\n tokenizer.lastStartTagName = ''\n tokenizer.consumedAfterSnapshot = -1\n tokenizer.active = false\n tokenizer.currentCharacterToken = undefined\n tokenizer.currentToken = undefined\n tokenizer.currentAttr = undefined\n }\n }\n )\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction startTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: startTagToken,\n tagName: node.tagName,\n selfClosing: false,\n attrs: attributes(node),\n location\n }\n}\n\n/**\n * @param {Element} node\n * @returns {Array}\n */\nfunction attributes(node) {\n return toParse5({\n tagName: node.tagName,\n type: 'element',\n properties: node.properties,\n children: []\n // @ts-expect-error Assume element.\n }).attrs\n}\n\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction endTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: endTagToken,\n tagName: node.tagName,\n attrs: [],\n location\n }\n}\n\n/**\n * @param {Node} node\n */\nfunction unknown(node) {\n throw new Error('Cannot compile `' + node.type + '` node')\n}\n\n/**\n * @param {Node} node\n * @returns {boolean}\n */\nfunction documentMode(node) {\n const head = node.type === 'root' ? node.children[0] : node\n return Boolean(\n head &&\n (head.type === 'doctype' ||\n (head.type === 'element' && head.tagName === 'html'))\n )\n}\n\n/**\n * @param {Node|Stitch} node\n * @returns {P5Location}\n */\nfunction createParse5Location(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n return {\n startLine: start.line,\n startCol: start.column,\n startOffset: start.offset,\n endLine: end.line,\n endCol: end.column,\n endOffset: end.offset\n }\n}\n\n/**\n * @param {VFile|Options|undefined} value\n * @return {value is Options}\n */\nfunction isOptions(value) {\n return Boolean(value && !('message' in value && 'messages' in value))\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} Options\n * @typedef {import('hast-util-raw')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Plugin to parse the tree again (and raw nodes).\n * Keeping positional info OK. 🙌\n *\n * @type {import('unified').Plugin<[Options?] | Array, Root>}\n */\nexport default function rehypeRaw(options = {}) {\n return (tree, file) => {\n // Assume that when a root was given, it’s also returned.\n const result = /** @type {Root} */ (raw(tree, file, options))\n return result\n }\n}\n","// This module is generated by `script/`.\n/* eslint-disable no-control-regex, no-misleading-character-class, no-useless-escape */\nexport const regex = /[\\0-\\x1F!-,\\.\\/:-@\\[-\\^`\\{-\\xA9\\xAB-\\xB4\\xB6-\\xB9\\xBB-\\xBF\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0378\\u0379\\u037E\\u0380-\\u0385\\u0387\\u038B\\u038D\\u03A2\\u03F6\\u0482\\u0530\\u0557\\u0558\\u055A-\\u055F\\u0589-\\u0590\\u05BE\\u05C0\\u05C3\\u05C6\\u05C8-\\u05CF\\u05EB-\\u05EE\\u05F3-\\u060F\\u061B-\\u061F\\u066A-\\u066D\\u06D4\\u06DD\\u06DE\\u06E9\\u06FD\\u06FE\\u0700-\\u070F\\u074B\\u074C\\u07B2-\\u07BF\\u07F6-\\u07F9\\u07FB\\u07FC\\u07FE\\u07FF\\u082E-\\u083F\\u085C-\\u085F\\u086B-\\u089F\\u08B5\\u08C8-\\u08D2\\u08E2\\u0964\\u0965\\u0970\\u0984\\u098D\\u098E\\u0991\\u0992\\u09A9\\u09B1\\u09B3-\\u09B5\\u09BA\\u09BB\\u09C5\\u09C6\\u09C9\\u09CA\\u09CF-\\u09D6\\u09D8-\\u09DB\\u09DE\\u09E4\\u09E5\\u09F2-\\u09FB\\u09FD\\u09FF\\u0A00\\u0A04\\u0A0B-\\u0A0E\\u0A11\\u0A12\\u0A29\\u0A31\\u0A34\\u0A37\\u0A3A\\u0A3B\\u0A3D\\u0A43-\\u0A46\\u0A49\\u0A4A\\u0A4E-\\u0A50\\u0A52-\\u0A58\\u0A5D\\u0A5F-\\u0A65\\u0A76-\\u0A80\\u0A84\\u0A8E\\u0A92\\u0AA9\\u0AB1\\u0AB4\\u0ABA\\u0ABB\\u0AC6\\u0ACA\\u0ACE\\u0ACF\\u0AD1-\\u0ADF\\u0AE4\\u0AE5\\u0AF0-\\u0AF8\\u0B00\\u0B04\\u0B0D\\u0B0E\\u0B11\\u0B12\\u0B29\\u0B31\\u0B34\\u0B3A\\u0B3B\\u0B45\\u0B46\\u0B49\\u0B4A\\u0B4E-\\u0B54\\u0B58-\\u0B5B\\u0B5E\\u0B64\\u0B65\\u0B70\\u0B72-\\u0B81\\u0B84\\u0B8B-\\u0B8D\\u0B91\\u0B96-\\u0B98\\u0B9B\\u0B9D\\u0BA0-\\u0BA2\\u0BA5-\\u0BA7\\u0BAB-\\u0BAD\\u0BBA-\\u0BBD\\u0BC3-\\u0BC5\\u0BC9\\u0BCE\\u0BCF\\u0BD1-\\u0BD6\\u0BD8-\\u0BE5\\u0BF0-\\u0BFF\\u0C0D\\u0C11\\u0C29\\u0C3A-\\u0C3C\\u0C45\\u0C49\\u0C4E-\\u0C54\\u0C57\\u0C5B-\\u0C5F\\u0C64\\u0C65\\u0C70-\\u0C7F\\u0C84\\u0C8D\\u0C91\\u0CA9\\u0CB4\\u0CBA\\u0CBB\\u0CC5\\u0CC9\\u0CCE-\\u0CD4\\u0CD7-\\u0CDD\\u0CDF\\u0CE4\\u0CE5\\u0CF0\\u0CF3-\\u0CFF\\u0D0D\\u0D11\\u0D45\\u0D49\\u0D4F-\\u0D53\\u0D58-\\u0D5E\\u0D64\\u0D65\\u0D70-\\u0D79\\u0D80\\u0D84\\u0D97-\\u0D99\\u0DB2\\u0DBC\\u0DBE\\u0DBF\\u0DC7-\\u0DC9\\u0DCB-\\u0DCE\\u0DD5\\u0DD7\\u0DE0-\\u0DE5\\u0DF0\\u0DF1\\u0DF4-\\u0E00\\u0E3B-\\u0E3F\\u0E4F\\u0E5A-\\u0E80\\u0E83\\u0E85\\u0E8B\\u0EA4\\u0EA6\\u0EBE\\u0EBF\\u0EC5\\u0EC7\\u0ECE\\u0ECF\\u0EDA\\u0EDB\\u0EE0-\\u0EFF\\u0F01-\\u0F17\\u0F1A-\\u0F1F\\u0F2A-\\u0F34\\u0F36\\u0F38\\u0F3A-\\u0F3D\\u0F48\\u0F6D-\\u0F70\\u0F85\\u0F98\\u0FBD-\\u0FC5\\u0FC7-\\u0FFF\\u104A-\\u104F\\u109E\\u109F\\u10C6\\u10C8-\\u10CC\\u10CE\\u10CF\\u10FB\\u1249\\u124E\\u124F\\u1257\\u1259\\u125E\\u125F\\u1289\\u128E\\u128F\\u12B1\\u12B6\\u12B7\\u12BF\\u12C1\\u12C6\\u12C7\\u12D7\\u1311\\u1316\\u1317\\u135B\\u135C\\u1360-\\u137F\\u1390-\\u139F\\u13F6\\u13F7\\u13FE-\\u1400\\u166D\\u166E\\u1680\\u169B-\\u169F\\u16EB-\\u16ED\\u16F9-\\u16FF\\u170D\\u1715-\\u171F\\u1735-\\u173F\\u1754-\\u175F\\u176D\\u1771\\u1774-\\u177F\\u17D4-\\u17D6\\u17D8-\\u17DB\\u17DE\\u17DF\\u17EA-\\u180A\\u180E\\u180F\\u181A-\\u181F\\u1879-\\u187F\\u18AB-\\u18AF\\u18F6-\\u18FF\\u191F\\u192C-\\u192F\\u193C-\\u1945\\u196E\\u196F\\u1975-\\u197F\\u19AC-\\u19AF\\u19CA-\\u19CF\\u19DA-\\u19FF\\u1A1C-\\u1A1F\\u1A5F\\u1A7D\\u1A7E\\u1A8A-\\u1A8F\\u1A9A-\\u1AA6\\u1AA8-\\u1AAF\\u1AC1-\\u1AFF\\u1B4C-\\u1B4F\\u1B5A-\\u1B6A\\u1B74-\\u1B7F\\u1BF4-\\u1BFF\\u1C38-\\u1C3F\\u1C4A-\\u1C4C\\u1C7E\\u1C7F\\u1C89-\\u1C8F\\u1CBB\\u1CBC\\u1CC0-\\u1CCF\\u1CD3\\u1CFB-\\u1CFF\\u1DFA\\u1F16\\u1F17\\u1F1E\\u1F1F\\u1F46\\u1F47\\u1F4E\\u1F4F\\u1F58\\u1F5A\\u1F5C\\u1F5E\\u1F7E\\u1F7F\\u1FB5\\u1FBD\\u1FBF-\\u1FC1\\u1FC5\\u1FCD-\\u1FCF\\u1FD4\\u1FD5\\u1FDC-\\u1FDF\\u1FED-\\u1FF1\\u1FF5\\u1FFD-\\u203E\\u2041-\\u2053\\u2055-\\u2070\\u2072-\\u207E\\u2080-\\u208F\\u209D-\\u20CF\\u20F1-\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F-\\u215F\\u2189-\\u24B5\\u24EA-\\u2BFF\\u2C2F\\u2C5F\\u2CE5-\\u2CEA\\u2CF4-\\u2CFF\\u2D26\\u2D28-\\u2D2C\\u2D2E\\u2D2F\\u2D68-\\u2D6E\\u2D70-\\u2D7E\\u2D97-\\u2D9F\\u2DA7\\u2DAF\\u2DB7\\u2DBF\\u2DC7\\u2DCF\\u2DD7\\u2DDF\\u2E00-\\u2E2E\\u2E30-\\u3004\\u3008-\\u3020\\u3030\\u3036\\u3037\\u303D-\\u3040\\u3097\\u3098\\u309B\\u309C\\u30A0\\u30FB\\u3100-\\u3104\\u3130\\u318F-\\u319F\\u31C0-\\u31EF\\u3200-\\u33FF\\u4DC0-\\u4DFF\\u9FFD-\\u9FFF\\uA48D-\\uA4CF\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA62C-\\uA63F\\uA673\\uA67E\\uA6F2-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA7C0\\uA7C1\\uA7CB-\\uA7F4\\uA828-\\uA82B\\uA82D-\\uA83F\\uA874-\\uA87F\\uA8C6-\\uA8CF\\uA8DA-\\uA8DF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA954-\\uA95F\\uA97D-\\uA97F\\uA9C1-\\uA9CE\\uA9DA-\\uA9DF\\uA9FF\\uAA37-\\uAA3F\\uAA4E\\uAA4F\\uAA5A-\\uAA5F\\uAA77-\\uAA79\\uAAC3-\\uAADA\\uAADE\\uAADF\\uAAF0\\uAAF1\\uAAF7-\\uAB00\\uAB07\\uAB08\\uAB0F\\uAB10\\uAB17-\\uAB1F\\uAB27\\uAB2F\\uAB5B\\uAB6A-\\uAB6F\\uABEB\\uABEE\\uABEF\\uABFA-\\uABFF\\uD7A4-\\uD7AF\\uD7C7-\\uD7CA\\uD7FC-\\uD7FF\\uE000-\\uF8FF\\uFA6E\\uFA6F\\uFADA-\\uFAFF\\uFB07-\\uFB12\\uFB18-\\uFB1C\\uFB29\\uFB37\\uFB3D\\uFB3F\\uFB42\\uFB45\\uFBB2-\\uFBD2\\uFD3E-\\uFD4F\\uFD90\\uFD91\\uFDC8-\\uFDEF\\uFDFC-\\uFDFF\\uFE10-\\uFE1F\\uFE30-\\uFE32\\uFE35-\\uFE4C\\uFE50-\\uFE6F\\uFE75\\uFEFD-\\uFF0F\\uFF1A-\\uFF20\\uFF3B-\\uFF3E\\uFF40\\uFF5B-\\uFF65\\uFFBF-\\uFFC1\\uFFC8\\uFFC9\\uFFD0\\uFFD1\\uFFD8\\uFFD9\\uFFDD-\\uFFFF]|\\uD800[\\uDC0C\\uDC27\\uDC3B\\uDC3E\\uDC4E\\uDC4F\\uDC5E-\\uDC7F\\uDCFB-\\uDD3F\\uDD75-\\uDDFC\\uDDFE-\\uDE7F\\uDE9D-\\uDE9F\\uDED1-\\uDEDF\\uDEE1-\\uDEFF\\uDF20-\\uDF2C\\uDF4B-\\uDF4F\\uDF7B-\\uDF7F\\uDF9E\\uDF9F\\uDFC4-\\uDFC7\\uDFD0\\uDFD6-\\uDFFF]|\\uD801[\\uDC9E\\uDC9F\\uDCAA-\\uDCAF\\uDCD4-\\uDCD7\\uDCFC-\\uDCFF\\uDD28-\\uDD2F\\uDD64-\\uDDFF\\uDF37-\\uDF3F\\uDF56-\\uDF5F\\uDF68-\\uDFFF]|\\uD802[\\uDC06\\uDC07\\uDC09\\uDC36\\uDC39-\\uDC3B\\uDC3D\\uDC3E\\uDC56-\\uDC5F\\uDC77-\\uDC7F\\uDC9F-\\uDCDF\\uDCF3\\uDCF6-\\uDCFF\\uDD16-\\uDD1F\\uDD3A-\\uDD7F\\uDDB8-\\uDDBD\\uDDC0-\\uDDFF\\uDE04\\uDE07-\\uDE0B\\uDE14\\uDE18\\uDE36\\uDE37\\uDE3B-\\uDE3E\\uDE40-\\uDE5F\\uDE7D-\\uDE7F\\uDE9D-\\uDEBF\\uDEC8\\uDEE7-\\uDEFF\\uDF36-\\uDF3F\\uDF56-\\uDF5F\\uDF73-\\uDF7F\\uDF92-\\uDFFF]|\\uD803[\\uDC49-\\uDC7F\\uDCB3-\\uDCBF\\uDCF3-\\uDCFF\\uDD28-\\uDD2F\\uDD3A-\\uDE7F\\uDEAA\\uDEAD-\\uDEAF\\uDEB2-\\uDEFF\\uDF1D-\\uDF26\\uDF28-\\uDF2F\\uDF51-\\uDFAF\\uDFC5-\\uDFDF\\uDFF7-\\uDFFF]|\\uD804[\\uDC47-\\uDC65\\uDC70-\\uDC7E\\uDCBB-\\uDCCF\\uDCE9-\\uDCEF\\uDCFA-\\uDCFF\\uDD35\\uDD40-\\uDD43\\uDD48-\\uDD4F\\uDD74\\uDD75\\uDD77-\\uDD7F\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDFF\\uDE12\\uDE38-\\uDE3D\\uDE3F-\\uDE7F\\uDE87\\uDE89\\uDE8E\\uDE9E\\uDEA9-\\uDEAF\\uDEEB-\\uDEEF\\uDEFA-\\uDEFF\\uDF04\\uDF0D\\uDF0E\\uDF11\\uDF12\\uDF29\\uDF31\\uDF34\\uDF3A\\uDF45\\uDF46\\uDF49\\uDF4A\\uDF4E\\uDF4F\\uDF51-\\uDF56\\uDF58-\\uDF5C\\uDF64\\uDF65\\uDF6D-\\uDF6F\\uDF75-\\uDFFF]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A-\\uDC5D\\uDC62-\\uDC7F\\uDCC6\\uDCC8-\\uDCCF\\uDCDA-\\uDD7F\\uDDB6\\uDDB7\\uDDC1-\\uDDD7\\uDDDE-\\uDDFF\\uDE41-\\uDE43\\uDE45-\\uDE4F\\uDE5A-\\uDE7F\\uDEB9-\\uDEBF\\uDECA-\\uDEFF\\uDF1B\\uDF1C\\uDF2C-\\uDF2F\\uDF3A-\\uDFFF]|\\uD806[\\uDC3B-\\uDC9F\\uDCEA-\\uDCFE\\uDD07\\uDD08\\uDD0A\\uDD0B\\uDD14\\uDD17\\uDD36\\uDD39\\uDD3A\\uDD44-\\uDD4F\\uDD5A-\\uDD9F\\uDDA8\\uDDA9\\uDDD8\\uDDD9\\uDDE2\\uDDE5-\\uDDFF\\uDE3F-\\uDE46\\uDE48-\\uDE4F\\uDE9A-\\uDE9C\\uDE9E-\\uDEBF\\uDEF9-\\uDFFF]|\\uD807[\\uDC09\\uDC37\\uDC41-\\uDC4F\\uDC5A-\\uDC71\\uDC90\\uDC91\\uDCA8\\uDCB7-\\uDCFF\\uDD07\\uDD0A\\uDD37-\\uDD39\\uDD3B\\uDD3E\\uDD48-\\uDD4F\\uDD5A-\\uDD5F\\uDD66\\uDD69\\uDD8F\\uDD92\\uDD99-\\uDD9F\\uDDAA-\\uDEDF\\uDEF7-\\uDFAF\\uDFB1-\\uDFFF]|\\uD808[\\uDF9A-\\uDFFF]|\\uD809[\\uDC6F-\\uDC7F\\uDD44-\\uDFFF]|[\\uD80A\\uD80B\\uD80E-\\uD810\\uD812-\\uD819\\uD824-\\uD82B\\uD82D\\uD82E\\uD830-\\uD833\\uD837\\uD839\\uD83D\\uD83F\\uD87B-\\uD87D\\uD87F\\uD885-\\uDB3F\\uDB41-\\uDBFF][\\uDC00-\\uDFFF]|\\uD80D[\\uDC2F-\\uDFFF]|\\uD811[\\uDE47-\\uDFFF]|\\uD81A[\\uDE39-\\uDE3F\\uDE5F\\uDE6A-\\uDECF\\uDEEE\\uDEEF\\uDEF5-\\uDEFF\\uDF37-\\uDF3F\\uDF44-\\uDF4F\\uDF5A-\\uDF62\\uDF78-\\uDF7C\\uDF90-\\uDFFF]|\\uD81B[\\uDC00-\\uDE3F\\uDE80-\\uDEFF\\uDF4B-\\uDF4E\\uDF88-\\uDF8E\\uDFA0-\\uDFDF\\uDFE2\\uDFE5-\\uDFEF\\uDFF2-\\uDFFF]|\\uD821[\\uDFF8-\\uDFFF]|\\uD823[\\uDCD6-\\uDCFF\\uDD09-\\uDFFF]|\\uD82C[\\uDD1F-\\uDD4F\\uDD53-\\uDD63\\uDD68-\\uDD6F\\uDEFC-\\uDFFF]|\\uD82F[\\uDC6B-\\uDC6F\\uDC7D-\\uDC7F\\uDC89-\\uDC8F\\uDC9A-\\uDC9C\\uDC9F-\\uDFFF]|\\uD834[\\uDC00-\\uDD64\\uDD6A-\\uDD6C\\uDD73-\\uDD7A\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDE41\\uDE45-\\uDFFF]|\\uD835[\\uDC55\\uDC9D\\uDCA0\\uDCA1\\uDCA3\\uDCA4\\uDCA7\\uDCA8\\uDCAD\\uDCBA\\uDCBC\\uDCC4\\uDD06\\uDD0B\\uDD0C\\uDD15\\uDD1D\\uDD3A\\uDD3F\\uDD45\\uDD47-\\uDD49\\uDD51\\uDEA6\\uDEA7\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3\\uDFCC\\uDFCD]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85-\\uDE9A\\uDEA0\\uDEB0-\\uDFFF]|\\uD838[\\uDC07\\uDC19\\uDC1A\\uDC22\\uDC25\\uDC2B-\\uDCFF\\uDD2D-\\uDD2F\\uDD3E\\uDD3F\\uDD4A-\\uDD4D\\uDD4F-\\uDEBF\\uDEFA-\\uDFFF]|\\uD83A[\\uDCC5-\\uDCCF\\uDCD7-\\uDCFF\\uDD4C-\\uDD4F\\uDD5A-\\uDFFF]|\\uD83B[\\uDC00-\\uDDFF\\uDE04\\uDE20\\uDE23\\uDE25\\uDE26\\uDE28\\uDE33\\uDE38\\uDE3A\\uDE3C-\\uDE41\\uDE43-\\uDE46\\uDE48\\uDE4A\\uDE4C\\uDE50\\uDE53\\uDE55\\uDE56\\uDE58\\uDE5A\\uDE5C\\uDE5E\\uDE60\\uDE63\\uDE65\\uDE66\\uDE6B\\uDE73\\uDE78\\uDE7D\\uDE7F\\uDE8A\\uDE9C-\\uDEA0\\uDEA4\\uDEAA\\uDEBC-\\uDFFF]|\\uD83C[\\uDC00-\\uDD2F\\uDD4A-\\uDD4F\\uDD6A-\\uDD6F\\uDD8A-\\uDFFF]|\\uD83E[\\uDC00-\\uDFEF\\uDFFA-\\uDFFF]|\\uD869[\\uDEDE-\\uDEFF]|\\uD86D[\\uDF35-\\uDF3F]|\\uD86E[\\uDC1E\\uDC1F]|\\uD873[\\uDEA2-\\uDEAF]|\\uD87A[\\uDFE1-\\uDFFF]|\\uD87E[\\uDE1E-\\uDFFF]|\\uD884[\\uDF4B-\\uDFFF]|\\uDB40[\\uDC00-\\uDCFF\\uDDF0-\\uDFFF]/g\n","import { regex } from './regex.js'\n\nconst own = Object.hasOwnProperty\n\n/**\n * Slugger.\n */\nexport default class BananaSlug {\n /**\n * Create a new slug class.\n */\n constructor () {\n /** @type {Record} */\n // eslint-disable-next-line no-unused-expressions\n this.occurrences\n\n this.reset()\n }\n\n /**\n * Generate a unique slug.\n *\n * Tracks previously generated slugs: repeated calls with the same value\n * will result in different slugs.\n * Use the `slug` function to get same slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\n slug (value, maintainCase) {\n const self = this\n let result = slug(value, maintainCase === true)\n const originalSlug = result\n\n while (own.call(self.occurrences, result)) {\n self.occurrences[originalSlug]++\n result = originalSlug + '-' + self.occurrences[originalSlug]\n }\n\n self.occurrences[result] = 0\n\n return result\n }\n\n /**\n * Reset - Forget all previous slugs\n *\n * @return void\n */\n reset () {\n this.occurrences = Object.create(null)\n }\n}\n\n/**\n * Generate a slug.\n *\n * Does not track previously generated slugs: repeated calls with the same value\n * will result in the exact same slug.\n * Use the `GithubSlugger` class to get unique slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\nexport function slug (value, maintainCase) {\n if (typeof value !== 'string') return ''\n if (!maintainCase) value = value.toLowerCase()\n return value.replace(regex, '').replace(/ /g, '-')\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Content} Content\n */\n\n/**\n * @typedef {Root | Content} Node\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Check if `node`is an element and has a `field` property.\n *\n * @param {unknown} node\n * Thing to check (typically `Element`).\n * @param {unknown} field\n * Field name to check (typically `string`).\n * @returns {boolean}\n * Whether `node` is an element that has a `field` property.\n */\nexport function hasProperty(node, field) {\n const value =\n typeof field === 'string' &&\n isNode(node) &&\n node.type === 'element' &&\n node.properties &&\n own.call(node.properties, field) &&\n node.properties[field]\n\n return value !== null && value !== undefined && value !== false\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction isNode(value) {\n return Boolean(value && typeof value === 'object' && 'type' in value)\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Content} Content\n */\n\n/**\n * @typedef {Root | Content} Node\n */\n\n// To do next major: return `undefined`.\n/**\n * Get the rank (`1` to `6`) of headings (`h1` to `h6`).\n *\n * @param {Node} node\n * Node to check.\n * @returns {number | null}\n * Rank of the heading or `null` if not a heading.\n */\nexport function headingRank(node) {\n const name =\n (node && node.type === 'element' && node.tagName.toLowerCase()) || ''\n const code =\n name.length === 2 && name.charCodeAt(0) === 104 /* `h` */\n ? name.charCodeAt(1)\n : 0\n return code > 48 /* `0` */ && code < 55 /* `7` */ ? code - 48 /* `0` */ : null\n}\n","/**\n * @fileoverview\n * Get the plain-text value of a hast node.\n * @longdescription\n * ## Use\n *\n * ```js\n * import {h} from 'hastscript'\n * import {toString} from 'hast-util-to-string'\n *\n * toString(h('p', 'Alpha'))\n * //=> 'Alpha'\n * toString(h('div', [h('b', 'Bold'), ' and ', h('i', 'italic'), '.']))\n * //=> 'Bold and italic.'\n * ```\n *\n * ## API\n *\n * ### `toString(node)`\n *\n * Transform a node to a string.\n */\n\n/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {Root|Root['children'][number]} Node\n */\n\n/**\n * Get the plain-text value of a hast node.\n *\n * @param {Node} node\n * @returns {string}\n */\nexport function toString(node) {\n // “The concatenation of data of all the Text node descendants of the context\n // object, in tree order.”\n if ('children' in node) {\n return all(node)\n }\n\n // “Context object’s data.”\n return 'value' in node ? node.value : ''\n}\n\n/**\n * @param {Node} node\n * @returns {string}\n */\nfunction one(node) {\n if (node.type === 'text') {\n return node.value\n }\n\n return 'children' in node ? all(node) : ''\n}\n\n/**\n * @param {Root|Element} node\n * @returns {string}\n */\nfunction all(node) {\n let index = -1\n /** @type {string[]} */\n const result = []\n\n while (++index < node.children.length) {\n result[index] = one(node.children[index])\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('hast').Root} Root\n */\n\n/**\n * @typedef Options\n * Configuration (optional).\n * @property {string} [prefix='']\n * Prefix to add in front of `id`s.\n */\n\nimport Slugger from 'github-slugger'\nimport {hasProperty} from 'hast-util-has-property'\nimport {headingRank} from 'hast-util-heading-rank'\nimport {toString} from 'hast-util-to-string'\nimport {visit} from 'unist-util-visit'\n\nconst slugs = new Slugger()\n\n/**\n * Plugin to add `id`s to headings.\n *\n * @type {import('unified').Plugin<[Options?]|Array, Root>}\n */\nexport default function rehypeSlug(options = {}) {\n const prefix = options.prefix || ''\n\n return (tree) => {\n slugs.reset()\n\n visit(tree, 'element', (node) => {\n if (headingRank(node) && node.properties && !hasProperty(node, 'id')) {\n node.properties.id = prefix + slugs.slug(toString(node))\n }\n })\n }\n}\n","/**\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('hast').Element} Element\n */\n\n/**\n * @typedef {null | undefined | string | TestFunctionAnything | Array} Test\n * Check for an arbitrary element, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if an element passes a test, unaware of TypeScript inferral.\n * @param {Element} element\n * An element.\n * @param {number | null | undefined} [index]\n * The element’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The element’s parent.\n * @returns {boolean | void}\n * Whether this element passes the test.\n */\n\n/**\n * @template {Element} T\n * Element type.\n * @typedef {T['tagName'] | TestFunctionPredicate | Array>} PredicateTest\n * Check for an element that can be inferred by TypeScript.\n */\n\n/**\n * Check if an element passes a certain node test.\n *\n * @template {Element} T\n * Element type.\n * @callback TestFunctionPredicate\n * Complex test function for an element that can be inferred by TypeScript.\n * @param {Element} element\n * An element.\n * @param {number | null | undefined} [index]\n * The element’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The element’s parent.\n * @returns {element is T}\n * Whether this element passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is an element, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is an element and passes a test.\n */\n\n/**\n * Check if a node is an element and passes a certain node test\n *\n * @template {Element} T\n * Element type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific element, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is T}\n * Whether this is an element and passes a test.\n */\n\n/**\n * Check if `node` is an `Element` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific element.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is an element and passes a test.\n */\nexport const isElement =\n /**\n * @type {(\n * (() => false) &\n * ((node: unknown, test?: PredicateTest, index?: number, parent?: Parent, context?: unknown) => node is T) &\n * ((node: unknown, test: Test, index?: number, parent?: Parent, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test | undefined} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index for child node')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n // @ts-expect-error Looks like a node.\n if (!node || !node.type || typeof node.type !== 'string') {\n return false\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return check.call(context, node, index, parent)\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * When nullish, checks if `node` is an `Element`.\n * * When `string`, works like passing `(element) => element.tagName === test`.\n * * When `function` checks if function passed the element is true.\n * * When `array`, checks any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convertElement =\n /**\n * @type {(\n * ((test: T['tagName'] | TestFunctionPredicate) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as test')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) {\n return true\n }\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain tag name.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction tagNameFactory(check) {\n return tagName\n\n /**\n * @param {unknown} node\n * @returns {boolean}\n */\n function tagName(node) {\n return element(node) && node.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n // @ts-expect-error: fine.\n return element(node) && Boolean(check.call(this, node, ...parameters))\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} node\n * @returns {node is Element}\n */\nfunction element(node) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n // @ts-expect-error Looks like a node.\n node.type === 'element' &&\n // @ts-expect-error Looks like an element.\n typeof node.tagName === 'string'\n )\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Element} Element\n * @typedef {Element['children'][number]} ElementChild\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast-util-is-element').Test} Test\n *\n * @typedef {'prepend'|'append'|'wrap'|'before'|'after'} Behavior\n *\n * @callback Build\n * @param {Element} node\n * @returns {ElementChild|ElementChild[]}\n *\n * @typedef Options\n * Configuration.\n * @property {Behavior} [behavior='prepend']\n * How to create links.\n * @property {Behavior} [behaviour]\n * Please use `behavior` instead\n * @property {Properties} [properties]\n * Extra properties to set on the link when injecting.\n * Defaults to `{ariaHidden: true, tabIndex: -1}` when `'prepend'` or\n * `'append'`.\n * @property {ElementChild|ElementChild[]|Build} [content={type: 'element', tagName: 'span', properties: {className: ['icon', 'icon-link']}, children: []}]\n * hast nodes to insert in the link.\n * @property {ElementChild|ElementChild[]|Build} [group]\n * hast node to wrap the heading and link with, if `behavior` is `'before'` or\n * `'after'`.\n * There is no default.\n * @property {Test} [test]\n * Test to define which heading elements are linked.\n * Any test that can be given to `hast-util-is-element` is supported.\n * The default (no test) is to link all headings.\n * Can be used to link only h1-h3, or for example all except h1.\n */\n\nimport extend from 'extend'\nimport {hasProperty} from 'hast-util-has-property'\nimport {headingRank} from 'hast-util-heading-rank'\nimport {convertElement} from 'hast-util-is-element'\nimport {visit, SKIP} from 'unist-util-visit'\n\n/** @type {Element} */\nconst contentDefaults = {\n type: 'element',\n tagName: 'span',\n properties: {className: ['icon', 'icon-link']},\n children: []\n}\n\n/**\n * Plugin to automatically add links to headings (h1-h6).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function rehypeAutolinkHeadings(options = {}) {\n let props = options.properties\n const behavior = options.behaviour || options.behavior || 'prepend'\n const content = options.content || contentDefaults\n const group = options.group\n const is = convertElement(options.test)\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n let method\n\n if (behavior === 'wrap') {\n method = wrap\n } else if (behavior === 'before' || behavior === 'after') {\n method = around\n } else {\n if (!props) {\n props = {ariaHidden: 'true', tabIndex: -1}\n }\n\n method = inject\n }\n\n return (tree) => {\n visit(tree, 'element', (node, index, parent) => {\n if (\n headingRank(node) &&\n hasProperty(node, 'id') &&\n is(node, index, parent)\n ) {\n return method(node, index, parent)\n }\n })\n }\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n function inject(node) {\n node.children[behavior === 'prepend' ? 'unshift' : 'push'](\n create(node, extend(true, {}, props), toChildren(content, node))\n )\n\n return [SKIP]\n }\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n function around(node, index, parent) {\n // Uncommon.\n /* c8 ignore next */\n if (typeof index !== 'number' || !parent) return\n\n const link = create(\n node,\n extend(true, {}, props),\n toChildren(content, node)\n )\n let nodes = behavior === 'before' ? [link, node] : [node, link]\n\n if (group) {\n const grouping = toNode(group, node)\n\n if (grouping && !Array.isArray(grouping) && grouping.type === 'element') {\n grouping.children = nodes\n nodes = [grouping]\n }\n }\n\n parent.children.splice(index, 1, ...nodes)\n\n return [SKIP, index + nodes.length]\n }\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n function wrap(node) {\n node.children = [create(node, extend(true, {}, props), node.children)]\n return [SKIP]\n }\n\n /**\n * @param {ElementChild|ElementChild[]|Build} value\n * @param {Element} node\n * @returns {ElementChild[]}\n */\n function toChildren(value, node) {\n const result = toNode(value, node)\n return Array.isArray(result) ? result : [result]\n }\n\n /**\n * @param {ElementChild|ElementChild[]|Build} value\n * @param {Element} node\n * @returns {ElementChild|ElementChild[]}\n */\n function toNode(value, node) {\n if (typeof value === 'function') return value(node)\n return extend(true, Array.isArray(value) ? [] : {}, value)\n }\n\n /**\n * @param {Element} node\n * @param {Properties} props\n * @param {ElementChild[]} children\n * @returns {Element}\n */\n function create(node, props, children) {\n return {\n type: 'element',\n tagName: 'a',\n properties: Object.assign({}, props, {\n // Fix hast types and make them required.\n /* c8 ignore next */\n href: '#' + (node.properties || {}).id\n }),\n children\n }\n }\n}\n","import { Element, Comment, Literal, ElementContent, RootContent, Properties } from 'hast';\nimport { RehypeAttrsOptions } from './';\n\nexport const getURLParameters = (url: string = '') =>\n ((url.match(/([^?=&]+)(=([^&]*))/g) || []) as string[]).reduce(\n (a: Record, v: string) => (\n (a[v.slice(0, v.indexOf('=')) as keyof typeof a] = v.slice(v.indexOf('=') + 1)), a\n ),\n {}\n )\n\nexport const prevChild = (data: Literal[] = [], index: number): Comment | undefined => {\n let i = index;\n while (i > -1) {\n i--;\n if (!data[i]) return\n if ((data[i] && data[i].value && (data[i].value as string).replace(/(\\n|\\s)/g, '') !== '') || data[i].type !== 'text') {\n if (!/^rehype:/.test(data[i].value as string) || (data[i].type as string) !== 'comment') return;\n return data[i] as unknown as Comment;\n }\n }\n return;\n}\n\nexport const nextChild = (data: RootContent[] | ElementContent[] = [], index: number, tagName?: string, codeBlockParames?: boolean): ElementContent | undefined => {\n let i = index;\n while (i < data.length) {\n i++;\n if (tagName) {\n const element = data[i] as Literal & Element;\n if (element && element.value && (element.value as string).replace(/(\\n|\\s)/g, '') !== '' || data[i] && (data[i].type as string) === 'element') {\n return element.tagName === tagName ? element : undefined\n }\n } else {\n const element = data[i] as ElementContent & Literal;\n if (!element || element.type === 'element') return;\n if (element.type === 'text' && element.value.replace(/(\\n|\\s)/g, '') !== '') return;\n if (element.type && /^(comment|raw)$/ig.test(element.type)) {\n if (element.value && !/^rehype:/.test(element.value.replace(/^(\\s+)?/, '$2') || '')) {\n return\n };\n if (codeBlockParames) {\n const nextNode = nextChild(data, i, 'pre', codeBlockParames)\n if (nextNode) return;\n element.value = (element.value || '').replace(/^(\\n|\\s)+/, '')\n return element;\n } else {\n element.value = (element.value || '').replace(/^(\\n|\\s)+/, '')\n return element;\n }\n }\n }\n }\n return\n}\n\n/**\n * 获取代码注视的位置\n * @param data 数据\n * @param index 当前数据所在的位置\n * @returns 返回 当前参数数据 Object,`{}`\n */\nexport const getCommentObject = ({ value = '' }: Comment): Properties => {\n const param = getURLParameters(value.replace(/^/, '$1').replace(/^rehype:/, ''));\n Object.keys(param).forEach((keyName: string) => {\n if (param[keyName] === 'true') {\n param[keyName] = true;\n }\n if (param[keyName] === 'false') {\n param[keyName] = false;\n }\n if (typeof param[keyName] === 'string' && !/^0/.test(param[keyName] as string) && !isNaN(+param[keyName])) {\n param[keyName] = +param[keyName];\n }\n })\n return param;\n}\n\nexport type DataConfig = {\n 'data-config': Properties\n}\n\nexport const propertiesHandle = (defaultAttrs?: Properties | null, attrs?: Properties, type?: RehypeAttrsOptions['properties']): Properties | DataConfig => {\n if (type === 'string') {\n return { ...defaultAttrs, 'data-config': JSON.stringify({ ...attrs, rehyp: true })}\n } else if (type === 'attr') {\n return { ...defaultAttrs, ...attrs}\n }\n return { ...defaultAttrs, 'data-config': { ...attrs, rehyp: true }}\n}","import { Plugin } from 'unified';\nimport { Root, Element, Comment, Properties, Literal } from 'hast';\nimport { visit } from 'unist-util-visit';\nimport { propertiesHandle, nextChild, prevChild, getCommentObject } from './utils';\n\nexport type RehypeAttrsOptions = {\n /**\n * ## `data`\n * \n * ```markdown\n * text\n * \n * ```\n * 👇👇👇👇👇\n * ```html\n *

text

\n * ```\n * \n * ## `string`\n * \n * ```markdown\n * text\n * \n * ```\n * \n * 👇👇👇👇👇\n * \n * ```html\n *

text

\n * ```\n * \n * ## attr\n * \n * ```markdown\n * text\n * \n * ```\n * 👇👇👇👇👇\n * ```html\n *

text

\n * ```\n * @default `data`\n */\n properties?: 'data' | 'string' | 'attr';\n /**\n * Code block passing parameters\n */\n codeBlockParames?: boolean;\n}\n\nconst rehypeAttrs: Plugin<[RehypeAttrsOptions?], Root> = (options = {}) => {\n const { properties = 'data', codeBlockParames = true } = options;\n return (tree) => {\n visit(tree, 'element', (node, index, parent) => {\n if (codeBlockParames && node.tagName === 'pre' && node && Array.isArray(node.children) && parent && Array.isArray(parent.children) && parent.children.length > 1) {\n const firstChild = node.children[0] as Element;\n if (firstChild && firstChild.tagName === 'code' && typeof index === 'number') {\n const child = prevChild(parent.children as Literal[], index);\n if (child) {\n const attr = getCommentObject(child);\n if (Object.keys(attr).length > 0) {\n node.properties = { ...node.properties, ...{ 'data-type': 'rehyp' } }\n firstChild.properties = propertiesHandle(firstChild.properties, attr, properties) as Properties\n }\n }\n }\n }\n\n if (/^(em|strong|b|a|i|p|pre|kbd|blockquote|h(1|2|3|4|5|6)|code|table|img|del|ul|ol)$/.test(node.tagName) && parent && Array.isArray(parent.children) && typeof index === 'number') {\n const child = nextChild(parent.children, index, '', codeBlockParames)\n if (child) {\n const attr = getCommentObject(child as Comment)\n if (Object.keys(attr).length > 0) {\n node.properties = propertiesHandle(node.properties, attr, properties) as Properties\n }\n }\n }\n });\n }\n}\n\n\nexport default rehypeAttrs\n","import type { Plugin } from 'unified';\nimport type { Root, RootContent, Literal } from 'hast';\nimport { visit } from 'unist-util-visit';\n\n/**\n * Raw string of HTML embedded into HTML AST.\n */\nexport interface Raw extends Literal {\n /**\n * Node type.\n */\n type: 'raw'\n}\n\n// Register nodes in content.\ndeclare module 'hast' {\n interface RootContentMap {\n /**\n * Raw string of HTML embedded into HTML AST.\n */\n raw: Raw\n }\n interface ElementContentMap {\n /**\n * Raw string of HTML embedded into HTML AST.\n */\n raw: Raw\n }\n}\n\n\nexport type RehypeIgnoreOptions = {\n /**\n * Character to use for opening delimiter, by default `rehype:ignore:start`\n */\n openDelimiter?: string;\n /**\n * Character to use for closing delimiter, by default `rehype:ignore:end`\n */\n closeDelimiter?: string;\n}\n\nconst rehypeIgnore: Plugin<[RehypeIgnoreOptions?], Root> = (options = {}) => {\n const { openDelimiter = 'rehype:ignore:start', closeDelimiter = 'rehype:ignore:end' } = options;\n return (tree) => {\n visit(tree, (node: Root | RootContent, index, parent) => {\n if (node.type === 'element' || node.type === 'root') {\n // const start = node.children.findIndex((item) => item.type === 'comment' && item.value === openDelimiter);\n // const end = node.children.findIndex((item) => item.type === 'comment' && item.value === closeDelimiter);\n // if (start > -1 && end > -1) {\n // node.children = node.children.filter((_, idx) => idx < start || idx > end);\n // }\n let start = false;\n node.children = node.children.filter((item) => {\n if (item.type === 'raw' || item.type === 'comment') {\n let str = (item.value || '').trim();\n str = str.replace(/^/, '$1')\n if (str === openDelimiter) {\n start = true;\n return false;\n }\n if (str === closeDelimiter) {\n start = false;\n return false;\n }\n }\n \n return !start;\n })\n }\n });\n }\n}\n\nexport default rehypeIgnore;\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [cascade=true]\n * Whether to drop parent nodes if they had children, but all their children\n * were filtered out.\n */\n\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create a new `tree` of copies of all nodes that pass `test`.\n *\n * The tree is walked in *preorder* (NLR), visiting the node itself, then its\n * head, etc.\n *\n * @param tree\n * Tree to filter.\n * @param options\n * Configuration (optional).\n * @param test\n * `unist-util-is` compatible test.\n * @returns\n * New filtered tree.\n *\n * `null` is returned if `tree` itself didn’t pass the test, or is cascaded\n * away.\n */\nexport const filter =\n /**\n * @type {(\n * ((node: Tree, options: Options | null | undefined, test: Check | null | undefined) => import('./complex-types.js').Matches) &\n * ((node: Tree, test: Check) => import('./complex-types.js').Matches) &\n * ((node: Tree, options?: Options | null | undefined) => Tree)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Options | Test | null | undefined} [options]\n * @param {Test | null | undefined} [test]\n * @returns {Node | null}\n */\n function (tree, options, test) {\n const is = convert(test || options)\n /** @type {boolean | null | undefined} */\n const cascadeRaw =\n options && typeof options === 'object' && 'cascade' in options\n ? /** @type {boolean | null | undefined} */ (options.cascade)\n : undefined\n const cascade =\n cascadeRaw === undefined || cascadeRaw === null ? true : cascadeRaw\n\n return preorder(tree)\n\n /**\n * @param {Node} node\n * Current node.\n * @param {number | undefined} [index]\n * Index of `node` in `parent`.\n * @param {Parent | undefined} [parent]\n * Parent node.\n * @returns {Node | null}\n * Shallow copy of `node`.\n */\n function preorder(node, index, parent) {\n /** @type {Array} */\n const children = []\n\n if (!is(node, index, parent)) return null\n\n // @ts-expect-error: Looks like a parent.\n if (node.children) {\n let childIndex = -1\n\n // @ts-expect-error Looks like a parent.\n while (++childIndex < node.children.length) {\n // @ts-expect-error Looks like a parent.\n const result = preorder(node.children[childIndex], childIndex, node)\n\n if (result) {\n children.push(result)\n }\n }\n\n // @ts-expect-error Looks like a parent.\n if (cascade && node.children.length > 0 && children.length === 0)\n return null\n }\n\n // Create a shallow clone, using the new children.\n /** @type {typeof node} */\n // @ts-expect-error all the fields will be copied over.\n const next = {}\n /** @type {string} */\n let key\n\n for (key in node) {\n if (own.call(node, key)) {\n // @ts-expect-error: Looks like a record.\n next[key] = key === 'children' ? children : node[key]\n }\n }\n\n return next\n }\n }\n )\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef Options options\n * Configuration.\n * @property {boolean} [showLineNumbers]\n * Set `showLineNumbers` to `true` to always display line number\n * @property {boolean} [ignoreMissing]\n * Set `ignoreMissing` to `true` to ignore unsupported languages and line highlighting when no language is specified\n */\n\nimport { visit } from 'unist-util-visit'\nimport { toString } from 'hast-util-to-string'\nimport { filter } from 'unist-util-filter'\nimport rangeParser from 'parse-numeric-range'\n\n/**\n * @param {Element} node\n * @return {string|null}\n */\nconst getLanguage = (node) => {\n const className = node.properties.className\n //@ts-ignore\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === 'language-') {\n return classListItem.slice(9).toLowerCase()\n }\n }\n return null\n}\n\n/**\n * Create a closure that determines if we have to highlight the given index\n *\n * @param {string} meta\n * @return { (index:number) => boolean }\n */\nconst calculateLinesToHighlight = (meta) => {\n const RE = /{([\\d,-]+)}/\n // Remove space between {} e.g. {1, 3}\n const parsedMeta = meta\n .split(',')\n .map((str) => str.trim())\n .join()\n if (RE.test(parsedMeta)) {\n const strlineNumbers = RE.exec(parsedMeta)[1]\n const lineNumbers = rangeParser(strlineNumbers)\n return (index) => lineNumbers.includes(index + 1)\n } else {\n return () => false\n }\n}\n\n/**\n * Check if we want to start the line numbering from a given number or 1\n * showLineNumbers=5, will start the numbering from 5\n * @param {string} meta\n * @returns {number}\n */\nconst calculateStartingLine = (meta) => {\n const RE = /showLineNumbers=(?\\d+)/i\n // pick the line number after = using a named capturing group\n if (RE.test(meta)) {\n const {\n groups: { lines },\n } = RE.exec(meta)\n return Number(lines)\n }\n return 1\n}\n\n/**\n * Create container AST for node lines\n *\n * @param {number} number\n * @return {Element[]}\n */\nconst createLineNodes = (number) => {\n const a = new Array(number)\n for (let i = 0; i < number; i++) {\n a[i] = {\n type: 'element',\n tagName: 'span',\n properties: { className: [] },\n children: [],\n }\n }\n return a\n}\n\n/**\n * Split multiline text nodes into individual nodes with positioning\n * Add a node start and end line position information for each text node\n *\n * @return { (ast:Element['children']) => Element['children'] }\n *\n */\nconst addNodePositionClosure = () => {\n let startLineNum = 1\n /**\n * @param {Element['children']} ast\n * @return {Element['children']}\n */\n const addNodePosition = (ast) => {\n return ast.reduce((result, node) => {\n if (node.type === 'text') {\n const value = /** @type {string} */ (node.value)\n const numLines = (value.match(/\\n/g) || '').length\n if (numLines === 0) {\n node.position = {\n // column: 1 is needed to avoid error with @next/mdx\n // https://github.com/timlrx/rehype-prism-plus/issues/44\n start: { line: startLineNum, column: 1 },\n end: { line: startLineNum, column: 1 },\n }\n result.push(node)\n } else {\n const lines = value.split('\\n')\n for (const [i, line] of lines.entries()) {\n result.push({\n type: 'text',\n value: i === lines.length - 1 ? line : line + '\\n',\n position: {\n start: { line: startLineNum + i, column: 1 },\n end: { line: startLineNum + i, column: 1 },\n },\n })\n }\n }\n startLineNum = startLineNum + numLines\n\n return result\n }\n\n if (Object.prototype.hasOwnProperty.call(node, 'children')) {\n const initialLineNum = startLineNum\n // @ts-ignore\n node.children = addNodePosition(node.children, startLineNum)\n result.push(node)\n node.position = {\n start: { line: initialLineNum, column: 1 },\n end: { line: startLineNum, column: 1 },\n }\n return result\n }\n\n result.push(node)\n return result\n }, [])\n }\n return addNodePosition\n}\n\n/**\n * Rehype prism plugin generator that highlights code blocks with refractor (prismjs)\n *\n * Pass in your own refractor object with the required languages registered:\n * https://github.com/wooorm/refractor#refractorregistersyntax\n *\n * @param {import('refractor/lib/core').Refractor} refractor\n * @return {import('unified').Plugin<[Options?], Root>}\n */\nconst rehypePrismGenerator = (refractor) => {\n return (options = {}) => {\n return (tree) => {\n visit(tree, 'element', visitor)\n }\n\n /**\n * @param {Element} node\n * @param {number} index\n * @param {Element} parent\n */\n function visitor(node, index, parent) {\n if (!parent || parent.tagName !== 'pre' || node.tagName !== 'code') {\n return\n }\n\n let meta = /** @type {string} */ (node?.data?.meta || node?.properties?.metastring || '')\n // Coerce className to array\n if (node.properties.className) {\n if (typeof node.properties.className === 'boolean') {\n node.properties.className = []\n } else if (!Array.isArray(node.properties.className)) {\n node.properties.className = [node.properties.className]\n }\n } else {\n node.properties.className = []\n }\n node.properties.className.push('code-highlight')\n const lang = getLanguage(node)\n\n /** @type {Element} */\n let refractorRoot\n\n // Syntax highlight\n if (lang) {\n try {\n let rootLang\n if (lang?.includes('diff-')){\n rootLang=lang.split('-')[1]\n } else{\n rootLang=lang\n }\n // @ts-ignore\n refractorRoot = refractor.highlight(toString(node), rootLang)\n // @ts-ignore className is already an array\n parent.properties.className = (parent.properties.className || []).concat(\n 'language-' + rootLang\n )\n } catch (err) {\n if (options.ignoreMissing && /Unknown language/.test(err.message)) {\n refractorRoot = node\n } else {\n throw err\n }\n }\n } else {\n refractorRoot = node\n }\n\n refractorRoot.children = addNodePositionClosure()(refractorRoot.children)\n\n // Add position info to root\n if (refractorRoot.children.length > 0) {\n refractorRoot.position = {\n start: { line: refractorRoot.children[0].position.start.line, column: 0 },\n end: {\n line: refractorRoot.children[refractorRoot.children.length - 1].position.end.line,\n column: 0,\n },\n }\n } else {\n refractorRoot.position = {\n start: { line: 0, column: 0 },\n end: { line: 0, column: 0 },\n }\n }\n\n const shouldHighlightLine = calculateLinesToHighlight(meta)\n const startingLineNumber = calculateStartingLine(meta)\n const codeLineArray = createLineNodes(refractorRoot.position.end.line)\n\n const falseShowLineNumbersStr = [\n 'showlinenumbers=false',\n 'showlinenumbers=\"false\"',\n 'showlinenumbers={false}',\n ]\n for (const [i, line] of codeLineArray.entries()) {\n // Default class name for each line\n line.properties.className = ['code-line']\n\n // Syntax highlight\n const treeExtract = filter(\n refractorRoot,\n (node) => node.position.start.line <= i + 1 && node.position.end.line >= i + 1\n )\n line.children = treeExtract.children\n\n // Line number\n if (\n (meta.toLowerCase().includes('showLineNumbers'.toLowerCase()) ||\n options.showLineNumbers) &&\n !falseShowLineNumbersStr.some((str) => meta.toLowerCase().includes(str))\n ) {\n line.properties.line = [(i + startingLineNumber).toString()]\n line.properties.className.push('line-number')\n }\n\n // Line highlight\n if (shouldHighlightLine(i)) {\n line.properties.className.push('highlight-line')\n }\n\n // Diff classes\n if ((lang === 'diff' || lang?.includes('diff-')) && toString(line).substring(0, 1) === '-') {\n line.properties.className.push('deleted')\n } else if ((lang === 'diff' || lang?.includes('diff-')) && toString(line).substring(0, 1) === '+') {\n line.properties.className.push('inserted')\n }\n }\n\n // Remove possible trailing line when splitting by \\n which results in empty array\n if (\n codeLineArray.length > 0 &&\n toString(codeLineArray[codeLineArray.length - 1]).trim() === ''\n ) {\n codeLineArray.pop()\n }\n\n node.children = codeLineArray\n }\n }\n}\n\nexport default rehypePrismGenerator\n","import { refractor as refractorAll } from 'refractor/lib/all.js'\nimport rehypePrismGenerator from './generator.js'\n\n/**\n * Rehype prism plugin that highlights code blocks with refractor (prismjs)\n * This supports all the languages and should be used on the server side.\n *\n * Consider using rehypePrismCommon or rehypePrismGenerator to generate a plugin\n * that supports your required languages.\n */\nconst rehypePrismAll = rehypePrismGenerator(refractorAll)\n\nexport default rehypePrismAll\n","import { refractor as refractorCommon } from 'refractor/lib/common.js'\nimport rehypePrismGenerator from './generator.js'\n\n/**\n * Rehype prism plugin that highlights code blocks with refractor (prismjs)\n * Supported languages: https://github.com/wooorm/refractor#data\n *\n * Consider using rehypePrismGenerator to generate a plugin\n * that supports your required languages.\n */\nconst rehypePrismCommon = rehypePrismGenerator(refractorCommon)\n\nexport default rehypePrismCommon\n","const rtlRange = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nconst ltrRange =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\n/* eslint-disable no-misleading-character-class */\nconst rtl = new RegExp('^[^' + ltrRange + ']*[' + rtlRange + ']')\nconst ltr = new RegExp('^[^' + rtlRange + ']*[' + ltrRange + ']')\n/* eslint-enable no-misleading-character-class */\n\n/**\n * Detect the direction of text: left-to-right, right-to-left, or neutral\n *\n * @param {string} value\n * @returns {'rtl'|'ltr'|'neutral'}\n */\nexport function direction(value) {\n const source = String(value || '')\n return rtl.test(source) ? 'rtl' : ltr.test(source) ? 'ltr' : 'neutral'\n}\n","/**\n * @typedef {import('./types.js').SelectState} SelectState\n * @typedef {import('./types.js').Node} Node\n * @typedef {import('./types.js').ElementChild} ElementChild\n * @typedef {import('./types.js').Direction} Direction\n * @typedef {import('unist-util-visit/complex-types.js').Visitor} Visitor\n */\n\nimport {direction} from 'direction'\nimport {toString} from 'hast-util-to-string'\nimport {svg} from 'property-information'\nimport {visit, EXIT, SKIP} from 'unist-util-visit'\n\n/**\n * Enter a node.\n *\n * The caller is responsible for calling the return value `exit`.\n *\n * @param {SelectState} state\n * Current state.\n *\n * Will be mutated: `exit` undos the changes.\n * @param {Node} node\n * Node to enter.\n * @returns {() => void}\n * Call to exit.\n */\n// eslint-disable-next-line complexity\nexport function enterState(state, node) {\n const schema = state.schema\n const language = state.language\n const currentDirection = state.direction\n const editableOrEditingHost = state.editableOrEditingHost\n /** @type {Direction | undefined} */\n let dirInferred\n\n if (node.type === 'element' && node.properties) {\n const lang = node.properties.xmlLang || node.properties.lang\n const type = node.properties.type || 'text'\n const dir = dirProperty(node)\n\n if (lang !== undefined && lang !== null) {\n state.language = String(lang)\n }\n\n if (schema && schema.space === 'html') {\n if (node.properties.contentEditable === 'true') {\n state.editableOrEditingHost = true\n }\n\n if (node.tagName === 'svg') {\n state.schema = svg\n }\n\n // See: .\n // Explicit `[dir=rtl]`.\n if (dir === 'rtl') {\n dirInferred = dir\n } else if (\n // Explicit `[dir=ltr]`.\n dir === 'ltr' ||\n // HTML with an invalid or no `[dir]`.\n (dir !== 'auto' && node.tagName === 'html') ||\n // `input[type=tel]` with an invalid or no `[dir]`.\n (dir !== 'auto' && node.tagName === 'input' && type === 'tel')\n ) {\n dirInferred = 'ltr'\n // `[dir=auto]` or `bdi` with an invalid or no `[dir]`.\n } else if (dir === 'auto' || node.tagName === 'bdi') {\n if (node.tagName === 'textarea') {\n // Check contents of `